Ingeniero de visión
Visión general
Sección titulada «Visión general»El reconocimiento visual es una dirección importante de la inteligencia del drone. En este proyecto aprenderás a aprovechar la interfaz de cámara del ESP32-S3 para implementar una función sencilla de reconocimiento visual.
Lo que aprenderás
Sección titulada «Lo que aprenderás»- Uso de la interfaz de cámara
- Bases del procesamiento de imágenes
- Espacio de color HSV
- Algoritmos de detección de objetivos
Materiales necesarios
Sección titulada «Materiales necesarios»| Artículo | Cantidad | Descripción |
|---|---|---|
| Drone con cámara instalada | 1 | ESP32-S3 |
| Ordenador | 1 | Con entorno VS Code + ESP-IDF |
| Cable de datos USB | 1 | Para programar |
| Objeto rojo | 1 | Como una pelota roja o tela roja |
Paso 1: Conocer la interfaz de cámara
Sección titulada «Paso 1: Conocer la interfaz de cámara»El ESP32-S3 soporta la interfaz de cámara DVP, con la que se pueden conectar módulos de cámara como el OV2640.
Abre el directorio components/drivers/general/camera para conocer el código del controlador de la cámara.
Paso 2: Leer los datos de la cámara
Sección titulada «Paso 2: Leer los datos de la cámara»Escribe código para leer los datos de imagen crudos de la cámara y conviértelos al espacio de color HSV.
Paso 3: Implementar el reconocimiento de color
Sección titulada «Paso 3: Implementar el reconocimiento de color»Escribe un algoritmo de segmentación por umbral de color para identificar objetos rojos y calcular las coordenadas del centro del objeto rojo.
void detectRedObject() { // Leer la imagen de la cámara camera_fb_t *fb = esp_camera_fb_get(); if (!fb) return;
// Convertir a HSV y segmentar las regiones rojas int red_pixels = 0; int center_x = 0, center_y = 0;
for (int y = 0; y < fb->height; y++) { for (int x = 0; x < fb->width; x++) { // Conversión del color del píxel y decisión por umbral // ... if (isRedPixel) { red_pixels++; center_x += x; center_y += y; } } }
// Calcular el centro if (red_pixels > 0) { center_x /= red_pixels; center_y /= red_pixels; // Controlar el drone para que siga el objeto rojo // ... }
esp_camera_fb_return(fb);}Paso 4: Integrar en el programa principal
Sección titulada «Paso 4: Integrar en el programa principal»En el archivo main.c, llama a la función detectRedObject() para implementar el seguimiento visual.
Paso 5: Compilar, grabar y probar
Sección titulada «Paso 5: Compilar, grabar y probar»Compila y graba el código, enciende y prueba, y observa si el drone reconoce y sigue el objeto rojo.
Solución de problemas
Sección titulada «Solución de problemas»La cámara no se inicializa
Sección titulada «La cámara no se inicializa»- Comprueba la conexión de la cámara
- Confirma que la configuración de pines sea correcta
El reconocimiento es impreciso
Sección titulada «El reconocimiento es impreciso»- Ajusta los umbrales de color
- Mejora las condiciones de iluminación
Sensación de logro
Sección titulada «Sensación de logro»¡Enhorabuena! Has implementado la función de reconocimiento visual del drone, ¡un hito importante hacia la inteligencia!
Siguiente paso
Sección titulada «Siguiente paso»En el siguiente proyecto aprenderás a retransmitir por Wi-Fi los datos de vuelo del drone al ordenador.
Publicado por primera vez endrone.imagrove.com/es/intermediate/vision/Al citar o reproducir, indica la fuente Imagrove y enlaza a esta página.
¿Dudas o problemas con este tutorial?
Inicia sesión con GitHub para comentar. Si un paso te falla, avísanos: lo verificamos y actualizamos el tutorial.
© 2026 ESP32 Drone. Todos los derechos reservados.