Começamos com a câmera do Raspberry! Graças a ela é possível, entre outras coisas, tirar fotos, transmitir a imagem pela rede e até mesmo detectar movimentos. No caso dos iniciantes, muitos se perguntam como fazer isso, pois pode parecer um nível mais complexo para eles. Mas nesta seção você vai descobrir que não é.

Muitas câmeras diferentes podem ser conectadas ao RPi. Focamos em usar uma câmera dedicada de framboesa, ou seja, Raspberry Pi Camera HD v2, a mais difundida.

Primeiro, algumas palavras sobre os parâmetros técnicos da câmera:

· Resolução máxima: 8 Mpx (3280x2464),

· Modos de vídeo: 1080p30 (Full-HD), 720p60, 640x480p90 (VGA),

· Interface: CSI,

· Peso: 3 g,

· Dimensões: 25 x 24 x 9 mm.

A câmera HD Raspberry Pi usa CSI (Camera Serial Interface), que é dedicada especialmente para câmeras. Graças a isso, todo o conjunto não cobra o barramento USB. Além disso, esta interface suporta um acelerador gráfico (GPU) incorporado no Raspberry Pi.

10.1. Conectando a câmera

Começamos conectando a câmera, que se limita apenas a inserir a fita:

· No Raspberry Pi, conecte a fita ao conector descrito como CAMERA. A fita deve olhar para os pinos de prata em direção ao conector HDMI.

· Coloque a fita na câmera para que os contatos prateados sejam direcionados para a lente.

Preste atenção apenas à posição dos contatos de prata indicados acima, não ao lado da fita onde está o texto. Ao conectar a fita, faça o seguinte: levante a trava do conector (uma espécie de placa), insira a fita e pressione a trava do conector. Você não precisa se preocupar com a posição da câmera, a imagem pode ser girada programáticamente.

10.2. Tirando fotos

Começamos com a função básica, que é tirar fotos. Em primeiro lugar, como sempre, vamos ao menu de configurações e ativar a câmera.

Para capturar as fotos, usaremos o programa raspistill. O uso básico do programa de captura de imagens é simples. Simplesmente digitando o comando:

raspistill - ou teste.jpg

Em vez de testar.jpg pode dar qualquer nome de arquivo. A foto será tirada exatamente 5 segundos depois de dar o comando acima. O arquivo .jpg teste será salvo no diretório do qual executamos o programa raspistill.

Se tivermos um monitor conectado ou usarmos VNC para visualizar a imagem, basta procurar a foto e clicar duas vezes nela para ver a foto.

Se as fotos estiverem embaçadas, podemos mudar o foco girando a lente da câmera. A operação deve ser realizada muito bem manualmente ou com uma pequena ferramenta. Tenha cuidado ao ajustar, pois é fácil arranhar a lente!

10.3. Comandos

Alguns comandos úteis que valem a pena conhecer são:

· Desligue a Pré-visualização. Desabilitar a visualização indesejada adicionando a opção -n:

raspistill -n -o teste.jpg

· Mude o temporizador de captura. Pode ser alterado com a opção t-seguida pelo tempo em milissegundos:

raspistill -n -o teste.jpg -t 100

Nota: Para evitar problemas de qualidade e assim por diante é recomendado o uso de pelo menos 100ms.

· Rotação de imagem. Basta usar o parâmetro -rot, que gira a imagem no ângulo selecionado, que será um múltiplo de 90 graus:

raspistill -n -o teste.jpg -t 100 -rot 180

· Reflexo vertical ouhorizontal. Temos os comandos para reflexão horizontal (-hf ) e verticalmente (-vf ):

raspistill -n -o teste.jpg -t 100 -hf

raspistill -n -o teste.jpg -t 100 -vf

· Alterar a resolução. Nem sempre estamos interessados na mais alta resolução, podemos economizar muito espaço reduzindo o tamanho da imagem baixada. Ajuste a largura com a opção -w e a altura com -h . Uma foto com resolução VGA padrão seria:

raspistill -n -o test_VGA.jpg -t 100 -w 640 -h 480

