La wiimote
Présentation : Les fonctionnalités
La wiimote possède de nombreuses fonctionnalités toutes plus intéressantes les unes que les autres.
ATTENTION !!!!
Cette partie concerne la partie hardware de la wiimote et du coup sera un petit peu technique (désolé pour ceux qui n’aime pas cela).
Elle va nous permettre de bien cerner les possibilités que nous apporte la wiimote et ses capteurs.
Le mouvement
Commençons par le mouvement.
Comme je l’ai déja dit, la wiimote permet de capter les mouvements effectués par le joueur.
J’entends déjà des questions. ==> Mais comment fait-elle ? Quelle magie utilise-t-elle ?
Ne vous inquiètez pas. Pas de magie à l’horizon, enfin pas encore...
Il existe plusieurs technologies qui permettent de capter un mouvement :
- les accéléromètres
- les gyroscopes
Un accéléromètre va permettre de capter les accélérations que reçoit l’objet, contrairement à un gyroscope qui lui va plutôt capter l’orientation de l’objet.
La politique de Nintendo a été de mettre un accéléromètre dans la wiimote. C’est un accéléromètre ADXL 330, 3 axes de type capacitif pour les intimes, pour les autres c’est un accéléromètre qui capte les accélérations sur 3 axes ( les bien connus X, Y, Z).

Tout d’abord, voyons les informations que l’on peut récupérer de la wiimote grâce à l’accéléromètre.
Le principe de notre accéléromètre est simple : un champs électrique, une lamelle de silicon et 2 condensateurs.

Lorsque la lamelle de silicon reçoit une accélération ( une force ( enfin quand elle bouge ;) ) ), elle modifie le champs électrique.
Ensuite, il y a un processeur qui analyse le champs électrique. Ainsi lorsque le champs est modifié, on sait que l’on a bougé.
L’accéléromètre possède cette technologie sur les 3 axes, il lui est donc possible de capter tous les mouvements.
Un petit exemple pour les plus récalcitrants (c’est entre autre l’exemple qui m’a fait comprendre le fonctionnement ):
Si on pose un accéléromètre sur un table, la seule force qui est exercée dessus, est celle de la gravité sur l’axe X. De même si l’on tourne l’accéléromètre, l’axe sur laquelle la gravité exerce sa force va changer. Par conséquent dans ces deux cas, la valeur renvoyé par l’accéléromètre sera proportionnelle à celle de la gravité. Et au grand bonheur la joie, notre ADXL 330 fait le calcul pour nous.
Pourquoi Nintendo a choisi un accéléromètre au lieu d’un gyroscope ?
Déjà comme dit précédemment, il ne calcule pas la même chose.
Néanmoins, bien que l’accéléromètre ne calcule que les forces qui s’exerce sur lui, grâce à ces 3 axes, on peut deviner son orientation.
En effet, selon dans quelle sens est penchée la wiimote, il y aura plus ou moins de force sur l’axe X, Y et Z De ce fait, on va pouvoir utiliser les informations venant de l’accéléromètre pour faire le travail du gyroscope. Néanmoins, le calcul est moins précis qu’un vrai gyroscope et c’est surement pour cela que Nintendo s’est finalement rabattu sur un gyroscope ( WII motion Plus ) ( ou pour faire des sous ;) mais ne soyons pas médisant ).
Le calcul ne sera pas décris dans cette page. Je ne me suis pas suffisamment penché dessus mais si voulez plus de détails ( voir ==> wiibrew, un site dont je me suis fortement inspiré )
Le pointeur
La wiimote nous laisse également la possibilité de pouvoir l’utiliser comme pointeur.
Avec cette fonctionnalité, on imagine déjà pouvoir utiliser une wiimote comme souris. D’un simple mouvement faire défiler ces films ou ces musiques et le tout à distance.
Quel technologie utilise-t-elle ?
En faite, la wiimote utilise la lumière infra-rouge grâce à une caméra infra-rouge qui est intégré.Cette caméra est située sur le devant de la wiimote.
Ici précisemment :

Elle va repérer dans son champs de vision les différentes sources infra-rouges. Le processeur du module de la caméra va ensuite analyser ces points et le placer sur un plan de résolution 1024*768 pixels. Elle va pouvoir suivre 4 sources infra-rouges en même temps ce qui est plus que nécessaire. Et c’est ces coordonnées que la wiimote va transmettre.
Vous vous dites surement mais ce n’est pas des données suffissantes pour pouvoir l’utiliser comme pointeur. En effet, contrairement au mouvement la capacité d’utiliser la wiimote comme pointeur n’est implanté directement dans la wiimote.
La wiimote ne fait que transmettre les coordonnées des sources lumineuses qu’elle voit.

