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.

.