· Adicione data e hora ao arquivo. O programa raspistill pode ser executado automaticamente, por exemplo, periodicamente ou quando um evento específico é detectado. Nesse caso, seria conveniente ser capaz de salvar vários arquivos em vez de substituir o mesmo teste.jpg cada vez. O programa raspistill tem duas opções para usar o tempo atual no nome do arquivo.

A opção -dt adiciona a data e a hora atuais ao nome do arquivo. Enquanto o parâmetro -ts adiciona o chamado relógio, que é o número de segundos desde 1 de janeiro de 1970 (este é o método tradicional de renderização de tempo unix). Para usar essas possibilidades, no nome do arquivo é preciso inserir o marcador % d, que será substituído pela data em que a foto foi tirada.

Podemos emitir os seguintes dois comandos para testes no dia 20/10/2020:

raspistill -n -o test_%d.jpg -t 100 -dt #Se salvos como test_10202041040.jpg

raspistill -n -o test_%d.jpg -t 100 -ts #Se salvos como test_1603196029.jpg

· Outras configurações. Há vários comandos a mais. As informações mais importantes podem ser encontradas na descrição que aparece depois de chamar o comando raspistill sem mais parâmetros, então todas as informações e comandos aparecerão em uma lista. Com os atributos descritos lá, você também pode alterar parâmetros como ISO, balanço de branco, brilho e contraste.

10.4. Streaming de imagens com Movimento

Outro aplicativo igualmente interessante para a câmera Raspberry Pi é o pacote Motion, que permite, entre outras coisas, transmitir a imagem pela rede. Além disso, também pode ser usado para rastrear o movimento dos objetos.

Começamos instalando o programa inserindo o comando:

sudo apt instalar movimento

A versão instalada do pacote Motion padrão não tem suporte integrado para nossa câmera, por isso precisamos instalar o driver apropriado agora: Video4Linux (V4L). Para isso, emitimos o seguinte comando, observando que o penúltimo caractere é um "L" minúsculo e não o número "1":

sudo modprobe bcm2835-v4l2

Agora, um novo dispositivo aparecerá no diretório /dev, que corresponderá à webcam: /dev/video0.

Esta é a interface padrão usada por câmeras no Linux.

O pacote Motion instalado tem ótimas possibilidades e muitas opções disponíveis. O arquivo de configuração padrão é /etc/motion/motion.conf . O acesso ao diretório /etc requer direitos de administrador, então edite o arquivo com o comando:

sudo nano /etc/motion/motion.conf

Depois de executar o arquivo, precisamos fazer algumas mudanças importantes. Primeiro, procuramos a linha onde o stream_localhost. Por padrão que está ligado, nós mudamos para off.

Você pode usar o atalho CTRL + W para procurar por nano texto.

Nós salvamos o arquivo e deixamos. Em seguida, executamos o pacote Movimento com o comando:

movimento sudo

Quando o programa começa, executamos o navegador do nosso PC. Na barra de endereços, digite o endereço IP com a porta 8081 (por exemplo, http://192.168.0.250:8081/). Depois de um tempo, devemos ver uma pequena transmissão da nossa webcam (1 FPS).

Pressione CTRL+C para terminar o programa de console.

Para aumentar os fps (quadros por segundo/quadros por segundo) podemos modificar as seguintes linhas que por padrão estão definidas como 20:

· framerate: razão de framerate

· stream_maxrate: taxa máxima de quadros no fluxo

Para aumentar a resolução:

· largura: largura (definimos para 640),

· alta: altura (definimos para 480).

10.5. Detecção de movimento em RPi

Como podemos ver, transformamos Raspberry Pi em uma webcam. Vale lembrar que o pacote Motion excede em muito as capacidades das câmeras típicas. Ele permite detectar movimentos, gerar eventos depois de detectar um intruso, tirar fotos ou vídeos automaticamente, relatar eventos, etc.

Você pode encontrar mais informações sobre o programa no site do projeto: https://motion-project.github.io/

Para este teste, você pode executar, por exemplo, a opção responsável pelo rastreamento de movimento. Para isso, basta ativar a opção no arquivo de configuração, que é chamado de locate_motion_mode (mudamos de off para on). Os itens móveis serão agora marcados com um retângulo na imagem transmitida. Para que o elemento seja delineado com um retângulo vermelho, locate_motion_style também deve ser alterado para caixa vermelha .