Tra le innumerevoli migliorie implementate da Telit nei modem della famiglia xE910 una delle più importante è l’introduzione dell’interprete Python 2.7. In questo articolo vediamo come cominciare a programmare in Python i nuovi terminalei della Gatetel che integrano il modem HE910.
I modem della famiglia xH910 prodotti da Telit (www.telit.com), disponibili nella versione GPRS e UMTS, oltre ad essere più performanti dal punto di vista di prestazione che di consumi energetici, dispongono di un nuovo interprete Python. Sui nuovi modem è infatti presente il più recente l’interprete Pytnon versione 2.7.2 completo di multithreading e floating point. Funzionalità queste ultime due che limitavano notevolmente lo sviluppo di applicazione nella precedente generazione di modem.
Il nuovo modulo, in versione UTMS, è stato inserito dalla GATETEL nei modem GT-HE910 EUD e EUG. Il primo modem integra il Telit HE910-EUD che può operare in GSM: 850/900/1800/1900MHz ed UMTS/HSPA+: 850/900/2100MHz; il secondo modem dispone del Telit HE910-EUG identico alla versione precedente con in più la funzionalità A-GPS.
In questo articolo, dopo una panoramica hardware dei modem Gatetel GT-HE910, vediamo come iniziare a scrivere e caricare nella memoria del modem, 2 MB, un programma in Python.
I modem Gatetel GT-HE910-EUx
Il Gatetel GT-HE910-EUx è completo terminale con tecnologia GSM/GPRS e UMTS/HSPA. Ingegnerizzato in un compatto e robusto case di metallo trova posto: un modem Telit HE910-EDU o HE910-EDG (versione con AGPS), un SIM holder di tipo push-push uno, stadio di alimentazione che accetta tensioni da 6V a 50V CC e uno stadio di input output. Quest’ultimo stadio, disponibile su un connettore Molex micro-fit 3mm da 6 poli, fornisce due uscite open-collector con capacità di 100mA l’una, due ingressi optoisolati e un ingresso ADC da 10Bit che accetta tensioni tra 0 e 55V.
Pin | Descrizione |
1 | ADC 10bit 0-55V |
2 | GPIO 2 – OUTPUT Open Collector |
3 | GPIO 3 – OUTPUT Open Collector |
4 | GPIO 4 – INPUT |
5 | GPIO 5 – INPUT |
6 | GND |
I modem della GATETEL si alimentano con una tensione continua compresa tra 6 e 50V da applicare sul connettore Molex micro-fit da 4 poli sito dal alto delle antenne.
![]() |
|
Accanto al Molex da 6 poli sono presenti 2 LED uno verde con etichetta ‘POWER’ e uno rosso con etichetta ‘STATUS CELLULAR’. Il primo LED è attestato alla linea GPIO7 mentre il LED rosso è collegato alla linea STATUS del modem. Entrambe i LED sono gestibili via software Python.
Un semplice script di test in Python
Il programma in Python disponibile nella sezione download di quest’articolo e il cui sorgente è riportato di seguito; mostra come inizializzare e controllare tutti i GPIO del modem GT-HE910-EUx.
Il sorgente Python:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | import GPIO import time import sys import SER def INIT_GPIO(): GPIO.setIOdir( 7 , 0 , 1 ) #Setup output GPIO7 LED green POWER GPIO.setIOdir( 2 , 0 , 1 ) #Setup output GPIO2 Pin 2 GPIO.setIOdir( 3 , 0 , 1 ) #Setup output GPIO2 Pin 3 GPIO.setIOdir( 4 , 0 , 0 ) #Setup input GPIO4 Pin 4 GPIO.setIOdir( 5 , 0 , 0 ) #Setup input GPIO5 Pin 5 def PrintDEBUG(txt): print txt SER.send(txt + 'rn' ) #MAIN INIT_GPIO() PrintDEBUG( 'Test Base Telit HE910' ) while ( 1 ): if (SER.read().find( 'AT' )! = - 1 ): #Blocco il ciclo se riceve un AT GPIO.setIOvalue( 7 , 1 ) #LED green POWER ON sys.exit( 1 ) else : GPIO.setIOvalue( 7 , 0 ) #LED green POWER OFF GPIO.setIOvalue( 2 , 1 ) #Output Pin 2 attivo GPIO.setIOvalue( 3 , 1 ) #Output Pin 3 attivo PrintDEBUG( 'Stato Input -----------' ) PrintDEBUG( 'Input Pin 4: %d' % GPIO.getIOvalue( 4 ) ) PrintDEBUG( 'Input Pin 5: %d' % GPIO.getIOvalue( 5 )) PrintDEBUG('') PrintDEBUG( 'ADC: ------------------' ) mV = GPIO.getADC( 1 ) PrintDEBUG( 'mV = %d Vin= %.1f' % (mV, (mV * 0.0488 ))) PrintDEBUG('') time.sleep( 1.0 ) GPIO.setIOvalue( 2 , 0 ) #Output Pin 2 disattivo GPIO.setIOvalue( 3 , 0 ) #Output Pin 3 disattivo GPIO.setIOvalue( 7 , 1 ) #LED green POWER ON time.sleep( 1.0 ) |
Sulla memoria del modem Telit è possibile caricare il programma direttamente in formato sorgente (.py) o compilato (.pyc). Caricare uno script compilato rende l’avvio di quest’ultimo da parte del modem più veloce.
Per compilare uno script Python procedere come segue:
Scaricare dal sito www.python.org il pacchetto Python 2.7.x compatibile con il proprio sistema operativo ed installarlo su un PC.
Copiare il sorgente in un file di testo e rinominarlo con l’estensione .py es. TEST_HE910.py.
Dal prompt dei comandi compilare lo script con la sintassi che segue:
C:\Python27\python.exe -v -S 'C:\Python27\Lib\compileall.py' -l -f 'C:\SCRIPT\TEST_HE910.py'
Se non vengono evidenziati errori otteremo come output un file compilato con estensione .pyc es. TEST_HE910.pyc
La procedura per caricare il software python sulla memoria del modulo Telit HE910 è notevolmente semplificata usando il tool
SxPythonDownload scaricabile gratuitamente nella sezione download. Una volta installato il programma SxPythonDownload su
un PC con sistema operativo Windows 2000/XP/Vista/7 è necessario collegare il modem Gatetel alla porta seriale del PC
tramite un cavo seriale a 9 poli dritto. Nel caso il proprio PC non fosse dotato di porta seriale COM è
possibile usare un convertitore USB-Seriale.
Il file TEST_HE910.pyc va selezionato con il tasto ‘Scegli File’, caricato in memoria cliccando sul tasto ‘Download’ e reso eseguibile cliccando sul tasto ‘Attiva’ presente nel software SxPythonDownload. Al riavvio del modem, tasto ‘Reboot’, il lampeggio del led verde indicherà l’esecuzione del programma Python.
L’output del programma è invece disponibile sulla stessa seriale di programmazione aprendo una console.
Link utili
Sito: www.python.org
Sito: www.telit.com
Sito: www.gatetel.com