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"