
¿Qué es un Wiichuck?
El Wiichuck, o Wii Nunchuk, es un mando adicional para la consola Wii. El mando emplea el bus I2C, por lo que resulta sencillo conectar este mando a un autómata o procesador como Arduino para tener un gran controlador para nuestros proyectos.
El Wiichuck es una pequeña joya de la tecnología. Integra un acelerómetro LIS3L02AL de tres ejes, una palanca analógica de 2 ejes y dos botones en un único dispositivo pequeño y ergonómico. Al ser un dispositivo fabricado en grandes cantidades ha permitido que esté disponible en precios bajos.
El Nunchuk se conecta al mando primario de la Wii por medio de un cable. Podemos cortar este cable y conectarlo a Arduino o, mucho más conveniente, usar módulos PCB disponibles que se insertan en el conector del Wiichuck y permiten conectarlo sin dañarlo.
El Wii Nunchuk es un mando genial para añadir a nuestros proyectos. Por ejemplo, podemos usarlo para controlar una torreta con servos, manejar un brazo robótico, un vehículo, un hexápodo o un robot bípedo.
Anuncio:
Precio
El Nunchuk de la Wii es un mando excelente en relación prestación precio. Podemos encontrarlos por 3€ en vendedores internacionales de eBay o AliExpress.
En cuanto al módulo de conexión del Wiichuck con Arduino, podemos encontrarlo por 0.60€. Por ese precio, merece la pena ahorrarse el trabajo de cortar y soldar el cable, además de que evitamos dañar el Wiichuck.
Esquema de montaje
Si usamos un adaptador la conexión es muy sencilla. Introducimos el módulo en el mando Wii, y lo alimentamos conectando Vcc y Gnd, respectivamente, a 3.3V y Gnd en Arduino.
Por otro lado, emplearemos empleamos los pines del bus I2C en Arduino para establecer comunicación con el Wiichuck. Simplemente conectamos el pin SDA y SCL de Arduino con los pines correspondientes del Wii Nunchuk.
Por tanto, la conexión resulta la siguiente,
Que vista desde el lado de Arduino quedaría así.
Si optamos por no comprar el adaptador y conectar con el mando directamente, tendremos que conectar cables al mando, bien sea cortando y soldando su conductor o introduciendo terminales en el conector. El siguiente esquema muestra el patillaje del conector del WiiChuck.
Ejemplos de código
Para realizar la lectura del Wii Nunchuk usaremos la librería desarrollada por jnw.walker y actualizada por coopermaa disponible en este enlace.
La librería proporciona ejemplos de código, que resulta aconsejable revisar. Por ejemplo, el siguiente código muestra los valores leidos del WiiChuck
//GND - GND //VCC - VCC //SDA - Pin A4 //SCL - Pin A5 #include <Wiichuck.h> #include <Wire.h> Wiichuck wii; void setup() { Serial.begin(9600); wii.init(); wii.calibrate(); } void loop() { if (wii.poll()) { Serial.print("joy:"); Serial.print(wii.joyX()); Serial.print(", "); Serial.print(wii.joyY()); Serial.print(" \t"); Serial.print("accle:"); Serial.print(wii.accelX()); Serial.print(", "); Serial.print(wii.accelY()); Serial.print(", "); Serial.print(wii.accelZ()); Serial.print(" \t"); Serial.print("button:"); Serial.print(wii.buttonC()); Serial.print(", "); Serial.print(wii.buttonZ()); Serial.println(""); } delay(100); }
Descarga el código
Todo el código de esta entrada está disponible para su descarga en Github.
Anuncio:
He seguido los pasos y a la hora de compilar da este error:
“Arduino:1.8.7 (Windows 10), Tarjeta:”Arduino/Genuino Uno”
C:\Users\alori\Downloads\arduino-1.8.7-windows\arduino-1.8.7\libraries\Wiichuck\Wiichuck.cpp:1:22: fatal error: WProgram.h: No such file or directory
compilation terminated.
exit status 1
Error compilando para la tarjeta Arduino/Genuino Uno.”
He probado tanto con un Ide instalable, como con uno ejecutable y con ambos da el mismo error.
Gracias
La librería original estaba un poco desactualizada. He cambiado el enlace por versión de la misma librería que otro autor ha portado a Github. A mi me funciona sin problemas, prueba a ver y nos dices