Display OLED i2c su Raspberry Pi 3 con Fedora 27
Provato con
Display chipset: ssd1306
Interfaccia: i2c
Dimensioni: 128 x 64
Creiamo un gruppo che possa avere il diritto di accedere ai device i2c senza avere bisogno dei permessi di root, e aggiungiamo il tuo utente a questo gruppo
$ sudo groupadd i2cuser $ sudo usermod $USER -G i2cuser -a
Creiamo una regola UDEV, così che i device i2c sotto /dev vengano creati con il gruppo e i permessi giusti
$ echo "SUBSYSTEM==\"i2c-dev\", GROUP=\"i2cuser\", MODE=\"0660\"" | sudo tee /etc/udev/rules.d/50-i2c.rules
Usciamo dalla sessione corrente e rientra.
Installiamo il pacchetto i2c-tools
$ sudo dnf install i2c-tools
Verifichiamo che l'adattatore i2c sia visibile dal sistema
$ i2cdetect -l -a
L'output dovrebbe essere qualcosa del genere:
i2c-1 i2c bcm2835 I2C adapter I2C adapter i2c-2 i2c bcm2835 I2C adapter I2C adapter i2c-0 i2c bcm2835 I2C adapter I2C adapter
Colleghiamo il display OLED al Raspberry:
GND -> pin 39 VCC -> pin 1 SCL -> pin 5 SDA -> pin 3
Verifichiamo che il device sia visibile
$ i2cdetect -y 1
L'output dovrebbe essere così:
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
Installiamo qualche altro pacchetto, in modo da usare qualche libreria Python
$ sudo dnf install git gcc python3-pillow redhat-rpm-config python3-devel
In questo caso utilizzeremo il modulo luma: https://luma-oled.readthedocs.io/en/latest/intro.html, che sembra abbastanza semplice da usare, o per lo meno funziona
$ pip3 install --upgrade luma.oled --user
Cloniamo gli esempi dal repository github
$ git clone https://github.com/rm-hull/luma.examples.git
E proviamo se tutto funziona
$ cd luma.examples/examples $ python3 ./welcome.py