In questo breve articolo vedremo come è possibile pilotare un display OLED  ] 

attraverso la porta i2c bus del nostro Raspberry Pi  ]

L’utilizzo di questo tipo di bus ci permette di controllare molteplici periferiche, anche del medesimo tipo (più display o più sensori di movimento) utilizzando un numero ridotto di pin (SLA e SLD), vediamo cosa è necessario fare.

Iniziamo con le connessioni elettriche secondo lo schema riportato di seguito:

Una volta connessa la periferica dalla command line di Rasprerry digitiamo

sudo raspi-config

e selezioniamo: Interfacing Options -> Select

P5 I2C-> Select

Selezionare <Si>

Selezionare <OK>

ora selezioniamo <Finish>

per controllare che il bus sia attivo digitiamo

ls /dev/i2c* 

Il risultato dovrebbe essere  questa

 

questo indica che è attivo il bus 1 del nostro Raspberry

A questo punto possiamo procedere con l’installazione delle librerie utili alla gestione del nostro OLED SD1306

le librerie le scaricheremo dal GitHub a questo link digitiamo quindi

git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git

..ed il risultato dovrebbe essere qualcosa di simile 

 

ora non ci resta che installare la libreria, andiamo nella cartella appena scaricata

cd Adafruit_Python_SSD1306

e lanciamo il setup di Python digitando

sudo python3 ./setup.py install

A seconda del bus al quale abbiamo collegato l'OLED se come in figura l'uno digitiamo

sudo i2cdetect -y 1

o

sudo i2cdetect -y 0

per ottenere un output simile

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: — — — — — — — —

se non sono presenti numeri tra le righe ma sono presenti solo trattini “_ _” significa probabilmente che la periferica non è collegata correttamente o comunque non è raggiungibile tramite il bus se invece si vede uno o più numeri esadecimale ciò significa che quelli sono gli indirizzi di memoria da inserire negli script come indirizzo di memoria delle periferiche.

Nel nostro caso 3c è l’indirizzo del display che intendiamo controllare. Se tutto è configurato e collegato correttamente possiamo immediatamente fare un test utilizzando uno degli script di esempio presenti nella cartella examples quindi digitiamo

cd examples

sudo python3 image.py 

 

vedremo comparire l'immagine come sopra.

per poter utilizzare le librerie negli script Python dovremo aggiungere "import Adafruit_SSD1306"