Camaras TTL de Adafruit – Camara Serial

Camara TTL o Camara serial

Este tutorial es para el nuevo módulo cámara serie TTL con salida de vídeo NTSC. Estos módulos son una buena opción para adherir a un proyecto con microcontrolador cuando quiere tomar fotos o controlar un flujo de vídeo. Los módulos tienen una serie de características integradas, tales como la capacidad de cambiar el brillo / saturación / tono de las imágenes, auto-contraste, ajuste automático de brillo y detección de movimiento.


El módulo camara TTL fue diseñado inicialmente para fines de vigilancia. Fue diseñado para transmitir video constantemente hacia un monitor de vigilancia o un televisor (esta transmisión es en formato monocromático NTSC) y también recibir comandos desde el puerto serie de una PC o microcontrolador. Los comandos del puerto serie pueden solicitar que el módulo congele el video para luego descargar la imagen a color en formato JPEG. Así, por ejemplo, normalmente sólo visualiza vídeo en un monitor de seguridad pero cuando se detecta movimiento, el sistema toma una foto que puede guardar en un disco para su posterior análisis.

El módulo no es ciertamente de muy alta resolución, el tamaño máximo de la imagen que puede tomar es de 640×480 píxeles. Es sensible a la luz infrarroja, ya que altera un poco la reproducción del color. La razón de todo esto es que se ha creado para vigilancia, no para la fotografía. Sin embargo, hasta donde sabemos, este es el mejor módulo en el mercado.

  • Tamaño del módulo: 32 mm x 32 mm
  • Sensor de imagen: CMOS de 1/4 pulgadas
  • CMOS Píxeles: 0.3M
  • Tamaño de píxel: 5.6um*5.6um
  • Formato de salida: Estándar JPEG / M-JPEG
  • Balance de blancos: automático
  • Exposición: Automático
  • Ganancia: Automática
  • Obturador: persiana electrónica
  • SNR: 45DB
  • Rango dinámico: 60DB
  • Ganancia analógica Max: 16dB
  • La velocidad del marco: 640*480 30fps
  • Modo de escaneo: escaneo progresivo
  • Ángulo de visión: 60 grados
  • Distancia Monitoreo: 10 metros, 15 metros como máximo (ajustable)
  • Tamaño de imagen: VGA (640 * 480), QVGA (320 * 240), QQVGA (160 * 120)
  • Velocidad de transmisión: Por defecto 38400 (La ficha técnica afirma que puede cambiar la velocidad de transmisión con un comando pero no funciona de forma fiable)
  • Consumo de corriente: 75mA
  • Voltaje de funcionamiento: DC 5V +
  • Comunicación: TTL 3.3V (Tres hilos TX, RX, GND)

 

Imágenes de muestra

Aquí hay dos imágenes de ejemplo, una de exterior durante un día nublado, y otra en el interior en un día soleado.



Cableado de la camaras TTL

El módulo viene sin conector por lo que tendrá que soldar los cables en los terminales de conexión. La buena noticia es que las patillas no están demasiado cerca (unos 2 mm) y se puede utilizar cualquier cable de núcleo sólido o trenzado. Si usted no está planeando utilizar las capacidades de salida de vídeo, puede utilizar solo 4 hilos. Vamos a utilizar el rojo para el pin de + 5V, negro para el pin de tierra, blanco para el pin RX (datos en el módulo) y verde para el pin TX (datos del módulo).



Si desea obtener vídeo NTSC para conectarse a un televisor o monitor, debe soldar otro cable negro al segundo pin de tierra y un cable amarillo a la clavija CVBS.



Si tiene la versión de prueba de esta cámara, ya viene precableada con lo siguiente:

  • Rojo está conectado a + 5V
  • Negro está conectado a tierra
  • El verde es RX
  • El blanco es TX
  • El amarillo es la señal de salida de vídeo NTSC
  • Marrón es tierra del Vídeo NTSC

Prueba de la cámara

La manera más rápida de poner a prueba este módulo es utilizando una conexión al video NTSC. De esa manera, cuando se ajusta el punto de vista y enfoque se pueden ver inmediatamente los resultados. La mayoría de los TV y monitores requieren un conector RCA. Para esta prueba soldaremos un conector RCA a la cámara, utilizando un cable negro para la tierra y uno amarillo para la señal de video. Usted puede obtener los cables y accesorios RCA necesarios en cualquier tienda de electrónica. Por desgracia, no es posible cambiar la cámara de NTSC a PAL ya que su codificador de encuentra soldado a la placa y no hay manera fácil de extraerlo para cambiar el formato.

Una vez soldado el conector probaremos los resultados, conecte el cable de NTSC a su monitor, y luego conecte los cables de alimentación de la cámara (cables rojo y negro a + 5V y masa). Usted debe conseguir ver la salida de vídeo monocromo en el monitor de inmediato.




Usando CommTool

Para utilizar la herramienta de comunicaciones, una utilidad de Windows, es necesario configurar una conexión serie a la cámara. Hay dos formas en las que sugerimos hacer esto. Una es usar un modulo FTDI o convertidor de serie TTL a USB. Si usted tiene un Arduino se puede “secuestrar” el chip serie (chip FTDI o similar) mediante la subida de un código en blanco al Arduino:

Copiar código

 

Nota: ‘secuestrar’ el puerto serie sólo funciona en Arduinos con una interfaz USB por separado, como el Arduino Uno. No funciona en Arduino Leonardo.


Si estás utilizando un Leonardo, Micro, Yun, u otro controlador basado en ATmega32U4, utilice este bosquejo de Leo_passthru lugar del código “en blanco”.

Copiar código

 

Ahora, cablear hacia arriba como sigue:

camaras TTL

camaras TTL

Para la cámara resistente a la intemperie, los cables blanco y verde se intercambian en algunas cámaras! Así que por favor voltear los cables blancos y verdes si se utiliza la cámara de metal. Rojo siempre se debe conectar a 5 y Negro a Tierra.


Tenga en cuenta la resistencia de 10K como divisor, los pines de datos de serie de la cámara son de lógica 3.3v y es una buena idea dividir los 5V para que trabajen a 2.5V. Normalmente la salida del pin digital 0 es alto 5V, la forma en que conectamos las resistencias es por lo que la entrada de la cámara (cable blanco) nunca pasa por encima de 3.3V.

Descargar e instalar el software VC0706 CommTool (Podrá encontrarlo en la sección de descargas). Ejecute el software y seleccione el puerto COM donde el Arduino este conectado.

 


Luego Abra el puerto haciendo clic en “Open” y haga clic en “Get Versión”


Aparecerá un cartel que dice VC0703 – no sabemos exactamente por qué el DSP está programado con un número diferente – Sin embargo, usted debe obtener una respuesta. El siguiente botón que hay que pulsar está debajo y es “FBUF CTRL”.

 


Esto es un panel donde podemos obtener imágenes directamente desde la cámara, esto resulta bueno para la depuración.

  • Apunte la cámara hacia algo que usted desee fotografiar
  • Haga clic en  “Stop
    FBuf” y se congelara el frame buffer
  • Haga clic en “Sel File” para seleccionar el archivo para guardar como JPG


Luego presione “Read (se encuentra junto a  “Sel File”) para leer la imagen JPEG de la cámara.


Listo!, ahora puede probar fácilmente la lectura de imágenes de la cámara. Para tomar otra foto pulse “Resume” que se encuentra en la parte superior para comenzar el video de nuevo. Luego haga clic en “Stop CFbuf” cuando quiera capturar otra foto. Por último, puede seleccionar la relación de compresión que mejora o degrada la calidad de imagen, también cambiar el tiempo de transferencia de imágenes. No hay manera de cambiar el tamaño de la imagen desde este programa (fácilmente) pero podemos hacerlo usando código en Arduino. Usted puede notar que hay un desplegable para cambiar la velocidad de transmisión. Por defecto, la velocidad de transmisión es de 38400 baudios.

A pesar de que el software le permite cambiar la velocidad de transmisión se trata de un entorno muy escamoso e incluso si funciona, al encender la cámara de nuevo se restablecerá. Algunos experimentadores han inhabilitado accidentalmente sus camaras TTL al tratar de cambiar la velocidad de transmisión. Nosotros no recomendamos meterse con los ajustes de velocidad de transmisión. Si lo hace, puede desactivar permanentemente su cámara y no podrá reemplazarla!



La única otra cosa le sugerimos revisar es el botón “Imagen property”, que le permitirá ajustar la configuración de la cámara, podemos modificar la saturación un poco para obtener mejores imágenes. Al arrastrar los controles deslizantes se realice el cambio en la salida de vídeo de inmediato por lo que es práctico tener un televisor conectado para comprobar cómo funcionan los ajustes.


Hay muchas opciones para este software, esto es luna breve descripción de los demás botones. Personalmente, no sugerimos entrar en ellos a menos que usted realmente necesite.

  • Config – véase más arriba
  • Get Version- ver arriba
  • R/W  Data  – Esto es para escribir datos en bruto al chip procesador DSP. No hacer esto a menos que esté seguro de que sabes lo que estás haciendo, ya que se hace un lío con la capacidad de la cámara.
  • Color Ctrl –  Esto es para seleccionar Color, Blanco y Negro o Auto. (probablemente basado en las condiciones de iluminación). Es posible que desee mantenerlo en Auto.
  • Mirror Ctrl  – Creemos que esto es lo que puede voltear la pantalla (efecto espejo).
  • Power Ctrl  – Esto es para controlar el consumo dependiendo el modo, parece que es posible tenerlo apagado automático cuando no hay movimiento.
  • Timer Ctrl  – Hay un RTC integrado en el DSP que puede establecer, sin embargo no hay ninguna copia de seguridad de la batería por lo que si se pierde la energía la RTC se restablecerá por lo que no creemos que sea realmente útil.
  • AE  Ctrl  – Esto es para el control del auto-contraste/brillo. Por defecto el sistema de auto-selección es utilizado para uso en interiores o al aire libre. Probablemente es mejor dejarlo como está.
  • Motion Ctrl  – Esto es para el sistema de detección de movimiento. Puede ajustar la configuración y probarlo. Tenemos un codigo en Arduino para interactuar con el sistema de detección de movimiento. Por defecto funciona bastante bien, pero se puede súper modificar si lo desea.
  • OSD Config –  La hoja de protocolo y esto parece dar a entender que se puede hacer en pantalla-pantalla, pero después de mucho tiempo dedicado a ello, se determinó que no es activado en la DSP. Nunca hemos visto una cámara VC0706 que pueda hacerlo. 🙁
  • Image Property – ver arriba
  • Gamma –  Esto es para control de gamma más precisa del sensor CMOS. Parece ser que ya esta bien programado por defecto, pero puede modificarlo y experimentar con esto si desea.
  • SPI flash  – Para la lectura/escritura de almacenamiento SPI? No estoy seguro si es una buena idea meterse con esto.
  • Other Ctrl  – Para jugar con el CAD? Ni idea de lo que es esto.
  • Up/Down Load  – Esto es para leer y escribir en el flash, probablemente, para cargar un nuevo código al DSP. Nosotros no sugerir jugar con esta opción.
  • System Reset –  hace un reset del módulo. Presione este si es que el modulo no responde.
  • FBuff Ctrl – ver arriba
  • Zoom Ctrl –  El módulo se ha construido con la capacidad de ‘Pan Tilt Zoom’ pero es sólo para vídeo y suele afectar las fotos. Usted puede jugar con el PTZ aquí, es bastante básico, pero podría ser útil para alguien.

Uso de la cámara

A continuación, vamos a conectar la cámara a nuestro microcontrolador (En este caso un Arduino). Esto es bastante similar a lo anterior, excepto que estaremos utilizando dos pines digitales y un puerto serie por software para hablar con la cámara. Para guardar las imágenes, usted necesitará algún tipo de almacenamiento externo como nuestro Adaptador de tarjetas microSD. Conecte la cámara de esta manera:

 


Para la cámara resistente a la intemperie, los cables blanco y verde se intercambian en algunas cámaras, así que por favor voltear los cables blancos y verdes si se utiliza la cámara de metal. Rojo todavía se debe conectar a 5v y Negro a Tierra.


Le sugerimos probar la tarjeta microSD primero. Eche un vistazo a nuestro tutorial sobre como utilizar el adaptador microSD y compruebe que puede leer desde la tarjeta haciendo una lista de los archivos. Una vez que haya verificado el cableado para tarjeta microSD, puede volver aquí e instalar la biblioteca de la cámara VC0706. 
Visite el repositorio Github aquí. Para descargar. Haga clic en el botón de descargas en la esquina superior derecha, cambiar el nombre de la carpeta Adafruit_VC0706 sin comprimir. Compruebe que la carpeta Adafruit_VC0706 contenga los archivos Adafruit_VC0706.cpp y Adafruit_VC0706.h. Coloque la carpeta de la biblioteca Adafruit_VC0706 en su arduinosketchfolder /bibliotecas /carpeta. Puede que tenga que crear la subcarpeta bibliotecas si es su primera biblioteca. Reinicie el IDE. Si estás usando Arduino v23 o anterior, también deberá instalar la biblioteca NewSoftSerial. Descárgalo haciendo clic en este enlace e instalarlo como lo hizo con la biblioteca Adafruit_VC0706. Arduino 1.0 ha construido en este momento (llamado SoftwareSerial)


Tomar una instantánea

OK ahora usted está finalmente listo para ejecutar la demo instantánea. Abra el IDE Arduino y seleccione  Archivo-> Ejemplos-> Adafruit_VC0706-> Snapshot  y súbalo a la placa Arduino. Abra el monitor serie y podrá ver que el código tomará una foto de 640×480 y la guardara en la tarjeta microSD. A continuación, puede extraer la tarjeta y colocarla en su ordenador para ver el archivo JPG.


