La Wiimote®

Transcription

La Wiimote®
La Wiimote, étude et applications étendues.
La Wiimote®
Fonctionnement et principes
1.
2.
3.
4.
5.
Aspect Général;
Aspects Physiques;
Aspects Techniques;
Conclusion;
Sources.
Aspect général :
La Wiimote® est un outil déposé par la marque « nintendo ® », commercialisée en 2007 avec sa
console « Wii », nintendo utilise cet outil comme contrôleur de jeu pour la susdite console.
Ce contrôleur de jeu ou manette de jeu, utilise des technologies encore inexploitées dans le monde
du jeu-vidéo tel l'accéléromètre, la technologie Bluetooth (inexploitable par défaut).
Un aperçu de Wiimote :
une Wiimote sous toute ses coutures
Aspects physiques :
COMTE Valentin et VAILLANT Clément.
1/6
La Wiimote, étude et applications étendues.
D'une dimension d'environ 145*30*30mm, réalisée en matières plastiques blanches, la Wiimote
comporte ainsi sept boutons, une crois multidirectionelle (nord, sud, est, ouest, nord est, sud est,
nord ouest, sud ouest), d'une gâchette, de quatre LEDs bleues et d'une entrée d'extension.
La Wiimote a besoin d'être alimentée par deux piles AA (ex LR6) 1,5V chacune.
Les Wiimotes sont assemblées en Chine.
Aspects techniques :
Comme précédemment annoncé, la Wiimote possède un accéléromètre qui lui permet de détecter,
interpréter et transmettre tous ses mouvements sur une grille tri-dimensionnelle (x,y,z) et les
transmets via Bluetooth en hexadécimal à la Wii (ou un autre « serveur »[dans une interface
serveur-client ou la Wiimote est cliente, non dans une interface humain-machine]).
La Wiimote possède «également du matériel qui permet la vibration, le contrôle des LEDs etc.
En voici un aperçu en éclaté :
De l'aspect externe, de-visu, la
Wiimote possède deux sorties (la
Bluetooth/détection des IR ainsi que
le speaker) et une entrée (sortie
auxiliaire), mais d'aspect technique
elle possède 14 entrées et 10 sorties,
un total de 24 « ports de connexions »
contre seulement quatre d'aspect
visuel.
Détaillons...
Les sorties :
0x11 : LED de la Wiimote
0x12 : Contrôle des capteurs de
mouvements
0x13 : Vibration
0x14 : Vibration
0x15 : Vibration
0x16 : N/A
0x17 : N/A
0x18 : N/A
0x19 : Vibration
0x1A : Vibration
Un aperçu de la Wiimote en éclaté (avec nunchuk et classicpad)
Les entrées :
0x20 : Port d'extension (nunchuk, classic-pad)
0x21 : Non utilisé
COMTE Valentin et VAILLANT Clément.
2/6
La Wiimote, étude et applications étendues.
0x22 : Non utilisé
0x30 : Boutons (A,B,1,2,Home,-,+)
0x31 : Détections de mouvements
0x32 : Non utilisé
0x33 : Détections de mouvements
0x34 : Non utilisé
0x35 : Détections de mouvements
0x36 : Non utilisé
0x37 : Détections de mouvements
0x3D : Non utilisé
0x3E : Détections de mouvements
0x3F : Détections de mouvements
Bien sur, le tout est associé à une valeur en hexadécimale puisque la Wiimote envoie et ne reçoit
que des informations encodées en hexadécimal.
On peut s'apercevoir qu'il y a des entrées non utilisées, sans doute par soucis d'ordre et pour éviter
de se tromper.
La Wiimote reçoit et envoie donc des données sous forme hexadécimale et les interprètes pour
pouvoir rendre un signal physique / artificiel.
On remarque qu'il y a 6 entrées consacrées à la détection des mouvements, quatre sont destinées à
l'axe bi-dimensionnel (nord sud est ouest) les deux autres sont consacrées au rapprochement de la
Wiimote de la source infrarouge.
Mais, on remarque également qu'il n'y a qu'une seule sortie pour la détection des mouvements,
expliquons :
La Wiimote fonctionne par code hexadécimaux, des paquets de données comme celui ci :
« A1 30 00 00 »
Détaillons ce paquet :

A1 => cette donnée correspond à l'état des capteurs de la Wiimote (émission, réception), ici,
il signifie que la Wiimote reçoit des données (ce serait 52 si elle en émettait).

30 => -que l'on peut voir dans la liste ci-dessus- correspond donc aux boutons.

