Home » Apps » Robot diferencial MJ-01ES

Login with your Social Account

Robot diferencial MJ-01ES

  •  
  •  
  •  
  •  
  •  
  •  

Robot diferencial MJ-01ES

El robot MJ-01ES es un robot diferencial basado en Arduino; el cual es controlado vía Bluetooth a través de una aplicación móvil, que se desarrolló en MIT App Inventor 2. Este es capaz de realizar cuatro funciones, las cuales son: seguidor de líneas, esquiva obstáculos, control manual del robot a través de interfaz de usuario y movimiento de robot con el uso de acelerómetro de dispositivo Android.

Fig. 1. Robot MJ-01ES.

El desarrollo del robot MJ-01ES, se llevó a cabo con los siguientes componentes:

  • Arduino Nano v3
  • Arduino Nano I/O Shield
  • 1 Servo SG90
  • 2 Servo de rotación continua FS90R
  • 1 Sensor infrarrojo TCRT5000
  • 1 Sensor de ultrasonidos HC-SR04
  • 1 Par de ruedas servo FS90R
  • 1 Modulo Bluetooth HC-06
  • 12 cables dupont hembra-hembra
  • 1 Powerbank
  • Piezas en 3D
  • Pieza de madera con corte laser 150x150mm2

La construcción del robot se realizó a partir de piezas impresas en 3D y la pieza base de madera a corte laser, como se puede ver en Fig. 1. La plantilla de la pieza base se presenta en Fig. 2, y las piezas en 3D se diseñaron en el programa Solid Edge ST8, donde se puede ver el ensamble del robot en Fig. 3 y 4. Y en Fig. 5, se muestra ya armado.

Fig. 2. Diseño 2D de la base del robot MJ01-ES para corte láser.


Fig. 3. Isométrico del ensamble de piezas del robot MJ01-ES en 3D. Vista 1.


Fig. 4. Isométrico del ensamble de piezas del robot MJ01-ES en 3D. Vista 2.


Fig. 5. Robot ensamblado. 

Diagrama de conexiones:

El diagrama de conexiones del robot MJ-01ES se muestra en Fig. 6, este fue realizado en el programa Fritzing.

Fig. 6. Esquema de conexión electrónico del robot MJ01-ES.

NOTA: Las conexiones de Tierra y Vcc no se realizaron en el esquema debido a que eran varias y no se notarían las demás conexiones.


Funciones del robot:

Seguidor de líneas

El MJ-01ES será un robot seguidor de línea; básicamente, será capaz de desplazarse a lo largo de una línea de color negro sobre una superficie color blanca, basando su funcionamiento en el sensor infrarrojo TCRT5000 que detectará si el robot está sobre la línea o no. Se colocará un sensor infrarrojo en la parte frontal del robot, el cual funcionará de la siguiente manera:

  • Cuando el sensor detecte la línea negra, el robot estará sobre la línea, y por lo tanto deberá avanzar. Para ello los dos servos giraran a la misma velocidad.
  • Cuando el sensor ya no detecte negro entonces, el servo de la izquierda girará más rápido para encontrar de nuevo la línea negra; se gira más el servo de la izquierda, ya que el sensor se encuentra colocado un poco a la derecha, en el frente del robot.

Esquiva obstáculos

También el MJ-01ES tendrá la capacidad de detectar objetos y esquivarlos. Cuando el robot detecte un objeto a una distancia de 30cm, entonces comenzará su función de esquivar los objetos que encuentre en su camino. Al momento de esquivarlos, el robot tomará tres medidas con el sensor de ultrasonido HC-SR04 (a la izquierda, al centro y a la derecha), midiendo así la distancia al objeto; por tanto, se irá cambiando la posición del sensor con la ayuda de un servo SG90, imitando el movimiento de la cabeza humana.

Ahora bien, la comprobación de la existencia de obstáculos funcionará de la siguiente manera:

  • Si no hay ningún obstáculo a menos de 30cm por delante del robot, este podrá avanzar recto.
  • Si hay obstáculo a menos de 30cm, entonces el robot comprobará si puede esquivar el objeto por algún lateral, así:
  • Primero se comprobará si se puede esquivar por la izquierda, si no hay nada a menos de 30 cm en este lado se podrá girar 90°.
  • Si no se puede por la izquierda, se comprobará si es posible por la derecha.
  • Y si hay obstáculos tanto por la izquierda como por la derecha, el robot girará 180° sobre sí mismo para poder encontrar otro camino libre de obstáculos.

