Home
Documento PDF
Contents
1. In questo modo possiamo analizzare sep aratamente i 2 circuiti che si ottengono e successivamente sommare il loro risultato Prima parte Per prima cosa analizziamo come viene trattato il segnale presente sul pin non invertente Ponendo a massa il segnale V otteniamo la classica configurazione non invertente GND ma prima di procedere nell analisi possiamo introdurre un ulteriore semplifi cazione viste le caratteristiche del segnale V m 2 Essendo un segnale costante si pu considerare che a regime i condensatori vengono assimilati ad un circuito aperto semplificando enormemente il circuito risultante Vee R3 Vcc 2 GND 20 CAPITOLO 3 CICUITO DI CONDIZIONAMENTO DEL SEGNALE che diventa un semplice inseguitore di tensione un buffer non invertente Di conseguenza TA Ey 002 2 Seconda parte Viceversa ponendo a massa il pin non invertente otteniamo uno stadio amplificatore in configurazione invertente R3 1MQ 10kQ C3 C 10uF Anche in questo caso semplificare il calcolo della funzione di trasferi mento G s consideriamo le impedenze Z3 Rg ottenuta dal parallelo tra e C3 e Z4 R44 C4 rappresentante la serie tra Ry e Di conseguenza Z3 G 08 che numericamente diventa 10s Ga s 0 182 1 15 1 Questa funzione di trasferimento presenta uno zero nell origine 2 poli z 0 p 1 p 10 In modo analogo allo s
2. CME ERROR 14 CME ERROR 15 sim presente in attesa di codice pin sim presente in attesa di codice puk sim pronta non necessita nessun codice pin sim assente sim inserita male sim occupata ritentare sim non valida Quindi notiamo subito che la presenza della parola READY nella risposta indica che la sim pronta all utilizzo mentre in tutti gli altri casi ci troviamo di fronte ad una situazione d errore in quanto stato scelto di non gestire ogni eventuale codice di identificazione In questo modo la routine di pars ing risulta molto semplice ma allo stesso tempo molto precisa nell indicare l informazione voluta void parser void indicizzazione stringa string analyzer rxbuf switch current parser case cpin_ parser verifica del formato della risposta if stremp field 0 CPIN break if stremp field 1 READY txresult tx_ok else txresult tx_err break Verifica eventuali errori if txresult if current parser if stremp field 0 OK txresult tx_ok if stremp field 0 ERROR stremp field 0 CME 10 4 CICLO DI COMANDO 59 stremp field 0 CMS txresult tx err Tramite queste poche linee di codice otteniamo un analisi esauriente della risposta andando a settare opportunamente la variabile tx_ result come atteso nella funzione send cmd analizzata precedentemente Ricordiamo
3. fax Grazie a questo complesso dispositivo possibile eseguire operazioni avanzate quali l utilizzo della rete GSM senza la necessit di eccessive risorse hardware e software rendendo cos pi semplice lo sviluppo del progetto 5 1 Caratteristiche elettriche Il modem amp operativo a tensioni di alimentazioni comprese tra 3 4V e un massimo di 4 2V La quantit di corrente assorbita varia enormemente in base alla fase di funzionamento partendo da un minimo di 4mA in standby fino 29 30 CAPITOLO 5 MODEM GSM ad un picco di corrente di quasi 2A nelle fasi di trasmissione su rete GSM Risulta cosi essenziale un progetto accurato del sistema di alimentazione in grado di fornire la corrente adeguata in ogni momento senza causare eccessive oscillazioni che potrebbero portare ad instabilit del sistema Vmax V Vrom Vmin V IavgM AX mA Doa A 4 2 3 8 3 4 350 1 9 5 2 Procedura d accensione Lo stato d accensione del modem si controlla tramite i pin ON RESET e PWRCTL Sul pin PWRCTL possibile monitorare lo stato del modem mentre l accen sione e lo spegnimento si comandano attraverso ON Valore PWRCTL Stato LOW modem spento HIGH modem acceso Questa linea viene mantenuta normalmente a riposo a livello alto e se ab bassata per un periodo di circa 1s impone al modem il cambio di stato In questo modo in seguito ad un impulso di questo tipo se il modem spento si accende e viceversa ONE
4. in grado di monitorare e rilevare la presenza umana nella zona prescritta fino ad una distanza di 10m grazie al sensore PIR ad alta precisione Dotato di batteria in grado di resistere per svariate ore anche in caso di malfunzionamenti della linea elettrica pubblica Grazie all utilizzo di un modem GSM possibile tenere completamente sotto controllo l apparecchio grazie ad un comunissimo telefono cellulare ovunque ci si trovi In particolare in caso d allarme l utente verr avvisato in modo tempestivo nel giro di 1 o 2 minuti i tempi variano in base allo stato della rete GSM ovunque si trovi La modalit di segnalazione d allarme configurabile tramite un semplice sms ed possibile abilitare o disabilitare indipendentemente gli avvisi tramite sms o squillo In questo modo possibile eliminare del tutto le segnalazioni tramite sms in modo da cancellare i costi dovuti all utilizzo della rete GSM Una caratteristica interessante la capacit di inoltrare all utente ogni mes saggio estraneo ricevuto come ad esempio i classici messaggi indicanti il credito residuo in modo da permettere all utente di tenere sotto controllo le comunicazioni verso la centralina e rilevare eventuali tentativi d attacco Infine nel caso in cui il modulo non riesca ad avvisare l utente n attraverso sms n tramite chiamate telefoniche a causa del credito residuo insufficiente Matrix GSM Alarm provvede automaticamente ad ese
5. modem acceso PWRCTL x Viene fornita anche un ulteriore linea d emergenza per gestire eventuali blocchi del modulo Nel caso in cui il modem non risponda correttamente amp possibile ripristinare il suo funzionamento tramite un reset hardware attraverso il pin RESET Anche RESET viene normalmente mantenuto a riposo a livello alto mentre portandolo a livello basso per almeno 200ms si causa un reset forzato del modulo a prescindere dalle operazioni in corso Parte II Progetto software Capitolo 6 Operazioni principali Per il corretto funzionamento del sistema il microcontrollore deve eseguire ciclicamente delle istruzioni di base che permettano e di conoscere lo stato dell allarme e di conoscere lo stato della batteria e di leggere e processare eventuali sms ricevuti e di gestire la ricezione delle chiamate in modo da essere sempre in grado di rispondere a questi eventi Ognuna di queste operazioni di base provvede autonomamente all avvio di una sottoprocedura dedicata quando dovuto quindi ad esempio in caso di rilievo di un segnale d allarme partir automaticamente la procedura di emergenza 6 1 Ciclo principale In seguito ad ogni reset l esecuzione del programma inizia dalla funzione main Questa funzione suddivisa in 2 parti principali e inizializzazione e ciclo di programma la prima eseguita una sola volta ad ogni reset la seconda invece ripetuta ciclicamente Seguendo questo concetto la strutt
6. 0x0D e devono passare almeno 20ms l ultima ricezione ed una nuova trasmissione e necessario determinare il parser da utilizzare La determinazione del parser forse l operazione pi importante in quanto va a determinare la porzione di codice che verr utilizzata per analizzare la risposta del modem La corretta esecuzione di ogni comando secondo i canoni previsti viene affidata alla funzione send_ cmd unsigned char send cmd char xcmd unsigned int timeout unsigned char parser unsigned char ret 0 unsigned char retry 1 massimo numero di errori possibili do tx sync parser init ta tx_cmd cmd send command ret wait_rx timeout if ret tx timeout return ret while retry fatalerr return tx err tx timeout Per la sua chiamata necessita di 3 argomenti cmd puntatore alla stringa di comando timeout attesa massima per la ricezione in ms parser routine di analisi della risposta mentre osservando il codice si nota di come questa funzione sia composta da ulteriori 3 sottofunzioni principali tx sync assicura il giusto ritardo tra comandi successivi tx cmd invia fisicamente il comando al modem wait rx attende che sia completata l analisi della risposta 10 4 CICLO DI COMANDO 93 10 4 2 Ricezione ed analisi comando Nella funzione precedente quello che non si nota amp l intero processo di ricezione ed analisi della rispostadel modem che avviene interamente
7. 200mV gt V V impostata dal secondo comparatore Vec 2 200mV gt gt IR gt Vec 2 200mV Sommando i contributi dei 2 comparatori otteniamo un circuito che assicura di mantenere l uscita a livello basso se il segnale amplificato V 2 rimane all interno di una finestra di 200mV nei dintorni di Vee mentre la porta velocemente a V nel caso si esca da tale range quindi in presenza di un segnale utile dovuto a monte al passaggio di un corpo caldo di fronte al sensore Grazie a tutto questo al microcontrollore sufficiente verificare lo stato logico di questa linea per identificare l avverarsi o meno di uno stato d allarme e reagire di conseguenza 24 CAPITOLO 3 CICUITO DI CONDIZIONAMENTO DEL SEGNALE Capitolo 4 Microcontrollore Come logica di controllo del sistema stato scelto un microcontrollore Atmel ATMega32 Questo integrato general purpouse dispone di 32 linee di I O programmabili e svariate periferiche tra cui e 2 timer a 8 bit e 1 timer a 16 bit e convertitore ADC a 10 bit e 8 canali e interfaccia seriale UART e watchdog interno e memoria EEPROM interna da 1024 bit che lo rendono una soluzione valida per la gestione di svariate tipologie di sistemi da complesse automazioni industriali a pi semplici applicazioni embedded 4 1 Caratteristiche elettriche Il circuito integrato operativo a tensioni di alimentazione comprese tra 2 7V e 6V dove la tensione minima determi
8. collegato alla sorgente della tensione di riferimento utilizzata per la conversione che per l appunto necessita di essere mantenuta stabile Ora tutto quello che manca sono i collegamenti con la circuiteria esterna quale eventuali led di segnalazione o il modem GSM che va collegata utilizzando le 32 linee di I O libere 4 3 Interfaccia di programmazione ISP Questo microcontrollore provvede un sistema di programmazione in circuit tramite l interfaccia di comunicazione SPI interna permettendo cos l aggior namento del firmware salvato nel chip senza la necessit di togliere lo stesso dalla scheda 4 3 1 SPI L interfaccia SPI Serial Peripheral Interface classica viene normalmente utilizzata per la trasmissione di dati tra pi dispositivi collegati in una configurazione Master Slave Essa presenta 4 pin fondamentali SS Slave Select sincronia e inizializzazione trasmissioni SCK Serial ClocK segnale di temporizzazione dei dati MISO Master In Slave Out ricezione dati MOSI Master Out Slave In trasmissione dati La trasmissione inizia quando il master pone 55 a livello logico basso Suc cessivamente viene generata un onda quadra di frequenza costante sul pin SCK ed il dato da trasmettere viene posto un bit alla volta sul pin MOSI in modo che il suo valore logico sia costante durante il fronte scelto di SCK permettendone cosi una corretta lettura da parte degli slave La risposta da parte dei dispositivi slave avviene in
9. di memoria EEPROM da 1024 bytes e supporta fino a 100000 cicli di scrittura e cancellamento L inizializzazione ed il caricamento dei dati salvati in EEPROM viene eseguito 7 3 WATCHDOG 39 automaticamente nella fase di inizializzazione del microcontrollore nella funzione init_ vars questa funzione inizialmente verifica la presenza di dati validi precedentemente salvati in EEPROM ed in caso di insuccesso prima assegna a queste il loro valore di default e poi ne salva il valore in memoria in modo che sia subito disponibile al successivo riavvio void init_vars void lettura dati in eeprom if eeprom read nel caso in cui la lettura fallisca s inizializzano le variabili con i loro valori di default e si salvano in eeprom per il successivo riavvio id DEFAULT ID eeprom write La verifica dell attendibilit dei dati presenti in EEPROM viene determinata verificando il valore di un determinato byte di controllo In questo sistema ad esempio stato scelto di scrivere il valore esadecimale 0x77 nella posizione 1 dell EEPROM a seguito di una scrittura dei dati in EEPROM In questo modo al successivo riavvio sufficiente verificare il valore letto in quella posizione per determinare se la memoria contiene dati validi da caricare Grazie a questo semplice controllo possibile dotare ogni singola scheda con lo stesso firmware di una configurazione propria semplicemente programmando tramite
10. modo similare con la particolarit che il dato trasmesso viene posto sul pin MISO 28 CAPITOLO 4 MICROCONTROLLORE SCK SAMPLE MOSI MISO CHANGE MOSI PIN CHANGE MISO PIN Ss MSB first MSB Bit6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 LSB 4 3 2 Modalit di programmazione Per programmare il microcontrollore viene utilizzato un programmatore cio uno strumento elettronico apposito che viene collegato tra il computer e la scheda in questione In questo modo amp possibile scrivere nella flash del microcontrollore il pro gramma precedentemente compilato sul computer in modo che questo possa venire eseguito Capitolo 5 Modem GSM Per la comunicazione tra il sistema e l utente stato scelto l utilizzo di un modem GSM In questo modo possibile controllare la centralina d allarme in qualsiasi momento tramite un comune telefoni cellulare Per questo progetto stato scelto di utilizzare un modem GSM Telit GM862 comandato tramite semplici comandi testuali inviati attraverso la porta seriale UART direttamente dal microcontrollore L enorme quantit di comandi riconosciuti fanno parte dello standard AT e permettono l esecuzione di numerose operazioni quali e la gestione della rubrica telefonica e la gestione della connessione alla rete mobile e l invio e la ricezione di sms e l esecuzione e la ricezione di chiamate vocali oltre ad altre opzioni avanzate quali la trasmissione dati GPRS e l invio di
11. sotto interrupt La ricezione di un intero byte causa l interrupt dedicato RX Complete Interrupt RXC che avvia automaticamente la funzione uart0_isr pragma interrupt handler uart0_isr 14 void uart0 isr void unsigned char rxbyte lettura byte ricevuto rxbyte UDR verifica errori if UCSRA amp 0b00011100 return analisi byte ricevuto rx rxbyte questa funzione esegue solamente le operazioni pi basilari quali la lettura del dato ricevuto e la verifica di eventuali errori in ricezione La vera analisi dei dati avviene nelle fasi successive Fase 1 uartO isr lettura del byte ricevuto e verifica degli errori Fase 2 rx ricostruzione del messaggio composto da stringhe ASCII ter minate dai valori esadecimali 0x0D 0x0A CR LF Fase 3 parser analisi della risposta verifica del significato della stringa ricevuta nel contesto attuale e pianificazione delle operazioni conseguenti in particolare la funzione parser provvede ad identificare la validit della risposta ed il suo significato confrontando i dati ricevuti con delle stringhe che rappresentano la risposta standard che ci si aspetterebbe dall esecuzione del comando corrente Analizziamo ad esempio il comando AT CPIN utilizzato per verificare lo stato della SIM Esso prevede 7 possibili risposte diverse 54 CAPITOLO 10 COMUNICAZIONE CON IL MODEM CPIN SIM PIN CPIN SIM PUK CPIN READY CME ERROR 10 CME ERROR 13
12. un computer il banco di memoria EEPROM che altrimenti risulta interamente settato a OxFF in seguito ad ogni comune programmazione 7 3 Watchdog Un watchdog un timer autonomo interno autodecrementante e predisposto per resettare il microcontrollore una volta giunto a zero Questa periferica viene utilizzata per far fronte ad eventuali malfunzionamenti del microcon trollore in modo da pervenire entro il limite del possibile eventuali blocchi a causa di forti disturbi esterni Durante il normale ciclo di funzionamento del microcontrollore il watchdog 40 CAPITOLO 7 INIZIALIZZAZIONE viene regolarmente ricaricato in modo da non causare mai il reset forzato del sistema In questo modo pu giungere a zero solamente nel caso in cui il normale flusso del programma subisca un blocco inatteso In questo caso un reset hardware amp l unica possibilit per poter riprendere il corretto funziona mento del sistema La configurazione del watchdog avviene tramite il registro WDTCR tramite il quale possibile anche determinare l utilizzo di un prescaler cio un divisore di frequenza in grado di modulare il tempo di azzeramento del watchdog A questo punto in assenza di prescaler necessario che almeno una volta ogni 17ms il watchdog venga ricaricato tramite l istruzione assembly wdr altrimenti si incorrer in un reset del microcontrollore Capitolo 8 Lettura degli ingressi L ingresso dedicato alla lettura del segnale amplifica
13. 0 Il contatore del timer viene decrementato dalla routine di interrupt del Timer0 del sistema chiamata una volta ogni millisecondo per questo amp stato preferibile definire volatile la struttura dati pir avvio il timer in caso di fronte positivo if pir now amp amp pir old pir timer 20 verifica stato del timer if pir now amp amp pir timer pir value 1 else pir value 0 pir old pir now Grazie a questo filtro nel resto del programma possibile utilizzare la variabile pir value per poter analizzare il valore dell ingresso d allarme gia filtrato Capitolo 9 Lettura della batteria La natura stessa del sistema d allarme impone la necessit di avere un funzion amento continuo a prescindere dalle condizioni della linea elettrica esterna per far fronte ad eventuali blackout e tentativi di manomissione Ovviamente per una batteria permette un autonomia limitata e qui nasce la necessit di essere costantemente a conoscenza del suo stato di carica in modo da poter avvertire l utente in caso di necessit 9 1 ADC Per poter leggere il valore analogico della batteria e poterlo correttamente interpretare necessario l utilizzo di un convertitore analogico digitale Internamente questo microcontrollore contiene un ADC a 10 bit ad approssi mazioni successive completamente configurabile via software Dotato di circuito sample amp hold provvede 8 canali utilizzabili e diverse tensioni di
14. 5 nella rubrica telefonica e determinare l operazione da eseguire Nel caso il numero del mittente non sia presente in rubrica la chiamata viene immediatamente terminata Se invece il numero viene riconosciuto tra quelli autorizzati il microcontrol lore provvede al conteggio delle stringhe ricevute cio del numero di squilli ricevuti Una volta rilevato il giusto numero di squilli da 1 a 3 la chiamata viene terminata automaticamente e si esegue l operazione associata La funzione dedicata all analisi delle chiamate ricevute ring check chia mata anch essa automaticamente all interno del ciclo principale nella funzione main void ring_check void if new ring nuovo squillo da analizzare new_ring 0 ring counter switch ring counter case 1 abilitazione allarme if alarm enable enable alarm ring counter 0 send cmd ATH 30000 default parser break case 3 disabilitazione allarme if alarm enable disable alarm ring_counter 0 send cmd ATH 30000 default parser break default break 66 CAPITOLO 12 GESTIONE CHIAMATE In questo modo questa piccola porzione permette all utente di eseguire le operazioni principali quali la gestione dello stato di abilitazione dell allarme grazie all esecuzione di semplici squilli Parte III Prodotto finale Capitolo 13 Caratteristiche del prodotto In conclusione abbiamo ottenu
15. Matrix GSM Alarm Luca Giuriato 26 aprile 2010 Indice 1 Introduzione I Progetto hardware 2 Sensore PIR 21 Effetto piroelettrico no dou ae dp a quat d 22 Lenti di Fresnel 0 0 0 0 0 000004 2 3 Modalit d utilizzo 3 Cicuito di condizionamento del segnale Sl BGN KE AE IA 3 1 1 Primo stadig i d dba spe de dle dd e a ad Secondo stadi a Scat os uev sed ES 3 2 Comparatore 4 Microcontrollore 4 1 Caratteristiche elettriche 4 2 Configurazione circuitale di 4 3 Interfaccia di programmazione ISP AA ERE TERI TATTO 4 3 2 Modalit di programmazione 5 Modem GSM 5 1 Caratteristiche elettriche 5 2 Procedura 4 II Progetto software 6 Operazioni principali 6 47 Caelo principale Cos sulle is eee base 11 11 12 12 15 16 16 18 21 25 25 26 27 27 28 29 29 30 31 33 6 2 Ciclo d allarme 7 Inizializzazione 7 1 Configurazione P EPROM 2 82 ayi Ro emo xp TS Watchdog ae 8 Lettura degli ingressi 8 1 Struttura del filtro 8 2 Implemetazione software 9 Lettura della batteria O3 o LADO i Stent siege ia ph 9 2 Soluzione circuitale 9 3 Ciclo di lettura 10 Com
16. accensione dell adc unsigned char adc_on 0 numero di letture preventive unsigned char adc_del 1 contatore decrementato ogni ms dal Timer0 volatile unsigned int batt_timer 20000 if Ibatt timer timeout fase 1 if adc timer amp amp ladc on ADCSRA 0b10000000 abilitazione ADC PORTA 0b00000100 abilitazione potenziometro adc_on 1 adc timer 3 timeout transitorio if on amp amp adc_ timer fase 8 conversione NON in corso if ADCSRA amp 0b01000000 start conversion ADCSRA 0b01000000 conversione completata if ADCSRA amp 0b00010000 lettura valore value ADCH clear flag ADCSRA 0b00010000 fase 3 if del del else fase 4 aggiunta al filtro filter value 9 3 CICLO DI LETTURA 47 fase 5 turn off ADC ADCSRA amp 0b01111111 turn off potentiometer PORTI amp 0b11111011 adc_on 0 adc_del 1 batt timer 20000 48 CAPITOLO 9 LETTURA DELLA BATTERIA Capitolo 10 Comunicazione con il modem Il microcontrollore conversa con il modem GSM tramite la linea UART dedi cata che permette una comunicazione seriale a media velocit con l utilizzo di solamente 2 pin 10 1 UART L Universal Asynchronous serial Receiver and Transmitter UART un in terfaccia di trasmissione seriale di dati ampiamente utilizzata soprattutto nella comunicazione tra comp
17. ad Write R R R R R R R R Initial Value N A N A N A N A N A N A N A N A Ora tramite DDRA possibile determinare se utilizzare un dato pin come ingresso o come uscita mentre il comportamento di PORT A varia in base allo stato del pin In particolare ponendo ad esempio il bit2 di DDRA a 1 scegliamo di utilizzare il pin PA2 come uscita e il suo valore verr direttamente determinato dal valore del bit2 di PORT A Viceversa ponendo al contrario il bit2 di DDRA a 0 settiamo PA2 come ingresso e il valore del bit2 di PORTA andr solo ad influenzare la presenza o l assenza di un pullup interno void port init void esempio di configurazione PORTA 000001111 DDRA 0b00110011 PAO diventano uscite a livello alto PA2 e PA3 diventano ingressi con pullup PA4 e PAS diventano uscite a livello basso PA6 e PAT diventano ingressi senza pullup L intero funzionamento del microcontrollore viene determinato in modo sim ile grazie alla giusta configurazione dei registri al suo interno secondo le informazioni facilmente ricavabili dal suo datasheet 7 2 EEPROM Normalmente le variabili utilizzate nel programma risiedono in RAM In questo modo si ottiene una maggiore velocit d utilizzo ma ogni valore viene perso in seguito ad un reset Quando necessario mantenere il valore di una certa variabile nel tempo si pu ricorrere al suo salvataggio nella memoria EEPROM interna Questo microcontrollore contiene un banco
18. ata vocale 61 62 CAPITOLO 12 GESTIONE CHIAMATE esecuzione chiamata U ATD3401122334 M DIALING M RINGING conclusione chiamata U ATH M OK Durante la telefonata il modem GSM provvede ad informarci del suo stato corrente secondo stringhe di testo predefinite DIALING inizializzazione chiamata in corso RINGING il telefono del destinatario sta squillando CONNECTED il destinatario ha risposto alla telefonata RELEASED telefonata terminata da noi DISCONNECTED telefonata terminata dal destinatario in modo da poter gestire correttamente ogni situazione Il processo di chiamata deve avvenire in realtime senza bloccare per l ese cuzione del resto del ciclo del programma che deve continuare ad analizzare l ingresso di allarme e gli eventuali comandi inviati dall utente Per avviare la telefonata si utilizza la funzione auto call che provvede semplicemente a settare determinate flags che determinano il numero di squilli da eseguire e la loro durata void auto call unsigned char nr unsigned char ns if call counter chiamata in corso if calling hung up send ATH 30000 default parser call timer 5000 telse call_timer 0 calling 0 num ptr 0 12 1 ESECUZIONE CHIAMATE 63 call counter nr numero chiamate call_timeout ns durata chiamate La vera gestione delle telefonate avviene nella funzione call check eseguita automaticamente ad ogni ciclo d
19. cessati tutti allo stesso modo Capitolo 12 Gestione chiamate Per quanto la gestione del sistema tramite sms risulta comoda pratica e veloce causa necessariamente dei piccoli costi aggiuntivi in quanto il servizio di invio di sms viene pagato al gestore della rete mobile esattamente come accade con i comuni telefoni cellulari Un alternativa interessante e totalmente priva di costi la gestione del sistema tramite comuni chiamate senza risposta squilli Ovviamente la variet di operazioni eseguibili molto pi limitata in parte per la povert di questo metodo di comunicazione in parte per mantenere alta la semplicit d utilizzo In particolare si scelto di implementare 2 funzionalit principali e l utente pu abilitare e disabilitare il sistema d allarme tramite un numero predefinito di squilli e in caso d allarme il sistema pu essere configurato per eseguire 3 squilli di durata di 1 minuto distanziati da un ulteriore minuto per avvertire l utente dell emergenza In questo modo sono assicurate le funzionalit basilari a prescindere dalla quantit di credito residua nella scheda SIM 12 1 Esecuzione chiamate Per avviare una chiamata si utilizza il comando ATD seguito direttamente dal numero del destinatario e da un punto e virgola finale che assicura l esecuzione di una chiamata in modalit vocale Esempio di comunicazione tra microcontrollore U e modem M per l esecuzione di una chiam
20. da com presa tra 0 1Hz e 10Hz pari a 20dB mentre per valori di frequenza esterni a questo range il segnale subir un amplificazione nulla o trascurabile Tutto questo si nota anche grazie al diagramma di Bode 18 CAPITOLO 3 CICUITO DI CONDIZIONAMENTO DEL SEGNALE Diagramma di Bode T TT Modulo dB T Fase deg o i Riassumendo questo primo stadio provvede ad un amplificazione massima pari a circa 20dB dei segnali con frequenza compresa tra 1Hz e 10Hz lasciando quasi inalterati i segnali con frequenza esterna alla banda 0 1Hz 100Hz 3 1 2 Secondo stadio Anche questo stadio di amplificazione composto da un amplificatore oper azionale collegato tramite una rete RC ma risulta leggermente pi complesso in quanto ai suoi ingressi l operazionale vede 2 segnali distinti Ingresso invertente segnale pre amplificato dal primo stadio Ingresso invertente valore fisso pari a V 2 Voa Per analizzare correttamente la situazione amp conveniente suddividere il com portamento di tale circuiteria secondo il principio di sovrapposizione degli effetti Secondo questo principio la tensione in uscita Vog2 risulta essere la somma di 2 contributi V derivante dall amplificazione del segnale posto 3 1 FILTRO ATTIVO 19 sull ingresso non invertente V e V causato dall amplificazione del segnale posto sull ingresso invertente V
21. delle chiamate Se il sistema amp disattivo in seguito al primo squillo viene automaticamente attivato Viceversa se gia attivo verr a disattivarsi a seguito del terzo squillo Non necessario contare il numero di squilli della chiamata in quanto il dispositivo provvede autonomamente al conteggio e alla conclusione della chiamata senza mai rispondere e quindi senza mai causare costi dovuti al traffico telefonico D altra parte Matrix GSM Alarm provvede a segnalare ogni informazione importante all utente L utente cos potr ricevere diversi sms da parte del dispositivo ognuno con un preciso significato MATRIX ON sistema attivo MATRIX OFF sistema disattivo in attesa di ulteriori comandi ALLARME segnalazione di uno stato di allarme RING ON chiamate di segnalazione abilitate CALL ON sms di segnalazione abilitati RING amp CALL ON chiamate ed sms di segnalazione abilitati Verifica credito rilevato un livello di credito residuo basso Batteria in esaurimento rilevato un livello basso di batteria 72 CAPITOLO 13 CARATTERISTICHE DEL PRODOTTO Capitolo 14 Considerazioni finali 14 1 Problemi riscontrati Durante i primi test hardware sono stati notati dei problemi non previsti durante la fase di progettazione dovuti alla convivenza del sensore PIR e del modulo GSM La presenza del modulo GSM va ad influenzare il segnale in uscita dal sensore in 2 modi 1 disturbi ad alta frequenza 2 oscillazioni dell a
22. e del sistema Innanzitutto si determina lo stato d allarme tramite la lettura del segnale amplificato e filtrato del sensore PIR del quale si mantiene in memoria anche il valore precedente per poter eseguire un confronto verifica un fronte di salita if pir value amp amp pir old alarm avvia la segnalazione In questo modo e si pu determinare il fronte di salita del segnale d allarme e si pu avviare un singolo ciclo di segnalazione per ogni allarme rilevato e si evitano inutili segnalazioni multiple e si evitano loop di allarmi in grado di esaurire velocemente il credito della SIM La procedura d allarme provvede a segnalare l emergenza all utente tramite e l invio di un sms e l esecuzione di 3 chiamate senza risposta e l accensione del LED montato sulla scheda in modo da assicurare entro i limiti del possibile che l utente venga avvisato velocemente in ogni situazione Infine alla conclusione della segnalazione viene avviato un timer di durata di alcuni minuti atto ad inibire la lettura di ulteriori eventuali allarmi in quanto ritenuto privo di importanza la segnalazione multipla della stessa fonte d allarme 36 CAPITOLO 6 OPERAZIONI PRINCIPALI Capitolo 7 Inizializzazione All accensione necessario prima di tutto configurare ed avviare le periferiche utilizzate in modo che operino come voluto nel corso del programma In questo caso bisogna e inizializzare le variabili del sistema
23. e relativamente contenute dovute alla corrente che percorre costantemente il partitore Queste perdite si possono ridurre enormemente ricorrendo ad un piccolo stratagemma Invece di collegare un capo del partitore all alimentazione questo stato collegato ad un altra porta del microcontrollore In questo modo possibile determinare via software quando e per quanto tempo porre quest uscita a valore logico 1 oppure 0 cio se portare in uscita il valore di alimentazione o la massa Abilitazione Vbatt Cos possibile mantenere a zero la tensione sul partitore per la maggior parte del tempo annullando cos i consumi ed attivarlo solamente ad intervalli brevi e regolari in concomitanza con le letture dell ADC a patto di assicurare il tempo necessario al partitore di arrivare a regime prima di eseguire la conversione 9 3 CICLO DI LETTURA 45 9 3 Ciclo di lettura La lettura del livello della batteria viene eseguita una volta ogni 20 secondi Quest operazione per essere eseguita correttamente deve seguire fasi precise Inizializzazione prima di tutto necessario abilitare la lin ea di alimentazione del partitore di tensione controllata da PA2 ed abilitare l ADC senza avviare la conversione Attesa transitorio prima di procedere alla vera lettura bisogna attendere almeno 3ms per permettere al par titore di giungere a regime ed al ADC di accendersi correttamente Lettura iniziale a questo p
24. e selezionare ingressi e uscite e configurare ed avviare il timer e configurare l UART e inizializzare il watchdog e abilitare gli interrupt e avviare e configurare opportunamente il modem GSM 7 1 Configurazione La configurazione di ogni parametro o periferica del microcontrollore avviene settando ad un valore opportuno dei registri dedicati dove ogni bit ha un significato preciso Ad esempio la configurazione di PORT A cio dell insieme dei primi 8 pin general purpouse avviene tramite i registri a 8 bit DDRA e PORT A In DDRA Data Direction Register A e PORT A ogni bit in base alla sua posizione corrisponde ad un determinato pin quindi ad esempio il bit0 LSB di entrambi i registri va a modificare lo stato del pin PAO mentre il bit7 MSB andr a settare il pin PA7 comportamento facilmente intuibile anche osservando la descrizione visiva del registro 37 38 CAPITOLO 7 INIZIALIZZAZIONE Port A Data Register PORTA Bit 6 5 7 4 3 2 1 0 FORTE T PORTA PORTAS PORTAS PORTAS PORTAZ PORTAT PORTA PORTA Read Write RW RW RW RW RW RW RW RW Initial Value 0 0 0 0 0 0 0 0 Port A Data Direction Reglster DDRA Bit 6 5 4 3 2 1 0 0087 6 DDAS DDA2 DDAO DDRA ReadWrite RW EN Aw Aw EN RW RW RW Initial Value 0 0 0 0 o 0 0 o Port A Input Pins Address PINA ES i i _PINA7 PINAG PINAS PINA4 PINA3 PINA2 PINA1 PINAO PINA Re
25. el programma Per la comprensione di questa parte proponiamo di seguito il codice della funzione semplificato ed ampiamente commentato in modo da risultare di facile comprensione void call_check void ogni operazione qui svolta richiede un determinato tempo prima di poter risultare completata ad esempio una volta avviata una chiamata necessario attendere almeno 60 secondi prima di concluderla Per far fronte a questi tempi morti una volta eseguita l operazione voluta viene caricata la variabile call_timer con il valore voluto in modo da inibire la chiamata a questa funzione per il tempo di durata dell operazione corrente if call timer return se il programma raggiunge questo punto significa che passato il tempo voluto ed arrivato il momento di eseguire l operazione successiva ad esempio se attiva una chiamata calling 1 ora giunto il momento di terminarla if calling hungup send cmd ATH 30000 default parser if call counter call counter chiamata conclusa calling 0 attendiamo un minuto prima della prossima chiamata call timer 60000 else 64 CAPITOLO 12 GESTIONE CHIAMATE procedura avvio automatico di una telefonata verifica il numero di squilli gi eseguiti if call counter return verifica se impostato un tempo minimo di chiamata if call timeout return e
26. entuali segnali ad alta frequenza Nel frattempo stato implementata anche una soluzione software temporanea per permettere il funzionamento anche ale prime schede provvisorie prive di queste correzioni I problemi di incompatibilit tra sensore e modulo GSM sono stati ovviati suddividendo il ciclo di lavoro del modulo in 2 fasi principali Fase di attesa sensore abilitato e modulo GSM spento Fase di allarme sensore disabilitato e modulo GSM acceso Durante la prima fase il sistema analizza il segnale del sensore pir in attesa Una volta rilevato un allarme il pir viene disabilitato si accende il modulo GSM e si procede con la segnalazione d emergenza In seguito il modem viene nuovamente spento e dopo un minuto viene riattivato il sensore tornando cos allo stato iniziale Grazie a questo espediente provvisorio il sistema funziona senza problemi risolvendo momentaneamente il problema di incompatibilit hardware 14 2 Evoluzioni future Per questo prodotto amp gi stato previsto lo sviluppo di ulteriori versioni analoghe dal punto di vista della comunicazione via GSM ma differenti nel tipo di ingresso d allarme utilizzato 14 2 1 Interfaccia generica In questa versione al posto del sensore PIR sono presenti 2 fili d allarme e il primo con pullup che se rilasciato si mantiene a livello alto e il secondo con pulldown che se rilasciato si mantiene a livello basso il microcontrollore verifica ciclicamente lo stato di ques
27. guire delle chiamate con addebito In questo modo si assicura di riuscire in ogni caso a trasmettere l informazione voluta all utente Tutto questo fa di Matrix GSM Alarm un prodotto altamente affidabile e tuttavia flessibile adatto a svariate circostanze e dotato di un interfaccia d utilizzo semplice ed intuitiva che permette all utente di sfruttare appieno le sue potenzialit senza eccessive difficolt 13 2 Guida per l utente Il dispositivo si accende appena viene alimentato come si pu notare dal LED posto frontalmente per poi rimanere per un minuto in attesa di eventuali comandi Nel caso non arrivi alcun comando tramite sms o chiamata telefonica il sistema di allarme si attiva automaticamente e da questo momento in poi 13 2 GUIDA PER L UTENTE 71 provveder a monitorare lo stato del segnale del sensore Come gi detto precedentemente questo sistema si pu controllare tramite Pinvio di comuni sms testuali In particolare START mette in funzione il dispositivo che da questo momento in poi segnaler ogni eventuale segnale d allarme STOP disattiva l allarme inibisce ogni segnalazione SMS segnalazioni d allarme solo tramite sms CALL segnalazioni d allarme solo tramite chiamate ALL segnalazioni d allarme tramite sms e chiamate HELP mostra una sintesi dei comandi disponibili VER riferisce la versione software in funzione Alternativamente possibile attivare e disattivare il sistema d allarme tramite
28. il passaggio di un corpo caldo genera un segnale molto debole a bassa frequenza legata alla velocit di movimento del corpo che va a sovrapporsi al valore di offset Questo il segnale che ci interessa in grado di discriminare la presenza o l assenza di un essere umano di fronte al sensore Riassumento in uscita dal sensore PIR ritroviamo un segnale Vp r caratter izzato da e offset costante Vorr 1V circa e segnale di ampiezza Vs 5mV e frequenza del segnale compresa tra 0 1Hz e 10Hz Di conseguenza il filtro attivo dovr e attenuare i segnali a bassa frequenza in modo da eliminare l offset e attenuare i segnali ad alta frequenza in modo da aumentare la resistenza al rumore e amplificare i segnali di frequenza compresa tra 0 1Hz e 10Hz 3 1 1 Primo stadio Questo stadio composto da un comune amplificatore operazionale in config urazione non invertente 3 1 FILTRO ATTIVO 17 Voi i Voa R2 C2 La R 1MQ Rs 10 Q G lur C 10uF Considerando le impedenze Z Ri il parallelo tra Ri e Ci e Za Ra la serie tra R e il calcolo della funzione di trasferimento G s risulta pi agevole che numericamente diventa is a DTE ee Cala Questa funzione di trasferimento presenta 2 zeri e 2 poli che determinano la banda di frequenze entro cui il segnale viene amplificato z2 0 09 p 10 In particolare il segnale otterr un amplificazione massima nella ban
29. infine che questa funzione viene chiamata a seguito di un inter rupt causato dalla ricezione di un byte ed avvenendo nel bel mezzo della trasmissione necessaria la massima velocit per non rischiare di perdere la ricezione del byte successivo Qui l operazione pi onerosa in termini di tempo sicuramente il confronto tra la stringa ottenuta in ricezione e i valori costanti che ci aspettiamo di trovare Per questo motivo prima dell analisi vera e propria la risposta viene analizzata dalla funzione string analyzer che suddivide la stringa in un insieme di parole terminate da 0x00 indicizzate dall array ordinato di puntatori field Grazie a questa operazione preventiva il lavoro del parser viene enormemente semplificato e velocizzato in quanto non pi necessario ricercare un pattern lungo l intera lunghezza della rispos ta ma sufficiente confrontarlo con un solo campo relativo alla posizione dove dovrebbe trovarsi 56 CAPITOLO 10 COMUNICAZIONE CON IL MODEM Capitolo 11 Gestione SMS Matrix GSM Alarm in grado di dialogare con l utente attraverso l invio e la ricezione di semplici messaggi testuali Grazie a questa funzionalit possi bile sia venire avvisati dal sistema d allarme quando avviene un particolare evento sia tenerlo sotto controllo da remoto diventando cos uno strumento importantissimo per gestire al meglio le potenzialit del sistema 11 1 Invio SMS L invio di un sms viene eseguito tram
30. ite il comando AT CMGS seguito da una stringa indicante il numero telefonico del destinatario Successivamente si inserisce il testo voluto si lascia una riga vuota e si conclude il tutto tramite l invio di un byte di valore 0x1A Esempio di comunicazione tra microcontrollore U e modem M per l invio di un sms AT CMGS 3401122334 25 Messaggio di prova 0x1A OK 213 BASSES Quest operazione viene eseguita automaticamente tramite la comoda funzione send sms che necessita come argomenti i puntatori alle stringhe contenenti il testo del messaggio e il numero del destinatario unsigned char send sms char dest unsigned char mess inizializzazione trasmissioni if start sms dest return 0 57 58 CAPITOLO 11 GESTIONE SMS invio testo tx string mess 0 verifica risposta return stop_sms Genericamente l invio di un sms pu avvenire secondo 2 differenti modalit e modalit testuale e modalit PDU Al giorno d oggi la seconda risulta essere pi diffusa in quanto l unica che necessariamente deve essere implementata in ogni modem GSM Pur essendo lo standard de facto risulta per essere enormemente pi complessa da implementare pur avendo alla fine dei conti le stesse identiche potenzialit della modalit testuale e proprio per questo stato scelto di utilizzare la modalit testuale all interno di questo progetto La modalit testuale semplifica sia il p
31. limentazione La ricetrasmissione su rete GSM comporta la creazione di campi elettromag netici molto forti in grado di accoppiarsi con il package metallico del sensore PIR che va a fungere da antenna provocando impulsi di ampiezza nell ordine dei volt in grado di durare per interi milisecondi In questo scenario il filtro attivo provvede ad un ulteriore amplificazione del disturbo e la lettura del segnale d allarme risulta falsata D altro canto durante le operazioni di trasmissione il modulo GSM comporta consumi elettrici notevoli assorbendo dall alimentazione picchi di corrente dell ordine dei 2A in grado di generare oscillazioni dell alimentazione che per quanto ridotte vanno ad alterare quanto basta il funzionamento del sensore PIR generando anche in questo caso dei falsi allarmi Entrambi questi problemi hanno per gi trovato soluzione in ambito sper imentale e la versione finale del progetto sar immune da questi disturbi Innanzitutto stato necessario rivedere la struttura del circuito di alimen tazione in modo da renderlo pi stabile ed isolare e rafforzare per quanto 73 74 CAPITOLO 14 CONSIDERAZIONI FINALI possibile il circuito di alimentazione del sensore da quello del modem Infine stato rivisto e riprogettato il circuito di filtro ed amplificazione del segnale del sensore con l accortezza di porlo il pi vicino possibile al sensore stesso in modo da diminuire l area in grado di accoppiarsi con ev
32. mativo a questi comandi e in caso invece di problemi hardware non c possibilit di soluzione da parte del software quindi risulta irrilevante analizzare queste risposte Solo successivamente alla corretta configurazione del modem viene abilitato il processo di analisi automatica dei dati ricevuti dal modem che d ora in poi verificher la corretta esecuzione di ogni comando 10 3 Sintassi comandi Come gi detto il modem va comandato tramite stringhe di testo trasmesse tramite il collegamento seriale ed strettamente necessario che queste direttive seguano una sintassi e una tempistica ben determinata I comandi utilizzati seguono lo standard AT e sono composti dall identificativo standard AT seguito dal nome del comando e da eventuali altri caratteri indicanti la modalit d esecuzione del comando Poniamo ad esempio di voler conoscere lo stato della connessione alla rete del modulo Il comando predisposto a questa operazione AT CREG dove AT l identificativo standard CREG il comando vero e proprio indica l azione da eseguire in questo caso una lettura Questa stringa va inviata al modem seguita dal valore esadecimale 0x0D indicante la fine del comando 10 4 Ciclo di comando 10 4 1 Invio comando Ogni comando per poter essere correttamente processato deve seguire alcune regole principali 92 CAPITOLO 10 COMUNICAZIONE CON IL MODEM e la stringa di comando deve terminare con il valore esadecimale
33. messaggio Matrix GSM Alarm stato configurato per accettare solamente i messaggi provenienti da mittenti il cui numero contenuto nelle prime posizioni della rubrica della SIM quindi se il numero letto in questo momento non combacia con nessuno di quelli validi il messaggio viene direttamente scartato Quando invece il numero di telefono del mittente risulta presente nella rubrica il corpo del del messaggio segue un secondo processo di analisi dove si procede al suo confronto con i comandi accettati predefiniti e nel caso ci sia una corrispondenza viene eseguito il codice relativo al comando Tutto questo avviene nella funzione text parser void text parser char xstr Commands are case insensitive uppercase str if stremp str VER send sms mitt Version 1 0 return Nell esempio si nota subito che se il messaggio composto dalla stringa VER il mittente ricever automaticamente un sms indicante la versione software corrente Anche gli altri comandi vengono verificati in questo modo 60 CAPITOLO 11 GESTIONE SMS aggiungendo semplicemente ulteriori blocchi IF in successione Prima dell analisi del comando per avviene un altra importante operazione grazie alla funzione uppercase ogni lettera del messaggio diventa maiuscola In questo modo amp possibile processare correttamente il comando a prescindere dal modo in cui stato scritto Ad esempio i comandi VER Ver ver e vEr vengono pro
34. nata dal Brown out detector un circuito di sicurezza che provvede a resettare automaticamente il microcontrollore nel caso in cui la tensione di alimentazione scenda al di sotto del minimo stabilito La corrente assorbita invece raggiunge un massimo di 15mA a cui vanno 25 26 CAPITOLO 4 MICROCONTROLLORE sommate le eventuali correnti dovute al pilotaggio dei pin in output o l utilizzo di periferiche quali UART o PADC fino ad un massimo globale di 200mA VMAX V Vnom V Vmin V IavgM AX mA 6 3 3 2 7 200 4 2 Configurazione circuitale di base Per funzionare al meglio il microcontrollore ha bisogno che tutte le sue linee di alimentazione siano collegate preferibilmente con l aggiunta di un condensatore di stabilizzazione Nel caso non si utilizzi l oscillatore interno necessario collegare un quarzo tra gli ingressi XTAL1 e XTAL2 riportandolo a massa tramite altri 2 condensatori come mostrato in figura E ne I T dX Particolare attenzione necessaria per la linea di reset che va alimentata tramite un filtro RC per evitarne il pi possibile eventuali sbalzi dovuti a disturbi esterni che potrebbero causare malfunzionamenti del sistema 4 3 INTERFACCIA DI PROGRAMMAZIONE ISP 27 Infine visto l utilizzo nel programma del circuito di conversione analogico digi tale consigliato collegare a massa tramite un condensatore di stabilizzazione il pin Argp Internamente questo pin
35. nche se a prima vista potrebbe sembrare una comune lente a superficie liscia ad un analisi pi attenta si nota che composta da un insieme di sezioni circolari ognuna con un inclinazione tale da poter riflettere i raggi provenienti da un determinato angolo La lente composta da un materiale in grado di trasmettere radiazione infrarossa di lunghezza d onda compresa tra gli 8 e i 14 um rendendola maggiormente sensibile alle emissioni umane e ponendo quindi un primo livello di filtro 2 3 Modalit d utilizzo Internamente il sensore presenta un FET di amplificazione e disaccoppiamento del segnale proveniente dall elemento cristallino piroelettrico permettendo cos una migliore misura e stabilit del segnale 2 3 MODALIT D UTILIZZO 13 Simbolo Descrizione Valore tipico D alimentazione 2V 15V S segnale 5mVpp G massa OV Il package si presenta con 3 pin drain e ground dedicati all alimentazione e source per la lettura del segnale elettrico generato Mentre ground rappresenta la massa al drain va collegata la tensione di alimentazione che pu essere scelta nel range 2 2V e 15V e va opportunamente filtrata tramite un filtro RC Sul pin source ritroviamo un segnale in tensione rappresentativo della radiazione infrarossa rilevata istantaneamente di ampiezza tipica 5mV e offset compreso tra 0 6 e 0 8V Normalmente per essere correttamente utilizzato questo segnale va opportu namente amplificato e filtrato da
36. o circuito prevede che possano influire sull uscita al massimo uno per volta evitando ogni eventuale conflitto dovuto alla condivisione della linea d uscita Il primo comparatore riporta sul pin il segnale V 2 proveniente da prece denti stadi di amplificazione mentre sul pin V_ ritrova un valore costante pari a V_ e 200mV dove i 200mV sono dovuti alla tensione di conduzione del diodo In questo modo V E se V 2 minore di Vee 200mV ocl Vee Se Vaag maggiore di Vec 200mV Analogamente il secondo comparatore riporta stavolta sul pin V_ il segnale Voaz proveniente da precedenti stadi di amplificazione mentre sul pin Vi ritrova un valore costante pari a Vec dove i 200mV sono sempre dovuti alla tensione di conduzione del diodo Da In questo caso V se Vj minore di Ye 200mV 2 V X se maggiore di Es 200mV oc2 7 3 2 COMPARATORE A FINESTRA 23 Per ovviare agli inevitabili conflitti che si avrebbero collegando direttamente insieme le uscite dei 2 operazionali sono stati inseriti in serie a questi dei diodi isolando cos l operazionale dalla linea d uscita quando la sua uscita pari a OV In questo modo possiamo suddividere il risultato finale in 3 diversi casi e Var gt V4 200mV gt V V impostata dal primo comparatore e V 200mV lt Var lt Ve 200mV gt V OV grazie alla resistenza di carico collegata a massa e V 2 lt V
37. ore ad infrarosso pu captare la presenza umana fino a diversi metri di distanza e contenente un modem GSM in modo che possa essere controllato dall utente in qualsiasi situazione utilizzando comodamente il proprio cellulare Otteniamo cos un sistema d allarme molto semplice ma flessibile e dalle grandi potenzialit utilizzabile in sicurezza nella maggior parte dei casi pi comuni Le pagine successive contengono un tour riassuntivo delle modalit in cui questo progetto stato realizzato sia da parte hardware che software per poi mostrare brevemente l interfaccia di utilizzo e configurazione dedicata all utente Parte I Progetto hardware Capitolo 2 Sensore PIR Il sistema utilizza un sensore PIR Passive InfraRed in grado di rilevare la radiazione infrarossa dovuta ad una presenza umana nella zona sotto controllo Questo tipo di sensori ritenuto molto affidabile e viene largamente utilizzato in molti settori ove necessario rilevare la presenza umana come ad esempio i sistemi di avvio automatico di porte e luci 2 1 Effetto piroelettrico Il cuore del sensore il materiale cristallino al suo interno sensibile alle radiazioni infrarosse grazie alle sue propriet piroelettriche Quest propriet rende un materiale capace di generare una differenza di potenziale ai suoi capi proporzionale al calore assorbito dovuto in questo caso all emissione di onde infrarosse da parte di un corpo caldo quale un animale o
38. riferimento selezionabili Proprio quest ultima caratteristica risulta in questo caso indispensabile in quanto pur essendo l ADC stesso alimentato dalla batteria necessario che fornisca un valore digitale univoco a prescindere dal valore corrente dell ali mentazione Questo si ottiene semplicemente utilizzando il reference interno dedicato posto al valore costante di 2 56V 9 2 Soluzione circuitale L utilizzo nell ADC della tensione di riferimento a 2 56V pone in campo un ulteriore problema Mentre la batteria utilizzata raggiunge un valore di 43 44 CAPITOLO 9 LETTURA DELLA BATTERIA 4 2V da carica il convertitore in grado di leggere solamente valori minori o uguali alla sua tensione di riferimento e quindi minori o uguali di 2 56V impossibilitando cos la corretta lettura del valore di batteria Portando in questo modo il valore d alimentazione all ingresso otterremmo in uscita un valore costante pari a 0xFF per qualunque valore maggiore a 2 56V rendendo la lettura totalmente inutile Per risolvere questo inconveniente sufficiente utilizzare un partitore di tensione in grado di adattare il valore secondo le nostre esigenze Il partitore qui utilizzato semplicemente composto da 2 resistenze di valore uguale e molto elevato collegate in serie tra alimentazione e massa In questo modo possibile leggere ai capi della seconda resistenza un valore pari alla met di quello d alimentazione con perdit
39. rocesso di invio che di ricezione dei messaggi e risulta molto utile in fase di debug in quanto i dati comunicati tra modem e microcontrollore risultano in chiaro senza aver subito alcun processo crittografico o di compressione 11 2 Ricezione SMS In seguito alla ricezione di un sms il modem invia automaticamente al microcontrollore la stringa CMTI SM 1 dove CMTI indica la ricezione di un messaggio SM indica in quale memoria stato salvato il messaggio 1 indica la posizione che ha assunto il messaggio In questo caso quindi il messaggio ricevuto risulta essere stato salvato nella prima posizione della memoria della SIM A questo punto il microcontrollore pu recuperare questo messaggio richieden done la lettura tramite il comando AT CMGR come da esempio Esempio di comunicazione tra microcontrollore U e modem M per la ricezione di un sms ricezione del messaggio 11 2 RICEZIONE SMS 99 M CMTI SM 1 richiesta di lettura U AT CMGR 1 M CMGR REC_UNREAD 393401234567 09 11 23 10 31 20 04 M Testo di prova M OK cancellazione del messaggio U ATYCMGD 1 M OK Come si vede nell esempio prima di inviare il testo del messaggio il modem invia anche una stringa contenente altre informazioni utili quali il numero del mittente lo stato del messaggio REC UNREAD cio messaggio non letto ed il relativo timestamp Grazie a queste informazioni possibile verificare l utilit del
40. secuzione chiamata start call amp rubrica num ptr 0 calling 1 settiamo la durata della chiamata if call timeout lt 60 call timer call timeout 1000 else call timer 60000 Tutto questo d all utente l illusione di un ambiente multitasking Tuttavia il micocontrollore in grado di eseguire una sola operazione per volta l abilit del programmatore sta solamente nella capacit di far convivere pi funzionalit in successione senza creare blocchi o conflitti 12 2 Ricezione chiamate L operazione di ricezione e conteggio delle chiamate risulta molto pi semplice della precedente Durante la ricezione della chiamata il modem invia ad intervalli regolari di 2 secondi una stringa identificativa al microcontrollore Esempio di comunicazione tra microcontrollore U e modem M durante la ricezione di una chiamata vocale ogni riga corrisponde ad un tono di chiamata come sentito da parte del mittente M M M CLIP 393401234567 145 128 Nome 0 CLIP 393401234567 145 128 Nome 0 CLIP 393401234567 145 128 Nome 0 conclusione automatica della chiamata dopo 3 squilli consecutivi U ATH M OK Come facilmente si nota nell esempio il modem fornisce una stringa che non solo indica che in corso una chiamata CLIP ma anche il mittente di tale telefonata In questo modo possibile determinare se il chiamante presente 12 2 RICEZIONE CHIAMATE 6
41. stro sistema con periferiche aggiuntive quali ad esempio e moduli di comunicazione IR e moduli di comunicazione wireless e moduli interfacciamento a reti CAN sia permettere a sistemi preesistenti di utilizzare le nostre funzionalit di comunicazione tramite rete GSM Con questo prodotto possibile realizzare un infinit di combinazioni e sistemi diversi dai pi semplici ai pi complessi mantenendo allo stesso tempo la semplicit d utilizzo insita nell interfaccia di controllo da noi progettata 76 CAPITOLO 14 CONSIDERAZIONI FINALI Bibliografia 1 Atmel Corporation ATMega32 Datasheet http www atmel com 2 Telit Wireless Solutions Telit GM862 Hardware User Guide http www telit co it 3 Telit Wireless Solutions Telit GM862 Software User Guide http www telit co it 4 Telit Wireless Solutions Telit AT Commands Reference Guide http www telit co it 5 Glolab Corporation Infrared Parts Manual http www glolab com T7
42. tadio precedente anche in questo caso assistiamo all amplificazione dei soli segnali appartenenti ad una determinata banda di frequenza con la differenza che i segnali esterni risultano tanto pi attenuati quanto pi ci si allontana in frequenza Il comportamento del circuito risulta chiaro grazie relativo al diagramma di Bode 3 2 COMPARATORE A FINESTRA 21 Diagramma di Bode Modulo dB Fase deg i Qui si nota un attenuazione dei segnali con frequenza esterna alla banda 0 1Hz 100Hz mentre per i segnali compresi tra 1Hz e 10Hz otteniamo un amplificazione massima pari a 20dB 3 2 Comparatore a finestra Questo lo stadio finale del processo di condizionamento del segnale indis pensabile per interfacciarsi correttamente al microcontrollore Questo circuito composto da 2 amplificatori operazionali funzionanti come comparatori che cio provvedono ad amplificare fino alla saturazione la differenza tra i segnali e V_ presenti sui rispettivi pin dell integrato In questo modo se maggiore di V_ otterremo in uscita il valore massimo pari quindi a V mentre in caso contrario otterremmo in uscita il valore minimo pari quindi a OV L uscita dei 2 operazionali viene infine collegata insieme cosicch il suo valore 22 CAPITOLO 3 CICUITO DI CONDIZIONAMENTO DEL SEGNALE risulti dalla somma dei loro 2 contributi V Voci anche se in realt il funzionamento di quest
43. ti 2 ingressi e nel caso in cui uno dei 2 si ritrovi invertito viene avviata la procedura di allarme In questo modo otteniamo un sistema d allarme generico che pu reagire a segnali diversi in base a quale filo viene utilizzato come sorgente d allarme ed in base al tipo di segnale utilizzato Generalmente possibile 14 2 EVOLUZIONI FUTURE 75 e collegare un sensore apposito ad uno dei fili d allarme e collegare il sistema in parallelo ad un altro allarme in modo da estendere il controllo di quest ultimo tramite le funzionalit da noi implementate Ad esempio amp possibile collegarlo parallelamente alla linea d allarme preesistente di un comune antifurto per auto per dotare quest ultimo delle caratteristiche di controllo remoto da noi implementate oppure collegare un ingresso d allarme ad un sensore magnetico in modo da poter tener sotto controllo l ingresso di un abitazione Le molteplici possibilit di questo prodotto lo rendono flessibile e facil mente personalizzabile in base alle necessit del cliente senza alcuno sforzo progettuale aggiuntivo 14 2 2 Interfaccia seriale Questa versione viene dotata di una linea seriale aggiuntiva a bassa velocit che permette di interfacciare il nostro sistema dotato di modulo GSM ad altri sistemi dotati di microcontrollore o diversa logica di controllo purch abbiano a bordo almeno una linea di comunicazione UART In quest ottica possibile sia espandere il no
44. to del sensore viene letto e filtrato dal microcontrollore in modo che eventuali variazioni di durata inferiore a 20ms vengano completamente ignorate dal software permettendo cos una maggiore resistenza alle interferenze e riducendo le possibilit di un eventuale falso allarme 8 1 Struttura del filtro Il filtro utilizza un bitfield di un byte dove vengono salvati il dati relativi all ingresso analizzato Struttura dati dell ingresso struct pin value unsigned now 1 valore attuale unsigned old 1 valore precedente unsigned value 1 valore filtrato unsigned timer 5 timer filtro 0 81 p I primi 2 campi indicano lo stato dell ingresso mentre il terzo contiene il valore filtrato che verr utilizzato in tutto il resto del codice a riferimento di questo ingresso Per ottenere una normalizzazione a 8 bit della struttura rimangono 5 bits sufficienti per essere utilizzati come buffer per il valore del timer valore massimo 20 41 42 CAPITOLO 8 LETTURA DEGLI INGRESSI 8 2 Implemetazione software Ad ogni ciclo si analizza lo stato del pin ingresso PIR volatile struct pin value pfir 0 0 0 0 lettura stato corrente del pin if PINA amp 0b00000010 pir now 1 else pir now 0 Quando viene rilevato un fronte positivo viene caricato il timer Se nel tempo in cui il timer giunge a zero l ingresso permane alto il valore filtrato viene aggiornato ad 1 altrimenti rimane a
45. to un prodotto finale in grado di portare in ogni casa una valida protezione antifurto ad un prezzo contenuto grazie alla semplicit del sistema che per si rivela efficace flessibile ed affidabile I punti di forza di Matrix GSM Alarm sono semplicit d installazione si pu posizionare l allarme in qualunque luogo senza la necessit di particolari accortezze flessibilit grazie all utilizzo del sensore PIR possibile monitorare una zona di medie dimensioni quali una finestra un ingresso o un intera stanza semplicemente posizionando correttamente l apparecchio efficacia il sensore PIR in grado di rilevare una presenza umana con la massima precisione e rapidit rendendolo il sistema pi efficace per proteggersi da furti o effrazioni comodit l allarme pu essere controllato completamente tramite un co munissimo cellulare in grado di inviare e ricevere SMS oppure comuni chiamate vocali in modo da minimizzare cos i costi dovuti all utilizzo della linea GSM autonomia grazie alla batteria di serie il sistema rimane in funzione per parecchie ore anche in seguito ad eventuali problemi alla linea elettrica assicurando cos la massima copertura Otteniamo cos un prodotto semplice ma dalle enormi potenzialit che non necessita di particolari conoscenze ma al contrario utilizzabile facilmente da chiunque 69 70 CAPITOLO 13 CARATTERISTICHE DEL PRODOTTO 13 1 Funzionalit Matrix GSM Alarm
46. tramite opportuni comandi inviati tramite la linea seriale A questo fine in seguito all accensione del modem vengono inviati dei comandi in serie ad intervalli di 110ms l uno dall altro secondo un determinato ordine AT per verificare che la comunicazione sia in piedi AT amp FI per resettare ogni registro di configurazione AT amp KO per disabilitare il controllo hardware delle trasmissioni AT IPR 19200 per impostare il baud rate utilizzato ATE1 per disabilitare dei comandi ATQ0 per abilitare le risposte del modem ATV1 per abilitare le risposte estese ATX1 per determinare il formato delle risposte AT DIALMODE 0 per abilitare i messaggi di stato delle chiamate AT CMEE 1 per abilitare i messaggi di errore Queste operazioni risultano fondamentali per la corretta comunicazione con il modem in quanto determinano il formato delle stringhe che invier in risposta ai nostri comandi permettendo cos una intercomunicazione veloce precisa e sicura Senza queste operazioni preliminari sarebbe quasi impossibile prevedere una risposta software automatica ai svariati formati di risposta che 10 3 SINTASSI COMANDI 51 il modem amp in grado di inviare ogni singolo messaggio Tutti questi comandi vengono eseguiti senza la verifica della risposta inviata dal modem in quanto e all accensione non conosciamo il formato di risposta del modem e in assenza di problemi hardware il modem dovrebbe rispondere sempre in modo affer
47. un circuito di condizionamento ed inoltre va posta una resistenza di carico tra source e massa del valore tipico di 100kQ 14 CAPITOLO 2 SENSORE PIR Capitolo 3 Cicuito di condizionamento del segnale Il segnale prodotto dal sensore molto debole e questo lo rende sia sensibile ad eventuali disturbi che difficile da utilizzare Per questo motivo l utilizzo di un circuito di amplificazione e filtro del segnale risulta indispensabile Il circuito di amplificazione del segnale composto da 2 blocchi principali e filtro attivo e comparatore a finestra Al primo viene affidato il compito di amplificare sufficientemente il segnale attenuando a dovere il rumore in modo da poterlo analizzare in sicurezza Il comparatore invece analizza il segnale amplificato e provvede a fornire un valore digitale al microcontrollore di livello adeguato in modo che ne possa venire facilmente riconosciuto il valore logico Schema elettrico Ho E Coe 15 16 CAPITOLO 3 CICUITO DI CONDIZIONAMENTO DEL SEGNALE 3 1 Filtro attivo Il segnale Vprg in uscita dal sensore PIR si pu scomporre in 2 componenti principali e una componente alternata e un valore di offset costante L offset dovuto alla polarizzazione parziale dei componenti attivi del sensore dovuta a fattori secondari quali la temperatura ambiente eventuali vibrazioni o l esposizione alla luce solare Quando invece il sensore rileva
48. un essere umano La piroelettricit un effetto secondario che si pu riscontrare in alcuni ma teriali piezoelettrici Questa particolare famiglia di materiali caratterizzata da una struttura cristallina principale molto stabile dove al suo interno per posto un ulteriore struttura atomica libera di muoversi all interno della propria cella causando cos una polarizzazione spontanea del materiale a seguito di un suo spostamento dovuto all agitazione termica T1 T2 e 18 el m mun O 3 _ T1 lt T2 11 12 CAPITOLO 2 SENSORE PIR L energia termica assorbita causa la variazione della polarizzazione spontanea del materiale generando cosi una piccola carica elettrica superficiale Tramite l analisi di questa differenza di potenziale generata possibile cos determinare la presenza di un corpo in grado di emettere radiazione infrarossa nel raggio d azione del sensore 2 2 Lenti di Fresnel Per aumentare la capacit del sensore di rilevare la presenza umana viene aggiunta una particolare lente detta lente di Fresnel Questa famiglia di lenti in grado di aumentare notevolmente la portata del sensore mantenendo contenute le proprie dimensioni a differenza dalle comuni lenti convesse LENTE COVESSA LENTE DI FRESNEL Una lente di Fresnel caratterizzata da una buona capacit di concentrare i raggi provenienti da diverse angolature pur mantenendo uno spessore molto contenuto A
49. unicazione con il modem TOES UART re re de ctn ad 10 2 Configurazione 10 3 Sintassi comandi 10 4 Ciclo di comando 10 4 1 Invio comando 10 4 2 Ricezione ed analisi comando 11 Gestione SMS 11 1 Invio SMS 11 2 Ricezione SMS 12 Gestione chiamate 12 1 Esecuzione chiamate 12 2 Ricezione chiamate III Prodotto finale 13 Caratteristiche del prodotto 13 1 13 2 Guida per utente 14 Considerazioni finali 14 1 Problemi riscontrati 22 222 20 14 2 Evoluzioni future INDICE 37 RAT peteret net 37 M n 38 eee Gr I eC 39 A1 NCC 41 a 42 43 SA A Gee 43 en ah Ree 43 ie sse Rr at aes 45 49 EE NE nee A 49 tte gi ae 50 Aaa Ad v 51 A AE 51 STRETTE de 51 DT UT 53 57 A A 97 DR er Ri 58 61 pg Ao eu ote 61 REI 1 es 64 67 69 pude s p 70 ES kr 70 INDICE 14 2 1 Interfaccia generica 14 2 2 Interfaccia seriale Bibliografia INDICE Capitolo 1 Introduzione Il mondo dei sistemi d allarme ricco e variegato si possono trovare in commercio una grande quantit di soluzioni adatte a quasi ogni situazione Molto in voga negli ultimi anni sono i sistemi d allarme composti da reti di sensori collegati in wireless in grado di coprire un area anche molto ampia
50. unto finalmente possibile avviare una prima conversione il cui valore ver r per scartato in quanto essendo la pri ma ad avvenire dal momento dell accen sione dell ADC non ne assicurata nessuna attendibilit Lettura effettiva la successiva lettura invece viene considerata valida ed attendibile In questo momento per entra in campo un ulteriore livello di filtraggio in quanto nel programma non si utilizza mai il singolo valore derivato da una conversione bens la media dei risultati delle ultime 20 letture ottenendo cos l immunit al rumore richiesta Conclusione a questo punto vengono disabilitati sia il potenziometro che ADC in modo da lim itare il pi possibile lo spreco di energia e viene ricaricato il timer che avvier il successivo ciclo di lettura ognuna di queste operazioni va a verificare e modificare il valore di alcune flag di controllo senza mai porre il programma in attesa passiva di un evento quale la conversione o i timeout In questo modo durante l esecuzione di questa procedura il microcontrollore in grado di eseguire anche gli altri compiti di verificare gli allarmi e rispondere alle richieste dell utente in tempo reale 46 CAPITOLO 9 LETTURA DELLA BATTERIA Di seguito riportiamo il listato completo riguardante la routine di lettura della batteria per permetterne una maggiore comprensione e per mostrare lo stile di base con cui stato scritto il codice flag di
51. ura base di ogni programma risulta sempre la stessa 33 34 CAPITOLO 6 OPERAZIONI PRINCIPALI void main void inizializzazione sistema init ciclo principale while 1 L utilizzo di un ciclo infinito qui definito da while 1 strettamente neces sario altrimenti una volta giunto alla fine della funzione main il microcon trollore rimarrebbe fermo per un tempo indeterminato senza poter eseguire alcuna operazione All interno del ciclo vengono generalmente inserite le funzioni di polling cio funzioni che analizzano incessantemente lo stato di un dato ingresso o di una data variabile predisposte ad avviare automaticamente una determinata procedura una volta identificato l evento atteso Ad esempio nel ciclo principale stata posta la funzione read pin con il compito di analizzare ad ogni ciclo lo stato dell ingresso d allarme che provvede ad attivare automaticamente la procedura d emergenza una volta rilevato un segnale di pericolo dal sensore In modo simile sono state poste le funzioni sms check call_check e read batt in modo da poter gestire automaticamente la ricezione di sms e chiamate oltre che la lettura della batteria while 1 read pin read batt sms check call check ring check 6 2 CICLO D ALLARME 35 6 2 Ciclo d allarme Il ciclo d allarme forse la parte pi importante del programma in quanto implementa la funzione principal
52. uter e dispositivi elettronici integrati a seguito di opportuni sistemi di conversione elettrica Quest interfaccia necessita di un solo filo per la trasmissione e uno per la ricezione permettendo cosi la gestione separata e contemporanea delle 2 operazioni L UART supporta la selezione di un ampio range di baudrate e sono disponibili diversi formati di pacchetti o frame Nel nostro caso la scelta ricade nella struttura pi classica composta da 1 bit di start 8 bit di dati e 1 bit di stop per un frame totale di 10bit Jig IDLE St 2 3 Sp1 S St IDLE exe sf op jap sfamare sd ioco Per poter utilizzare UART presente nel microcontrollore necessario attivarla settando correttamente i suoi registri di configurazione inizializzazione UART void uart0_ init void 49 50 CAPITOLO 10 COMUNICAZIONE CON IL MODEM CSRB 0b00000000 CSRA 0100000000 aa UBRR 0x0019 19200 baud UCSRC 0b10000110 8 bit transfer size UCSRB 0b10011000 RXCIE RXEN TXEN Questo codice imposta la configurazione di base abilita sia la ricezione che la trasmissione e attiva l interrupt rx complete Quest interrupt partico larmente utile perch permette di attivare automaticamente la routine di ricezione ogniqualvolta si riceve un byte da parte del modem 10 2 Configurazione Per poter essere correttamente utilizzabile il modem deve prima essere corret tamente configurato
53. utilizzando diverse tipologie di sensori per far fronte a diverse necessit di controllo Possiamo trovare sensori magnetici o inerziali dedicati a verificare un eventuale apertura di una porta o una finestra sensori sismici in grado di rilevare le vibrazioni dovute al passaggio di una persona barriere ad ultrasuoni o all infrarosso dedicate alla protezione di zone anche molto ampie Per il rilievo della presenza umana in una zona circoscritta invece vengono utilizzati soprattutto sensori passivi all infrarosso che negli anni hanno di mostrato la loro grande affidabilit nonostante non necessitino di sistemi complessi per funzionare tanto che vengono comunemente utilizzati per au tomatizzare l accensione di luci o l apertura di porte Se associati ad un buon circuito amplificatore sono in grado di raggiungere una precisione molto y NN lt ce A RES Ss 7 j A e Figura 1 1 Esempio di protezione tramite barriera all infrarosso 8 CAPITOLO 1 INTRODUZIONE Figura 1 2 Comune sensore infrarosso commerciale elevata L idea alla base di questo progetto amp il desiderio di creare un sistema d allarme plug amp play semplice e diretto facilmente utilizzabile dall utente senza la necessit di complicate e costose installazioni pur garantendo un alta affidabilit del servizio Nasce cos un apparecchio dotato di batteria che pu essere posizionato ovunque si voglia che grazie al suo sens
Download Pdf Manuals
Related Search
Related Contents
H950 - Citizen POCKET RADAR Samsung PS-42A5S User's Manual MANUAL DE USUARIO BALANZA V8 CE / ABIERTA Capitulo 12 - Control del Procedimiento MURRAY 芝刈機取扱説明書 - ブリッグス & ストラットン ジャパン株式会社 CASSLink AWB Stock Management System V7 CK2P0-7E2P MANUAL DE INSTALACIÓN Y MANTENIMIENTO Copyright © All rights reserved.
Failed to retrieve file