00 => ces données-ci correspondent à l'état des boutons, là, ils sont inactifs.
Expliquons comment la Wiimote fonctionne : si nous voulons rendre actif un bouton, il nous faut
connaître son code hexadécimal :
1 : 0x0001
2 : 0x0002
A : 0x0004
B : 0x0008
- : 0x0010
Home : 0x0080
COMTE Valentin et VAILLANT Clément.
3/6
La Wiimote, étude et applications étendues.
Flèche Gauche : 0x0100
Flèche Droit : 0x0200
Flèche Haut : 0x0400
Flèche Bas : 0x0800
+ : 0x1000
Maintenant que nous en connaissons les codes, nous pouvons déterminer quels boutons sont actifs
et lesquels ne le sont pas, c'est très simple, voyez :
A1 30 00 00 signifie qu'ils sont passifs.
Pour activer un bouton il suffit de remplacer les quatre derniers zéros par le code du ou des boutons,
Exemple : Si je veux activer le bouton « 1 » il me faut ajouter 00 01 à la place de 00 00 ce qui
donnera donc :
« A1 30 00 01 »
Et si l'on veut activer deux boutons, c'est très simple, il suffit d'ajouter leurs valeurs : pour le bouton
« 2 » et « A » on a : 0x0002 + 0x0004 = 0x0006 ce qui donne donc « A1 30 00 06 »
C'est extrêmement simple de développer des applications basiques pour communiquer avec la
Wiimote.
Maintenant passons à la partie la plus compliquée, les mouvements.
Nous connaissons déjà les codes hexadécimaux ainsi que le mode de fonctionnement de la Wiimote,
il ne reste plus qu'a comprendre les codes de chaque entrée de mouvement et le tour est joué !
La Wiimote n'envoie aucun signal de mouvements à son allumage (« desktop » de la Wii oblige) il
nous faut donc activer cette fonctionnalité avec le code suivant : « 51 12 00 31 » très simple, il
suffit d'utiliser l'entrée numéro 12 précédemment vue.
Une fois cette fonction activée, la Wiimote va envoyer, en temps réel
et sans discontinu(« streaming »), les informations du mouvement.
Pour comprendre de quel mouvement il s'agit il suffit de regarder les
données à la place du « 31 » :
Nous avons :
les paquets 31,33,35,37,3E et 3F.
Ainsi nous obtiendrons des données comme celleci : « A1 31 40 00 86 8A A5 »
Dans les paquets ci-dessus, les numéros 86, 8A et
A5 correspondent aux trois axes de la Wiimote
(X,Y,Z). Les paquets de mouvements fonctionnant
en 8-bit nous avons donc 256 états possibles (2^8)
pour les mouvements(par axes) : de -128 à +128.
COMTE Valentin et VAILLANT Clément.
Les différents axes de
mouvement
4/6
La Wiimote, étude et applications étendues.
La partie sur les mouvements étant enfin terminées, nous pouvons passer aux choses accessoires :
Les LEDs signalant le numéro du joueur etc.
Les LEDs ne nécessitent que trois paquets de données pour communiquer, ce qui nous donnera un
code de la forme « 52 11 10 »(pour allumer la première LED).
Voici les différents codes pour les LEDs :
LED 1 => 10
LED 2 => 08
LED 3 => 04
LED 4 => 02
Il suffit juste de changer le « 10 » de l'exemple ci-dessus pour allumer les LEDs de son choix,
cependant, pour allumer les 4 LED, il faut mettre 1E. Et c'est tout !
Ensuite, la dernière partie, il reste le contrôle du vibreur.
Il y a plusieurs niveaux de vibrations, les voici (croissant) : 13,14,15,19 et 1A.
Pour activer les vibreur, il suffit d'utiliser ce code : « 52 13 01 » et pour le désactiver, remplacer le
« 01 » par « 00 », pour changer d'intensité il suffit de remplacer le « 13 » de l'exemple par une des
valeurs de la liste ci-dessus.
Pour conclure cette longue partie, on retiendra que la Wiimote est un outil qui fonctionne en
hexadécimal et qui est relativement simple à comprendre et à faire fonctionner.
Maintenant que noue avons étudié en détail le fonctionnement de la Wiimote, passons par des
applications concrètes !
La Wiimote, son grand atout, peut se connecter à un
PC/Mac, nous n'avons juste besoin que d'un dongle
(clef) Bluetooth et d'une sensorbar (source infrarouge),
mais, les émissions de l'écran, ou alors quatre bougies
chauffe plat suffiront !
Il existe plusieurs logiciels, pour tout types de
systèmes d'exploitations, Linux, Windows et Mac,
nous allons étudier Glovepie utilitaire fonctionnant
sous Windows qui permet de communiquer avec la
Wiimote via des scripts codés en langage humain qu'il
va retransmettre en langage machine (hexadécimal).
Glovepie est le logiciel les plus développé à ce jour
sur la communication Ordinateur/Wiimote, il permet
de gérer plusieurs Wiimote, comprends de nombreux
scripts pré-chargés et est supporté par une grande
communauté qui ne cesse de le rendre vivant et de créer/optimiser des scripts.
COMTE Valentin et VAILLANT Clément.
5/6
La Wiimote, étude et applications étendues.
On maintenant avoir un contrôle total de son ordinateur grâce à sa Wiimote.
De nombreux logiciels se sont développés en parallèle, principalement des jeux.
Par exemple, si je souhaite jouer à « Half Life2 » ou « HL² » avec ma Wiimote, il me suffit de
lancer glovepie, et d'exécuter le script qui va communiquer avec Half Life et ma Wiimote.
Et l'on peut jouer comme avec sa manette/joystick/souris.
Certes, un petit temps d'adaptation est nécessaire, mais ça rend les applications plus plaisantes à
utiliser.
Il y a de nombreuses autres applications à donner à la Wiimote, de nombreuses possibilités s'offrent
à nous, par exemple, une communauté de développeurs à créé un système d'exploitation, basé sur le
noyau de Linux, dédié à la Wiimote : Wiili.
En conclusion, la Wiimote est un outil puissant qui permet de nombreuses applications, et n'est pas
bridée pour être utilisable uniquement sur sa Wii, bien au contraire, son application est bien plus
étendue sur un ordinateur (jouer de la guitare/batterie, contrôler sa souris, un jeu etc.) que sur la Wii
! C'est un outil plein de potentiel et amusant à utiliser.
Sources :
Wiili.org et
GlovePie, pour la documentation sur le contrôle de la Wiimote.
Crédits photographiques :
Wiili.org et Wiipiicii.
COMTE Valentin et VAILLANT Clément.
6/6

Documents pareils