Hay algunas cosas que usted puede cambiar una vez que todo funcione. Una es cambiar los pines que utiliza la cámara. Puede utilizar cualquiera de los dos pines digitales, cambiando la siguiente línea:

Copiar código

 

También puede cambiar la dimensión de la imagen instantánea a 160×120, 320×240 o 640×480 cambiando estas líneas:

Copiar código

 

Simplemente elimine las barras de comentario del tamaño que desea, y comente las demás. Las imágenes más grandes tardarán más tiempo en cargar, por lo que se debe tener en cuenta lo rápido que necesita para tomar datos y guardarlo en el disco.

 

Detección de Movimiento

Una cosa interesante que la cámara posee es la detección de movimiento. Se buscará el movimiento en el flujo de vídeo y alertara al microcontrolador (mediante el envío de un paquete de datos en serie) cuando se detecte algún movimiento.

De esta manera usted puede ahorrar un poco de dinero y saltar la compra de un sensor PIR (aunque un sensor PIR será mejor para detectar animales).

Cargue el Archivo-> Ejemplos-> Adafruit_VC0706-> MotionDetect y súbalo al Arduino. Tomará una foto inmediatamente porque simplemente se ha encendido. Luego espere unos minutos y pase su mano delante de la cámara, esta automáticamente tomará otra foto. 

 


Se puede activar la detección de movimiento o desactivar llamando a setMotionDetect()

Copiar código

 

Tendrá que ‘encuestar’ a la cámara para consultar y saber cuando se detecta movimiento, llamando a la función motionDetected () – se devolverá true si el movimiento fue detectado recientemente, y false en caso contrario.

 

Ajuste del enfoque manual

Una última cosa, en los módulos de cámara, es el sistema de enfoque manual – no hay enfoque automático. Esto puede ser bueno o malo. La cámara viene con una profundidad muy lejana de enfoque que es buena para la mayoría de las cosas. Si desea cambiar el foco, le recomendamos conectarlo a un monitor de video como se muestra arriba para que pueda ver exactamente cómo se ve el enfoque de la cámara. A continuación, puede bloquear el enfoque con el tornillo de fijación


La versión de este modulo en carcasa resistente a la intemperie es un poco más difícil de ajustar, pero se puede hacer quitando la carcasa (tarda unos pasos pero todo es fácil de hacer) y luego ajustar el enfoque antes de volver a montar.

 

 

F.A.Q (Preguntas Frecuentes)

¿Puedo cambiar la velocidad de transmisión en estas Camaras TTL?

Usted puede notar que parece haber un comando para cambiar la velocidad de transmisión. Por defecto, la velocidad de transmisión es de 38400 baudios.

A pesar de que el software le permite cambiar la velocidad de transmisión se trata de un entorno muy escamoso e incluso si funciona, al encender la cámara de nuevo se restablecerá. Algunos experimentadores han deshabilitado accidentalmente sus cámaras al tratar de cambiar la velocidad de transmisión. Nosotros no recomendamos meterse con los ajustes de velocidad de transmisión. Si lo hace, puede desactivar permanentemente su cámara y ya no podrá reemplazar esta configuración!

¿Qué tan rápido puedo obtener fotografías de la cámara?

Esta es una cámara UART bastante lenta, puede tardar hasta 30 segundos para transferir una imagen. Está dirigida a las instantáneas o al tipo de fotografía time-lapse, no así para cualquier tipo de análisis en tiempo real.

 

¿Por qué el color aparece tan lavado? Se ve muy similar a una imagen monocroma.

Debido a que el modulo fue diseñado para vigilancia, la sensibilidad de la cámara se extiende en el rango infrarrojo. Esto significa que los objetos que reflejan o que emiten rayos infrarrojos aparecerán más ligeros que para el ojo humano. En algunos casos, la imagen aparecerá lavada y casi monocromática. Una representación más natural se puede lograr utilizando filtros de bloqueo IR tales como B + W 486. (Gracias a un miembro del foro “azhilyakov” podemos ver las fotos para tener una idea de los resultados)



Descargas

Herramienta Comm VC0706 – software de control de Windows (Obras en Parallels en MacOSX no cuenta con el código fuente de esta herramienta con el fin de directamente portarlo a Mac/Linux) biblioteca Adafruit VC0706 Arduino Github repositorio NewSoftSerial biblioteca descarga

 

Bibliotecas Alternas no compatibles
https://github.com/oskarirauta/Adafruit-VC0706-Serial-Camera-Library es una versión para el Arce – No escribimos este código y no lo apoyamos, pero podría ser útil para los usuarios de arce!

Comments are closed.