Tutoriel inspiré par [[http://tiptopboards.free.fr/|http://tiptopboards.free.fr]] La manette de télécommande Ninchuck Wii peut servir à contrôler une carte Arduino.\\ \\ **Composants utilisés ** * 1 Carte Arduino uno R3 * 1 [[http://tiptopboards.com/217-manette-de-jeu-nunchuck-pour-nintendo-wii-ou-montages-%C3%A9lectroniques.html|Manette Wii Nunchuck]] * 1 breadboard et fils de câblage (ou soudures) \\ La manette * Un joystick 2 axes X-Y * Un accéléromètre à 3 axes Ax, Ay, Az. * 2 boutons poussoirs Cette manette est économique et très ergonomique dans la main. \\ {{https://lh6.googleusercontent.com/-c2gRdAOeQpQ/Ug4pnJIj0oI/AAAAAAAAAJM/acq0FWgqQbQ/w400-h300-no/nunchuck_axes.jpg?nolink&400x300 }}{{https://lh3.googleusercontent.com/-wPOXEvOqgLQ/Ug4plK_KC7I/AAAAAAAAAI0/p6Kh0gCzkZI/w400-h300-no/nunchuck_boutons.jpg?nolink&400x300}} \\ La prise de connexion comporte 5 broches dont 4 sont utilisées \\ {{https://lh4.googleusercontent.com/-bDIcFaUUSJE/Ug4pkav-X7I/AAAAAAAAAIs/4Qa_i-6_tWQ/w400-h300-no/nunchuck_broches.jpg?nolink&}}..{{https://lh6.googleusercontent.com/-FeVvSS14UiE/Ug4pl0Du0bI/AAAAAAAAAI8/R1yWpFv81jk/w400-h300-no/nunchuck_prise.jpg?nolink&}} \\ \\ **Câblage ** \\ Démonter la prise (2 petites vis à retirer puis déboiter le couvercle) ou couper le câble, et dénuder l'extrémité des 4 fils suivants \\ {{https://lh5.googleusercontent.com/-4JoxDlS6LtA/Ug4pmdNnMWI/AAAAAAAAAJE/2fPtw_MzOj8/w400-h300-no/nunchuck_demontee.jpg?nolink&}} \\ \\ Le démontage du connecteur permet d'identifier les fils en cas de problème. \\ | 1 SDA 3 NC 5 PWR | \\ | 2 GND (4 NC) 6 CLK | \\ \\ Sur notre modèle, la câblage est \\ Couleurs de fil | Brochage | \\ 1 blanc, 3 bleu, 5 rouge | SDA Att PWR | \\ 2 rose, 4 rien, 6 jaune | GND nc CLK | \\ \\ **Interfaçage avec la carte Arduino ** \\ \\ Nunchuck Wii –> Arduino Uno \\ 1 blanc —> SDA (pin 4) \\ 2 rose –> GND \\ 3 fil bleu –> non utilisé \\ 4 nc –>non utilisé \\ 5 rouge –> PWR 3.3V \\ 6 jaune –> CLK (pin5) \\ \\ Important, alimentation sous 3.3V et pas plus ! \\ \\ Pour une manette Wii "officielle" le câblage est le suivant \\ 1 rouge +3V –>PWR 3.3V \\ 2 jaune CLK –>SCL pin5 \\ 3 fil orange –> \\ 4 pas de fil –> \\ 5 vert DATA –>SDA pin 4 \\ 6 blanc GND –>GND \\ \\ **Librairie à installer ** \\ Une librairie pour l'IDE 1.0 est disponible (Cf [[http://forum.arduino.cc/index.php?topic=84267.0|forum Arduino]]). Cette librairie a été développée par Gabriel Bianconi. Elle est en téléchargement ici (GitHub sous Creative Commons license) {C}[[https://github.com/GabrielBianconi/ArduinoNunchuk|https://github.com/GabrielBianconi/ArduinoNunchuk]]{C} \\ \\ **Utilisation de la librairie ** \\ On l'installe en copiant le dossier complet "ArduinoNunchuk" dans le répertoire qui comporte déjà les autres librairies Arduino (Arduino/libraries). \\ Ce dossier contient * ArduinoNunchuk.cpp * ArduinoNunchuk.h * un sous dossier exemples \\ Elle est très simple à utiliser. On commence par instancier : ''ArduinoNunchuk nunchuk = ArduinoNunchuk();'' \\ Puis on initialise dans le setup ''nunchuk.init();'' \\ Puis on récupère les mises à jour de la Wii dans la boucle loop() ''nunchuk.update();'' \\ Les 7 données de la Wii Nunchuk sont disponibles sous cette forme * nunchuk.analogX * nunchuk.analogY * nunchuk.accelX * nunchuk.accelY * nunchuk.accelZ * nunchuk.zButton * nunchuk.cButton \\ **Exemple de code ** Code : ''/*ArduinoNunchukDemo.ino \\ * Copyright 2011-2013 Gabriel Bianconi, [[http://www.gabrielbianconi.com/|http://www.gabrielbianconi.com/]] \\ * Project URL: [[http://www.gabrielbianconi.com/projects/arduinonunchuk/|http://www.gabrielbianconi.com/projects/arduinonunchuk/]] \\ * Commentaires ajoutes 16 08 2013 tiptopboards.com \\ */ \\ \\ #include \\ #include \\ \\ #define BAUDRATE 19200 \\ //Instancier la manette Wii Nunchuck \\ ArduinoNunchuk nunchuk = ArduinoNunchuk(); \\ \\ void setup() \\ { \\ Serial.begin(BAUDRATE); \\ nunchuk.init(); // Initialiser la Nunchuck \\ } \\ \\ void loop() \\ { \\ \\ nunchuk.update(); //lecture des donnees // \\ Joystick XY \\ Serial.print(nunchuk.analogX, DEC); //0-255 X, 125 au neutre \\ Serial.print(' '); \\ Serial.print(nunchuk.analogY, DEC); \\ Serial.print(' '); // \\ \\ Accelerometre XYZ \\ Serial.print(nunchuk.accelX, DEC); \\ Serial.print(' '); \\ Serial.print(nunchuk.accelY, DEC); \\ Serial.print(' '); \\ Serial.print(nunchuk.accelZ, DEC); \\ Serial.print(' '); \\ \\ //Deux boutons de la Nunchuck Wii \\ Serial.print(nunchuk.zButton, DEC); \\ Serial.print(' '); \\ Serial.println(nunchuk.cButton, DEC); \\ }'' //'' //'' //''