Inicio » Aula » El Bicho y sus travesuras

El Bicho y sus travesuras

A continuación se detallan cuáles son las funcionalidades de un robot montado y programado en arduino desde cero por un alumno de la Universidad Politécnica de Valencia. El robot (El Bicho) ha sido programado con 3 características típicas de los robots móviles:Evitar colisiones,Seguir línea y Control remoto mediante aplicación de smartphone.

Montaje del robot

El robot está formado por una chapa metálica que ha sido doblada para darle la forma adecuada y poder colocar sobre ellas los diferentes componentes electrónicos que permiten realizar las funcionalidades comentadas.

Los diferentes elementos utilizados para abordar la programación  son los que detallan en la siguiente lista:

  • I/O Extension Shiel para Arduino Nano.
  • Arduino Nano v3.0.
  • 2 ruedas FS90R.
  • Rueda loca.
  • 2 micro servos FS90R (para las ruedas).
  • 2 micro servos SG90 (para los brazos).
  • Sensor ultrasonidos HC-SR04.
  • Sensor infrarrojos TCRT5000.
  • Zumbador KY-006.
  • SPP-C Bluetooth.
  • Display OLED 128×32.
  • Tira de 3 RGB LEDs.
  • Cable mini-USB (30 cm).
  • Powerbank 3600 mAh.
  • Cables DuPont H-H 20 cm.

A continuación, se muestran una serie de fotos que ilustran como se han montando cada uno de los elementos nombrados anteriormente.

Funcionamiento del robot

Tal y como ya se ha comentado, se han programado tres funcionalidades en arduino. Seguidamente se va a profundizar en el funcionamiento de cada una de ellas.

1. Evitar colisiones

El funcionamiento básico de esta aplicación consiste en mover el robot en línea recta hasta que detecta un obstáculo a una distancia inferior a los 30 cm. Una vez detectado el obstáculo, el robot se detiene, emite un sonido y agita los brazos. El movimiento de los brazos consiste en saludar con uno de ellos y beber cerveza con el otro brazo (sí, habéis leído bien: «beber cerveza», posteriormente en el vídeo se mostrará con detalle los movimientos descritos).

Una vez ha realizado todas las acciones mencionadas el robot gira 90º a la derecha y sigue con su movimiento rectilíneo (siempre y cuando al girar no haya un obstáculo situado a una distancia de 30 cm o menor) hasta dar con el siguiente obstáculo.

Destacar que se ha optado por la estrategia de que gire siempre a derechas ya que si en un laberinto siempre realizas esta acción (girar a derechas) al final el laberinto es resuelto. Por tanto, esta aplicación se ha programado pensando en una posible ampliación en la que poder introducir un robot en un laberinto y que éste sea capaz de salir de él. Destacar que para completar dicha aplicación se debe hacer uso de un mayor número de sensores ultrasonidos y no solo uno como es el caso.

Elementos utilizados en este programa:

  • I/O Extension Shiel para Arduino Nano.
  • Arduino Nano v3.0.
  • 2 ruedas FS90R.
  • Rueda loca.
  • 2 micro servos FS90R (para las ruedas).
  • 2 micro servos SG90 (para los brazos).
  • Sensor ultrasonidos HC-SR04.
  • Zumbador KY-006.
  • Cable mini-USB (30 cm).
  • Powerbank 3600 mAh.
  • Cables DuPont H-H 20 cm.

Vídeo demostración:

https://youtu.be/lAsOlvnUqos

2. Siguelíneas

El objetivo de esta aplicación, como su propio nombre indica, es seguir una línea negra que se encuentra en contraste con un fondo blanco o claro. Destacar que solo se ha utilizado un único sensor de infrarrojos lo que condiciona la programación de dicha operación.

Para programar dicha funcionalidad se ha calibrado, en primer lugar, los valores que el sensor detecta al inspeccionar un objeto blanco (valores bajos en torno a 25) y los valores cuando el objeto inspeccionado es negro (valores altos en torno a 400). Una vez se tienen estos valores lo que se ha hecho es aplicar un control proporcional sobre el giro del robot en función del valor obtenido por el sensor.

Así pues, el funcionamiento de dicha aplicación consiste en seguir la frontera (tono gris, valor intermedio entre el blanco y el negro, lo que en el sensor se ve reflejado con un valor próximo a 200) entre la línea negra y el fondo blanco. Cuando se detecta todo negro el control actúa y hace girar al robot hacia la derecha hasta encontrar la frontera de la línea. En caso contrario, es decir, el sensor detecta el objeto blanco, entonces el control hace que gira a la izquierda buscando de nuevo el tono gris marcado por la frontera entre la línea y el fondo.

Se debe indicar que dicho programa tiene la limitación de que solo se puede utilizar cuando se intenta seguir la frontera de la parte derecha de la línea, pues, tal y como se ha indicado en el párrafo anterior, al detectar negro gira a a la derecha y al detectar blanco gira a la izquierda.

