SecureM

Aller au contenu | Aller au menu | Aller à la recherche

Olympiades & PPE : Vive la SI :D

Coucou tout le monde :) Tout d'abord quelques nouvelles du projet d'Olympiades (FingerTracking par Wiimote) :  Je suis allé présenter mon projet aux olympiades de SI, au musée des Arts & Métiers, le mercredi 5 mai : à notre arrivée par les couloirs de service à partir de 8H, nous avons été assignés à un stand, sur lequel on a commencé à s'installer (pas de prise, et une fois déplacés, pas de multiprise pour nos ordinateurs et l'écran 20" de présentation).
Je dis nous parce que les Olympiades ça se présente en équipe, et qu'une équipe tout seul ça le faisait pas. Du coup mon compère en a profité pour extraire un bout du film Minority Report, une belle démonstration par Tom Cruise des applications du FingerTracking...
Le public est arrivé, pas le temps de s'asseoir, mais c'était très sympathique :) Le jury qui est passé était un peu moins sympathique, surtout que montrer tout le travail réalisé était tout bonnement impossible, je me suis donc contenté de leur en mettre plein la vue 8)
Et bien sûr, quand il pose sa petite question de ***, qui pour moi était "Mais... vous avez mesuré la distance minimale entre deux diodes pour que la Wiimote les sépare correctement ?" (parce que lorsqu'on rapproche trop deux diodes IR, la wiimote considère qu'il n'y a plus qu'un seul spot) et bien sûr j'étais pas allé mesurer, surtout que ça dépend de la distance LEDs/Wiimote (et qu'on s'en fiche un peu).
Du coup ils sont partis pas super satisfaits. Mais ça a pas empêché l'ensemble de la troupe, la délégation presque au grand complet, de revenir l'après-midi demander un "complément d'information de 5 min". En plus, on avait réparé le casque qui s'était abimé pendant le trajet et était inutilisable le matin, et qui servait au HeadTracking... Le HeadTracking, je ferais sûrement un article plus poussé pour l'expliquer (avec l'ensemble du projet je pense) donc sachez juste qu'au lieu de suivre un doigt, on suit la tête et on affiche l'image en fonction de la position de l'utilisateur, telle qu'il la verrait de son point de vue si l'objet était en 3D et non affichée sur une surface plane (écran). Bref, on a pu leur faire une petite démo, on a passé le casque à un membre du jury qui a été subjugué (vous me dites si j'en fait trop hein)... Donc au final, ils repartent super content, j'ai eu quelques visites particulièrement sympas : un ancien ingénieur des Arts&Métiers à la retraite et un homme d'affaire étranger qui a tenu à nous serrer la main en disant avec un fort accent "Félicitation, bravo !" :D
A 16H, c'était la remise des prix en salle de conférences...
  • 3e prix... Le projet du train à sustension magnétique (ceux qui ont vu m'ont parlé de "plusieurs aimants scotchés entre eux", mais comme j'ai pas vu je vais pas parler, en plus le sujet est pas mal)
  • 2e prix... Le calibreur automatique de vidéoprojecteur (sur une surface au coins de laquelle sont fixés 4 photorésistances qui permettent après correction d'afficher une image carrée sur une surface non perpendiculaire au projecteur; même si leur méthode de calibrage aurait pu être améliorée c'était un bon projet aussi, réalisé par des élèves de première pour leur TPE)
  • 1e prix... Un robot suiveur de lumière. EPIC FAIL. Là encore, j'ai pas vu donc je peux pas dire, mais comme thème ça m'a l'air assez... nul.
Donc oui vous, l'aurez compris, j'avais un peu la haine, surtout que les 3e ont eu des iPod Touch et les premiers des Netbooks...

Projets Pluritechniques Encadrés : notre PPE "robot suiveur de ligne, par capteur optique"

C'est aujourd'hui qu'avec mon groupe nous avons passé l'oral des PPE et rendu la production écrite (une synthèse obligatoire et un dossier facultatif). Ca s'est bien passé, même si la réalisation du robot nous a posé pas mal de problèmes : notre lycée étant le seul établissement non polyvalent (uniquement filière générale > pas de laboratoire de STI, STG, BEP, DUT, etc...) à faire de la SSI, c'est un peu la dèche niveau matériel. Genre la thermoplieuse qui thermoplie quand elle veut, et la scie électrique qui casse toutes les semaines étaient les deux seules machines à notre disposition. Ah si, j'oubliais le fer à souder (quand même), quand personne ne l'avait emprunté. Du coup, à nous de ramener la perceuse, à nous d'aller acheter les composants (jusqu'au scotch pour fabriquer la piste du robot), nos professeurs étant allés fabriquer nos circuits imprimés dans un autre lycée (nous n'avons récupéré ces cartes que l'avant dernière semaine)
Enfin bref, même si au final c'est un peu compliqué à réaliser, je comprends pas comment un robot suiveur de lumière a pu gagner les Olympiades de SI (ou alors il fait autre chose de mieux et ils ont mal choisi le nom).

Pour ce qui est de WiiInteract, le projet de FingerTracking, je compte bien continuer à l'améliorer pour le rendre encore plus attractif (notamment permettre un clic plus intuitif à moins de 50 cm de l'écran) et développer des applications originales ou utiles (photowall, instrument de musique, batterie virtuelle pour Guitar Hero, jeu de course pour utiliser le HeadTracking...)
Je vous tiendrais au courant, surtout si je fais un dossier explicatif :)

