Display OLED i2c su Raspberry Pi 3 con Fedora 27

Da lumacawiki.
Versione del 9 nov 2017 alle 01:11 di Alciregi (discussione | contributi)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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 verifichiamo se tutto funziona

$ cd luma.examples/examples
$ python3 ./welcome.py