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 a aplicação:

  • Dê um duplo clique em CMUcam3 Frame Grabber

  • Selecione a porta COM correta no menu suspenso “Available COM Ports”

  • Clique no botão “Connect”

  • Ligue a sua CMUcam3 executando o Firmware de Emulação da CMUcam2 (reinicie se já estiver ligada)

  • Você deve ver o texto aparecer na janela “Terminal Console”

  • Pressione “Grab Image” para tirar uma foto

Aqui está uma descrição dos campos na aba “Main” da interface:

  • Portas COM Disponíveis

    • Isso mostra uma lista de portas seriais que o Windows reconhece

  • Taxa de Baud

    • Isso permite que você altere a taxa de baud se quiser usar este programa como um cliente de terminal

  • Timeout

    • Isso define o timeout para quaisquer respostas seriais que o programa possa estar aguardando

      • Isso geralmente não precisa ser alterado

  • Conectar

    • Abre uma conexão serial

  • Desconectar

    • Fecha a conexão serial

  • Enviar

    • Este botão transmitirá qualquer texto que você digitou na caixa de texto localizada à esquerda do botão

    • A caixa de texto adiciona automaticamente um caractere de retorno, então apenas clicar em “Send” deve lhe dar uma resposta ACK da CMUcam2

    • Por padrão, o foco está na caixa de texto de entrada, então você pode simplesmente digitar e pressionar enter para enviar dados

  • CIF / QCIF

    • Esses botões definem a resolução da imagem que está sendo exibida

    • Por padrão, a CMUcam3 enviará uma imagem de baixa resolução que é dimensionada para preencher a janela inteira

  • Grab Image

    • Isso envia o comando “SJ” (Send JPEG) para a CMUcam3 e exibe o resultado

  • Loop

    • Esta caixa de seleção faz com que o cliente pressione automaticamente “Grab Frame” a cada “Refresh Interval” milissegundos

    • Se a CMUcam3 não conseguir produzir uma imagem no tempo especificado, o programa expirará (timeout) com um erro

      • Se isso acontecer, aumente o Intervalo de Atualização ou diminua a resolução da imagem

  • Intervalo de Atualização

    • Este parâmetro define com que frequência o comando “Grab Image” é enviado quando “Loop” está marcado

  • Parar

    • Isso interrompe a captura das imagens em loop

A aba “Settings” permite que você configure alguns recursos comuns da CMUcam3. Cada botão que você pressiona simplesmente transmite os comandos correspondentes da CMUcam2 pela porta serial.

Aqui está uma descrição dos campos na aba “Setting” da interface:

  • Baixa Resolução / Alta Resolução

    • Esses botões alternam entre Alta Resolução CIF (352x288) ou Baixa Resolução QCIF (176x144)

    • Isso corresponde aos comandos seriais “HR 1” e “HR 0”

  • RGB / YCrCb

    • Isso seleciona o modo de pixel nativo da câmera como RGB ou YCrCb

    • Isso corresponde aos comandos “CR 18 44” ou “CR 18 36” da CMUcam2

  • Down Sample

    • Isso define a quantidade de redução de amostragem baseada no firmware

    • Isso corresponde a “DS X Y” onde X e Y são os valores definidos em cada caixa de seleção

  • Janela

    • Isso define os parâmetros da janela virtual para a câmera

    • Isso corresponde ao comando “VW x0 y0 x1 y1” da CMUcam2

  • Controlador de Servo

    • Isso permite que você defina a posição do servo das 4 portas de servo da CMUcam3

    • Isso fará com que quaisquer servos conectados à CMUcam3 se movam

    • Isso corresponde ao comando “SV” da 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.

Solução de Problemas#

Por que a câmera congela quando eu altero propriedades enquanto capturo imagens em loop?

  • Infelizmente, o CMUcam3 Frame Grabber não é inteligente o suficiente para realmente acompanhar o que você está fazendo. Então, se você estiver executando imagens em loop e alterar a resolução para algo maior, ele pode enviar o próximo comando “Grab Frame” antes que a imagem de alta resolução terminasse de ser transferida. Depois que isso acontece algumas vezes, o Frame Grabber sai de sincronia com a câmera e a serial expira (timeout). Normalmente, se você pressionar “Stop” antes de alterar parâmetros e se certificar de definir o “Refresh Interval” para um valor maior para imagens de alta resolução, então você não terá erros de comunicação ou de timeout.

Por que não consigo fazer loop com imagens de alta resolução?

  • Este é o mesmo problema descrito pela pergunta anterior. Se o “Refresh Interval” for muito pequeno, então a câmera solicitará imagens mais rápido do que consegue produzi-las.