Projet d'Olympiades : Fingertracking par Wiimote

Bonjour tout le monde, voici quelques mois que je n'ai pas touché au site, je vous apporte donc des nouvelles :)

Depuis le début des vacances (eh oui on est encore en vacances nous :p) je travaille sur mon projet d'Olympiades de SI (pas à longueur de journée non plus, faut pas exagérer hein). Je m'explique.

Les Olympiades... de SI

 Les SI, Sciences de l'Ingénieur, nous sont enseignées depuis la première en voie générale scientifique (on abandonne la SVT pour prendre la SI). Peut-être avez-vous déjà entendu parler des Olympiades, mais c'était sûrement les Olympiades de Physique ou de Chimie. Les Olympiades de SI sont effet pratiquement inconnues, puisque c'est... leur première année. Vous pouvez visiter le site officiel : http://sites.google.com/site/lesolympiadesdesi/. Cette année donc, j'ai décidé de participer à ces olympiades : mais contrairement à la majorité des autres groupes qui je pense vont reprendre leur projet de PPE (projets pluritechniques encadrés) et présenter un robot suiveur de ligne (youpi T_T) ou un compacteur pour déchets, j'ai eu envie de faire quelque chose de différent et de plus intéressant (lisez "plus intéressant que mon robot suiveur de ligne de PPE")...
 On a beaucoup hésité, la robotique c'est bien sympa (c'est les SI en puissance, avec un gros bout de méca et un peu d'élec), mais personne n'a trouvé d'idée intéressante. Je suis donc parti sur... les IHM : une Interface Homme-Machine, c'est ce qui vous permet d'interagir avec votre ordinateur ou tout autre système informatisé. Par exemple, votre clavier, votre souris, votre manette de Playstation, et même maintenant une Wiimote, qui est un peu plus intuitif (surtout pour les jeux) et vous permet de lancer une boule de Bowling, de faire de la guitare, ou encore de tirer sur des lapins crétins, etc...
 Eh bien justement, parlons-en de la Wiimote, j'avais vu récemment un article qui m'avait permis de contrôler mon ordinateur en utilisant une Wiimote (CWiid) : en pointant un coin de l'écran je pouvais y déplacer ma souris, cliquer avec un bouton, etc... C'est là que j'ai pensé au fingertracking infra-rouge. Méçékoassa ?

