Perguntas Frequentes#

Perguntas Gerais#

O que é único na CMUcam1?#

Tradicionalmente, são necessários computadores rápidos para captar e processar imagens de câmara. Também é necessário escrever o software para realizar este processamento. Por causa disto, é difícil utilizar a visão como um sensor em sistemas simples.

O sistema de visão CMUcam1 utiliza um microcontrolador rápido e de baixo custo para tratar de todo o processamento de alta velocidade dos dados da câmara e contém software para realizar tarefas de visão simples. Como o utilizador pode optar por gerar apenas informação de alto nível e baixa largura de banda a partir do sistema de visão, como que o objeto vermelho está na posição X-Y, é possível a um processador simples, como um microcontrolador PIC, ler estes dados e dirigir um pequeno robô em tarefas como perseguir uma bola colorida. O sistema de visão CMUcam1 torna possível ignorar a complexidade da interligação da câmara e utilizar a visão tal como qualquer outro sensor (por exemplo, sonar) frequentemente utilizado em sistemas robóticos.

Qual é a taxa de fotogramas da CMUcam1?#

A taxa de fotogramas mais rápida é de 16,7 fotogramas por segundo. Isto significa que a CMUcam1 consegue dizer-lhe a posição de um objeto cerca de 17 vezes por segundo. Utilizando o protocolo série por software, pode abrandar isto se desejar.

Que baud rates a CMUcam1 suporta?#

A partir da versão mais recente do firmware (v1.12), a CMUcam1 pode comunicar a baud rates de 9600, 19200, 38400 ou 115200. O baud rate é selecionado através das configurações de jumpers na placa.

Como atualizo o firmware da minha CMUcam1?#

Se estiver atualmente a utilizar o firmware v1.11, não há razão para atualizar, a menos que precise de suporte para os baud rates mais baixos. A versão 1.11 suporta 38400 e 115200 baud. A versão 1.12 suporta esses baud rates e adiciona suporte para 9600 e 19200 baud. Para atualizar o seu firmware, precisará de reprogramar a memória flash no chip do seu processador. Se tiver um programador, pode transferir a versão atual a partir da nossa página Transferências e reprogramar o processador por conta própria.

A CMUcam1 funciona no exterior?#

A CMUcam1 funciona no exterior, mas não sob luz solar direta. A câmara CMOS que utilizamos não tem um filtro de IR de alta qualidade, pelo que a luz solar satura os pixels vermelhos e a imagem torna-se, essencialmente, monocromática sob luz solar direta. É possível adicionar um filtro externo para melhorar o funcionamento no exterior. Temos um pequeno documento que lhe mostra como as condições de iluminação afetam a CMUcam1, que pode transferir aqui.

Posso escrever código personalizado para a CMUcam1?#

Certamente. Para isso, peça-nos o código-fonte do firmware, encomende um ambiente de programação C para o chip Ubicom e mãos à obra. Quando lhe enviarmos o código-fonte do firmware, também lhe enviaremos um resumo de como o código está estruturado e informação sobre o ambiente de programação que utilizamos.

Quanta energia consome a CMUcam1?#

O sistema completo consome cerca de 200 miliampères.

Qual é o campo de visão da CMUcam1?#

Isto depende da lente que colocar na câmara CMOS. Se encomendar a câmara CMOS tal como é vendida de série, ficará com um campo de visão de cerca de 25 graus, o que é relativamente estreito. No entanto, pode encomendar por medida lentes de maior ângulo quando encomendar a sua câmara CMOS.

Que processador utiliza a CMUcam1?#

O nosso código de processamento de imagem reside num chip microcontrolador da Ubicom a funcionar a 75 MHz, o SX28AC. Este chip lê todos os pixels da câmara CMOS através de uma interface paralela e faz todo o processamento em tempo real. Depois comunica os resultados ao seu microcontrolador ou computador através de uma interface de porta série.

Que câmara CMOS utiliza a CMUcam1?#

Utilizamos uma câmara CMOS que utiliza a câmara CMOS num chip OV6620 da OmniVision. Utilizamos uma placa de câmara CMOS com o número de modelo C3088 na qual estão montados o sensor, um conector e uma lente.

A CMUcam1 funciona com outras câmaras CMOS?#

Não. Atualmente, o sistema de hardware e software foi concebido para funcionar especificamente com a câmara CMOS OV6620 da OmniVision. O sistema teria de ser completamente reconcebido para funcionar com outra câmara.

Existe algum sítio onde possa encontrar respostas a perguntas adicionais que tenha?#

Sim. Temos alguma informação sobre questões mais técnicas nesta página.

