Inicio » Aula

Archivos de la categoría: Aula

(English) Assembly and Programming of the Imperial Bot

Disculpa, pero esta entrada está disponible sólo en English.

(English) DYOR: Mobile Robotics Report

Disculpa, pero esta entrada está disponible sólo en English.

(English) FrogBot3000

Disculpa, pero esta entrada está disponible sólo en English.

(English) Dancing and object avoiding bPED Robot

Disculpa, pero esta entrada está disponible sólo en English.

(English) NodeBot

Disculpa, pero esta entrada está disponible sólo en English.

DYOR estándar controlado por bluetooth

En esta entrada se muestra como se ha creado el robot y podrás comprobar su funcionamiento.

(más…)

RumbaBot – Llega a todas las esquinas

Introducción

Este robot nace de la idea de crear un limpiador de suelos, con una estructura circular que permite llegar hasta cualquier esquina e incorporando múltiples sensores para conseguir una localización precisa y fiable.

Para fabricar este robot hemos diseñado y construido la estructura con:

  • Base redonda de madera (3mm). – Diseñada en AutoCAD y cortada en láser.
  • Accesorios para ruedas y acoplar sensores – Diseña en Fusión 360 e impresa en 3D.
  • Tornillos, arandelas y tuercas de 3mm y 4mm.

Para dar vida al robot, se han comprado los siguientes componentes:

Idea inicial

Como hemos comentado, la idea inicial era hacer un robot que pudiese explorar toda una habitación (e incluso una casa), elaborar un mapa de ocupación y establecer rutas para limpiar todo el suelo.

No obstante, esta función era algo ambiciosa, por lo que se mantuvo el diseño del robot (redondo) pero la programación fue más realista y ajustada a los tiempos de los que se disponía.

Las funciones para las que ha sido diseñado este robot son:

  1. Sigue líneas. Con ayuda de los sensores TCRT5000, se guía por una línea negra que sigue hasta que se ordene lo contrario.
  2. Conducción manual. Conectado por Bluetooth con un móvil, se puede controlar con el movimiento del dispositivo celular, como si se tratase de un volante inalámbrico.
  3. Sigue paredes. Los dos sensores láser permiten a RumbaBot saber la distancia hasta las paredes laterales, permitiéndole seguir una trayectoria equidistante a dichas paredes. Esta función se puede combinar con el control manual, para hacer que el robot se mueva entre paredes y controlar su movimiento hacia adelante o hacia atrás.

Montaje

El diseño del robot es bastante sencillo: es un robot diferencial, con dos ruedas centrales y una rueda loca en la parte trasera. En la parte delantera tiene 5 sensores de sigue líneas (ya que son digitales, no podemos utilizar solo uno). En cada lateral, un sensor láser de distancia abastece al robot de visión lateral. Por último, la batería está ubicada en la parte trasera, sobre la rueda loca, para dar estabilidad al robot.

Una imagen del mismo se puede apreciar en la siguiente imagen:

Imagen dónde se ve la construción final del RumbaBot. Un robot circular, con base de madera, dos ruedas motorizadas a los laterales. En la parte frontal se pueden apreciar los 5 sensores de sgiuelíneas, cubiertos con una carcasa negra para evitar crosstalking. En el centro de la base, el ESP32 controla toda la inteligencia del robot y permite la comunicación externa. En la parte trasera, una batería, hecha con 4 pilas 18650, aporta energía al carro.

 Funciones

Control Manual con volante

La principal función del RumbaBot, y quizás la más interesante y diferente, es su control a distancia con el móvil. A priori, podría parecer que este control no tiene nada diferente, pero el punto de interés es la conducción usando el móvil como un volante. El móvil detecta dos movimientos:

  • Inclinación frontal: igual que funcionaría un acelerador, si inclinamos el móvil hacia una posición horizontal, el carro acelera. Si lo colocamos a unos 30 grados, el coche se para. Para dar marcha atrás, solo hay que inclinarlo verticalmente. Con el ángulo de este eje ya tenemos el movimiento lineal, pero falta el giro.
  • Inclinación lateral: al mover el móvil hacia los lados, el robot gira en esa dirección. Si la velocidad lineal del coche es nula (inclinación frontal próxima a 30º), el carro gira sobre sí mismo. Cuando combinamos velocidad lineal y angular, el robot realiza una curva.