"Fingertracking infra-rouge" avec une Wiimote et plus

  De l'anglais finger, le doigt, et tracking, le suivi, on pourrait traduire cela par "suivi du doigt". Il s'agit en fait simplement de repérer en temps réel la position du bout du doigt dans l'espace devant l'écran et de le retranscrire en mouvement du curseur. Ce n'est pas phénoménal, sûrement pas nouveau, mais je me suis rappelé le film futuriste Minority Report de S.Spielberg avec Tom Cruise, dans lequel ce dernier utilise en système similaire assez stylé pour visionner des vidéos et ordonner des éléments sur un grand écran translucide, le tout avec juste trois doigts qu'il balade d'un bout à l'autre de l'écran. Alors, allons-y :D
 Première difficulté : obtenir la position d'un doigt dans l'espace. Solution technique : utiliser une caméra. Mais pas n'importe quelle caméra, le groupe de PPE qui en utilise une sait très bien que transformer des pixels colorés en données concrètes c'est pas simple. J'ai donc repris le principe du contrôle de l'ordinateur par la Wiimote : celle-ci possède, sur la face avant, une caméra infra-rouge (le petit rectangle noir) qui permet de "voir" les principales sources infrarouges : objets très chauds, ou diodes infra-rouge... comme celles de la "Sensor Bar" de la Wii, qui est uniquement composée de deux sources infrarouges. Eh oui, il n'y a aucun capteur dedans, juste deux petites diodes. C'est la Wiimote qui repère, grâce à sa caméra, la position des deux bouts de la sensor bar, et calcule ensuite les coordonnées de l'endroit pointé par la Wiimote, sur l'écran.
 Très bien me direz-vous, mais si la caméra est dans la Wiimote et que tu veux juste savoir où se trouve ton doigt tu fais comment ? Tu te fixes une sensor bar sur le doigt ? Héhéééé non. Mais presque. Et oui, il suffit de placer une diode infrarouge (on abrège IR) au bout de chaque doigt pour en connaître la position !
Ainsi, une caméra IR (la Wiimote) placée face à l'utilisateur au dessus ou en dessous de l'écran permettra de récupérer la position des "spots" IR devant elle...
 "Oooohhh"
 Bon, c'est un poil compliqué donc je vous fait un petit shéma :
Bon, en théorie ça a l'air simple à faire... En pratique c'est autre chose. Tout d'abord, pour communiquer avec la Wiimote. La connexion se fait en bluetooth, pas de problème pour la connecter avec le logiciel de contrôle par Wiimote (dont j'ai parlé plus haut), c'est donc tout à fait possible et ça marche 9 fois sur 10 avec la clé bluetooth à 2€ (quand je vois qu'en magasin ils en vendent à 30€... :O).
 Donc pour commencer, le choix de la bibliothèque : il existe déjà des fonctions pour se connecter et récupérer les informations de la Wiimote, alors pourquoi le coder nous-même ? (Surtout que le support des frames Bluetooth, même avec les gars qui ont reversé le protocole de communication, ça reste assez dur)
Dans un premier temps j'ai essayé WiiUse, qui s'est avéré assez précis, paramétrable, et avancé. Mais... et il y a un gros MAIS, deux fois sur trois la connexion foirait à la connexion, et j'étais obligé de débrancher/rebrancher la clé Bluetooth. Assez intenable à la fin.
Du coup, je suis passé à CWiid, qui était la librairie utilisée par l'autre logiciel. Pas de doc. MAIS une fonction de connexion directe aux Wiimotes, en donnant leur adresse MAC : il s'agit de l'adresse unique et spécifique à chaque Wiimote, WiiUse auto-détectait les Wiimotes à proximité, tandis que CWiid permet de s'y connecter directement. Et du coup, plus aucun problème de connexion :D
Ca m'a pris un peu de temps de recoder la partie utilisant WiiUse, les systèmes étant moins évolués : c'est par exemple à moi de générer puis envoyer le mot de contrôle en hexadécimal pour par exemple activer les vibrations de la Wiimote. Mais bref. Là ça marche mieux.

