Brincando com a câmera do Raspberry

Câmera oficial - RPi CSI
Câmera oficial - RPi CSI
Câmera oficial – RPi CSI

É muito, mas muito fácil “mesmo” usar a câmera do Raspberry Pi. Tanto para a verde como para a Noir (preta), o processo é rápido e indolor, tanto na parte física quanto na parte lógica. Vamos diretamente à brincadeira para comprovar o que estou afirmando.

Instalação física da câmera

Com a board desligada, basta colocar o flat na direção certa. Basicamente você precisa levantar as bordas do slot CSI e mantê-lo encaixado o mais perpendicular possível. Isso porque se você encaixá-lo com um pouco que seja de inclinação, um contato pode tocar dois terminais e acabar com sua alegria. Tem uma montanha de videos mostrando o processo. Mesmo que você não entenda inglês, atente-se apenas à instalação física e volte para o texto.

Configuração





Após instalada a câmera, faça login e em um terminal digite:

sudo raspi-config

Escolha a opção para habilitar a câmera, então confirme. Será solicitado um reboot, que é necessário. Após o reboot, faça login novamente e já pode fazer um teste, mesmo que esteja no console, pois o aplicativo que utilizaremos pro teste escreve diretamente no framebuffer da GPU.

raspistill -o img_teste.png

Você verá a câmera abrir e mostrar um movimento rapidamente, mesmo estando no console. Em seguida ela faz a captura. Você terá a imagem salva com o nome selecionado.

Se desejar gravar um video, é tão simples quanto. Digite a seguinte linha:

raspvid -o teste.h264 -t 10000

Raspvid para gravar o video, ‘-o’ para indicar a saida e ‘-t’ para indicar o tempo de gravação, em milisegundos.

Se você pretende utilizar só por brincadeira, aí está. Não tenho desktop nessa RPi que estou utilizando a câmera, portanto não sei dizer se funcionará normalmente com programas de webcam tipo o cheese, mas faça seu teste.

Se pretende ir além e desenvolver aplicações, de cara recomendo a utilização do OpenCV. Olhe que divertido, basta instalar o python-picamera e com algumas linhas você já estará capturando imagens (as dependências serão devidamente incluidas):

sudo apt-get install python-picamera libcv2.4 python-pip build-essential cmake pkg-config libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libatlas-base-dev gfortran

“Después” de instalado esse saco de dependências que virão juntas dos  pacotinhos aí acima,  instale o pacote cv2 e alguns trecos mais do Python assim:

sudo pip install cv2 virtualenv virtualenvwrapper

Adicione o vew ao seu ~/.profile:

# venv e vew
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

Agora crie seu ambiente virtual de visão computacional:



mkvirtualenv cv

Se tiver problemas nesse passo, gambiarrize:

export LC_ALL="C"

E repita o passo anterior.

Agora instale as ferramentas necessárias:

sudo apt-get install python2.7-dev

E instale o numpy com o pip:

pip install numpy

Tenha fé. Esse processo é demoradíssimo, 15 ou 20 minutos se tudo der certo e sua RPi 2 ou 3 não estiver processando mais nada.

Mais tarde, quando o processo anterior tiver terminado, prepare-se para compilar o OpenCV. Esse passo deve levar em torno de 3 horas para a RPi 2 ou 3 e a vida toda para as anteriores, por isso recomendo que aproveite os dias frios (que aí estão) para essa tarefa.

wget -O opencv-2.4.10.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.10/opencv-2.4.10.zip/download && unzip opencv-2.4.10.zip&& cd opencv-2.4.10 && mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON  -D BUILD_EXAMPLES=ON .. && make && make install && ldconfig

Porém, houve uma modificação no OpenCV que gerou erro durante minha compilação. Já de saco cheio, procurei uma alternativa mais rápida – obviamente, pacotes pré-compilados:

sudo apt-get install python-opencv libopencv-dev

Após esse passo, tudo o necessário já estava instalado no sistema e a partir daí pude executar o seguinte script Python:

from picamera.array import PiRGBArray
from picamera import PiCamera
import time
import cv2

# inicializa e levanta a camera
camera = PiCamera()
rawCapture = PiRGBArray(camera)

# espera que ela esteja pronta 
time.sleep(0.1)

# captura uma img da  camera
camera.capture(rawCapture, format="bgr")
image = rawCapture.array

# mostra a img na tela e aguarda uma tecla para sair
cv2.imshow("Image", image)

#escreve a imagem para arquivo
cv2.imwrite("meuArquivo.png",imagem)
cv2.waitKey(0)

Estupidamente simples ler e gravar com OpenCV, não?

Esse post foi mais para fazer a introdução, porque pretendo escrever algumas bobeirinhas usando OpenCV, com a ajuda do mestre Leonardo Lontra, que tem me dado algumas dicas importantes. Também vou utilizar alguns recursos que estou aprendendo em um livro agradável que adquiri recentemente, portanto, podem esperar porque Maio será o mês das Pi por aqui.

Camera do Raspberry
Camera do Raspberry

Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Próximo post a caminho!

Agregador de Links - Loucuras da Net

Deixe uma resposta