El diseño de la aplicación móvil ha sido 100% propia, usando la plataforma Android Studio se ha conseguido una comunicación Bluetooth con el robot, la detección de la inclinación con el acelerómetro que incorpora el móvil y la transmisión de datos.

Para enviar información se ha optado por una comunicación con mensajes siguiendo el siguiente formato:

Formato del Mensaje Bluetooth: 1. Código (0, 255) 2. Separador @ 3. Inclinación frontal (-127, 127) 4. Separador @ 5. Inclinación lateral (-127, 127)

Sigue líneas

Utilizando la comunicación Bluetooth, podemos enviar el código 30 (los otros dos parámetros son indiferentes) y el robot entra en el modo sigue líneas. Para conseguir esta función, el robot utiliza los 5 sensores digitales, que detectan el color negro. Para conseguir un buen funcionamiento, ha sido necesario cubrir cada sensor con una carcasa negra para evitar el cross-talking de los sigue líneas.

El control de sigue líneas es bastante sencillo:

  1. Los 5 sensores son leídos y almacenados sus valores en 5 variables.
  2. La velocidad lineal depende únicamente de cuantos sensores detectan negro, a mayor número, mayor la velocidad. Teóricamente, si la línea que sigue el robot es recta, el robot detectará negro en 3 sensores. Al girar, solo detecta negro en 1 o 2 sensores. Por tanto, el robot decelera en las curvas y frena si no hay línea negra.
  3. La velocidad angular depende de la asimetría al medir negro. Dicha velocidad se calcula como una resta entre la lectura de los sensores izquierdos y derechos. Si hay equilibrio, esta velocidad será nula (esto ocurre en las rectas). Si hay disparidad, el robot girará hasta volver al equilibrio.

El funcionamiento de este modo sigue líneas se puede apreciar en el siguiente vídeo:

Como se puede observar, el movimiento no es tan suave como debería ser. Esto se debe a un fallo de diseño, por utilizar detectores de luz digitales, el control no es continuo y produce los saltos que se pueden apreciar en el vídeo.

Mejoras

Como hemos comentado, el robot no es perfecto y podría mejorarse haciendo las siguientes actualizaciones:

  • Utilizar un sensor TCRT5000 con salida analógica: esto nos permite un control continuo mucho más suave. Además, solo sería necesario un sensor y evitaríamos así el cross-talking al tener múltiples sensores.
  • Colocar las ruedas ligeramente descentradas respecto al eje longitudinal: esto aportaría estabilidad al robot, ya que el centro de masas estaría entre los dos puntos de apoyo (ruedas motorizadas y la rueda loca).
  • Añadir un sensor láser frontal: con el fin de detectar obstáculos frontales, es recomendable añadir un sensor de distancia frontal, para evitar chocarse en la dirección del movimiento.

Código y archivos

Puedes acceder al código del programa y otros archivos multimedia en este enlace RumbaBot-DYOR en GitHub.

DYOR SapoBot

En esta entrada se muestra el proceso de la construcción del SapoBot incluyendo el diseño, los componentes y una explicación de su funcionamiento.

(más…)

DYOR ARMStrong

Aquí os muestro mi proceso de toma de decisiones, diseño, montaje, programación y troubleshooting sobre mi proyecto DYOR!! (más…)

F1 ROBOT DYOR CAR

En esta entrada se muestra el proceso de construcción de F1 DYOR CAR, incluyendo el diseño, componentes y una breve explicación de las aplicaciones implementadas. (más…)