Inicio » Aula » PandaBot DYOR

PandaBot DYOR

En esta entrada se va a ver como se ha diseñado y programado el robot DYOR Pandabot.

Para el diseño se ha cogido el modelo DYOR con forma de oso panda.

 

Materiales

Estos son los materiales que se han utilizado para el montaje:

  • Arduino Nano + Shield Arduino Nano I/O
  • Powerbank
  • Ultrasonido HC-SR04
  • Zumbador de sonido
  • 2 Servos SG90 en el frontal
  • 2 Servos FS90R en la base
  • Bluetooth
  • Seguilíneas TCRT5000
  • Rueda loca
  • 2 Ruedas FS90R
  • Matriz de LEDs

Funcionalidades

El robot se controla mediante conexión bluetooth con un dispositivo móvil, usando la aplicación de móvil DYOR. En el control hay tres modos de funcionamiento:

  • Modo manual: Se realiza con los diferentes botones de la interfaz de la aplicación. Se puede manejar el robot haciendo que se mueva adelante o atrás, que gire hacia la derecha o izquierda o que se pare. También puede mover los brazos y mediante la matriz de LEDs se puede hacer que exprese felicidad, tristeza, amor, enfado o sorpresa.
  • Modo Evita Obstáculos: Al activarlo, el robot se moverá libremente por el espacio hasta detectar un obstáculo con el sensor de ultrasonidos, cuando lo haga girará para evitarlo.
  • Modo Siguelíneas: Al activarlo, el sensor tctr5000 detectará si está sobre una línea para seguirla, en caso de no estarlo el control aplicado hará que las ruedas giren a una determinada velocidad hasta encontrarla.

Código Arduino

Aquí se adjunta el código empleado para el funcionamiento de PandaBot.

PandaBot

Al principio se definen los pines de los distintos elementos, así como las variables que se van a utilizar. En el setup está la configuración de los pines y en qué modo los vamos a usar.

En el loop se encuentra el control mediante bluetooth, el cual va leyendo el comando que le vamos enviando en la aplicación para saber que debe hacer. Para el caso del Evita Obstáculos y el siguelíneas se emplea un bucle para poder hacer sus funciones correctamente hasta que se pulse el botón de parar.

El control manual se ha programado dentro del loop con el comando Servo.write() para ir moviendo los servos de las ruedas y los brazos. Para los LEDs se han empleado funciones para expresar cada uno de los estados.

En el caso del Evita Obstáculos, se han empleado tres funciones. Las funciones long US_init y distance se emplean para medir distancias con el sensor de ultrasonidos mientras que la función EvitaObstaculos recibe esa distancia y en función de la medición sigue recto o gira.

El sigue líneas emplea una única función. Esta función mide el color con el sensor tctr5000 y calcula el error basandose en un parametro de valor medio que indica mas o menos donde deberia estar. Con este error, calcula las velocidades de las ruedas y se las aplica a los servos.

Autor

Carlos Vila Collantes

Trabajo realizado para la asignatura de Robótica Móvil

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

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

Universidad Politécnica de Valencia