Sincronización de dos sensores de imagen OV7670

0

Me gustaría crear una cámara estéreo simple sincronizada con cuadros. Descubrí que hay tableros OV7670 baratos (sin memoria FIFO) que funcionan con tableros Arduino (o compatibles); estos sensores no tienen un oscilador incorporado y aceptan la señal del reloj externo. La idea básica es alimentar a ambas cámaras con una señal de reloj común.

Las cámaras se controlan a través de interfaces I2C donde se establece la resolución, el formato de imagen, etc. Creo que también puede ser necesario configurar ambos sensores exactamente al mismo tiempo, ya que el cambio de resolución / tasa de cuadros probablemente afectará la sincronización. Esto puede llevar al requisito de dos buses I2C separados que pueden emitir un comando exactamente al mismo tiempo.

¿Alguien podría probar que mis suposiciones son correctas o incorrectas, por favor? ¿Y posiblemente me dirija a un hardware capaz de hacer las cosas paralelas de I2C que necesito? Gracias.

    
pregunta Kozuch

3 respuestas

1

Dudo mucho que puedas lograr la sincronicidad emitiendo comandos I2C, pero vale la pena intentarlo. Verifique con un alcance cómo los comandos I2C afectan a los marcos.

Creo que solo podrías conectar los pines I2C de ambas cámaras en paralelo. (Suponiendo que no necesites leer de la cámara, no se necesita IIRc a menos que quieras hacer algo sofisticado).

Si falla, podría considerar la posibilidad de sincronizar un chip de cámara desde un PLL que es impulsado por la diferencia de fase de los dos impulsos de fotograma (y quizás de línea).

    
respondido por el Wouter van Ooijen
1

En resolución de 640x480 no estamos hablando de imágenes de alta calidad, obviamente. Teniendo esto en cuenta, la diferencia de 1/30 seg entre dos imágenes no debería afectar mucho el resultado. Además, el cerebro humano es muy eficiente en el procesamiento de discrepancias y en la construcción de una imagen completa.

Creo que deberías intentar tomar los dos fotogramas más cercanos de ambas cámaras y ver qué pasa. No necesitas ninguna interfaz I2C especial para esto.

Si esto no funciona para usted como se esperaba, entonces sugiero la segunda sugerencia de @ wouter-van-ooijen sobre el uso de múltiples salidas de temporización de generadores de temporización como entradas para PLL en XCLK de una de las cámaras. Tenga en cuenta que tampoco necesita hacer nada especial con I2C para esto.

La conclusión es que I2C no se usa para el control directo de cuadros o la sincronización de ninguna manera. Como tal, no tiene sentido usar dos canales I2C, y mucho menos sincronizarlos.

    
respondido por el Maple
1

Una idea que podría probar es suministrar XCLK de uno de los sensores a través de un generador de reloj ajustable, y acelerar / ralentizar ese reloj dependiendo de la señal VSYNC de que el sensor llegue temprano o tarde. Después de un tiempo, terminará con ambos sensores funcionando a la misma frecuencia XCLK con señales VSYNC sincronizadas.

    
respondido por el Dmitry Grigoryev

Lea otras preguntas en las etiquetas