Manual

do

Maker

.

com

OLED como display da câmera do Raspberry

OLED como display da câmera do Raspberry

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!

Materiais

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.

Instalação de pacotes

Precisamos instalar apenas um programa e ele trará todas suas dependências junto:

sudo su
apt-get install imagemagick

Executar diretamente da memória

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

Criar o programa para exibir no display

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".

https://youtu.be/vfA1PHNtOzo

Inscreva-se no nosso canal Manual do Maker no YouTube.

Também estamos no Instagram.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.