USB Wii manette classique (9 / 18 étapes)

Étape 8: TWI / I2C a expliqué

I2C est l’abréviation de Inter-Integrated Circuit. I2C bus sont également connu sous le nom TWI pour l’Interface de deux fils, car il utilise seulement deux fils.

Les lectures connexes :

Sur un bus de TWI, les deux fils de signal sont SDA et SCL, essentiellement les données et horloge. Ces signaux est ouverts drain (ce qui signifie que son niveau logique est une impédance élevée ou faible, il ne peut jamais être élevé), mais il doit y avoir une résistance pull-up sur chacun de ces signaux (nous utilisons les résistances de pull-up interne de l’AVR). Ceci est important car n’importe quel appareil sur un bus de TWI peut conduire les signaux faibles à tout moment, afin que le signal ne peut devenir élevé quand tous les périphériques permettent de devenir forte. Ceci permet aux périphériques de détecter lorsque le bus est occupé ("arbitrage à l’aide de SDA ») et permettent également un périphérique lent de dicter la vitesse de l’horloge ou même mettre en pause une transmission si le périphérique plus lent est trop occupé (cela s’appelle « horloge étirement ». Ces faits rend le bus TWI bon pour la communication entre un tas de copeaux à l’aide de seulement deux fils.

Chaque transaction est entre un maître (celui du signal d’horloge de conduite) et un périphérique esclave. Chaque transaction commence avec une « condition de démarrage » et se termine par une « condition de fin ». Une condition de départ est lorsque les disques maître de bus SDA bas tout d’abord, puis conduite SCL faible deuxième. Une condition de fin est quand le maître libère le bus TWI en relâchant SCL et SDA puis en le relâchant.

Après la condition de départ, le capitaine doit choisir quel périphérique lui parler en envoyant un octet d’adresse 7 bits. Le 8e (dernière envoyée) bit indique si oui ou non le capitaine souhaite lire (1) ou d’écrire (0) à l’esclave abordée. Si le maître est écrit, il sera alors envoyer plus de données. Si le maître est en train de lire, elle publiera la ligne SDA alors l’esclave envoie des données (mais le capitaine est toujours le moteur de l’horloge). Lorsque adressée

Tous les octets sont envoyés MSB tout d’abord (plus important peu tout d’abord). Chaque octet est éventuellement s’est terminée par un accusé de réception/nacknowledgement. Consultez la fiche technique du périphérique pour voir ce que l’appareil s’attendra ou renverra. Habituellement, pour citer Wikipedia: « si le maître souhaite écrire à l’esclave, il envoie à plusieurs reprises un octet avec l’esclave envoie un bit ACK. (Dans ce cas, le maître est dans le master mode émission et l’esclave est esclave mode réception.) Si le maître souhaite lire de l’esclave, alors qu’elle reçoit à plusieurs reprises un octet de l’esclave, le maître envoie un accusé de réception peu après chaque octet, mais le dernier d'entre eux. (Dans ce cas, le maître est dans le master mode de réception et de l’esclave est esclave mode émission.) »

Détails plus complexes sont généralement spécifiques à un périphérique spécifique, et ces informations viendront dans sa feuille de données.

Lorsque j’utilise I2C/TWI avec microcontrôleurs AVR, j’utilise la couche bas niveau de la bibliothèque « Fil » pour Arduino. La bibliothèque de fils est le wrapper C++ pour le niveau « twi.c » et « twi.h » module inférieur, que j’ai modifier légèrement et compiler dans mon propre code (puisque je n’utilise généralement pas C++). Il s’occupe de presque tout.

La manette classique Wii dispose d’une adresse I2C de 0 x 52, gardez cela à l’esprit. À l’aide de « twi.c » et « twi.h », à envoyer des données à la manette classique Wii, commencez par créer un tableau d’octets contenant les données à envoyer et qui passent ensuite à la fonction « twi_writeTo », ainsi que l’adresse de destination, la quantité de données à envoyer et lui dire "attendre que toutes les données sont envoyées". Le code ressemblera à :

Lire trois octets, utilisez la fonction « twi_readFrom », et lui indiquer dans que l’adresse, les données est enregistrée un tableau vous passer, et vous indiquez la quantité de données. Le code ressemble à :

			
          

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