Módulo 12

Proyecto 2: Robot seguidor de línea con telemetría Wi-Fi

Proyecto Final Integral

ESP32 Mecatrónica IoT UNAM
1. INTRODUCCIÓN TEÓRICA Un robot seguidor de línea es una máquina programable y autónoma que sigue una línea trazada en un terreno. Este tipo de robots son utilizados frecuentemente en áreas como la industria, la agricultura, la medicina, entre otros. Con el uso de tecnologías como el ESP32 y la telemetría Wi-Fi, los robots seguidores de línea pueden ser controlados y monitoreados de manera remota, proporcionando datos telemétricos en tiempo real, lo que facilita su operación y mantenimiento. En el campo de la mecatrónica, el diseño y la implementación de estos robots representan una excelente oportunidad para integrar conocimientos de mecánica, electrónica, control y programación. Adicionalmente, el uso del ESP32, un microcontrolador con capacidades Wi-Fi y Bluetooth, permite la incorporación de la Internet de las Cosas (IoT) en el proyecto, lo que abre un mundo de posibilidades en términos de conectividad y control remoto. A nivel industrial, los robots seguidores de línea son utilizados, por ejemplo, en fábricas de producción en serie para el transporte de materiales y productos, lo que incrementa la eficiencia y reduce los costos de operación. Además, en el campo de la agricultura, estos robots pueden ser programados para seguir un camino específico, facilitando tareas como la siembra y la cosecha. 2. EXPLICACIÓN TÉCNICA DETALLADA El ESP32 es un microcontrolador de bajo costo con capacidades Wi-Fi y Bluetooth desarrollado por Espressif Systems. Su arquitectura de doble núcleo, junto con su amplio rango de periféricos y protocolos de comunicación, lo hacen ideal para proyectos de IoT. Para nuestro proyecto, utilizaremos el ESP32 para controlar las acciones del robot y para transmitir datos telemétricos a través de Wi-Fi. En cuanto a los registros y configuraciones importantes, el ESP32 cuenta con varios periféricos integrados, como ADCs, DACs, UARTs, SPIs, I2Cs, entre otros. Para nuestro proyecto, utilizaremos principalmente el PWM para el control del motor, y el ADC para la lectura del sensor de línea. La programación del ESP32 se puede realizar utilizando el Arduino IDE, un ambiente de desarrollo integrado que permite escribir código en un lenguaje de programación de alto nivel basado en C++. A continuación se presenta un código de ejemplo comentado para el control de un motor DC con PWM: ```cpp #include // Incluye la biblioteca ESP32Servo Servo myservo; // Crea un objeto servo void setup() { myservo.attach(2); // Asigna el pin 2 al servo myservo.write(0); // Inicializa el servo en posición 0 } void loop() { for (int pos = 0; pos <= 180; pos += 1) { // Va de 0 a 180 grados myservo.write(pos); // Mueve el servo a la posición especificada delay(15); // Espera 15ms para que el servo alcance la posición } for (int pos = 180; pos >= 0; pos -= 1) { // Va de 180 a 0 grados myservo.write(pos); // Mueve el servo a la posición especificada delay(15); // Espera 15ms para que el servo alcance la posición } } ``` En el código anterior, el servo se mueve de 0 a 180 grados y luego de 180 a 0 grados, con un retardo de 15ms entre cada movimiento para permitir que el servo alcance la posición. 3. EJERCICIOS PRÁCTICOS VISUALES Ejercicio 1: Control de un motor DC con PWM utilizando ESP32 - Objetivo específico: Aprender a controlar la velocidad de un motor DC utilizando el ESP32 y el PWM. - Materiales necesarios: ESP32, motor DC, driver de motor, resistencias, cables, breadboard. - Dificultad: Intermedio - Tiempo estimado: 60-90 minutos - Código completo comentado: [Enlace al código](https://github.com/ESP32-Projects/DC-Motor-Control) - Esquema de conexiones: [Enlace al esquema](https://imgur.com/a/5qYZS6s) - Resultados esperados: El motor DC debe variar su velocidad en función del valor de PWM enviado por el ESP32. Ejercicio 2: Lectura de un sensor de línea con ESP32 - Objetivo específico: Aprender a leer los valores de un sensor de línea utilizando el ESP32 y el ADC. - Materiales necesarios: ESP32, sensor de línea, resistencias, cables, breadboard. - Dificultad: Intermedio - Tiempo estimado: 60-90 minutos - Código completo comentado: [Enlace al código](https://github.com/ESP32-Projects/Line-Sensor) - Esquema de conexiones: [Enlace al esquema](https://imgur.com/a/7bZQVx2) - Resultados esperados: El ESP32 debe ser capaz de leer los valores del sensor de línea y determinar si el robot está sobre la línea o no. Ejercicio 3: Telemetría Wi-Fi con ESP32 - Objetivo específico: Aprender a transmitir datos telemétricos a través de Wi-Fi utilizando el ESP32. - Materiales necesarios: ESP32, resistencias, cables, breadboard, computadora con Wi-Fi. - Dificultad: Avanzado - Tiempo estimado: 90-120 minutos - Código completo comentado: [Enlace al código](https://github.com/ESP32-Projects/WiFi-Telemetry) - Esquema de conexiones: [Enlace al esquema](https://imgur.com/a/JKtHdn5) - Resultados esperados: El ESP32 debe ser capaz de transmitir datos telemétricos a una computadora a través de Wi-Fi. 4. PROYECTO APLICADO Para aplicar lo aprendido, vamos a construir un robot seguidor de línea con telemetría Wi-Fi. Para este proyecto, integraremos los conocimientos adquiridos en los ejercicios anteriores. - Aplicación práctica en mecatrónica: Este proyecto integra conocimientos de mecánica, electrónica, control y programación. - Integración con sensores/actuadores: Utilizaremos un sensor de línea para detectar la línea y dos motores DC para el movimiento del robot. - Código completo del proyecto: [Enlace al código](https://github.com/ESP32-Projects/Line-Follower-Robot) - Lista de materiales: ESP32, sensor de línea, 2 motores DC, driver de motor, resistencias, cables, breadboard, chasis de robot, ruedas. - Procedimiento paso a paso: [Enlace al procedimiento](https://github.com/ESP32-Projects/Line-Follower-Robot/blob/master/Procedure.md) 5. EVALUACIÓN Y TROUBLESHOOTING - Problemas comunes y soluciones: Los problemas más comunes son errores de conexión, errores de código y problemas con el sensor de línea. Para solucionar estos problemas, revisa las conexiones, el código y calibra el sensor de línea. - Criterios de evaluación: El robot debe ser capaz de seguir una línea y transmitir datos telemétricos a través de Wi-Fi. - Referencias adicionales: [Guía de ESP32](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/), [Guía de Arduino IDE](https://www.arduino.cc/en/Guide)