Onde posso saber mais sobre visão por computador em geral?#

A CMUcam1 realiza a simples tarefa de visão por computador para a qual foi concebida, num pacote pequeno e económico. No entanto, o problema geral de visão por computador de tentar reconhecer objetos arbitrários sob condições arbitrárias continua a ser um tópico de investigação muito ativo e muito longe de estar próximo de ser um problema resolvido.

Se quiser aprender mais sobre visão por computador, poderá querer experimentar estas ligações:

Perguntas Técnicas#

Qual é a sequência exata de passos executados no arranque pelo modo de demonstração?#

Aqui está a sequência exata que o modo de demonstração executa no arranque:

  1. Faça o reset à câmara.

  2. Aguarde 5 segundos para que o ajuste automático dos parâmetros da câmara estabilize.

  3. Envie a string de registo da câmara: CR 18 32 19 32 que seleciona o modo YCrCb e desliga o auto gain.

  4. Execute o comando TW.

Depois disso, a câmara começará a mover um servo em direção à massa central da cor detetada pelo comando TW.

Qual é a sequência exata de passos executados pelo comando «TW»?#

Aqui está a sequência exata que o comando TW executa:

  1. Reduz a janela para 1/4 do tamanho (em cada dimensão) da janela atual, para uma nova janela centrada no centro da janela atual.

  2. Chame get mean.

  3. Restaure a janela para o tamanho completo da imagem.

  4. Defina o valor máximo e mínimo de cada canal de cor como sendo a média desse canal +/- 30.

Depois disso, a câmara começará a transmitir pacotes do Tipo C, M ou N.

Em que condições é que o LED de seguimento se acende quando o modo automático está ativado?#

O LED acenderá quando o pixel_count >= 2 for devolvido. O valor devolvido é pixel_count = (actual_pixel_count + 4) / 8.

Se a câmara CMOS tem uma resolução de 352 x 288 pixels, porque é que a resolução da CMUcam1 é apenas 80 x 143?#

A questão aqui é como funcionam as câmaras digitais a cores. Em todas as câmaras digitais a cores (mesmo as muito caras - exceto algumas baseadas em tecnologia muito avançada) só se obtém uma medição de canal de cor por localização de pixel; a isto chama-se filtragem em mosaico. Aqui está um bom diagrama que ajuda a explicar isto:

Mosaic

(Diagrama cortesia da Foveon, Inc.)

Assim, o que pode ver é que os pixels podem ser pensados como estando dispostos em grupos de quatro, onde há duas medições de G e uma medição de R e uma de B por grupo. Se descartar uma das medições de G (o que fazemos), verá que a resolução real de uma câmara 352x288 está mais próxima de 176x144. Fazemos funcionar a câmara em modo de meia resolução, que salta cada segundo bloco 2x2 horizontalmente, o que dá 88x144. Devido a limitações de memória no processador, descartamos 8 colunas horizontalmente e uma linha verticalmente, que contém um padrão de teste, o que dá 80x143 como resolução final.

Apenas a título informativo, as câmaras digitais padrão utilizam técnicas de interpolação complexas para tentar preencher os valores de cor em falta em cada pixel e dar-lhe algo um pouco mais próximo da resolução total do sensor.

Como posso focar a CMUcam1 com precisão?#

Claro que a melhor forma de proceder com a focagem é tirar frame dumps utilizando a GUI. Poderá não ter um computador à mão, ou poderá estar a utilizar uma CMUcam1 BotBall, que não tem resolução suficiente no seu baud rate fixo de 9600 para que isto funcione bem.

Nesse caso, existem duas alternativas. Primeiro, pode tentar contar as roscas. A lente não está totalmente enroscada no ponto de foco máximo. Em vez disso, fica cerca de 1 milímetro de rosca à vista. Em termos de número de roscas, isso corresponde a cerca de 2 roscas visíveis na folga entre a lente e a montagem da lente.

A segunda alternativa baseia-se na ideia de que, quando uma imagem está nítida, as zonas escuras são as mais escuras e as claras são as mais claras. Por outras palavras, quando o contraste é maior. Quando a imagem fica desfocada, os extremos esbatem-se para uma distribuição mais uniforme de intensidades. Assim, se iniciar o modo de streaming e depois chamar GM (Get Mean), pode focar em tempo real. Observe o desvio do vermelho. À medida que foca nitidamente um objeto de alto contraste (como um pedaço de papel com muita escrita) à distância pretendida, haverá um pico notável no desvio do vermelho quando estiver mais nitidamente focado. Note que esta abordagem à focagem requer que mantenha a câmara e o alvo bastante firmemente fixos enquanto roda a lente.