Elementos utilizados en este programa:

  • I/O Extension Shiel para Arduino Nano.
  • Arduino Nano v3.0.
  • 2 ruedas FS90R.
  • Rueda loca.
  • 2 micro servos FS90R (para las ruedas).
  • Sensor infrarrojos TCRT5000.
  • Cable mini-USB (30 cm).
  • Powerbank 3600 mAh.
  • Cables DuPont H-H 20 cm.

Vídeo demostración:

https://youtu.be/2AwEAB-eXYI

3. Control remoto mediante smartphone

En este caso se pretende controlar el funcionamiento del robot mediante una aplicación de móvil Android.

Así pues el primer paso a realizar para completar dicha tarea ha consistido en diseñar la aplicación para el smartphone haciendo uso de la herramienta AppInventor 2. La aplicación consta de tres layouts claramente diferenciados. En la imagen siguiente se aprecia el diseño final de la aplicación desarrollada.

Aspecto de la aplicación finalmente diseñada

El primer layout se encuentra en la parte superior de la pantalla. De izquierda a derecha aparecen una serie de botones para realizar diferentes acciones.

Layout 1
  • El primero de los botones (con el símbolo de bluetooth) permite conectarse al módulo bluetooth montado sobre el reloj. Una vez se ha establecido la conexión dicho símbolo es sustituido por otro en el que aparece el icono de bluetooth tachado, pasando a ser este el botón encargado de interrumpir la conexión.
  • El siguiente botón, el cual muestra un smartphone sobre la mano de una persona, permite que el movimiento del robot sea controlado por el acelerómetro del propio dispositivo móvil.
  • Por último aparecen una serie de conocidos emoticonos que al ser pulsados muestran la correspondiente expresión en el display OLED del robot.

El segundo layout se encuentra en la parte central de la pantalla. En el se observan nuevos botones los cuales se detallan a continuación.

Layout 2
  • Consta de una serie de botones con el icono de una flecha. Estos botones son los encargados de mover las ruedas del robot para realizar el movimiento que indica la flecha (ir en línea recta, ir hacia atrás, girar a derecha y girar a la izquierda). Destacar que los botones para ir hacia delante y hacia detrás actúan como interruptores, es decir, una vez son pulsados la acción se mantiene hasta que se pulsa el botón central de stop. Por otro lado, los botones de izquierda y derecha actúan como pulsadores, esto es, la acción se realiza mientras el botón se mantiene pulsado. Esto se ha hecho así para facilitar el manejo del robot.
  • En este layout también existe un botón central de parada que permite, por un lado, detener el avance del robot hacia delante y hacia atrás y, por otro, deshabilitar el movimiento del robot con la función del acelerómetro una vez ha sido activado con el botón correspondiente del layout anterior.

Destacar en esta parte que se ha programado la aplicación para que si se habilita el modo de manejo mediante el acelerómetro se deshabiliten los botones con los iconos de las flechas par así impedir que se produzcan movimientos contrarios (ir hacia delante y hacia atrás simultáneamente) lo que podría dañar los micro servos del robot.

El tercer layout es el que aparece en la parte inferior de la pantalla el cual consta de tres botones.

Layout 3
  • El botón de la izquierda (cuya imagen es un soldado saludando) es el que permite que el robot mueva uno de sus brazos para imitar un saludo. Además, al pulsar sobre dicho botón en el dispaly OLED se muestra la palabra «hola».
  • El botón de la derecha (cuyo icono es una jarra de cerveza) es el que permite mover el otro de los brazos del robot. Dicho brazo tiene en sus extremidad una cerveza y se ha posicionado de tal forma que al moverlo de la sensación de que el robot está pegando un trago.
  • El botón central (cuyo icono es muy colorido) permite realizar los dos movimientos anteriormente comentados (saludar y beber cerveza) de forma simultánea y repetida. Así pues, al pulsar sobre dicho botón el robot agita sus brazos tres veces para simbolizar un saludo largo y que toma tres tragos de cerveza.

Comentar que estos tres botones han sido programados como interruptores, es decir, solo se realiza la acción en concreto cada vez que se pulsa.

Elementos utilizados en este programa:

  • I/O Extension Shiel para Arduino Nano.
  • Arduino Nano v3.0.
  • 2 ruedas FS90R.
  • Rueda loca.
  • 2 micro servos FS90R (para las ruedas).
  • 2 micro servos SG90 (para los brazos).
  • Zumbador KY-006.
  • SPP-C Bluetooth.
  • Display OLED 128×32.
  • Tira de 3 RGB LEDs.
  • Cable mini-USB (30 cm).
  • Powerbank 3600 mAh.
  • Cables DuPont H-H 20 cm.

Vídeo demostración: