Manual
do
Maker
.
com
Tenho um display OLED 128x32 que mostrei no artigo anterior como configurá-lo para ser utilizado no Raspberry. Bem, 128x32 é um "icone wide", não dá pra esperar uma super-resolução de cinema, mas dá pra brincar com ele. Sua atualização é lenta e alguns outros processos necessitam de execução sequencial. Tendo dito isso, é uma brincadeira muito divertida capturar imagens com a câmera do Raspberry e exibí-las no display, não acha? Não importa a resolução, importa a diversão!
Precisamos de:
Proceda como descrito no artigo anterior para configurar o display. Faça o teste e então passe para o próximo passo desse artigo.
Precisamos instalar apenas um programa e ele trará todas suas dependências junto:
sudo su
apt-get install imagemagick
O cartão micro SD é lento e não queremos destruí-lo com a brincadeira, certo?
No Linux temos um dispositivo que utiliza automaticamente RAMFS. Copie o diretório de exemplos para /dev/shm. Supondo que o diretório da biblioteca da Adafruit esteja em /home/pi:
sudo su
cp -r /home/pi/Adafruit_Python_SSD1306-master/examples /dev/shm
cd /dev/shm/examples
Vamos fazer um singelo script shell, com apenas algumas linhas. Pra ficar mais simples ainda, invés de escrevermos todo o script python para jogar a imagem no display, vamos usar o script que já tem pronto, apenas substituindo a imagem default (é o cúmulo da preguiça, eu sei). Crie um script chamado toOLED.sh dentro do seu diretório atual, com o seguinte conteúdo:
#!/bin/sh
while true; do
raspistill -w 128 -h 32 -t 10 -n -o out.jpg
convert out.jpg out.ppm
cp out.ppm happycat_oled_32.ppm
python image.py
done
Esse script executará em um loop infinito que pode ser interrompido com Ctrl+C. Enquanto em execução, ele captura uma imagem da câmera no formato necessário para jogar no display. Em seguida, é feita a conversão do arquivo .jpg para .ppm, que é o formato utilizado pelo script python em questão. Depois de convertido, substitui o arquivo original que seria carregado pelo script python. Por último, executa o script que carrega a imagem no display. Acredito que dê para acelerar um pouquinho o processo usando OpenCV, já fiz inclusive um script python para gerar uma imagem binária, mas achei que assim ficou mais legal.
Salve o script e dê-lhe um bit de execução:
chmod 700 toOLED.sh
Agora basta executar e ficar na frente da câmera.
./toOLED.sh
Bricandeira rápida, não tem desculpa pra não fazer também! No video você vê "mais ou menos" como fica. Devido ao video ampliar os pixels e iluminar o display, a resolução fica mais baixa ainda, mas acredite, é satisfatório "ao vivo".
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.