In questo articolo mostriamo un esempio pratico per realizzare, con il modulo Reach Technology SLCD43, un'interfaccia grafica per display a colori e touch-screen che possa controllare, tramite il modem Telit GM862, le periferiche presenti sulla scheda SXPY
L'obiettivo di questo esempio è realizzare una semplice interfaccia utente da caricare su un display touch-screen della Reach Technology SLCD43
che comunichi, tramite collegamento seriale, con uno script Python in esecuzione su un modem Telit GM862-PY.
Assembleremo in pratica un semplice sistema touch-screen che può impostare lo stato di due relè ed inviare un SMS
alla semplice pressione di un tasto sul display, visualizzare lo stato di due ingressi digitali e
mostrare il testo di un SMS ricevuto al numero GSM della SIM inserita nel modem Telit.
Il programma che gestisce il sistema si divide in due parti. La prima parte, caricata nella memoria
del display SLCD43, si occupa di visualizzare l'interfaccia utente e ad ogni attuazione, come per esempio
la pressione di un tasto, invia sulla seriale un comando che viene interpretato ed eseguito dalla seconda parte
di programma scritta in python ed in esecuzione sul modem Telit.
Per la stesura di questo articolo è stato impiegato il seguente hardware:
- Un kit di sviluppo SXPY
- Un development kit della Reach Technology
- Un cavo null modem DB9 maschio - maschio
Il display Reach Technology SLCD43
Il modulo SLCD della Reach Technology è un controller per display LCD a colori (da 4" fino a 10") con touch-screen,
interamente gestibile attraverso una semplice porta seriale o USB (Impariamo ad usare il modulo LCD da 4.3'' con touch screen della Reach Tecnology).
Dotato di memoria e CPU propria, oltre ad un semplice linguaggio di programmazione a macro, il display della Reach Technology può operare autonomamente, scaricando completamente il proprio dispositivo embedded dal lavoro di gestione dell'interfaccia grafica.
Il sistema qui sviluppato basa parte del suo funzionamento proprio sulla programmazione a macro del display della Reach.
Tramite un PC Windows ed un apposito programma è possibile caricare nella memoria del display immagini, font e macro
che poi potranno essere usati per disegnare l'interfaccia grafica.
Per caricare i file nel modulo SLCD43 bisogna procedere come segue:
STEP 1
Scaricare, dalla sezione download presente alla fine di questo articolo, i file: BMPload.zip e MACRO_SXPY-SLCD43.zip
e decomprimerli sul PC.
Il primo file contiene il programma che serve per caricare i contenuti nella memoria del modulo SLCD43.
Il secondo file contiene il programma macro e le immagini, sviluppati per questo esempio, che costituiscono l'interfaccia utente che girerà sul display Reach.
STEP 2
Alimentare il modulo SLCD43 con l'adattatore 220v-5V presente nel kit e collegare tramite link seriale o USB (in questo ultimo
caso non è richiesto il l'alimentatore esterno) il display ad un PC.
STEP 3
Decomprimere il file BMPload.zip e lanciare sul PC Windows il programma BMPload
(screenshot 1)
Sezionare la porta seriale su cui è stato precedentemente connesso il display SLCD43 (punto A screenshot 1).
STEP 4
Decomprimere il file MACRO_SXPY-SLCD43.zip.
Tramite il software BMPload cliccare sul tasto "Load BMP list" (punto B screenshot 1) e selezionare il file demo.lst contenuto nel file appena decompresso.
Il file demo.lst contiene l'elenco dei file immagine (file BMP) che devono essere caricati nel modulo della Reach.
01_MainScrn.bmp
02_big_button.bmp
03_big_button_dn.bmp
04_big_button_LAMP.bmp
05_big_button_dn_LAMP.bmp
06_big_button_MAIL.bmp
07_LED_grey.bmp
08_LED_green.bmp
STEP 5
Sempre tramite il software BMPload cliccare sul tasto "Add Macro File" (punto C screenshot 1) e selezionare il file macros.txt.
Il file macros.txt contiene una serie di istruzioni riunite in piccole funzioni (macro) che il display è in grado di eseguire anche autonomamente.
STEP 6
Cliccare sul tasto "Store in SLCD" (punto D screenshot 1) ed attendere il completamento del'upload dei file.
Programma Python per il modem Telit GM862
Il programma, scritto in Python e fornito in formato sorgente e scaricabile nella sezione Download di questo articolo
(PYTHON_SXPY-SLCD43.zip), ha il compito di interpretare i comandi seriali ricevuti dal modulo display, gestire le linee di GPIO presenti sulla SXPY ed inviare e ricevere SMS.
Il sorgente del programma, prima di essere compilato, va configurato impostando: il centro servizi relativo all'operatore della SIM inserita nel modem, il numero GSM del destinatario dell'SMS di test e il testo del messaggio.
Le variabili da modificare a proprio piacimento sono:
SERVICE_CENTER="+393359607000" #Centro servizi TIM
#SERVICE_CENTER="+393492000200" #Centro servizi VODA
SMS_TEST_MSG = "Prova dalla SXPY e il display SLCD RACH" #Messaggio di test invio SMS
SMS_TEST_NUM = "+39347800000" #Numero GSM invio SMS di test
Completato il setup delle tre variabili possiamo procedere con la compilazione del programma Python seguendo le istruzioni riportate nell'articolo disponibile al seguente link: Compilare i programmi Python per modem Telit
Al termine della compilazione otterremo il file SLCD43.pyo che va caricato nella memoria del modem assieme al modulo
timers.pyo (presente nel file compresso precedentemente scaricato).
Per caricare i file SLCD43.pyo e timers.pyo nel modem Telit occorre procedere seguendo le istruzioni descritte nell'articolo Guida all'utilizzo della SX-PY.
Completato l'upload del programma pyhton nella memoria del modem possiamo collegare la porta seriale della SXPY
etichettata "DCE", tramite un cavo null modem maschio-maschio, alla porta seriale "AUX P2" del kit SLCD43 della Reach,
ed alimentare le due schede.
Il corretto funzionamento dello script python può essere controllato tramite la console seriale (velocità: 115200bps)
attiva sulla seriale di debug della SXPY "SERIAL DEBUG"
Funzionamento
All'avvio lo script python caricato nella memoria del telit GM862 provvede all'inizializzazione del modem
ed attende la registrazione alla rete GSM.
A modem registrato lo script inizializza la comunicazione con il display SLCD43 inviando sulla seriale il carattere "\r" fin quando non riceve come risposta il carattere ">".
Completate le inizializzazioni del sistema, lo script python, entra in un ciclo continuo in cui legge i comandi seriali ricevuti dal display ed esegue le attuazioni richieste.
Sul display è possibile avere conferma della corretta inizializzazione del programma python al momento della comparsa del tasto "Next" sulla prima schermata.
Con la pressione del tasto "Next" si accediamo alla prima schermata funzionale che permette di controllare i due relè montati sulla SXPY.
Con una nuova pressione sul tasto "Next" si entra nella videata che mostra lo stato delle due linee di ingresso
presenti sulla SXPY. Questa finestra viene aggiornata automaticamente dallo script python ogni 5 secondi.
La schermata successiva riporta un singolo tasto che se premuto abilita lo script pyton all'invio di un SMS.
Il messaggio ed il numero di destinazione dell'SMS di prova variano a seconda dei valori delle variabili:
SMS_TEST_NUM="..."
SMS_TEST_MSG="..."
precedentemente impostate nel sorgente python SLCD43.py.
L'ultima videata mostra numero e testo di un eventuale SMS ricevuto al numero GSM della SIM inserita nel modem.
La schermata del display viene aggiornata automaticamente dal programma python appena il modem GMS riceve un nuovo SMS.
Link Utili
Sito ufficiale Telit www.telit.com
Download
Programma per moduli SLCD Reach BMPload.zip
Macro e immagini per modulo SLCD43 MACRO_SXPY-SLCD43.zip
Programma in python per modem TELIT PYTHON_SXPY-SLCD43.zip
Segnala questo articolo:
Parole chiave: - Python - Touch Screen -
|