Inicio » Aula » MemeBot

MemeBot

Permítanme que les presente a MemeBot, ¡un robot tan autónomo como conversador!  Este robot se construyó y fabricó como parte de la asignatura de Robótica Móvil en la ETSID (UPV). El objetivo principal del robot es la realización de dos tareas autónomas (evita obstáculos y sigue líneas) así como una función de control remoto. Además, se ha añadido un toque de humor incorporando un altavoz y la función de reconocimiento de voz con la que, desde cualquier smartphone, es posible mantener una conversación con el robot.

Para el control de los distintos modos y la implementación del reconocimiento de voz, se ha diseñado una app para Android utilizando la aplicación App Inventor 2. En cuanto al robot, se utiliza Arduino como cerebro del mismo.

Diseño y montaje

El diseño del robot se ha mantenido lo más simple posible y, por ello, se ha utilizado la plantilla DYOR Standard, que se puede encontrar en la página de Ensamblajes (Pre – diseñados) dentro de la pestaña de Fabricación en la misma página de DYOR. En esta misma página se encuentran sugerencias e instrucciones para el montaje de toda la electrónica necesaria. El montaje final queda de la siguiente forma:

                           

                   

Componentes

  • Arduino Nano v3.0
  • I/O Extension Shield
  • Cable mini-USB
  • Powerbank 3600mAh USB
  • Micro servo FS90R (x2)
  • Rueda FS90R (x2)
  • Micro servo SG90 (x2)
  • Rueda Loca
  • Sensor Ultrasonidos HC-SR04
  • Matriz LEDs 8×8 max7219
  • Módulo Seguilíneas TCRT5000
  • Módulo Bluetooth HC-06
  • Módulo Tarjeta SD
  • Altavoz 8 Ohm
  • Piezas LEGO

Conexiones

La conexiones de los distintos componentes son las siguientes:

  • Ultrasonido HC-SR04: Echo a Pin D6, Trigger a Pin D5
  • Salida Altavoz 8 Ohm: Pin D9
  • Servos SG90 (brazos): Der a Pin A2 e Izq a Pin A5 (modo digital)
  • Servos FS90R (ruedas): Der a Pin A4 e Izq a Pin A3 (modo digital)
  • Módulo Bluetooth HC-06: RX a Pin D0, TX a Pin D1
  • Seguilíneas TCRT5000: A0 a Pin A0, A1 a Pin A1
  • Matriz de LEDs: CS a Pin D4, CLK a Pin D7, DIN a Pin D8
  • Tarjeta SD (SPI): MOSO a Pin D12, MOSI a Pin D11, SCK a Pin D13, CS a Pin D10

La salida del altavoz (Pin D9) se conecta a una pequeña etapa de amplificación que sigue el siguiente esquema:

Interfaz App

La interfaz diseñada con App Inventor 2 para el control del robot es la siguiente:

Como puede verse, encontramos un botón para cada una de las funciones implementadas en el robot. Al pulsar cualquiera de ellos, el comando bluetooth correspondiente se manda al robot y éste responde de forma adecuada. Para conectar el robot, se debe pulsar el botón «Devices» y seleccionar el dispositivo al cual deseamos conectarnos. Una vez conectado, el robot está listo para funcionar. El botón «Stop» queda visible en todo momento con el objetivo de detener el robot de forma inmediata.

El modo Carlos Matos es el que nos permitirá mantener una conversación con nuestro robot utilizando la voz del mismo Carlos Matos, protagonista de uno de los memes más exitosos del año:

 

Modo Carlos Matos

Una vez pulsado el botón correspondiente, entramos en el modo Carlos Matos, donde la interfaz se muestra de la siguiente forma:

De esta forma, al pulsar la cara de Carlos Matos, el reconocimiento de voz se activa y podemos realizarle las siguientes preguntas a Carlos Matos en inglés:

  • What’s your name?
  • Where are you from?
  • How are you feeling?
  • What are we doing?
  • Are you independent?
  • What is BitConnect?

Cada pregunta manda un comando bluetooth al robot. Éste, al recibirlo, recupera el archivo de audio que contiene la respuesta adecuada desde el módulo SD y lo reproduce a través del altavoz. Para ello, se utiliza la biblioteca de Arduino «TMRpcm.h».

Modo Evita Obstáculos

Como indica el nombre, al pulsar el botón, el robot entra en modo evita obstáculos. Utilizando el sensor de ultrasonidos, el robot detecta cualquier pared u obstáculo a una distancia menor de 20 cm. Una vez detectado, el robot se detiene y agita los brazos (servos SG90) para separarse de la pared o retirar los obstáculos. Finalmente, se mueve de forma aleatoria hasta que encuentra un camino sin obstáculos y sigue hacia delante.

Mientras el camino esté libre, la matriz 8×8 mostrará una sonrisa, dado que nuestro robot está contento y, al detectar un obstáculo, se entristecerá y volverá la sonrisa del revés.

Modo Sigue Líneas

Utilizando el sensor Infrarrojo instalado en la parte inferior del robot, se detectan los cambios de luz en la superficie sobre la que se coloque. Utilizando un camino de color negro sobre un fondo blanco, el robot es capaz de seguir dicha trayectoria utilizando un movimiento zigzagueante.

Modo Control Remoto

El control remoto utiliza el accelerómetro de nuestro smartphone para lanzar los comandos pertinentes al robot. Cuando pulsamos el botón correspondiente, la interfaz se muestra de la siguiente forma:

De esta forma, se puede apreciar de forma visual qué comando se esta mandando al robot dado que la imagen cambiará según la inclinación del móvil. Las ecuaciones y la programación utilizada es la misma que puede verse en el vídeo correspondiente de la lista de reproducción DYOR en YouTube.

Autor

Fco. Javier Pérez Villaplana

Universitat Politècnica de València

Grado de Ingeniería Electrónica