Utiliser un Arduino avec un contrôleur de N64 (4 / 5 étapes)

Étape 4: Arduino Code en profondeur

Le protocole de N64
Les bits envoyés à et de la N64 contrôleur sur l’interface d’un fil sont codés en impulsions large 4 µs. Un « 0 » est 3 µs de basse et haute de 1 µs. Un « 1 » est 1 µs faible et élevé 3 µs.

Le code de l’Arduino dans les méthodes N64_send ou N64_receive très soigneusement minutée Assemblée code rédigé par Andrew Brown, permet de bit-bang la ligne de données pour communiquer avec le contrôleur. NOP blocs sont utilisés pour attendre les montants appropriés de µs avant la ligne d’envoyer des données d’interrogation.

Au démarrage, 0 x 00 est envoyé au contrôleur, et puis après ça, la seule commande utilisée est 0 x 01 pour demander état les services du contrôleur.

Encodage des données
Lorsque les données sont reçues après un 0 x 01, il arrive que 16 bits d’information de bouton et de renseignements de joystick analogique 16 bits. Les données ressemblerait à 44000000000000400044440044000444.

Le format des bits est: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, coupe, Cdown, fente, Cright + de la position du stick analogique 16 bits.

La méthode translate_raw_data() traverse les 32 bits, en les insérant dans le struct N64_status. Les 16 premiers bits sont simple 1 ou 0, mais les 16 derniers sont traduites en un entier environ dans l’intervalle (-80, 80), par

pour (i = 0; i < 8; i ++) {}
N64_status.stick_x | = N64_raw_dump [16 + j’ai] ? (0 x 80 >> j’ai): 0 ;
}

Une fois les données dans ce formulaire, il est facile de faire ce que vous voulez avec elle. Dans ce cas, il est simplement envoyé par le port série dans la méthode loop() sous forme de chaîne de données binaires avec deux entiers pour x et y les valeurs.

Les données envoyées sur le port série pourraient ressembler : 0400000000000400 63 -67 , ce qui signifierait que deux touches ont été enfoncées et le manche était à 63 -67.

Articles Liés

Arduino de contrôle fonctionne avec un contrôleur USB, aucune soudure requise-je l’ai fait à TechShop

Arduino de contrôle fonctionne avec un contrôleur USB, aucune soudure requise-je l’ai fait à TechShop

plus tôt cette année, j'ai décidé que ce serait amusant d'utiliser ma manette Xbox 360 filaire pour contrôler des projets Arduino - dans ce cas, une LED RGB. Toutefois, la méthode couramment utilisée pour le faire consiste à accéder à l'électronique
Arduino Chicken Coop contrôleur

Arduino Chicken Coop contrôleur

Au cours des dernières années, que ma famille est demeurée poules ex-batterie - ils sont vers l'âge de 18 mois et ont vécu toute leur vie dans un environnement "cage". Comme nous aimons ces faisceaux peu de joies et de œufs, il peut être un drud
Show Laser Arduino avec un contrôle complet XY

Show Laser Arduino avec un contrôle complet XY

mise à jour ! Voir étape 32 pour savoir comment utiliser ce projet avec un laser vert! Aussi - commander l' Instructable LaserTweet pour rendre ces données d'affichage projet de Twitter :Ce projet utilise un Arduino et certains haut-parleurs bon marc
Comment utiliser une PSP comme un contrôleur de jeu pour PC et PS3

Comment utiliser une PSP comme un contrôleur de jeu pour PC et PS3

Avez-vous déjà assis pour jouer sur votre PS3 avec un ami et s'est rendu compte que vous seulement avez un contrôleur ou étiez en jouant à un jeu sur votre PC et souhaité qu'avoir un contrôleur séparé ? Eh bien maintenant, au lieu d'acheter un nouvea
Comment faire de RAM avec un contrôleur

Comment faire de RAM avec un contrôleur

Salut là et Bienvenue sur mon premier instructable:DJe vais vous montrer comment faire une mémoire RAM de 4 bits avec un contrôleur, vous permettant d'enregistrer plusieurs nibbles différents d'informations dans le même système.Je vous préviens maint
Arduino solar charger contrôleur + sortie contrôle et enregistrement des données en ligne avec Xbee WiFi

Arduino solar charger contrôleur + sortie contrôle et enregistrement des données en ligne avec Xbee WiFi

A temps, j'ai commencé à travailler sur un contrôleur de charge solaire, elle était basée sur un microcontrôleur PIC, un 20 x affichage de 4 caractères et le code a été écrit en langage assembleur. Il n'a bien fonctionné et travaillait encore lorsque
Temps d’utilisation de la climatisation avec un contrôleur de la maison intelligente de Vera

Temps d’utilisation de la climatisation avec un contrôleur de la maison intelligente de Vera

Cet Instructable va montrer comment faire fonctionner votre maison que HVAC moins souvent pendant le pic « Temps d'utilisation » heures et potentiellement coupe factures d'électricité dans la moitié les jours extrêmes. J'ai mis en place en utilisant
Arduino Balance autonome contrôleur à l’aide de DIGITAL IMU, enfin !

Arduino Balance autonome contrôleur à l’aide de DIGITAL IMU, enfin !

Qu'est-ce que c'est?Contrôleur de Segway/balance DIY avec capteur DIGITAL IMU moderne.Logiciel pour un Arduino qui lui permet de lire les données de position d'une des plus récentes DIGITAL accéléromètre/gyroscope unités, processus les données en uti
Arduino HVAC Thermostat/contrôleur de Servo

Arduino HVAC Thermostat/contrôleur de Servo

Bienvenue sur mon « verts » instructable ! Je vais vous montrer comment utiliser un Arduino, deux servo moteurs un capteur de température et certains métaux (ou bois) pour faire un thermostat numérique d'une unité de ventilation à travers les murs.Se
Jouer un joueur 2 jeu de Sega Genesis avec un contrôleur sur émulateur PC.

Jouer un joueur 2 jeu de Sega Genesis avec un contrôleur sur émulateur PC.

Si quelqu'un d'entre vous sont des joueurs de l'époque classique comme je suis, vous avez sans doute un émulateur pour une ancienne console sur votre PC.  Émulateurs imitent le matériel original grâce à des logiciels permettant à une personne de joue
Linkit one - Home Automation avec Bluetooth contrôleur Android App

Linkit one - Home Automation avec Bluetooth contrôleur Android App

Toutes les options sont équipées de téléphones intelligents. Les téléphones intelligents rendent notre travail très facile et nous rendent paresseux. Tour et éteindre des appareils ménagers utilisant téléphone intelligent avec dent bleue est dans le
Distance en gardant le robot avec le contrôleur de Servo Smart

Distance en gardant le robot avec le contrôleur de Servo Smart

Cette démo je vais vous montrer comment utiliser le contrôleur de Servo Smart pour faire un robot à garder ses distances.Il utilise deux servomoteurs de rotation en continu et d'un capteur de distance. Le contrôleur de Servo Smart est utilisé pour cr
En utilisant la Esplora comme un contrôleur de jeu

En utilisant la Esplora comme un contrôleur de jeu

Dans ce instructable, je va vous enseigner comment utiliser votre Arduino Esplora comme un contrôleur joystick/bouton poussoir pour tous les jeux. J'ai programmé pour exécuter Kerbal Space programme, mais vous pouvez lui faire exécuter tout ce que vo
Xbox 360 sans fil conduit mod qui s’éteint avec le contrôleur

Xbox 360 sans fil conduit mod qui s’éteint avec le contrôleur

c'est une vidéo sur comment mod vos leds donc ils désactiver lorsque vous éteignez votre contrôleur.