Robot 4×4 controlado con el mando de la Wii (Nunchuck)

DSC_0331

Buenas a todos, tras un largo periodo de inactividad, ya estamos de vuelta con un nuevo proyecto. En esta ocasión, trataremos de controlar nuestro robot 4×4 a través del Nunchuck de la Wii.

Para ello conectaremos el Nunchuck a un Arduino UNO, para leer los datos del mando, y mandaremos la información al Arduino MEGA, instalado en el robot 4×4, a través de un emisor y un receptor RF(radiofrecuencia) unidireccional.

Como viene siendo habitual, aquí tenemos la lista de los componentes necesarios:

Y aquí tenéis unas imágenes del material:

  • Arduino UNO:

ArduinoUno_R3_Front

  • Arduino MEGA:

images.jpg

  • Robot 4×4:

chasis 4x4

  • Nunchuck:

wiistick2

  • Adaptador Nunchuck:

dfrobot-wiichuck-adapter-for-arduino

  • Módulo tránsmisor RF:

transmisor

  • Módulo receptor RF:

receptor rf

Dividiremos el proyecto en dos partes:

  • Tendremos por un lado el mando Nunchuck y el emisor RF.
  • Y por otro lado la parte del robot 4×4 con el receptor RF.

Nunchuck:

Bien, empecemos por el principio. Para poder controlar el robot 4×4 con el Nunchuck tendremos que hacer 2 cosas. Leer la información que obtenemos del Nunchuck y mandarle dicha información al robot 4×4.

Para conectar el Nunchuck a nuestro Arduino, podemos utilizar el adaptador Nunchuck, esto facilita las cosas. También podemos conectarlo a pelo, como es mi caso.

DSC_0332

El mando Nunchuck transmite la información haciendo uso del protocolo I2C.  Básicamente en el protocolo I2C intervienen 2 señales:

  • SCL: Señal de reloj para la sincronización.
  • SDA: Señal de datos.

Aquí teneis el pin-out del Nunchuck:

wiichuck pinout

Como podréis ver, tenemos una tensión de alimentación de 3,3 voltios. El propio Arduino nos proporciona esta tensión. No alimentar a 5 voltios !!!!

Las conexiones con Arduino son las siguientes:

Nunchuck                   Arduino

  • SDA —————> Pin Analógico 4 de Arduino
  • SCL —————>  Pin Analógico 5 de Arduino.
  • GND ————–> GND de Arduino.
  • 3,3V ————–>  3,3 Voltios de Arduino.

Aquí os dejo un link con mas informacion sobre el Nunchuck.

Emisor RF:

Una vez que podemos leer los datos ofrecidos por el nunchuck, tendremos que mandar dicha información a  traves del módulo emisor RF. Como podréis apreciar en la foto, el modulo RF solo necesita tres cables para funcionar: Vcc, GND y datos. Y con ayuda de la librería VirtualWire, el proceso de enviar datos es muy sencillo.

DSC_0346

Las conexiones con Arduino son las siguientes:

Modulo RF                      Arduino

  • Vcc  ———————-> 5 voltios
  • GND———————> GND
  • Data ———————> Pin 12

Nota: Si alimentamos el emisor RF con mas voltage (Maximo 12 voltios), tendremos mas radio de acción de la señal.

Os dejo un link con un ejemplo bien sencillo.

Al final del post encontrareis todos los enlaces a librerías y codigos fuentes para Arduino.

LLegados a este punto, ya tenemos la parte del emisor terminada. Somos capaces de leer información del Nunchuck y enviarla por RF a otro Arduino.

Robot 4×4 y receptor RF:

Al igual que el emisor RF, el receptor RF consta de 3 cables para funcionar: Vcc, GND y datos. Y con la ayuda de la librería VirtualWire, es uso del receptor es muy sencillo. Aquí teneis un ejemplo de uso del receptor RF.

Una foto con el receptor montado en el robot 4×4:

DSC_0348

Conexiones con Arduino:

Receptor RF            Arduino

  • Vcc —————–> 5 Voltios
  • GND—————-> GND
  • Data —————> Pin 52

* Nota: los pines usados, tanto para la emisión de datos  como para la recepción, son arbitrarios. Se puede usar cualquier pin siempre que lo declaremos en el código fuente.

Código fuente y librerías:

Nota: Dado que el IDE 1.0.3 me ha dado problemas con las librerías, todo el proyecto se ha implementado usando el IDE 1.0.1.

Vídeo de demostración:

Advertisements
This entry was posted in Arduino. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s