Objetivos

 

  • Conectar el Nunchuk al 4-Bot.
  • Incorporar los bloques del Nunchuk a mBlock y aprender a utilizarlos.
  • Leer los movimientos del Nunchuk.
  • Mover a 4-Bot usando el Nunchuk.
  •  

    Material requerido

     robot cuadrúpedo  Kit de 4-bot correctamente montado.
    nunchuk wii 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.

    yaw-pitch-roll

    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. 

    keyes nunchuk kduino

    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:

    4-bot mblock

    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:

    4-Bot bloques

    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.

    4-bot cuadrúpedo bloques

    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.

    cuadrúpedo 4-bot bloques

    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:

    Andar 4-bot joystick mblock

    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.

    nunchuk de pie bloques

    Aquí os dejamos un vídeo de nuestro 4-Bot:

     

    Resumen de la sesión

     

    En esta sesión hemos aprendido varias cosas importantes:

  • Conectamos el Nunchuk de la Wii al cuadrúpedo 4-Bot.
  • Hemos visto cómo usar los nuevos bloques para usar el Nunchuk con mBlock.
  • Utilizamos el Nunchuk para controlar los movimientos del 4-Bot que teníamos ya programados.
  •  

    Deja una respuesta