Capturando y Almacenando Imágenes con Arduino y el Módulo de Cámara OV7670
Introducción
En este tutorial, exploramos cómo configurar y utilizar el módulo de cámara OV7670 con la placa Arduino, junto con la herramienta ArduImageCapture para visualizar y guardar imágenes. A través de este proceso, aprenderás a instalar versión portable del Arduino IDE, integrar librerías necesarias, modificar configuraciones para adaptarlas a nuestras necesidades, y finalmente, capturar y almacenar imágenes generadas por la cámara.
¿Qué es el OV7670?
El OV7670 es un módulo de cámara popular y de bajo costo que se utiliza ampliamente en aplicaciones de visión por computadora e imagen. Este módulo de cámara compacto utiliza el sensor de imagen OV7670, que es un sensor de imagen CMOS de baja voltaje que proporciona funcionalidad de cámara y procesamiento de imagen en un solo chip.
El OV7670 puede generar datos de imagen en varios formatos, incluyendo YUV, RGB y datos de imagen en bruto sin compresión. Este módulo es muy adecuado para aplicaciones que requieren una cámara o funcionalidad de visión por computadora, pero tienen restricciones de espacio, potencia o costo.
Materiales
- Arduino UNO/NANO
- Módulo OV7670 versión sin FIFO
- cables para conexión
- 2 resistencias de 10 kOhms
- 1 resistencia de 1 kOhms
- 1 resistencia de 680 Ohms
Conexiones
A continuación se enlistan las conexiones necesarias:
- XCLK del módulo al divisor de voltaje entre D3 y GND.
- Arduino pin A5 a SCL. Añade una resistencia de pull-up de 10k a 3.3V en esta conexión.
- Arduino pin A4 a SDA. Añade una resistencia de pull-up de 10k a 3.3V en esta conexión también.
- VSYNC a D2 en Arduino.
- PCLK a D12 en Arduino.
- Conectar 3.3V del módulo a 3.3V en Arduino.
- Conectar la tierra (GND) del módulo a la tierra (GND) en Arduino.
- RESET a 3.3V.
- PWDN (Power Down) a GND.
- D0-D3 del módulo a A0-A3 de Arduino.
- D4-D7 del módulo a 4-7 de Arduino.
Preparación del entorno
Para visualizar y guardar las imágenes, utilizaremos la herramienta "ArduImageCapture", que se puede añadir al menú de Herramientas del Arduino IDE. Para incorporar esta herramienta, es necesario utilizar una versión anterior del IDE, específicamente la versión 1.8. Una ventaja de esta versión es que permite el uso de una versión "portable", que puede coexistir con versiones más nuevas del IDE en caso de que ya tengas una instalada.
Para instalar la versión 1.8 del Arduino IDE, sigue estos pasos:
- Ve a este enlace y descarga la versión 1.8 del Arduino IDE que corresponda a tu sistema operativo.
- Después de descargar, descomprime los archivos en la ubicación deseada.
- Dentro de la carpeta descomprimida, crea una carpeta nueva y nómbrala "portable".
Con estos pasos, tendrás instalada una versión portable del Arduino IDE 1.8, lista para incorporar la herramienta ArduImageCapture al menú de Herramientas.
Para incorporar la herramienta "ArduImageCapture" a tu Arduino IDE, sigue los pasos a continuación:
- Visita: ArduImageCapture para descargar los archivos de la herramienta .
- Una vez descargados, descomprime los archivos en una ubicación de tu elección.
- Localiza la carpeta descomprimida y cópiala.
- Navega hasta la ubicación donde instalaste la versión portable de Arduino IDE y busca la carpeta llamada "tools".
- Pega la carpeta "ArduImageCapture" dentro de la carpeta "tools".
Tras estos pasos, "ArduImageCapture" estará listo. Al abrir Arduino IDE, verás la herramienta en el menú de Herramientas.
- Navega al siguiente enlace: https://github.com/indrekluuk/LiveOV7670
- Haz clic en el botón verde "Code" en la parte superior derecha de la página.
- En el menú desplegable, selecciona "Download ZIP".
- Una vez descargado, extrae el contenido del archivo ZIP.
Para copiar las librerías necesarias, sigue estos pasos:
- Dentro del archivo que acabas de descomprimir, navega a la carpeta "src/lib".
- Aquí encontrarás las dos librerías requeridas: "LiveOV7670Library" y "Adafruit_GFX_Library".
- Copia ambas carpetas.
- Ahora navega a la carpeta "libraries" dentro de tu carpeta de Arduino IDE.
- Pega aquí las dos librerías copiadas.
- Dentro de "LiveOV7670-master", encuentra y abre la segunda carpeta "LiveOV7670-master".
- Ahora, dentro de esta carpeta, navega a la carpeta "src" y después a "LiveOV7670".
- Aquí encontrarás el archivo de proyecto "LiveOV7670", abrelo con el Arduino IDE portable.
Para activar el ejemplo que envía las imágenes a través del cable USB, debes modificar el archivo "setup.h".
Esto activará "ExampleUart.cpp", que es el código que permite el envío de imágenes por el cable USB. Recuerda guardar los cambios en "setup.h" antes de compilar y subir el sketch a tu placa Arduino.
Una vez que hayas cargado el programa en tu placa Arduino, puedes comenzar a utilizar la herramienta "ArduImageCapture" para visualizar las imágenes. Aquí te detallo los pasos:
- Abre la herramienta "ArduImageCapture" desde el menú de Herramientas en Arduino IDE.
- En la herramienta, selecciona el puerto COM correspondiente a tu placa Arduino.
- Haz clic en el botón "Listen".
Si la biblioteca LiveOV7670 detecta y configura la cámara con éxito, verás una imagen verde, esto indica que la biblioteca ha podido comunicarse con el módulo de la cámara correctamente.
Sin embargo, si la biblioteca no logra detectar el módulo de la cámara, se mostrará una imagen roja. En ese caso, te recomendaría que compruebes todas las conexiones entre la cámara y la placa Arduino.
Seguidamente las imágenes comenzarán a capturarse en tiempo real. Si deseas almacenar estas imágenes, simplemente haz clic en "Select save folder" dentro de "ArduImageCapture" y selecciona la carpeta donde deseas guardar las imágenes.
Errores comunes
- Si la imagen obtenida no es muy clara puedes ajustar el enfoque de la cámara OV7670, deberás girar físicamente el lente de la cámara (normalmente enroscado al cuerpo de la cámara). Este proceso es un poco de prueba y error, ya que tendrás que ajustar el enfoque, revisar la calidad de la imagen, y luego volver a ajustarlo hasta que obtengas una imagen clara. Recuerda hacer estos ajustes con cuidado para no dañar la lente o el sensor de la cámara.
-
Si utilizas un Arduino genuino con chip FTDI o estás trabajando desde una Mac, puede que experimentes problemas con una tasa de baudios de 1MBit/sec. En tales casos, necesitas cambiar la definición en "ExampleUart.cpp" a
#define UART_MODE 4
. Esto reduce la velocidad de transmisión a 115200 bit/sec y la resolución de la imagen a 160x120, ya que una velocidad de 115200 es demasiado lenta para transmitir imágenes de mayor resolución. Deberas elegir 115200 en la velocidad de ArduImageCapture.
Conclusión
Productos Relacionados
No comments
comments