Controlar Arduino con el mando Nunchuk de la Wii (WiiChuck)


arduino-wiichuck

¿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.

arduino-wiichuck-componente

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.

arduino-wiichuck-adaptador

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,

arduino-wiichuck-esquema

Que vista desde el lado de Arduino quedaría así.

arduino-wiichuck-conexion

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.

arduino-wiichuck-detalle

En Arduino Uno, Nano y Mini Pro, SDA es el pin A4 y el SCK el pin A5. Para otros modelos de Arduino consultar el esquema patillaje correspondiente.
El mando de la Wii funciona a 3.3V. Alimentarlo a tensiones superiores (como 5V) dañara el mando.

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

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección tutoriales de Arduino

Anuncio:

Previous Controlar Arduino con un mando a distancia infrarrojo
Next Guardar variables en Arduino y la memoria no volatil EEPROM
1000
1 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
newest oldest
Andrés Lorite

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