Area SX srl - Informatica e Microelettronica
0
Torna a: Home Page Soluzioni Telecontrollo SMS/GSM Un display a colori con touch-screen per la SXPY

Un display a colori con touch-screen per la SXPY

Data di pubblicazione: 23-02-2010 | Versione Italiana  | English Version
Parole chiave: - Python - Touch Screen -

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

Download Programma per moduli SLCD Reach BMPload.zip
Download Macro e immagini per modulo SLCD43 MACRO_SXPY-SLCD43.zip
Download Programma in python per modem TELIT PYTHON_SXPY-SLCD43.zip


Segnala questo articolo: 



Parole chiave: - Python - Touch Screen -

Data di pubblicazione: 23-02-2010Hits: 30338
I marchi citati sono propriet� dei titolari dei relativi diritti. Le caratteristiche tecniche e i prezzi riportati sono indicativi e soggetti a variazioni senza preavviso. Le foto non hanno valore contrattuale. Nonostante accurate verifiche, il presente documento pu� contenere prezzi o specifiche errati. Area SX si scusa in anticipo e si impegna ad evitare tali imprecisioni.
Rivenditori Social Contatti Condizioni
Area SX s.r.l
Via Stefano Longanesi 25
00146 Roma

Tel: +39.06.99.33.02.57
Fax: +39.06.62.20.27.85
P.IVA 06491151004
Condizioni di vendita
Procedura di rientro in garanzia
Condizioni per i rivenditori