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 
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);
}

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

code