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.