Existem algumas bibliotecas disponíveis para displays baseados no controlador SSD1306:
ArduiPi_SSD1306 (C++)
Adaptação para o Raspberry Pi da biblioteca da Adafruit para o Arduino.
https://github.com/hallard/ArduiPi_SSD1306
ArduiPi_OLED (C++)
Expansão da biblioteca acima para suportar outros controladores (SH1106, SSD1327 e SSD1308).
https://github.com/hallard/ArduiPi_OLED
Adafruit_Python_SSD1306 (Python)
Biblioteca Python da Adafruit
https://github.com/adafruit/Adafruit_Python_SSD1306
Um cuidado ao usar estas bibliotecas é que elas suportam vários tamanhos de display e conexão tanto via SPI como I2C. Lembrando, no meu caso, o display é 128x64 pontos e usa conexão I2C com o endereço 0x3C.
Para variar um pouco, vamos usar C++, com a ArduiPi_OLED. A conexão do display é igual ao que vimos no display LCD:
O formato do display é outro, mas vou reusar a figura. |
Agora é instalar a biblioteca. Tem instruções detalhadas no blog do autor, os comandos que eu usei (pois já tinha o I2C habilitado e algumas bibliotecas instaladas) foram:
sudo apt-get install libi2c-dev git clone https://github.com/hallard/ArduiPi_OLED cd ArduiPi_OLED sudo make cd examples make
Se algo der errado, provavelmente falta alguma biblioteca. Execute todos os comandos no blog do autor da ArduiPi_OLED. Quando der certo, podemos rodar o exemplo:
sudo ./oled_demo -o 3
Existe um pequeno detalhe. A biblioteca assume que o display tem um sinal de Reset e que ele foi ligado ao GPIO 25. No meu caso o display não tem este sinal e o pino do Raspberry ficou desconectado. Nada que atrapalhe, mas seria mais elegante poder informar à biblioteca que não tem o sinal de Reset. Fica para depois.
2 comentários:
Como implementar uma chamada para esse driver em um código Python pra rodar no Raspberry Pi 3B?
Renato, se você quer usar Python, o mais simples é usar a biblioteca da Adafruit.
Postar um comentário