Luma.oled reloaded

      Geen reacties op Luma.oled reloaded

Even ons geheugen opfrissen voor het geweldige mini OLED-display SSD1306 (i2C) en de zeer handige luma.oled-bibliotheek. Luma.oled neemt je echt een heleboel werk uit handen.

We gaan het mini OLED-scherm SSD1306 (64 × 128 pixels) aansluiten op een Raspberry Pi Zero 2 W, de software installeren en de meegeleverde voorbeelden uitproberen. Het onderstaande is grotendeels overgenomen van raspberrypi-spy.co.uk

sys_info_extended

Het programma sys_info_extended.py is meteen het meest praktische voorbeeld. In de regel onderaan wisselen het ip-adres en de uptime elkaar af.

Aansluiten van het display
GND van het display gaat naar GND op de Pi (bv fysieke pin 9)
VCC van het display gaat naar +3,3V op de Pi (fysieke pin 1)
SCL van het display gaat naar GPIO 3 op de Pi
SDA van het display gaat naar GPIO 2 op de Pi

Activeer i2C op de Raspberry Pi:
sudo raspi-config / Interface Options / I2C
En controleer of het werkt:
i2cdetect -y 1

Installeer de benodigde bibliotheken:
Meestal zijn deze standaard al geïnstalleerd, maar controleer dat voor de zekerheid.
Begin zoals gewoonlijk met een update:
sudo apt update && sudo apt upgrade -y
Daarna:
sudo apt install -y python3-dev
sudo apt install -y python3-smbus i2c-tools
sudo apt install -y python3-pil
sudo apt install -y python3-pip
sudo apt install -y python3-setuptools
sudo apt install -y python3-rpi.gpio
sudo apt install -y python3-venv

Maak een projectdirectory:
cd ~
mkdir oled-screen
cd oled-screen

Maak een Python Virtual Environment (PVE):
python3 -m venv venv
[of bijvoorbeeld:
python3 -m venv luma-env]

Activeer het self-contained Python 3-systeem:
source venv/bin/activate

venv-geactiveerd

De naam van de virtuele omgeving moet nu vooraan in de command-prompt verschijnen!(venv) pi@pizero2w:~/oled-screen $
Zolang het PVE actief is zullen Python-bibliotheken in deze virtuele omgeving worden geïnstalleerd en geen invloed hebben op de standaard Python-installatie.
We hebben een Python 3-omgeving gemaakt, dus nu zal ‘Python’ automatisch verwijzen naar Python 3.

Installeer de Luma OLED Python-bibliotheek:
python -m pip install –upgrade luma.oled

Controleer of git is geïnstalleerd:
sudo apt install -y git

Installeer de examples-repository:
git clone https://github.com/rm-hull/luma.examples.git

Installeer extra afhankelijkheden die nodig zijn voor sommige voorbeelden:
sudo apt install -y python3-pil libjpeg-dev zlib1g-dev python3-av
sudo apt install -y libfreetype6-dev liblcms2-dev libopenjp2-7 libtiff5 -y
pip install psutil

Nu is alles gereed om de voorbeelden te proberen:
cd luma.examples/examples
ls
python sys_info_extended.py

Python Virtual Environment verwijderen
Het voordeel van een PVE is dat je de directory kunt verwijderen en daarmee alle met ‘apt’ of ‘pip’ geïnstalleerde bibliotheken:
rm -rf ~/oled-screen/venv

Maak een startbestand:
nano /home/pi/start_oled.sh

en zet er de volgende regels in:
#!/bin/bash
cd ~/oled-screen
source venv/bin/activate
cd luma.examples/examples
python sys_info_extended.py &

Typ de onderstaande regel in in crontab om het bestand bij het booten automatisch te starten:
crontab -e
@reboot /home/pi/start_oled.sh

Raspberry Pi I2C-bussnelheid verhogen
Voor toepassingen die een snellere refreshrate nodig hebben (zoals animaties, video’s en diashows) kun je de bussnelheid van de i2C-bus verhogen, van de standaard 100000 baud naar 400000 baud:
Open het bestand config.txt en zoek de regel ‘dtparam=i2c_arm=on’. Verander deze in:dtparam=i2c_arm=on,i2c_arm_baudrate=400000

Daarna herstarten:
sudo reboot

[Dit werkte allemaal perfect op een Pi Zero 2 W met legacy Pi OS (Linux 11 Bullseye)]