Control Manual a través de interfaz

El control manual del robot se realizará a través de la interfaz que se encuentra en la aplicación móvil, en esta se tienen cuatro flechas indicadoras, según el movimiento que se pretende realizar con el robot. El movimiento del robot será continuo, siempre y cuando el usuario mantenga su dedo sobre la flecha deseada. Las flechas indican: movimiento recto hacia delante, movimiento hacia atrás, movimiento hacia izquierda y hacia derecha. Esto se puede ver en la interfaz, Fig. 9.

Uso de acelerómetro de dispositivo Android

Una de las cosas más fascinantes que se encuentran hoy en día en dispositivos Android u otros más es el acelerómetro. Este permite detectar si está en vertical u horizontal el dispositivo o en que inclinación se encuentra. Entonces estos beneficios ayudaran a manejar el robot simplemente moviendo el dispositivo en la inclinación o dirección que se desee. Esto se puede ver en Fig. 7 y 8.

Cuando el dispositivo se encuentre de manera horizontal completamente, el robot no se moverá; cuando cumpla las condiciones del área que se observa en Izq, entonces se moverá hacia la izquierda y así será con las demás, dependiendo lo que el usuario desee.


Fig. 7. Acelerómetro en dispositivos.


Fig. 8. Funcionamiento de acelerómetro en dispositivo Android.

Programación en MIT App Inventor 2:

La interfaz diseñada se muestra en Fig. 9, esta dispone de un botón ON y un OFF. Al presionar ON, aparecerá una lista de los dispositivos que tienen  activado el Bluetooth, en este caso se seleccionará el Bluetooth de Arduino. Al estar conectados, aparece un mensaje que indica si la conexión ha sido satisfactoria (State).

Posteriormente se selecciona la función que se desea que el robot realice, estas funciones se encuentran en la parte derecha de la interfaz (botones de colores). El botón verde, S, es el que activa el seguidor de líneas; el botón rojo, E, activa el esquiva obstáculos; el amarillo, M, indica la acción de manual, con el cual se podrán utilizar los botones de la izquierda; el botón azul, A, activa el uso del acelerómetro. Y el botón que se encuentra en el centro, Stop, para la función que está ejecutando el robot y así se puede seleccionar otra función.

Finalmente, con el botón OFF, el robot queda desconectado del dispositivo.


Fig. 9. Interfaz de la aplicación autónoma del robot MJ-01ES.

La programación en MIT App Inventor 2 se realiza en lenguaje de bloques, por lo cual es bastante intuitivo su manejo. En Fig. 10, se puede ver de manera general la programación realizada para esta aplicación.


Fig. 10. Programación en bloques del robot MJ-01ES.

Programación en Arduino:

La programación del robot se realizó principalmente en Arduino IDE. Donde inicialmente se incluyen las librerías de los servos y del módulo Bluetooth; y se declaran todas las variables.

En el void loop (), se incluye el programa principal, donde inicialmente el robot está parado y el servo SG90 está en una posición adecuada, para que la cabeza del robot este hacia el frente. Esto se realiza con dos funciones: giroservo(A_0) y paro(). Fig. 11.

Ahora bien, para la selección de las distintas funciones del robot se utilizó un switch case, el cual dependiendo al número recibido, así el robot realiza dicha acción. Estos casos se activan siempre y cuando el dispositivo que controla de manera remota al robot esté conectado vía Bluetooth. Fig. 12.

Al final del programa se declararon unas funciones que se mandan a llamar del programa principal, como por ejemplo: giro90izq(), giro90der(),giro180(); las cuales indican los giros ya sea hacia la derecha, izquierda o la vuelta completa sobre sí mismo.


Fig. 11. Parte de programa realizado en Arduino IDE.


Fig. 12. Bluetooth activo en robot MJ-01ES.

Los vídeos del funcionamiento de cada función que realiza el robot se encuentran en los siguientes enlaces:

 

Trabajo en equipo:

 

Autores:

Flores Ventura, Katherine Michelle

Rivera Andrade, Josué Roberto

Consultas a los correos:

micheventura24@gmail.com

josue.andrade000@gmail.com

A %d blogueros les gusta esto: