FAIR – Scintillation Box

FAIR – Scintillation Box

Nel quadro del Progetto FAIR, è stato sviluppato un innovativo dispositivo per analizzare gli effetti della scintillazione ionosferica.
Questo strumento sarà presto messo alla prova in Brasile, dove i fenomeni di scintillazione sono particolarmente intensi, specialmente in estate.
Recentemente, abbiamo concentrato gli sforzi nel creare l’interfaccia utente del dispositivo semplice e intuitiva.
A tal fine, è stato impiegato un display LCD 20×4 con driver Hitachi HD44780, collegato via I2C a un Raspberry Pi.
Su questo Raspberry Pi viene eseguito anche il software dedicato allo studio della scintillazione.
Il display LCD è fondamentale per il monitoraggio di vari processi e offre un feedback immediato, migliorando così l’efficienza operativa.

Questi display LCD sono facilmente reperibili presso numerosi rivenditori sui siti di e-commerce di componenti elettronici.
Il software che gestisce il display è scritto in Python e utilizza la libreria RPLCD, rendendo lo sviluppo del software molto semplice.
Per iniziare, abbiamo collegato il Raspberry al display tramite i pin GPIO in questo modo:

Poi abbiamo abilitato l’I2C sul Raspberry Pi tramite il comando sudo raspi-config. Questo comando apre la configurazione del Raspberry Pi nel terminale. Sotto “Interfacing Options”, abbiamo attivato l’I2C.
Successivamente, abbiamo installato la libreria RPLCD con il comando
sudo pip install RPLCD
Abbiamo poi sviluppato una dashboard sfruttando le funzioni write_stringe write_buffer.
Di seguito un esempio di utilizzo di queste funzioni per scrivere sul display LCD:

# Importazione della libreria LCD from RPLCD import i2c #Importazione della libreria sleep from time import sleep # Costanti perinizializzare l’LCD lcdmode = ‘i2c’ cols = 20 rows = 4 charmap = ‘A00’i2c_expander = ‘PCF8574’ # Indirizzo generalmente 27; trova il tuo con:i2cdetect -y 1 address = 0x27 port = 1 # 0 su un Raspberry Pi più vecchio #Inizializzazione dell’LCD lcd = i2c.CharLCD(i2c_expander, address, port=port,charmap=charmap, cols=cols, rows=rows) # Scrittura di una stringa sulla primalinea e passaggio alla successiva lcd.write_string(‘Hello world’) lcd.crlf()lcd.write_string(‘IoT with Vincy’) lcd.crlf() lcd.write_string(‘Phppot’) sleep(5)# Spegnimento della retroilluminazione lcd.backlight_enabled = False # Puliziadello schermo LCD lcd.close(clear=True)

La libreria RPLCD consente anche di creare caratteri personalizzati, che abbiamo utilizzato per sviluppare icone e rendere l’interfaccia più intuitiva.
Per esempio, abbiamo creato un’icona per indicare lo stato di carica della batteria, accendendo singoli pixel all’interno del display LCD.

 

battery_HLF = (
    0b00000,
    0b01110,
    0b11111,
    0b10001,
    0b10001,
    0b11111,
    0b11111,
    0b11111
)