In questo breve articolo vedremo come è possibile pilotare un display da 16X2 [ ] caratteri 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>
dopo di che riavviamo il Raspberry Pi [ ]
sudo reboot
Al riavvio andiamo ad inserire in /etc/modules le stringhe necessarie per caricare il moduli di gestione del bus, digitiamo quindi:
sudo nano /etc/modules
ed inseriamo, se non sono già presenti nel file, le righe
i2c-bcm2708
i2c-dev
A questo punto possiamo procedere con l’installazione delle librerie utili alla gestione del bus
sudo apt-get update
sudo apt-get install python-smbus i2c-tools -y
sudo reboot
Al riavvio controlliamo che i moduli siano stati caricati correttamente dal sistema operativo, digitiamo:
lsmod | grep i2c_
Ed il risultato dovrebbe essere qualcosa di simile
i2c-bcm2708
i2c-dev
se è presente i2c-bcm2708 significa che il modulo è stato caricato correttamente e quindi possiamo passare ad individuare l’indirizzo della la periferica che vogliamo controllare. A seconda del modello di Raspberry [ ] 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: — — — — — — — — — — — — — — — 3f
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 3f è l’indirizzo del display che intendiamo controllare.
Dal terminale digitiamo
wget https://www.mynetbrick.com/risorse/i2c_display_drive.py
sudo python i2c_display_drive.py
Se non sono stati commessi errori il tuo diplai dovrebbe mostrare il messaggio
Hello World
-*** ** ***-
Tutorial by
mynetbrick.com
Se il tuo Raspberry Pi [ ] non mostra alcun errore di runtime, ma l'LCD non visualizza ancora alcun messaggio, è probabbile che debba essere regolata la vite di contrasto sul retro del display LCD [ ] , ruotala fino a far apparire il messaggio su display.
.