Procesamiento de video NTSC para visualización SPI

Recientemente comencé un proyecto en el que quiero usar esta pequeña cámara y hacer que transmita el video en vivo a una pantalla LCD en color muy pequeña, como esta a través de un Arduino.

Desafortunadamente, la cámara tiene una salida NTSC y la pantalla LCD tiene una entrada SPI, ¿hay alguna forma de que pueda mostrar las imágenes de la cámara en la pantalla LCD o tendré que usar una pantalla diferente?

¿Seguiste el segundo enlace en la descripción de la cámara, donde dice "Tenemos un tutorial muy detallado..."? Parece que su pregunta podría responderse bastante bien por lo que acabo de ver allí.
@JustJeff El tutorial muestra cómo conectarlo directamente a una pantalla que tiene un conector RCA, la pequeña pantalla LCD que no quiero usar no tiene uno.

Respuestas (3)

Bueno, necesitaría digitalizar el video, extraer información de luminancia, crominancia y sincronización, reducir la escala de 525 líneas a 128 líneas y enviar los datos a través de SPI en tiempo real. Esto suena como un no-arranque para mí.

Sería más fácil usar la salida digital JPEG de la cámara y descomprimirla, ya que la resolución es compatible con la pantalla (160 X 120 frente a 160 X 128) aunque aún no obtendrías video en tiempo real.

@clabacchio: la página web del proveedor de la cámara dice: "... emite video NTSC y puede tomar instantáneas de ese video y transmitirlas a través del enlace en serie TTL". Considero que esto significa que emite tanto analógico como digital. Si la salida es puramente datos TTL que contienen imágenes JPEG, ¿por qué mencionan NTSC?
@clabacchio: el enlace de la cámara del OP está en makershed.com. Mire su gran imagen de la cámara . El pin 6 está marcado como 'CVB' - video compuesto. Otra imagen muestra esto conectado a un conector RCA amarillo.
Espera, espera, lo siento. La interfaz serial solo permite la descarga de instantáneas, tienes razón.

EDITAR: Me equivoqué con el video a través de la interfaz TTL: puede tomar una instantánea y enviarla a través del UART, pero para el video, la única forma es la salida analógica. Entonces, para ello necesitará un ADC rápido y una manipulación digital, y no será tan fácil.

Sin embargo, puede usarlo para enviar imágenes con una velocidad de fotogramas baja, como cámaras web de monitoreo del clima en "tiempo real".

Lo que debe definir es la codificación de la imagen de la cámara web (profundidad de bits y velocidad de fotogramas) y, finalmente, escribir el código para convertirlo en un formato compatible con la pantalla (tiene diferentes opciones, lea la hoja de datos).

También es posible reenviar directamente la imagen desde la entrada TTL a la entrada SPI sin procesamiento, pero aún debe manejar la comunicación y será más fácil si su uC tiene las interfaces UART y SPI.

Así que no es imposible, pero requiere algo de trabajo.

¿Conoce alguna biblioteca que pueda procesar y convertir el video?
@ johnny1bucket no, nunca lo hice :) pero primero puede mirar la cámara y mostrar los controladores, y luego intentar buscarlo en Google
@ johnny1bucket: no voy a seguir persiguiéndolo, pero si observa el final del tutorial (vea el enlace en la descripción de la cámara, después del enlace de OP), hay un par de posibles candidatos.

Capturar una señal de video NTSC en blanco y negro no es demasiado difícil, especialmente si no está demasiado preocupado por la resolución o la velocidad de fotogramas. Había un dispositivo de captura de video que se conectaba al puerto de impresora de un Amiga 1000, por ejemplo. No había microcontroladores sofisticados de millones de megahercios en ese entonces, solo algo de lógica discreta, un muestreo y retención y un ADC no muy rápido que IIRC capturó datos de 5 bits a 15 KHz (alrededor de 5 segundos por cuadro, en blanco y negro ). Esperaría que quisiera y pudiera capturar datos monocromáticos más rápido que con un microcontrolador decente. Si desea capturar una imagen cruda de 128x100 a 30 fps, probablemente necesite capturar alrededor de 0,8 megapíxeles/segundo (capturar 1/4 de los píxeles horizontalmente en cada línea de exploración, en dos campos).

Capturar el color de una fuente de video NTSC "general" es mucho más difícil, ya que no existe una relación fija entre la fase cromática y la posición horizontal. Sin embargo, muchas fuentes de video, incluidas cámaras, computadoras y reproductores de DVD, tienen una relación fija entre el croma y la posición horizontal (existe un estándar sobre cuál debe ser la relación para un video "perfecto", pero no todos los dispositivos lo cumplen; la mayoría de los dispositivos, otros que las videograbadoras tendrán una relación consistente, pero pueden o no coincidir con el estándar). Si puede diseñar en torno a una fuente de entrada conocida en particular y puede medir con precisión los tiempos con respecto a la sincronización horizontal (la precisión del tiempo será mucho más importante que con el video monocromático), el muestreo de color puede ser práctico.

Sin saber lo que quiere hacer, no puedo decir cuál sería el mejor enfoque. Es mejor que utilice una pantalla LCD con una entrada de video compuesto y video superpuesto. La superposición de color es generalmente una molestia, aunque si desea una "pantalla dividida" horizontal, es posible hacer trampa (los equipos con circuitos de color analógicos no funcionarían bien si una parte de la pantalla usara una fase de color diferente de otra parte, pero las pantallas LCD con una interfaz digital puede que no le importe; si generó su propio croma en las líneas en las que quería mostrar su propio color y dejó que la cámara pasara el croma en otras, no estoy seguro de lo que sucedería).