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.