Comment utiliser les coordonnées des sources infra-rouges pour en faire un pointeur?
Il faut savoir que en temps normal c’est la wii qui effectue le calcul. Pour le faire, elle utilise la sensor bar de Nintendo.La sensor bar, qu’est ce que c’est ?

Cette objet se branche à la wii mais ne lui transmet aucune information. La seule chose que fait la sensor bar c’est produire une source infra-rouge. Elle est composée de 2 sources infra-rouges, chacune composée de 5 diodes infra-rouges.
C’est grâce à elle que la wii va pouvoir repérer la wiimote.
Elle procède de la facon suivant :
Elle cherche la sensor bar ou plutot les 2 sources lumineuses qui la compose.
Puis elle couple ces informations avec ceux de l’accéléromètre.
Nous savons que la sensor bar est positionnée à l’horizontale.
Elle connait donc la position exacte de la wiimote dans l’espace.
Elle peut donc déjà connaitre l’orientation de la wiimote car si les points ne sont pas aligner cela veut dire que la wiimote n’est pas dans sa position horizontale.
Ainsi, si on penche la wiimote vers le bas les points vont se déplacer vers le haut et inversement.

De même, si la wiimote se rapproche les points lumineux vont grossir et se rapprocher et inversement si elle s’éloigne.

Et enfin si la wiimote tourne les 2 points vont tourne aussi.
Donc on peut voir qu’une fois que la wii est calibrée, elle peut repérer les différents déplacements de la wiimote.
Pour pouvoir afficher un pointeur, il suffit de faire un recalibrage des informations en sachant que la sensor bar est soit au-dessus, soit en dessous du téléviseur et qu’elle est centrée.
Mais la sensor pourrai être n’importe où, la wii prend comme référence le centre de la sensor bar pour le centre du téléviseur.
Je sais que c’est un peu compliqué, si vous voulez plus de détails allez voir sur ce site ==> wiibrew.
Les bonus
La wiimote possède plusieurs petits modules très sympathiques.
Une petite liste puis je vous en parlerais plus en détails :
- un haut parleur
- une mémoire interne
- un port d’extension
- un module bluetooth
Le haut parleur :
La wiimote possède un haut parleur intégré ce qui permet à certains jeux de pouvoir faire parler la wiimote ou être au plus près de l’action.Cet haut parleur est un haut parleur 21mm piezo-électrique de basse qualité.
La mémoire :
La wiimote possède un bloc de mémoire EEPROM de 16kb. Cette mémoire permet de stocker les données sur les MII ( les personnages de la Nintendo WII ) mais également des informations qui servent pour le calibrage de l’accéléromètre et la sensibilité de la caméra infra-rouge.Le port d’extension :
La wiimote possède un port d’extension qui va permettre à Nintendo de pouvoir améliorer les performances de la wiimote en rajoutant des accessoires.A l’heure où j’écris ce texte il existe déjà plusieurs sortes de d’extensions.
Les plus connues sont :
- le Nunchuk ( apporte un joystick et un deuxième accéléromètre )

- la manette classique ( apporte un jouabilité à l’ancienne ;) )

- les accessoires de GUITAR HERO et ROCK BAND ( apporte la joie de se prendre pour un musicien )

- le wii motion plus (apporte un gyroscope )

Ce port d’extension est un port I2C 400kHz. Connaissant le type du port, on peut donc ajouter nos propres extensions à la wiimote. Comme par exemple, ce clavier numérique qui a été fait par un japonais. ( Désolé je ne peux malheureusement pas vous dire sont noms, tout était écris en japonais :’( ).

Malgrès le manque d’utilité flagrant de cet accéssoire, il a au moins le mérite de montrer qu’il est possible de rajouter ses propres extensions.
Par contre, nous ne pourrons pas dialoguer avec la wii.
Le module bluetooth :
La wiimote possède un module bluetooth BroadCom BCM2042.Ce module va permettre à la wiimote de dialoguer avec la wii de manière sans fils. Le protocol de connexion utilisé est le protocol standard de connexion HID, utilisé par les différents périphériques bluetooth sur PC.
Les données envoyées par la wiimote ne sont pas cryptées, c’est à dire que l’on peut facilement lire ce qu’elle transmet.
Et c’est avec la combinaison de ces 2 informations primordiales que mon étude prend tout son sens.
On va pouvoir non seulement synchroniser une wiimote avec un PC possèdant une clé bluetooth mais on va pouvoir décrypter les informations qui sont envoyées par la wiimote et les utilisées sur PC.
Prochaine étape : comprendre les données envoyées par la wiimote ===> Encryptage des données