Objetivos
Material requerido
Kit de 4-bot correctamente montado. | |
Un Nunchuk con adaptador de pines. |
El Nunchuk de la Wii
Este mando nos gusta mucho porque, además de un joystick y 2 botones, incluye un acelerómetro que sirve para detectar el movimiento de nuestra mano, y que lo hace muy divertido para controlar el 4-Bot. Gracias a él vamos a hacer que 4-Bot se incline en la misma dirección que inclinemos el Nunchuk, mientras que con los botones y el joystick controlaremos el resto de movimientos que tenemos programados.
El Nunchuck funciona mediante el bus I2C (no vamos a entrar en detalle de lo que es, pero así os suena), y que solo vamos a necesitar un par de cables para controlarlo, además de los propios para la alimentación del mando. Sólo tenéis que tener en cuenta que funciona a 3.3V, así que conectamos el + a 3.3V, el – a tierra, d (data) a SDA y c (Clock) a SCL, que en el Arduino Uno corresponden a los pines A4 y A5.
- La forma correcta de colocar el adaptador en la toma del Nunchuk es con los pines hacia el lado del adaptador que no tiene una hendidura.
- De todas formas, siempre podéis hacerlo por prueba y error. Si al ejecutar el programa no funciona, le dais la vuelta y listo.
Y como en la sesión anterior, vamos a tener que descargar e instalar la librería para poder usarla con mBlock. Aquí la tenéis: wiichuck. Recordad que para añadirla a mBlock tenéis que descomprimir y copiar la carpeta WiiChuk al directorio de librerías de mBlock C:\Program Files (x86)\mBlock\Arduino\hardware\arduino\avr\libraries
Incluir el Nunchuk en el programa
Vamos a aprovechar el programa de la sesión anterior en la que programamos los movimientos y vamos a añadir los bloques del Nunchuk para controlar el robot y que haga lo que le mandemos. Si echáis un ojo a los bloques veréis que tenemos 7 bloques:
Lo primero que tenemos que hacer, después de declarar las variables de los motores, es refrescar los valores del Nunchuk cada vez que ejecutemos un nuevo ciclo:
Ahora vamos a ir incluyendo todos los botones del Nunchuk utilizando condicionales «Si …» para que haga lo que nosotros le mandemos, faltaría más. Vamos a empezar, por ejemplo, con los dos botones del Nunchuk. Usaremos el botón C para tumbar el 4-Bot y el Z para que salude, y sabremos si los hemos pulsado si leemos un 1.
Para hacer que se incline vamos a usar el acelerómetro. Tenemos dos bloques para ello con los que leemos los valores del acelerómetro en el eje X y en el eje Y. No tenemos más que ver si superamos cierto valor, tanto por arriba como por abajo, para saber hacia donde lo hemos inclinado y hacer que el robot actúe en consecuencia.
Nos falta de meter el joystick para que el robo ande en las 4 direcciones. Es prácticamente igual que la estructura que hemos hecho para el acelerómetro:
Si probáis ahora el robot veréis que tiene una cosa que al menos a mí no me gusta del todo, y es que se queda en la última posición en la que haya estado. Nosotros preferimos que si no estamos haciendo nada el robot se mantenga en pie. Para ello tenemos que meter una condición múltiple en la que básicamente le vamos a decir que si no se cumple nada de lo anterior el robot se ponga de pie.
Aquí os dejamos un vídeo de nuestro 4-Bot:
Resumen de la sesión
En esta sesión hemos aprendido varias cosas importantes: