USB Wii manette classique (10 / 18 étapes)

Étape 9: Lecture de la Wii Classic Controller

La manette classique Wii a l’adresse 0 x 52, qui doit être spécifié comme le premier octet de toutes transmissions I2C afin qu’il sache qu’il est parlé à.

Dans le code source de notre projet, nous initialisons la manette classique Wii par :

  1. Lors de l’initialisation du module de TWI/I2C de l’AVR, permettant les résistances de pull-up
  2. Envoyer 0x40 0x00
  3. Envoyer une séquence de chiffrement fausses clés, ainsi que le décryptage est facile

Les données circulant sur le bus après avoir effectué cette initialisation seront toujours chiffrées, mais étant donné que nous avons juste lui donnait les clés de fausses, nous savons exactement comment le déchiffrer. Voir le code source pour plus de détails.

Dans la boucle principale du code, les données sont lues dans la manette classique Wii par

  1. Il envoi 0 x 00, cette commande définit un pointeur de lecture
  2. Lire les 6 octets de données dans

Voici le format de données pour les 6 octets de données que nous avons lu de la manette classique Wii :

Bit
Byte76543210
0RX< 4:3 >LX< 5:0 >
1RX< 2:1 >LY< 5:0 >
2RX< 0 >LT< 4:3 >RY< 4:0 >
3LT< 2:0 >RT< 4:0 >
4B DRB DDB LTB-B HB+B RT1
5B ZLB BB YB AB XB ZRB DLB DU

LX, LY sont gauche Analog Stick X et Y (0-63), RX et RY sont droite Analog Stick X et Y (0-31) et LT et RT sont la gauche et la droite déclencheurs (0-31). Le Stick analogique gauche a deux fois la précision des autres valeurs analogiques.

BD {L, R, U, D} sont les boutons de direction D-Pad. B {ZR, ZL, A, B, X, Y, +, H,-} sont les touches discrètes. B {LT, RT} sont le clic de bouton numérique de LT et RT. Tous les boutons sont 0 lorsque vous appuyez sur.

Merci à http://wiibrew.org/wiki/Wiimote/Extension_Controllers pour cette précieuse information.

Dans notre projet, le format de données doit être envoyé via USB dans ce format :

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
Octet 0BoutonBoutonBoutonBoutonBoutonBoutonBoutonBouton
Octet 1BoutonBoutonBoutonBoutonBoutonBoutonBoutonBouton
Octet 2Axe du stick analogique gauche X as Integer signé Char
Octet 3Axe du stick analogique gauche Y as Integer signé Char
Octet 4Axe du Stick droit X as Integer signé Char
Octet 5Axe du Stick droit Y as Integer signé Char

Notre code source fait un peu de mathématiques binaires simples pour effectuer la transformation. Notez que les boutons doit être 1 pressée donc nous inversons les données de bouton de la manette classique Wii.
Le microcontrôleur au démarrage, il faut également un centre de référence de lecture pour le joysticks pour l’étalonner, cette valeur de centre est combinée avec un décalage de low-pass-filtrée pour éliminer les lectures bruyants.

Voir le code source entier pour plus de détails.

J’ai également joint un fichier de session analyseur logique (.logicsession fichier, peut être affichée avec une Logique de Saleae 1.1.9) et un fichier journal au format texte de la communication I2C avec la manette classique Wii. Vous pouvez télécharger ces et étudier la communication approfondie.

Articles Liés

Contrôleur de l’objectif de l’Arduino - synchronisé Zoom/mise au point avec la manette classique Wii

Contrôleur de l’objectif de l’Arduino - synchronisé Zoom/mise au point avec la manette classique Wii

mon Lumix GH2 Micro Four Thirds caméra tire non seulement des vidéos fantastiques haute définition, mais avec des adaptateurs bon marchés je peux l'utiliser avec les anciennes lentilles manuelles qui sont bon marchés et souvent très haute qualité. Je
Manette classique pour adaptateur USB

Manette classique pour adaptateur USB

Si vous a grandi dans le début des années 1980 et ont été dans les jeux vidéo, vous avez probablement eu un Atari 2600, ColecoVision ou console de jeu similaire. Les contrôleurs ou les manettes de jeu pour chacun de ces systèmes ont une sensation dis
Teensy USB Wii Classic Controller

Teensy USB Wii Classic Controller

