Inicio » Aula » Robot DYOR Pandabot

Robot DYOR Pandabot

En esta entrada se va a mostrar el montaje y programación de un robot DYOR Panda, así como una serie de consejos básicos para tener en cuenta en su realización.

Figura 1: imagen del robot dyor finalizado (Pandabot)

Ensamblaje

Para este proyecto, no se ha utilizado un diseño propio, por lo que para asegurar que el diseño utilizado es realizable, si caben todos los componentes, o si hay que hacer alguna modificación, se ha realizado un ensamblaje del diseño en SolidWorks.

Figura 2: Ensamblaje vista frontal

 

Figura 3: Ensamblaje vista trasera

Lista de materiales

Los materiales utilizados corresponden en su mayoría con los proporcionados en roboticafacil.es en el paquete del robot dyor.

  • Piezas de corte laser (madera)
  • Arduino Nano v3.0
  • I/O Extension Shield para Arduino
  • Powerbank 3600 mAh
  • 2 Micro servos FS90R +ruedas
  • 2 Micro servos SG90
  • Rueda loca
  • Sensor Ultrasonidos HC-SR04
  • Buzzer KY-006
  • Matriz de Leds 8×8
  • módulo Siguelíneas TCRT500
  • módulo Bluetooth HC-06
  • cables DuPont Hembra-Hembra

Funciones

  • siguelíneas

Una función simple, si detecta línea gira hacia un lado y si no hacia el otro.

  • esquiva-obstáculos

Cuando el ultrasonidos detecta un obstáculo a menos de x distancia, retrocede brevemente, gira a ambos  lados y mide de nuevo la distancia en ambos sentidos, posteriormente toma la dirección con la distancia detectada mas lejana.

  • música

Suena una música, en este caso, piratas del caribe (funcional durante los otros modos de funcionamiento)

  • control bluetooth

Recibe comandos desde la app del móvil, ya sea dirección de movimiento o el modo de funcionamiento.

  • bailar

Mueve los brazos y gira hacia los lados con tiempos y ángulos aleatorios.

  • matriz leds

Se puede poner un corazón, carita feliz o triste, o que salgan las flechas indicando la dirección a la que se está moviendo.

Interfaz

Para controlar el robot desde el móvil, se ha realizado una interfaz de móvil usando MIT App Inventor 2.

Figura 4: Interfaz móvil

El primer paso es conectar el bluetooth del móvil con el dispositivo, y una vez conectado se podrá acceder a las funciones del programa.

Figura 5: diagrama de bloques, bluetooth
Figura 6: Diagrama de bloques de toda la App

Comentarios y consejos en la ejecución

  • Controlar el consumo de corriente: Hay demasiado elementos conectados al arduino y funcionando a la vez, lo que puede suponer un exceso de corriente y un mal funcionamiento, en especial en el caso de los servos. Por ello, es recomentable desactivar los servos con la función .detach() cuando no se necesiten usar, y reactivarlos con la función .attach() cuando necesites usarlos de nuevo.
  • Evitar pines sueltos o mala conexión: Es un caso habitual que funcionen correctamente los componentes por separado pero al funcionar en conjunto no, esto se debe en algunas ocasiones al movimiento del robot. Al moverse y vibrar se puede dar el caso de que se produzcan interrupciones en el funcionamiento de alguna de las partes. En mi caso se ha tenido que sustituir algunos de los cables DuPont que ejercían un contacto poco firme provocando averías intermitentes. Incluso puede ser recomendado sustituirlos por cables soldados, siempre y cuando sea seguro que no existe la necesidad de cambiar la posición de los pines.
  • Ultrasonidos, medidas erróneas o distancia 0: Las dos cosas pueden ser consecuencia de los dos errores anteriores. El alto consumo de otras partes del proyecto afecta directamente al uso del ultrasonidos. Es altamente recomendable parar los servos y desactivarlos antes de realizar la medida, sin embargo esto puede no ser posible ya que puede interrumpir  el funcionamiento normal del robot como se ha dado el caso en el transcurso del proyecto. Por ello, en este proyecto se ha cubierto el fallo con dos partes.
    • Medir varias veces y sacar la media: de esta forma disminuyes el impacto de un error en la medida, y proporciona un resultado mas preciso.
    • Si mide 0 cambiar el valor: Sabemos que el ultrasonido empleado no puede medir distancias menores a 6cm, por lo que si el resultado proporcionado es 0, es obvio que se debe a un error en la lectura. Conociendo eso, si devuelve 0, se le puede dar un valor cercano al limite en el que el dyor va a actuar, para que al hacer media con otras medidas tenga el funcionamiento adecuado.
  • Buzzer y matriz de leds, funcionamiento simultaneo al resto del programa: Para ello hay que evitar el uso de delays. Hay varias formas de conseguirlo, en este caso se ha realizado usando la función millis() de la siguiente forma:  if ((millis()-time)>espera){cosas} de forma que cuando llega a la línea del programa, comprueba si ha pasado el tiempo especificado y si lo ha hecho ejecuta las acciones. Esto es útil para evitar el uso de delays y que el programa se quede estancado sin hacer nada en una linea. En este caso se puede usar debido a que el tiempo total de cada loop del programa es bajo (no hay delays). Otra forma de hacerlo, según la importancia que pueda tener la acción (ya que pararía lo que esta haciendo para realizarla), es el uso de interrupciones.

Autor

Pablo López Crujeiras

Trabajo realizado para la asignatura de Robótica Móvil 2020-2021

Grado en ingeniería electrónica industrial y automática

Escuela Técnica Superior de Ingeniería del Diseño (UPV)