Manual
do
Maker
.
com
É 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.
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.
https://www.youtube.com/watch?v=T8T6S5eFpqE
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.
Inscreva-se no nosso canal Manual do Maker Brasil no YouTube.
Próximo post a caminho!
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.