Je suis un fan de la Manette classique Wii, mais je n'ai jamais pris en charge pour avoir à garder les contrôleurs sans fil facturés pour un épisode occasionnel de nostalgie. Ne serait-il pas merveilleux si je pouvais utiliser ma manette classique Wi
Wireless clé USB Wii Nunchuk-à-souris pour PC, Mac et la tablette de jeux vidéo

Wireless clé USB Wii Nunchuk-à-souris pour PC, Mac et la tablette de jeux vidéo

Prêt pour se sentir comme le légendaire « Bruce Lee » utilisant des Wii Nunchuks sans fil sur un amusant jeu vidéo combat de stickman kung fu PC appelé One Finger Death Punch (OFDP). Que diriez-vous de jouer Jetpack Joyride sur Facebook ou sur votre
Périphérique Midi USB de manette de jeu vieux

Périphérique Midi USB de manette de jeu vieux

vous pouvez dépenser beaucoup d'argent sur un périphérique USB Midi cher ou créer les vôtres. Vous pouvez acheter des cartes USB HID et construire votre propre totalement à partir de zéro. Pour rendre le processus encore plus facile, sauver une vieil
SNES + Teensy = USB/PS3 manette

SNES + Teensy = USB/PS3 manette

contrôleur de la Super Nintendo est l'un des meilleurs manettes jamais réalisé. Ce tutoriel va montrer comment vous pouvez insuffler une vie à votre manette SNES vieux donc vous pouvez l'utiliser avec votre PC et votre PS3.Vous aurez besoin des éléme
Manette de Wii USB utilisant Arduino Leonardo

Manette de Wii USB utilisant Arduino Leonardo

Le week-end dernier, j'ai essayé la nouvelle RetroPie sur ma belle nouvelle Raspberry Pi 3, mais le contrôleur de jeu que j'ai est l'oldie Wii manette classique ; alors, comment puis-je convertir il à un contrôleur de jeu USB ordinaire ?Après quelque
Funtendo - un contrôleur multistick rétro pour votre PC

Funtendo - un contrôleur multistick rétro pour votre PC

Funtendo est un complètement autonomes rétro gaming & contrôleur de système pour votre PC.Il est capable d'utiliser l'original Nintendo contrôleur, le contrôleur de la N64 et le contrôleur Wii Classic en même temps !Funtendo est alimenté par USB et c
Initiation à l’ordinateur de poche Mini

Initiation à l’ordinateur de poche Mini

Environ un mois et demi, j'ai créé un projet appelé l'ordinateur de poche Mini et écrit une Instructable sur la façon de le construire. Ce Instructable prend l'ensemble du projet un peu plus loin en vous aidant à démarrer avec votre ordinateur de poc
Construire votre propre mini ordinateur de poche

Construire votre propre mini ordinateur de poche

jamais veulent faire l'expérience des années 70 et 80 informatique sans jongler avec le matériel ancien qui grincent et 5,25 disquettes ?Dans ce Instructable, je vais vous apprendre comment construire et programmer votre propre mini ordinateur de poc
Console de jeu ultime classique manette pour adaptateur USB

Console de jeu ultime classique manette pour adaptateur USB

Cet article décrit comment utiliser un Arduino Leonardo ou Arduino Micro pour mettre à la disposition d'un ordinateur modern (p. ex. Windows PC, Mac ou Linux) jusqu'à trois manettes de console classique (Atari 2600, ColecoVision et éventuellement d'a
Manette de la NES de Nintendo Bluetooth à l’aide de la Wiimote !

Manette de la NES de Nintendo Bluetooth à l’aide de la Wiimote !

Disposé à jouer rétro-jeux sur mon PC ou le Mac j'ai voulu utiliser le pad classique de NES !Je sais Wiimote fonctionne bien avec les deux alors pourquoi réinventer la roue.Le problème est de savoir comment intégrer une manette classique de la NES un
GameCube Controller pour Wiimote

GameCube Controller pour Wiimote

Deuxième Instructable. Faites-moi savoir si quelque chose doit être fixée.Je n'ai fait le circuit ou le programme. Je fais juste un guide qui montre l'assemblage étape par étape comment faire une Gamecube contrôleur Wiimote.La page originale est ici
Contrôleur de MAME sans fil portable

Contrôleur de MAME sans fil portable

Description:Ce projet vous permettra de fabriquer un contrôleur sans fil Portable pour MAME. La boîte MAME (Multiple Arcade Machine Emulator) j'ai utilisé était un Pi de framboise Mame avancée en cours d'exécution, mais n'importe quelle boîte support