Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/99danirmoya/turtle-bot-neo-revo

Mini rover basado en ESP32 S3 impulsado por dos servos de rotación continua que envía los datos de un BME280 y recibe órdenes de control por MQTT desde NodeRED Dashboard. Cuenta, además, con panel OLED, bocina y un LED.
https://github.com/99danirmoya/turtle-bot-neo-revo

bme280 esp32-arduino mqtt rover sensor servo-motor

Last synced: 3 days ago
JSON representation

Mini rover basado en ESP32 S3 impulsado por dos servos de rotación continua que envía los datos de un BME280 y recibe órdenes de control por MQTT desde NodeRED Dashboard. Cuenta, además, con panel OLED, bocina y un LED.

Awesome Lists containing this project

README

        

![Static Badge](https://img.shields.io/badge/stability-v4.0-3314333)

#

Turtle-Bot NEO REVO (rover2)

_Programado en_

[![made-in-ArduinoIDE](https://img.shields.io/badge/Arduino_IDE-00979D?style=for-the-badge&logo=arduino&logoColor=white)](https://www.arduino.cc/)

_Servicios en la nube ofrecidos por_




## Mini rover WiFi con sensor climático y de material particulado, GPS, mangnetómetro, panel OLED, luces LED y bocina controlado desde Telegram y NodeRED Dashboard/Thingsboard a los que se envían los datos recogidos en tiempo real. Cuenta con dos modos de operación: manual y auto-pilotado por coordenadas GPS

___

## Demo del proyecto


Muestra de montaje y cableado



> [!NOTE]
> Esta imagen es únicamente una muestra orientativa. El chasis está hecho en impresión 3D/metacrilato y vale cualquiera que venga preparado para servos y los sensores elegidos para cada modo

___

## Índice
1. [Modo de funcionamiento](https://github.com/99danirmoya/Turtle-Bot-NEO-REVO/blob/main/README.md#modo-de-funcionamiento)
2. [Lista de componentes](https://github.com/99danirmoya/Turtle-Bot-NEO-REVO/blob/main/README.md#--lista-de-componentes-)
3. [Diagrama de conexiones](https://github.com/99danirmoya/Turtle-Bot-NEO-REVO/blob/main/README.md#diagrama-de-conexiones)
4. [Modo de implementación](https://github.com/99danirmoya/Turtle-Bot-NEO-REVO/blob/main/README.md#modo-de-implementaci%C3%B3n)
5. [Licencia](https://github.com/99danirmoya/Turtle-Bot-NEO-REVO/blob/main/README.md#-licencia-)
6. [Contacto](https://github.com/99danirmoya/Turtle-Bot-NEO-REVO/blob/main/README.md#-contacto-)

___
___

## Modo de funcionamiento [:leftwards_arrow_with_hook:](https://github.com/99danirmoya/Turtle-Bot-NEO-REVO/blob/main/README.md#%C3%ADndice)
1. Se conecta el robot a una WiFi accediendo a su hotspot desde otro dispositivo (PC o smartphone)
2. En caso de querer usarse el I/O desde Telegram, se deberá crear un bot desde BotFather para acceder a su token y deshabilitar la privacidad en grupos para poder explotar el máximo potencial con el comando `/setprivacy`
3. Se accede al panel de control en la nube para su pilotaje de forma remota
- ALTERNATIVAMENTE: Si no se ha accedido aún a NodeRED, se debe importar el flujo (más info a continuación) y configurar los nodos relacionados con MQTT, bots de Telegram e InfluxDB.

___

##

Lista de componentes [:leftwards_arrow_with_hook:](https://github.com/99danirmoya/Turtle-Bot-NEO-REVO/blob/main/README.md#%C3%ADndice)

| Componente | Unidades |
| ------------- | ------------- |
| LilyGO T3 S3 | 1 |
| Protoboard | 1 |
| Chasis | 1 |
| LED | 1 |
| Resistencia 220ohm | 1 |
| Zumbador | 1 |
| BME280 | 1 |
| GPS NEO-6M | 1 |
| HMC5883L | 1 |
| SDS011 | 1 |
| Servo de rotación continua | 2 |
| Ruedas | 2 |
| Jumpers | Los que hagan falta |

___

## Diagrama de conexiones [:leftwards_arrow_with_hook:](https://github.com/99danirmoya/Turtle-Bot-NEO-REVO/blob/main/README.md#%C3%ADndice)

La tarjeta de prototipado específica empleada para el desarrollo ha sido la LilyGO T3-S3 v1.2:




Pinout de la tarjeta de prototipado LilyGO T3-S3 v1.2


A continuación, se muestra el diagrama de conexiones del robot.




Circuito del Turtle-Bot NEO EVO


> [!CAUTION]
> **OJO**, el microcontrolador usado en el dibujo es el TTGO LoRa32 OLED, antecesor del LilyGO T3-S3 v1.2 que se emplea en este ejemplo. Por ello, el pinout del esquema es distinto, **sólo se debe seguir la ubicación de los pines**.

___

## Modo de implementación [:leftwards_arrow_with_hook:](https://github.com/99danirmoya/Turtle-Bot-NEO-REVO/blob/main/README.md#%C3%ADndice)

Toda la explicación del código de Arduino viene dada en el propio código, [`99danirmoya/Turtle-Bot-NEO-EVO/blob/main/tbne/tbne.ino`](https://github.com/99danirmoya/Turtle-Bot-NEO-EVO/blob/main/tbne/tbne.ino), en formato de comentarios al lado de cada línea. Cabe destacar la implementación de freeRTOS para fragmentar en tareas ejecutadas en paralelo para mejorar los tiempos de respuesta.


Diagrama de bloques de la implementación en freeRTOS



Por otra parte, se debe importar el flujo que se muestra a continuación desde el archivo [`flow_tbne.json`](https://github.com/99danirmoya/Turtle-Bot-NEO-EVO/blob/main/nodered_flow/flow_tbne.json):


Flujo de NodeRED para el control de Turtle-Bot NEO EVO



Con el flujo importado y habiéndose configurado los nodos de MQTT, Telegram, función e InfluxDB, se puede acceder al siguiente panel de control y monitoreo del sensor:


Dashboard de NodeRED para el control y monitoreo climático a borde de Turtle-Bot NEO EVO




Dashboard de NodeRED para la visualización historica del sensor climático a bordo



En el siguiente enlace, se puede consultar el [panel a distancia](https://e047be1273f7b77c71d4d02783f546a4.balena-devices.com/ui/#!/0?socketid=kMCTOBbX9VSPFcfIAAAF) original. **Está configurado para el Turtle-Bot NEO EVO original**.

Por otra parte, se puede hacer uso de un bot de Telegram para recibir notificaciones de eventos importantes de la batería (batería baja o batería cargada), así como invocar un menú, creado por [Alex Trostle](https://flows.nodered.org/flow/c8194f9d056455018d2da8ef7e109733), en el que encender o apagar el panel OLED y la luz OLED al hacer uso del comando `/neo2`:


Menú del bot de Telegram para escoger dispositivo al que modificar su estado




Menú del bot de Telegram para encender o apagar el dispositivo elegido



___
___

##

Licencia [:leftwards_arrow_with_hook:](https://github.com/99danirmoya/Turtle-Bot-NEO-REVO/blob/main/README.md#%C3%ADndice)

Este proyecto está licenciado bajo la [GPL-3.0 license](https://github.com/99danirmoya/turtle-bot-neo?tab=GPL-3.0-1-ov-file).

___

##

Contacto [:leftwards_arrow_with_hook:](https://github.com/99danirmoya/Turtle-Bot-NEO-REVO/blob/main/README.md#%C3%ADndice)

> [!IMPORTANT]
> Respondo amablemente a dudas y leo sugerencias: [![Gmail Badge](https://img.shields.io/badge/-Gmail-c14438?style=for-the-badge&logo=Gmail&logoColor=white&link=mailto:[email protected])](mailto:[email protected])
>
> Más información sobre mis proyectos: [![Linkedin Badge](https://img.shields.io/badge/-LinkedIn-blue?style=for-the-badge&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/daniel-rodr%C3%ADguez-moya-510a35167)](https://www.linkedin.com/in/daniel-rodr%C3%ADguez-moya-510a35167)

_

Autor: Daniel Rodríguez Moya :shipit:

_