CMUcam3 Frame Grabber#

The CMUcam3 Frame Grabber is a simple utility that can be used to test your CMUcam3. Its primary purpose is to act as a terminal program similar to HyperTerminal or Minicom. It also allows you to view jpeg images returned from the camera. You need run the CMUcam2 Emulation firmware on the camera to use this program. The Frame Grabber requires that you install .NET version 2.0 or later which can be found on our software page. Unfortunately, the CMUcam3 Frame Grabber only works in Windows. The source can be found in the tools directory (called cc3_image_viewer). For Linux or Mac, please try using the CMUcam2GUI.

Para iniciar la aplicación:

  • Haga doble clic en CMUcam3 Frame Grabber

  • Seleccione el puerto COM correcto en el menú desplegable «Available COM Ports»

  • Haga clic en el botón «Connect»

  • Encienda su CMUcam3 ejecutando el firmware de emulación de la CMUcam2 (reinicie si ya está encendida)

  • Debería ver aparecer texto en la ventana «Terminal Console»

  • Presione «Grab Image» para tomar una foto

Aquí hay una descripción de los campos de la pestaña «Main» de la interfaz:

  • Puertos COM disponibles

    • Esto muestra una lista de los puertos serie que Windows reconoce

  • Velocidad en baudios

    • Esto le permite cambiar la velocidad en baudios si desea usar este programa como cliente de terminal

  • Timeout

    • Esto establece el tiempo de espera para cualquier respuesta serie que el programa pudiera estar esperando

      • Esto normalmente no necesita cambiarse

  • Connect

    • Abre una conexión serie

  • Disconnect

    • Cierra la conexión serie

  • Send

    • Este botón transmitirá cualquier texto que haya escrito en el cuadro de texto ubicado a la izquierda del botón

    • El cuadro de texto añade automáticamente un carácter de retorno, por lo que con solo hacer clic en «Send» debería obtener una respuesta ACK de la CMUcam2

    • De forma predeterminada, el foco está en el cuadro de texto de entrada, por lo que solo tiene que escribir y presionar Intro para enviar datos

  • CIF / QCIF

    • Estos botones establecen la resolución de la imagen que se muestra

    • De forma predeterminada, la CMUcam3 enviará una imagen de baja resolución que se escala para llenar toda la ventana

  • Grab Image

    • Esto envía el comando «SJ» (Send JPEG) a la CMUcam3 y muestra el resultado

  • Loop

    • Esta casilla de verificación hace que el cliente presione automáticamente «Grab Frame» cada «Refresh Interval» milisegundos

    • Si la CMUcam3 no puede producir una imagen en el tiempo especificado, el programa terminará por tiempo de espera con un error

      • Si esto sucede, aumente el intervalo de actualización o disminuya la resolución de la imagen

  • Intervalo de actualización

    • Este parámetro establece con qué frecuencia se envía el comando «Grab Image» cuando «Loop» está marcado

  • Stop

    • Esto detiene la captura de las imágenes en bucle

La pestaña «Settings» le permite establecer algunas características comunes de la CMUcam3. Cada botón que presiona simplemente transmite los comandos correspondientes de la CMUcam2 a través del puerto serie.

Aquí hay una descripción de los campos de la pestaña «Setting» de la interfaz:

  • Baja resolución / Alta resolución

    • Estos botones alternan entre alta resolución CIF (352x288) o baja resolución QCIF (176x144)

    • Esto corresponde a los comandos serie «HR 1» y «HR 0»

  • RGB / YCrCb

    • Esto selecciona el modo de píxel nativo de la cámara como RGB o YCrCb

    • Esto corresponde a los comandos de la CMUcam2 «CR 18 44» o «CR 18 36»

  • Down Sample

    • Esto establece la cantidad de submuestreo basado en el firmware

    • Esto corresponde a «DS X Y» donde X e Y son los valores establecidos en cada cuadro de selección

  • Window

    • Esto establece los parámetros de la ventana virtual para la cámara

    • Esto corresponde al comando «VW x0 y0 x1 y1» de la CMUcam2

  • Controlador de servos

    • Esto le permite establecer la posición del servo de los 4 puertos de servo de la CMUcam3

    • Esto hará que se muevan los servos conectados a la CMUcam3

    • Esto corresponde al comando «SV» de la CMUcam2

You can send any CMUcam2 command using the «Send» button and the text input box. For example, sending «GM» (Get Mean) returns the mean color of the image. To stop the streaming, simply click «Send» or press return. This program does not visualize most of the CMUcam2 commands. For visualization try using the CMUcam2GUI java program.

Resolución de problemas#

¿Por qué se congela la cámara cuando cambio propiedades mientras capturo imágenes en un bucle?

  • Lamentablemente, el CMUcam3 Frame Grabber no es lo suficientemente inteligente como para hacer realmente un seguimiento de lo que está haciendo. Así que si está iterando imágenes en bucle y cambia la resolución a algo más grande, entonces puede enviar el siguiente comando «Grab Frame» antes de que la imagen de alta resolución termine de transferirse. Después de que esto sucede unas cuantas veces, el Frame Grabber se desincroniza con la cámara y el serie agota su tiempo de espera. Normalmente, si presiona «Stop» antes de cambiar los parámetros, y se asegura de establecer el «Refresh Interval» en un valor mayor para imágenes de alta resolución, entonces no obtendrá errores de comunicación ni de tiempo de espera.

¿Por qué no puedo iterar en bucle con imágenes de alta resolución?

  • Este es el mismo problema descrito por la pregunta anterior. Si el «Refresh Interval» es demasiado pequeño, entonces la cámara solicitará imágenes más rápido de lo que puede producirlas.