Problèmes & Solutions techniques

 Et même quelques questions au niveau du cahier des charges : est-ce que veux pouvoir distinguer un état de clic, et de non clic quand le doigt bouge ? Sinon c'est assez simple : pas de spot visible (doigt baissé, la caméra ne peut pas voir la diode) > rien du tout, spot visible > clic à cet endroit. C'est par exemple la technique utilisé par Johnny Chung Lee (mais qui lui utilise des réflecteurs sur le bout des doigts, et un énorme panneau pour éclairer ces réflecteurs, voir la vidéo), un des premiers à avoir utilisé la Wiimote comme caméra IR. (voir son site en bas d'article)
 Mais si je ne veux pas être obligé de replier le doigt complètement dès que je ne veux plus cliquer, il faut pouvoir distinguer le moment de clic...
  1. Première solution : placer une seconde Wiimote perpendiculairement à la première, sur le côté, et détecter le moment où le doigt avance vers l'écran. L'ennui, c'est que les diodes n'émettent que très peu sur les côtés (donc avec un angle très réduit), et la seconde Wiimote ne voit rien du tout. On pourrait placer une deuxième diode perpendiculairement pour palier à ce problème, mais à chaque doigt ça devient encombrant et pas pratique du tout.
  2. Seconde solution : placer les deux Wiimotes de chaque côté de l'écran, légèrement incliné vers l'utilisateur : on obtient ainsi la profondeur en restant dans l'angle d'émission de la diode. Le problème, c'est qu'au niveau calculs, j'ai un peu du mal à suivre, même si c'est la piste que je privilégie pour le moment.
  3. Troisième solution : utiliser une méthode foireuse, style dès que le spot descend un petit coup puis remonte dans un délai très bref, exactement comme si on avait cliqué avec une souris, mais faut abandonner le cliquer-déplacer; ou encore dès que le spot grossit (on se rapproche de la caméra), mais si mon doigt se tourne sur le côté, et qu'il repointe ensuite la caméra, le spot va grossir puisqu'elle re-rentrera dans le cône d'émission de la diode (défini par son angle d'émission); etc...

[CETTE SECTION EST ENCORE EN COURS D'ECRITURE]


Références :
Johnny Chung Lee, et quelques applications de la caméra IR : http://johnnylee.net/projects/wii/ (la dernière vidéo de Head Tracking est particulièrement impressionnante).

Virtualisation Linux

Coucou tout le monde :)

Aujourd'hui, je me suis amusé à essayer la virtualisation. Détails de l'aventure.

Virtualisation, késako ?

