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