Tabla de contenido:
Video: Localino rastrea Roomba IRobot, mapea el entorno y permite el control .: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
Para construir el puente WiFi-UART, puede consultar este repositorio de github:
Tiene una buena base para empezar. ¡Asegúrese de leer bien la guía, porque el Roomba VCC durante la carga aumenta hasta 20 voltios! Si agrega un ESP8266 sin un convertidor reductor adecuado que funcione incluso hasta 20 V y se reduzca a 3.3 V, dañará su ESP.
También asegúrese de usar un cambiador de nivel (por ejemplo, usando un divisor de voltaje) para cambiar los niveles lógicos UART de 5V del Roomba a 3.3V, que son usados por el ESP.
Otro detalle importante es que el convertidor reductor debe tener 300 mA, pero mucho menos o mucho más (dependiendo del convertidor reductor en sí). Hay algunos que pueden hacer mucha más corriente, pero hacen que el Roomba se bloquee porque consumen demasiada corriente durante el inicio. Descubrimos que el regulador de voltaje reductor Pololu 3.3V, 300mA (D24V3F3) funciona perfectamente. Las versiones alternativas que tienen 500mA / 600mA provocaron que la interfaz Roomba UART se bloqueara. Básicamente, el Roomba reaccionaba al presionar un botón, pero no a los comandos a través de la interfaz UART. Una vez que esto sucedió, tuvimos que quitar la batería del Roomba y reiniciar en frío el Roomba con el puente WiFi-UART adjunto. Sin embargo, solo el D24V3F3 funcionó bien.
Aparte de ese detalle técnico, debe agregar comandos adicionales al código, que puede encontrar en las especificaciones de la interfaz abierta de Roomba. Deberá agregar todos los comandos a los que desee que reaccione su roomba (por ejemplo, hacia atrás, hacia adelante, velocidad, etc.).
ejemplos dentro del IDE de arduino:
void goForward () {char c = {137, 0x00, 0xc8, 0x80, 0x00}; // 0x00c8 == 200 Serial.print (c); }
anular goBackward () {char c = {137, 0xff, 0x38, 0x80, 0x00}; // 0xff38 == -200 Serial.print (c); }
void spinLeft () {char c = {137, 0x00, 0xc8, 0x00, 0x01}; Serial.print (c); }
void spinRight () {char c = {137, 0x00, 0xc8, 0xff, 0xff}; Serial.print (c); }
si escribe en lua se ve un poco diferente, un ejemplo para un giro a la IZQUIERDA se vería así:
si (_GET.pin == "LEFT") entonces print ('\ 137'); --VOR
tmr.delay (100);
imprimir ('\ 00'); - Velocidad = 200 = 0x00C8 -> 0 und 200
tmr.delay (100);
imprimir ('\ 200'); - velocidad
tmr.delay (100);
imprimir ('\ 254'); - Radio = 500 = 0x01F4 = 0x01 0xF4 = 1244
tmr.delay (100);
imprimir ('\ 12'); -- Girar
fin
Asegúrese de tener que corregir la descripción de la interfaz abierta para su Roomba. Hay al menos dos especificaciones de interfaz abierta disponibles.
para la serie Roomba 5xx:
para la serie Roomba 6xx:
Una vez que haya construido su puente WiFi-UART y haya probado los comandos, dio un gran paso adelante. Este video demuestra que la aplicación y el enfoque funcionan. Éramos un poco vagos, a la interfaz web le faltan todos los demás comandos de control, como avance, retroceso, velocidad, derecha, izquierda, etc., pero puede emitir los comandos a través de http. De todos modos, es solo una demostración de que el control remoto del Roomba funciona con una sencilla pieza de hardware y software usando un ESP8266.
Ahora que puede controlar su Roomba de forma remota desde una aplicación de PC, lo único que falta es la localización para interiores. Necesitamos esto para cerrar el ciclo de retroalimentación, porque nuestro objetivo era dirigir el robot en una dirección determinada. Hagámoslo.
Paso 3: Configure su sistema de localización para interiores
Para cerrar el circuito de retroalimentación utilizamos un sistema de localización interior. Usamos Localino para esto. El sistema Localino consta de "anclajes" y "etiquetas". Los anclajes se colocan en ubicaciones fijas dentro de la habitación y ubican la posición de la etiqueta móvil (que se coloca en el Roomba). El procesamiento de la ubicación se realiza en una aplicación para PC. ¡Eso es una gran ventaja, porque también puede controlar el Roomba desde la misma PC! Hay un código fuente gratuito disponible en el sitio web de Localino, está escrito en Python y también hay una secuencia disponible en tiempo real que ofrece las coordenadas XYZ de la etiqueta. El flujo de datos está disponible a través de la red UDP, pero también puede agregar MQTT o cualquier otra cosa elegante que desee. Si conoce Python, hay un montón de bibliotecas que le ayudarán.
En este video, se demuestra la localización del Roomba. Por lo tanto, tenemos 4 anclajes instalados en la habitación en ubicaciones fijas, que permiten el posicionamiento 3D del Roomba. En general, solo necesitaríamos 3 anclajes, porque el Roomba probablemente no se moverá en el eje Z, por lo que 2D sería suficiente. Pero debido a que los anclajes están ubicados a la altura de los enchufes principales de CA (que está aproximadamente a 30 cm sobre el suelo), una configuración 2D causaría pequeños errores de estimación de posición. Entonces decidimos tener 4 anclas y localizar en 3D.
Ahora que tenemos la posición del Roomba, nuestro siguiente paso es controlar el Roomba desde la misma aplicación. La idea es utilizar la verdad del terreno y estimar una ruta de limpieza perfecta para el robot. Con el uso del Localino podemos cerrar el circuito de retroalimentación y controlar el robot desde la aplicación para PC.
Comentarios de configuración
Coloque los anclajes Localino dentro de la habitación en diferentes posiciones x, y y tres de ellos en la misma posición z. Coloque uno de cada cuatro anclajes a una altura z diferente por habitación. Asegúrese de que haya una buena cobertura de la etiqueta Localino, que se moverá con el Roomba.
Todos los anclajes tienen un ID de ancla único, que se muestra en el código de barras del Localino y se puede leer con la herramienta de "configuración del localino".
Tenga en cuenta las posiciones en X, Y, Z y los identificadores de anclaje. Esto es necesario para el software del procesador Localino y debe adaptarse en el archivo "localino.ini" en la carpeta "LocalinoProcessor"
Los anclajes deben apuntar hacia arriba o hacia abajo en Z (cuando se cubre el área XY), pero no en la dirección del área cubierta. Los anclajes tampoco deben estar cubiertos por metal o cualquier otro material que perturbe la señal inalámbrica. Si esto no es posible, también debe haber un cierto espacio de aire entre cualquier material y el anclaje.
…más por venir.
Paso 4: Adapte el software Python
Manténganse al tanto. más por venir.
Recomendado:
Cómo configurar el entorno de programación AVR en Linux: 5 pasos
Cómo configurar el entorno de programación AVR en Linux: si desea programar microcontroladores AVR en Windows, tiene un Studio, pero en Linux todo lo que tenemos es un Dude.AVRDUDE es la interfaz de línea de comandos para programar chips AVR, puede ser un poco complicado para configurar al principio. En este Instructable, seré s
Lámpara LED Lotus (entorno natural sostenible): 4 pasos
Lámpara LED Lotus (Sustainability Natural Environment): Resumen: Lámpara con una forma similar a la conocida flor de loto. La idea detrás de la lámpara es que se puede utilizar en diferentes configuraciones dependiendo de las preferencias de los usuarios finales, ya que se le dará la luz brillante cuando el (Lotus flo
Dibujando Mí Entorno Con ADELE a Través Del Método Científico: 8 Pasos
Dibujando Mí Entorno Con ADELE a Través Del Method Científico: Nuestro proyecto consiste en la enseñanza del método científico en enfocándonos en la asignatura de matemática, integrando la robótica como un material de apoyo (ADELE)
Escudo de monitor de aire Arduino. Viva en un entorno seguro: 5 pasos (con imágenes)
Escudo de monitor de aire Arduino. Viva en un entorno seguro .: Hola, En este Instructabe voy a hacer un escudo de monitoreo de aire para arduino. Que puede detectar la fuga de GLP y la concentración de CO2 en nuestra atmósfera. Y también suena un zumbador que enciende el LED y el extractor de aire cada vez que se detecta GLP o el concentrado
Entorno adaptativo (automatización de dormitorios): 5 pasos
Entorno adaptativo (automatización de dormitorios): este proyecto es el comienzo de mi profundización en la automatización. Elegí la Raspberry Pi como el " cerebro " de esta operación porque el GPIO tiene muchas aplicaciones diferentes y el WIFI / Bluetooth integrado. Mi clase de introducción a la creación de prototipos desafiada