Nunchuck et Arduino
La manette Nunchuck de Nintendo peut servir comme capteur pour les cartes Arduino, mais il faut utiliser une petite carte d’interface.
Matériel testé : adaptateur WiiChuck
Bibliothèque nécessaire : wiichuck (depuis le Library Manager)
Câblage
La manette peut être alimentée en 3,3V depuis la carte Arduino et communique avec un protocole I2C.
Un adaptateur Wiichuck est pratique pour récupérer la connectique de la Nunchuck :
Il suffit alors d’effectuer les branchements suivants :
Programmation
Une bibliothèque permet de récupérer facilement les valeurs des divers capteurs (1 joystick, 2 boutons, 2 angles et 1 accéléromètre 3axes). La bibliothèque wiichuck s’installe facilement depuis le Library Manager de l’IDE Arduino.
A noter qu’on peut également se servir d’autres périphériques Nintendo (NUNCHUCK, WIICLASSIC, GuitarHeroController, GuitarHeroWorldTourDrums, DrumController, DrawsomeTablet, Turntable)
#include <WiiChuck.h> Accessory nunchuck; void setup() { delay(1000); Serial.begin(115200); Serial.println("Chargement ..."); nunchuck.begin(); if (nunchuck.type == Unknown) { /* Si le peripherique n'est pas detecte automatiquement, le nommer explicitement : NUNCHUCK, WIICLASSIC, GuitarHeroController, GuitarHeroWorldTourDrums, DrumController, DrawsomeTablet, Turntable */ nunchuck.type = NUNCHUCK; } } void loop() { Serial.println("-------------------------------------------"); nunchuck.readData(); // Lire les entrees et les ecrire dans values[] Serial.print("JoyX = ");Serial.println(nunchuck.values[0]);//Joystick axe X Serial.print("JoyY = ");Serial.println(nunchuck.values[1]);//Joystick axe Y Serial.print("RollAngle = ");Serial.println(nunchuck.values[2]);//Angle de roulis Serial.print("PitchAngle = ");Serial.println(nunchuck.values[3]);//Angle d'inclinaison Serial.print("AccX = ");Serial.println(nunchuck.values[4]);//Acceleration axe X Serial.print("AccY = ");Serial.println(nunchuck.values[5]);//Acceleration axe Y Serial.print("AccZ = ");Serial.println(nunchuck.values[6]);//Acceleration axe Z Serial.print("BoutonZ = ");Serial.println(nunchuck.values[10]);//Bouton Z Serial.print("BoutonC = ");Serial.println(nunchuck.values[11]);//Bouton C delay(200); }
Bonjour,
il manque :
#include « WiiChuck.h »
au début du code.
Cordialement.