La virtualisation est une technique (stylééee) qui permet de faire tourner une "machine virtuelle" sur un ordinateur déjà en route. En gros, vous êtes sous votre tout nouveau Windows Seven, mais vous regrettez votre ancien XP parce que lui au moins pouvait faire tourner votre logiciel préféré. Pas de problème, virtualisez-le donc ! Vous aurez alors un Windows XP qui tournera dans... une fenêtre. Sous Windows Seven. Sympa non ?
Bon, ok, l'exemple n'est peut-être pas approprié, mais illustre bien le procédé : on fait tourner un autre (tant qu'à faire) système d'exploitation sur l'ordinateur.

Mon exemple

on, comme vous le savez peut-être, je suis sous Mandriva. Mandriva Linux 2010.0. J'ai en dual boot le Windows Vista fourni avec le portable, dont j'ai créé le double CD de restauration. J'ai décidé d'utiliser VirtualBox pour commencer, parce qu'il est apparemment plus facile d'utilisation, et en Français. Et en effet, après un petit urpmi virtualbox (sans oublier les modules noyau et les dkms), je lance le logiciel : l'interface est agréable, des infobulles d'aide apparaissent pour chaque élément, bref, super ergonomie. Je suis le tutoriel disponible sur le site du zéro (http://www.siteduzero.com/tutoriel-3-35665-la-virtualisation-sous-linux.html) : nouveau disque dur de 20Go - ça devrait suffire, etc... Configuration ok, j'ai juste oublié de redémarrer pour installer les modules noyau. Ceci fait, je parviens à booter sur l'installateur via VirtualBox ! Après un message un peu flippant me disant un truc du style "Formattage du disque dur en cours" je me rappelle que le disque dur aussi est virtuel, ouf... enfin bon, faut quand même avoir la foi.
Je m'amuse alors à regarder comment la transition se fait pour la souris ou le clavier : en effet lorsque la souris de votre ordinateur colle le bord de l'écran, elle ne peut pas s'enfuir. Mais là... elle passe sur les autres fenêtres et sort de la machine virtuelle. VirtualBox empêche simplement la souris de sortir de l'écran virtuel, et pour en sortir il faut appuyer sur une touche spéciale (Control droit) pour arrêter la "capture" de la souris ou du clavier. En attendant, mon ordi rame bien... Il faut dire que l'installateur qui tourne en parallèle prend pas mal de temps processeur. On patiente un peu, et hop, insertion du second CD. Ca continue à mouliner méchant.

Et zut, impossible : l'installateur n'arrive pas à aller plus loin que l'outil d'installation de la partition de restauration cachée de Vista (WinRE) qui reste bloqué à 0% sans pour autant geler la machine. Bon, pas de nouveau petit Vista pour ce soir. C'est peut-être dû à ma configuration matérielle, je sais pas, mais ça aurait été fun d'avoir un Windows Vista totalement neuf sous la main pour s'amuser XD.
Je me tourne alors vers d'autres systèmes : on peut placer une image ISO dans le "lecteur CD" virtualisé, et la machine virtuelle démarrera dessus. J'essaie donc KDE-Four-Life (avec OpenSuse) que j'ai téléchargé en 64 bits pour tester d'une pierre deux coups. Bah zéro coup pour le coup : Grub détecte la machinevirtualisée comme étant en 32 bits et refuse de lancer le système. Pas de chance, alors que mon ordinateur "réel" supporte le 64 bits. Je me tourne finalement vers le LiveCD de Mandriva 2010, en 32 bits : ça marche :D
Bon, par contre, déjà que KDE 4 en LiveCD ça rame pas mal, si en plus on virtualise le tout, ça rame méchamment quand on ouvre plus d'une application ><

Conclusion de la journée : on essaiera de virtualiser Windows Seven quand j'aurai reçu le CD ;)

Demain j'essaierai la virtualisation avec un autre outil, WmWare, qui a pour avantage de pouvoir faire démarrer une machine virtuelle sur un disque dur existant, et donc sur mon installation de Vista actuelle.

XML / RPC & API Movable Type + Dotclear + KDE : bloguez depuis votre bureau !

Salut tout le monde :)

Un jour, j'ai mis à jour Dotclear (genre le gars sérieux) et j'ai vu l'apparition d'une certaine API XML/RPC, qui permettrait de se connecter au blog...

Avec un client XML/RPC, naturellement. Hop hop, KBlogger me semble cool, maiiis... non. Impossible de le faire marcher. Dommage.

Et là j'ai mis à jour ma Mandriva, la 2010 intègre KDE 4.3. Le système de gestion des informations personnelles de KDE (Kontact : KMail, KOrganizer, KNotes, etc...) contient un module de "Journal", dont je n'avais jamais vraiment compris l'utilité (non mais je vais pas non plus écrire un journal intime sur mon ordi non plus ><).

Et vla-ty-pas qu'en ajoutant un nouveau calendrier (en ligne pour synchroniser mes ordinateurs) je vois que je peux ajouter, un "Journal dans un blog".

Je réactive donc l'interface XML/RPC de SecureM, je rentre les informations, et... ça marche :D

La preuve, j'écris ce message à partir du module Journal de Kontact !

Quelques trucs qui vont pas encore très bien : si ça supporte le "Texte enrichi", l'éditeur se limite au formatage basique (gras, italique, souligné, barré, alignement et listes-puces) et ne permet pas par exemple d'insérer des images, des liens, ou d'éditer directement le code HTML.

Mais j'aime bien le concept de KDE du "tout connecté" :D