5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 1/41
UNIVERSITA’ TELEMATICA “e-Campus”
Facoltà di IngegneriaCorso Di Laurea in Informatica
Progettazione e sviluppo in C++ di unacentralina di controllo per serrature
motorizzate con controllo accessi
Relatore: Luigi Sarti
Tesi di Laurea di:Aldo Fadalti
Matricola numero 5500
Anno Accademico 2011/ 2012
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 2/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 2
Indice
Introduzione ..............................................................................................3
Requisiti.....................................................................................................6
Concetti del corso di Algoritmi e Strutture Dati presenti nell’ambito
della progettazione e sviluppo del software della centralina ....................8
Scelta del microcontrollore .......................................................................9
Pre-verifica disponibilità RAM e uso della EEprom per i dati permanenti
.................................................................................................................10
Scelta del Keypad e comunicazione con la centralina ............................12
Metodi di inizializzazione e startup in Arduino......................................15
Inizializzare le risorse hardware..............................................................16
Creazione di oggetti polimorfici sulla base di parametri iniziali costanti
.................................................................................................................18
Gli Interrupt.............................................................................................21
Creazione degli oggetti OOP ad allocazione dinamica tramite l’operatore
New().......................................................................................................23
Override del metodo di sistema per ricavare data e ora da un chip
DS1307....................................................................................................24
Debugging, gestione errori e difficoltà caratteristiche dello sviluppo con
un microcontrollore.................................................................................25
Gestione password, parsing e logica di ricerca.......................................27
Realizzazione hardware della centralina.................................................29
Motoriduttore ..........................................................................................31
Esploso di montaggio..............................................................................33
Possibili utilizzi del prototipo .................................................................34
Analisi comparativa con i dispositivi commerciali esistenti ed elementi
di novità...................................................................................................37
Bibliografia..............................................................................................41
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 3/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 3
Introduzione
In un periodo di crisi economica che sta coinvolgendo i Paesi piùindustrializzati, è doveroso indirizzare gli sforzi creativi verso la ricerca di
nuove tecnologie. L’Italia e’ un paese non in grado di competere con i
nuovi Paesi emergenti dal punto di vista della manodopera industriale. Di
conseguenza, è di fondamentale importanza maturare l’etica di creare
novità tecnologiche in ogni contesto. Ecco da dove nasce l’idea di
progettare una serratura motorizzata.
Ormai è consuetudine nello stile di vita quotidiana usufruire di automatismi
che rendono il vivere più agevole. Sono svariate le comodità di cui è ormai
difficile fare a meno; si va dall’aria condizionata ai finestrini elettrici di
un’automobile, dai cancelli automatici alle tapparelle elettriche di una casa.La serratura rimane ancora uno dei pochissimi dispositivi profondamente
legati all’azione manuale della persona, si pensi che la prima chiave risale
al 4000 a.C. nell’antico Egitto. Pur essendosi evoluta nella tecnica di
realizzazione costruttiva, la chiave è rimasta concettualmente invariata nei
secoli. Bisogna sempre ruotarla manualmente. La chiave è anche unoggetto ingombrante da tenere sempre con sè e, in caso di perdita, sussiste
il serio pericolo di duplicazione.
E’ stato riscontrato che le porte blindate, in assenza della chiusura con le
mandate, sono facilmente apribili semplicemente forzando lo scroccoattraverso l’inserimento di una piccola lastra radiografica. E’ altresì
consuetidine, forse per pigrizia, non chiudere le mandate nelle ore diurne o
per brevi permanenze nell’ambiente, con conseguente esposizione al
rischio di ingressi forzati ad opera di indesiderati. Nel progetto dellaserratura motorizzata, la centralina impone la chiusura completa delle
mandate ad ogni accostamento della porta. La presenza di un interruttore
facilmente accessibile, chiamato Day&Night, inibisce in caso di attivazione
la chiusura automatica che risulterebbe oppressiva negli ambienti
lavorativi.
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 4/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 4
Figura 1: Vista esterna del dispositivo installato
Se si considerano sufficienti i motivi finora esposti per dotarsi di una
serratura motorizzata, si possono allora valutare anche altre funzionalità
dovute alla presenza di una centralina elettronica. La più importante è
sicuramente caratterizzata dal controllo accessi che, oltre a garantire
l’ingresso autenticato, permette anche di limitare l’entrata degli utenti solo
in certe fasce orarie di determinati giorni settimanali. Oltre a ciò, l’utente
con i privilegi di ammistratore può in qualunque momento disporre
dell’elenco completo degli accessi, comprensivo di orario e di
identificativo, salvato su una comune chiavetta USB.
L’installazione del dispositivo che abilita fisicamente l’apertura automatica
è intuitivo e applicabile a qualunque sistema di chiusura già pre esistente.
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 5/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 5
Ciò è reso possibile, a livello meccanico, dalla giunzione mediante coppiaconica fra il perno del motoriduttore e il codolo del cilindro. Il numero
ridotto di componenti di cui è composto il prototipo costuisce un ulteriore
vantaggio sia in termini di costi che di installazione.
Figura 2: Vista interna del prototipo montato
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 6/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 6
Requisiti
La centralina soddisfa le seguenti specifiche:
• Funzione day&night attivabile con semplice tasto selettore; inmodalità’ day non chiude le mandate
• Programmabile facilmente dall’utente da tastiera
• Impostazione di password personalizzate con accesso a fasce orarie
ristrette, giornaliere o settimanali fino a 50 utenti
• Blocco tastiera esterna (pressione di 2,5 secondi del pulsante di
apertura interno); sblocco automatico all’apertura dall’interno
• Rolling code: permette di inserire più’ numeri fino all’inserimento
della password corretta(per evitare la memorizzazione visiva di chiosserva mentre digiti il codice)
• La tastiera comunica con la centralina in modo criptato, anchecollegando i fili tra di loro, il sistema non apre la porta.
• Dopo 30 digitazioni casuali, il sistema si blocca per 3 minuti.
• Funzione anticoercizione: inserendo il proprio codice +1 apre la
porta e chiama e/o manda SMS fino a 5 numeri di telefono con
funzione allarme
• Apertura e chiusura automatica di scrocco e mandate senza l’ausilio
delle chiavi• Apertura da remoto tramite un semplice squillo telefonico senza
costo
• Gestione degli utenti abilitati all’apertura da remoto tramite semplici
SMS autorizzati da un codice amministrativo
• Memorizzazione degli ultimi 5500 accessi, con relativo orario.
L’utente amministratore ha la possibilità di scaricare su una chiavetta
USB i dati memorizzati in un file formato Excel
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 7/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 7
Figura 3: Specifiche operazionali del software del microcontrollore
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 8/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 8
Concetti del corso di Algoritmi e Strutture Dati presenti nell’ambito della progettazione e sviluppo del software della centralina
1. Applicazione di Design Pattern per esigenze tipiche dei
microcontrollori applicati al C++
2. Concorrenza nel microcontrollore a CPU singola. Uso degli interrupt
per la gestione di processi secondari a priorità Real Time. Variabili
volatili
3. Uso di meccanismi di astrazione, tipici della programmazione OOP,
come strumento per un ottimale riutilizzo di codice.
4. Il concetto di ricorsione applicato alla scansione di strutture dati in
memoria EEprom. Complessità teorica dell’algoritmo. Vantaggi esvantaggi nell’uso di una EEprom
5. Applicazione dei concetti fondamentali della programmazione
orientata agli oggetti: incapsulazione, strutturazione gerarchica delle
classi, ereditarietà, polimorfismo e information hiding
6. Programmazione event driven in C++ in risposta a eventi fisici
esterni trasmessi da sensori e keypad
7. Gestione delle eccezzioni nel microcontrollore. Debugging e
monitoring della memoria su un dispositivo privo di output visivo,
con uptime continuo al 100% (watchdog)
8. Trasmissione seriale tra microcontrollori. Ricezione dei caratteri dal
keypad e corrispettivo invio di informazioni sul segnale acustico
9. Gestione password, parsing e logica di ricerca.
10. Tecniche avanzate della programmazione OOP nel microcontrollore,
hacking dello stesso al fine di disporre di Templates e allocazione di
oggetti (operatori new()e free())
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 9/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 9
Scelta del microcontrollore
Arduino è un microcontrollore open source programmabile in C++.
Figura 4: Una foto del microcontrollore Arduino Mega
Il modello utilizzato per governare la centralina di questo progetto è il
Mega basato su processore ATmega1280 ad una frequenza di 16MHz.
L’Arduino Mega ha 54 input/output digitali, 16 input analogici e 4 porte
seriali. La memoria Flash è di 128KB ed è allo stesso tempo la massima
dimensione possibile del compilato, la SRAM è di 8KB ed è la quantità di
memoria disponibile a run-time per le variabili e per ogni altra struttura
temporanea, è disponibile anche una EEprom di 4KB utilizzata dal
software di questo progetto per contenere le password degli utenti con le
loro restrizioni di accesso.
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 10/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 10
Pre-verifica disponibilità RAM e uso della EEprom per i dati permanenti
Nei microcontrollori la quantità di RAM disponibile è sempre molto
limitata per mantenere basso il prezzo del prodotto e ridurre al massimo le
dimensioni. In tali condizioni è fondamentale progettare fino dall’inizio il
software in modo tale da non necessitare di grandi strutture dati nella
memoria volatile che risulterebbe ben presto insufficiente. Nel software
oggetto di questa tesi la più grande struttura dati è rappresentata dal numero
di utenti programmabili con all’interno i dati caratteristici di accesso:
struct StrutturaPwd { char pwd[MAX_PWD_LEN]; //5 bytes
signed char deleted; //1 byte signed char dayOfWeek[DAYS]; //7bytes
signed char fromHour[DAYS]; //7bytes
signed char toHour[DAYS]; //7bytes
signed char fromMinute[DAYS]; //7bytes
signed char toMinute[DAYS]; //7bytes
};
La quantità di spazio richiesta dalla struttura va moltiplicata per i 50 utenti
disponibili da specifiche. Una tale dimensione in bytes risulterebbe essere
di 50x(5+1+7+7+7+7+7), decisamente troppa per l’esigua RAM
disponibile alla quale va comunque garantita una minima quantità libera
per ogni evenienza. Si è così deciso di far risiedere i dati degli utenti nellaEEprom senza mai spostarli o copiarli nella RAM per le operazioni di
ricerca/inserimento/cancellazione. La memoria EEprom, Electrically
Erasable Programmable (Read-Only) Memory, è per concezione piuttosto
rapida nell’accesso in lettura ma molto lenta in scrittura dato che in tale
operazione si devono ossidare i gates dei transitors Floating Gate MOSFETinterni alla memoria Eeprom. Per meglio dare una sensazione pratica,
vengono, per così dire, “riscaldati” delle sorte di “fusibili ripristinabili”
corrispondenti agli 1 e 0 della memoria stessa, e per tale motivo sussiste unlimite massimo nel numero di riscritture di una cella EEprom pari circa a
1000/1500 e l’operazione richiede quindi un certo tempo in più rispetto alla
lettura. Nel momento in cui un utente inserisce il proprio codice per essere
autenticato dalla centralina, vengono scansionate le password direttamente
nella EEprom senza trasferire nulla in RAM.
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 11/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 11
Figura 5: Immagine del microcontrollore a bordo dell'Arduino Mega. La EEpromdi 4 KB è integrata.
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 12/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 12
Scelta del Keypad e comunicazione con la centralina
Figura 6: Il keypad scelto è di classe IP67 con uscita a matrice
Il keypad è lo strumento principale di input per l’utente. Tramite il keypad
è possibile entrare nel menù amministrativo e svolgere le principaliimpostazioni della centralina. Le più importanti sono
l’aggiunta/eliminazione di utenti, l’impostazione di data e ora e il reset a
fabbrica di tutto il sistema.
Figura 7: Fotografia reale del keypad
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 13/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 13
Il keypad è di fabbrica predisposto con un uscita a matrice, il che significadover impiegare ben nove ingressi digitali sul microcontrollore oltre ai
collegamenti necessari per alimentare l’illuminazione dei tasti alla loro
prima pressione. Per ridurre il numero di connessioni tra keypad ecentralina si è scelto di cambiare la comunicazione da analogica a digitale.
Invece di collegare direttamente l’uscita a matrice alla centralina la si
collega ad un piccolo microprocessore PIC installato su una PCB posta
dietro il keypad.
Figura 8: Il microcontrollore PIC legge la matrice del keypad e invia i dati inprotocollo seriale alla centralina
Il PIC si prenderà cura di leggere le pressioni dei tasti dall’uscita a matricee di trasmetterli alla centralina in protocollo seriale alla velocità di 600 bit
per secondo. Con tale digitalizzazione si riduce il numero di connessioni
con la centralina a un solo filo per la trasmissione e altri due per
l’alimentazione. Inoltre la bassa velocità di trasmissione scelta rende molto
più ampia la possibilità di installare i cavi all’interno di canaline disturbateelettricamente dal passaggio di corrente in altri cavi vicini.
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 14/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 14
Figura 9: Il circuito stampato ospitante due PIC per la conversione A/D di suoni epressioni tasti
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 15/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 15
Metodi di inizializzazione e startup in Arduino
Per scrivere del codice sorgente in grado di far funzionare il
microcontrollore Arduino sono necessari soltanto due metodi
void setup() e
void loop() Il primo è una sorta di “costruttore” del microcontrollore stesso. Viene
eseguito una sola volta all’inizio e solitamente lo si utilizza per:
• inizializzare risorse hardware
• definire gli interrupt
• collegare metodi in risposta agli eventi di interrupt
• creare gli oggetti OOP ad allocazione dinamica tramite l’operatore
New()
• abilitazione interna di resistenze di “Pull Down” negli ingressi
digitali
• inizializzare le porte seriali e settarne la velocità
• “Override” del metodo di sistema per ricavare data e ora da unDS1307
• instanziare gli oggetti polimorfici sulla base di parametri costanti
iniziali
Il secondo altro non è che il metodo che, come può suggerire il nome
stesso, viene continuamente richiamato fin tanto che viene fornita
alimentazione alla centralina.
Tra le operazioni fondamentali eseguite continuamente dal
microcontrollore vi sono:
• controllo del buffer seriale per cogliere la presenza di dati relativi
alla pressione di un tasto sul keypad
• controllo della pressione del pulsante di apertura interna per
l’apertura porta
• controllo della pressione del pulsante di apertura interna per la
disabilitazione del keypad quando la pressione si prolunga oltre i duesecondi
• controllo dello stato del deviatore che imposta la modalità Day &
Night abilitando la chiusura automatica delle mandate
• controllo dello stato del sensore porta
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 16/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 16
Inizializzare le risorse hardware
L’inizializzazione delle risorse hardware è un compito che viene svoltoall’avvio del microcontrollore. Più precisamente all’accensione si avvia un
programma predefinito, il Bootloader, che richiama staticamente il metodo
void setup() Tale metodo è previsto per dare la possibilità di richiamare procedure che
impostino fisicamente parti dell’hardware del microcontrollore stesso al
fine di predisporle all’uso dedicato allo svolgimento dell’applicativo.
Per lo sviluppo del progetto è necessario avvalersi del metodo
void setup() in modo tale da:
• impostare i canali digitali come ingresso o uscita
• attivare resitenze interne da 20KOhm di “Pull Down”
• impostare canali analogici come ingressi o uscite di tipo PWM
(Pulse Width Modulation)
• impostare la velocità di trasmissione sulle porte seriali
I canali digitali vengono predisposti come ingresso o come uscita tramite la
chiamata
void pinMode(canale, INPUT/OUTPUT) Se impostati come ingresso, è possibile leggerne lo stato di contatto o
apertura tramite la funzione
int digitalRead(canale) ottenendo 1 nel primo caso o 0 nel secondo.
Nel caso di canali digitali configurati come output, tramite la procedura
void digitalWrite(canale, HIGH/LOW) è possibile portare la tensione a massa nel caso di LOW o a 5V nel caso di
HIGH . Il progettista deve sempre tenere presente che la massima quantità
di corrente erogabile da un singolo canale del microcontrollore Arduino èdi 40mA. Tale quantità è normalmente sufficiente ad illuminare i
tradizionali led di uso comune in elettronica, ma nel caso in cui sia
necessario alimentare carichi più consistenti bisognerà necessariamente
utilizzare come amplificatore di corrente un transistor NPN. Il risultato
finale con l’utilizzo di un transistor, è quello di alimentare il carico
direttamente dalla sorgente di corrente principale che, nei casi più comuni,
è l’alimentatore stesso. In tal caso, avendo la massa in comune con il
carico, va tenuta in considerazione la possibilità di avere disturbi di
tensione sul microcontrollore (EMI Electro Magnetic Interference); ciò è
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 17/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 17
seriamente possibile alimentando motori a elevato assorbimento dicorrente. Nel progetto in essere, i consumi di 1.6A del motore, a seguito di
analisi effettuata con l’oscilloscopio, non generano disturbi tali da
richiedere contromisure di schermatura elettromagnetica.
L’attivazione delle resistenze interne di “Pull Down” si effettua
semplicemente chiamando
void digitalWrite(canale, HIGH) dopo aver impostato il canale come ingresso. La resistenza di “Pull Down”connette il polo positivo del canale a massa in modo tale da filtrare i
disturbi nella lettura dando un preciso riferimento nullo nel caso in cui
esternamente non si cortocircuitino i due poli del canale.
Il metodo di inizializzazione
void setup() viene infine usato per impostare la velocità di comunicazione delle porte
seriali. Il protocollo seriale non prevede l’auto-negoziazione della velocitàtra i dispositivi, questa va preimposta al medesimo valore su entrambi
tramite il metodo
Serial.begin(9600);Nel progetto si utilizzano due porte seriali, relativamente per:
• la comunicazione tra il microcontrollore Arduino nella centralina e il
PIC posizionato sul retro del keypad
• l’uscita dedicata alle stringhe di debug
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 18/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 18
Creazione di oggetti polimorfici sulla base di parametri iniziali costanti
E’ previsto il funzionamento della centralina in due configurazioni:• collegata direttamente alla matrice di un keypad
• collegata in ricezione seriale a un keypad digitale
E’ evidente che gran parte delle funzionalità logiche siano comuni alle due
tipologie di tastiere; come ad esempio:
• lettura del tasto premuto
• disabilitazione fisica del dispositivo
• segnalazione acustica
• accensione retroilluminazione in configurazione notturna
• cancellazione del buffer a scadenza di un timeout
Si può quindi dire che entrambe le tastiere rispondano a specifiche comuni
pur realizzandole internamente in modo diverso essendo di differente
tipologia.
In tale scenario la programmazione a oggetti ci permette di creare un
keypad virtuale costituito esclusivamente dalle specifiche logiche comuni a
tutte le tipologie di keypad reali, tralasciando le peculiarità fisiche non
comuni.
Succesivamente la centralina potrà riferirsi unicamente al keypad virtualesenza sapere con quale tipo di keypad reale si sta interfacciando.
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 19/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 19
Figura 10: Diagramma delle classi per il Keypad
Nella figura sopra riportata è possibile vedere come quanto spiegato sia
stato realizzato, agglomerando tutte le parti logiche comuni nella classe
virtuale/astratta KeybVirtual . Le classi KeybSerial e KeybAnalog, derivate
della classe astratta (figlie), contengono tutte le caratteristiche di
funzionamento specifiche per la loro tipologia fisica di tastiera.
Ad esempio il metodo
void disable()
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 20/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 20
comune a tutte le tipologie, permette di disabilitare qualunque keypad datentativi di utilizzo fisico esterno inibendo la ricezione della pressione dei
tasti. Mentre il metodo
void serial2Write() della classe KeybSerial permette di inviare in forma digitale, sottoforma di
byte, il codice ASCII corrispondente al tasto premuto. Si faccia bene
attenzione che dal punto di vista logico non è KeybSerial che invia il byte
direttamente alla centralina, ma è la centralina stessa che legge il carattere,
corrispondente alla pressione del tasto, dalla classe astratta KeybVirtual !
Si sarà anche notata in figura la presenza della classe Keypad evidenziata in
arancione e riferita da KeybAnalog con una freccia differente. Ciò sta a
significare che Keypad è una semplice variabile di KeybAnalog e pertanto
ne potranno essere chiamati a piacere i metodi pubblici da parte del
contenitore KeybAnalog. Infatti se si decide di collegare alla centralina
direttamente una tastiera a matrice, sarà compito della centralina stessa
occuparsi del parsing della matrice rilevando le pressioni dei tasti. Laclasse Keypad fa parte delle librerie Arduino di sistema.
Figura 11: Principale vista gerarchica delle classi del SW
Si vuole ricordare che nella tecnologia Arduino, per ridurre l’uso di risorse,
non è prevista di serie la possibilità di implementare un’architettura
polimorfica. Il programmatore può scegliere di disporne e di abilitarla
attraverso la seguente chiamata all’inizio del codice sorgente:
extern "C" void
__cxa_pure_virtual() {
while(1);
}
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 21/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 21
Gli Interrupt
L’Interrupt è un segnale asincrono che indica il 'bisogno di attenzione' da
parte di una periferica finalizzata ad una particolare richiesta di servizio.Nel progetto in esame vengono utilizzati due interrupt per la lettura dei
seguenti dispositivi:
• encoder motore
• sensore di chiusura porta
Nel primo caso vi è un encoder che, solidale alla rotazione del perno
motore, genera tre impulsi elettrici per ogni rotazione completa attorno
all’asse. E’ evidente che il numero di impulsi provenienti dall’encoder è
molto elevato; avendo scelto un motore da 80 rpm con riduzione 1:50
allora il numero di impulsi al minuto sarà 80x50x3= 12.000 imp/min. Talefrequenza sarebbe troppo elevata per poter verificare la presenza ditensione, corrispondente ad un impulso, nel metodo
void loop() Infatti, in modalità “watchdog”, non è sufficiente affidarsi rigorosamente
alla frequenza di clock della CPU, anche se elevata, per non perdere
nemmeno un’impulso. Ma è necessario garantire che anche il metodo
contenente il controllo dell’impulso debba terminare almeno entro la metà
della durata impulso stesso. Con i dati di progetto il tempo massimo di
durata del metodo principale
void loop() , affinchè non venga perso nemmeno un impulso, dovrebbe essere di
(3.600/12.000)/2=0.15 sec. Un tempo decisamente troppo breve e
comunque impossibile da garantire sotto certe condizioni logiche in cui
operazioni considerate unitarie, come ad esempio l’apertura dello scrocco,
aumenterebbero la durata del metodo principale a qualche secondo.
L’adozione degli interrupt in tale situazione permette di avere un metodoche, nel caso di un singolo impulso, viene automaticamente richiamato
sospendendo ogni altro flusso in esecuzione. Gli unici vincoli da rispettaresono:
• la limitata disponibilità fisica di interrupt
• l’obbligo di rendere il metodo richiamato il più breve possibile
Ecco che nel progetto in risposta diretta agli impulsi encoder ci si limita
solamente a incrementare una variabile:
void encoderListener(){
encoderCount++;
}
Questo metodo viene assegnato all’interrupt con la dichiarazione
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 22/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 22
attachInterrupt(<canale>, encoderListener, CHANGE);
in cui viene passato come parametro un puntatore al metodo in gestione.
Non ultimo, va ben tenuto presente che ogni variabile modificata da unmetodo richiamato da un evento di tipo interrupt, deve essere dichiarata di
tipo
volatile Con tale dichiarazione, propria del linguaggio C++, ci si assicura che il
valore della variabile verrà sempre aggiornato ad ogni lettura della stessa
evitando ogni meccanismo di caching.
Alla fine di quanto detto è lecito affermare che l’uso degli interrupt è a tutti
gli effetti una modalità di programmazione concorrente.
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 23/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 23
Creazione degli oggetti OOP ad allocazione dinamica tramite l’operatore New()
Tra i vantaggi portati dalla programmazione a oggetti vi è, in termini di
performaces, la capacità di poter creare strutture dati, con metodi definiti
all’interno, facendole esistere solo per il tempo necessario alla
computazione. Tali strutture dati, nel momento in cui ne viene allocata
fisicamente la memoria, altro non sono che gli oggetti da cui trae nome la
Programmazione Orientata agli Oggetti.
Tramite il metodo
Object New(<Class Name>)
viene allocata fisicamente la memoria ottenendo in ritorno un puntatorecorrispondente all’oggetto creato.
Una volta soddisfatta la necessità di utilizzo dell’oggetto creato si deve
necessariamente deallocare la memoria precedentemente riservata
all’oggetto prima che il puntatore riferito allo stesso oggetto risulti non
essere più accessibile poichè divenuto esterno al campo di visibilità. Il
metodo in questione è
Void free(<pointer>) Non si può non accennare al fatto che, al giorno d’oggi, esistano linguaggi
di programmazione che non necessitano di alcun tipo di deallocazione
esplicita di oggetti nel codice sorgente. Stiamo parlando di linguaggi che,
come ad esempio Java, si basano su una Virtual Machine che si prende cura
di deallocare automaticamente le zone di memoria a cui fanno riferimento
puntatori divenuti ormai inaccessibili. Tale operazione viene comunemente
chiamata Garbage Collection.
Nella tecnologia di Arduino non è nativamente supportato l’uso dei meotdi
sopra descritti per allocare e deallocare oggetti. Tale scelta è motivata dai
bassi costi e ridotti spazi del microcontrollore. E’ lasciata al programmatore
la scelta di abilitare o meno il pieno supporto all’allocazione dinamica dioggetti tramite la seguente dichiarazione:
#include <stdlib.h>
extern void * operator new(size_t size){return malloc(size);}
void operator delete(void * ptr) {free(ptr);}
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 24/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 24
Override del metodo di sistema per ricavare data e ora da un chip DS1307
Figura 12: L'orologio in chip al quarzo modello 1307 della Dallas
I requisiti del progetto per la gestione delle fascie orarie a giorni settimali,impongono che il microcontrollore possa disporre dell’ora esatta anche in
condizioni di riavvio a seguito di mancanza di corrente elettrica.
Il chip DS1307 è di fatto un orologio al quarzo che, quando vienealimentato costantemente con una tensione di 3V, è in grado di fornire un
valore numerico corrispondente all’ora esatta. Tale valore numerico viene
trasmesso digitalmente tramite protocollo I2C.
Il protocollo I2C ha la particolare caratteristica di permettere lacomunicazione con un elevato numero di dispositivo sui medesimi cavi di
trasmissione. Ciò è permesso in virtù dell’assegnamento di un indirizzo,
corrispondente ad un byte univoco, ad ogni singola periferica. La
comunicazione è coordinata da un unico dispositivo master; nel caso di
questo progetto è lo stesso microcontrollore Arduino.Il valore numerico trasmesso dal chip consiste nel numero di secondi
trascorsi a partire dal 1 Gennaio 1970 all’istante corrente.
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 25/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 25
Debugging, gestione errori e difficoltà caratteristiche dello sviluppo con un microcontrollore
Sviluppare codice sorgente per un microcontrollore presenta notoriamente
svariate difficoltà aggiuntive rispetto a quelle che si incontrano impiegando
un comune personal computer. Prima fra tutte è la mancanza di un monitor
dove poter visualizzare comodamente informazioni di debug e stack di
errori durante lo sviluppo. E’ evidente che non potendo fare a meno di una
qualunque segnalazione, perlomeno a seguito di certi cambiamenti di stato
critici, bisogna ricorre all’output prodotto da periferiche non propriamente
progettate per lo scopo. E’ il caso tipico dell’utilizzo di led per la
segnalazione luminosa e buzzer piezoceramici per la segnalazione acustica.Nei primi è possibile variare la frequenza di lampeggio e nei secondi è
possibile variare la frequenza sonora, ottenendo toni alti o bassi.
Figura 13: Diodi led e un buzzer piezo elettrico
Oltre alle problematiche finora descritte, nello sviluppo di codice sorgente
per un microcontrollore si aggiunge spesso anche la mancanza di potereffettuare il debug del codice riga per riga. E, di conseguenza, non è
possibile esaminare il valore delle variabili durante l’esecuzione del
software.
Una delle sostanziali differenza fra un microcontrollore ed un personal
computer, seppure ad uso industriale, sta nelle pretese molto più rigide di
continuo up-time del primo rispetto al secondo. Infatti mentre per un
personal computer, solo per aggiornamenti indispensabili, sono previsti dei
fermi anche di svariati giorni nell’arco di un anno; da un microcontrollore,
quale può essere Arduino, si pretende che resti in funzione 24 ore su 24
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 26/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 26
senza soluzioni di continuità. In aggiunta nei microcontrollori, nemmeno aseguito di situazioni impreviste, si deve ferificare un errato accesso a zone
di memoria non corrette; in quanto, essendo comunemente usati linguaggi
di programmazione di basso livello, questo provocherebbe nel migliore deicasi il reset del sistema.
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 27/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 27
Gestione password, parsing e logica di ricerca
La centralina è stata configurata in modo tale da essere in grado di gestirefino a 50 utenti. Tale dimensione deriva direttamente dalla capacità di
memorizzazione, pari a 4 KB, della Eeprom interna al microcontrollore
Arduino Mega.
Per rendere più difficile la memorizzazione della propria password di
accesso da parte di persone nelle immediate vicinanze, l’utente ha la
possibilità di effettuare pressioni casuali di vari tasti prima di inserire lacorretta sequenza di ingresso corrispondente alla propria password. Questa
modalità, comunemente chiamata “Rolling Code”, è molto diffusa nel
settore delle casseforti elettroniche.
Il riconoscimento della password viene effettuato su un buffer di caratteri
contenente le ultime 5 pressioni inviate dal keypad. La prima di operazione
di riconoscimento consiste nell’individuare l’indice della struttura dati in
memoria Eeprom contenente la password corrispondente, attraverso ilseguente metodo:
PwdData* Pwds::getPwdIndexByPwdNotDeletedd(String strPwd) {
PwdData* result=NULL; for(int i=0; i<MAX_PWDS; i++) {
Pwd p = getPwd(i);if(!p.isDeleted()) {
PwdDataMatch pwdDataMatch = p.isPwd(strPwd);
if(pwdDataMatch.isMatch()) {
result = new PwdData(i, pwdDataMatch.getType());
break; }
}
}
return result; }
Come si può notare direttamente dal codice sorgente, le strutture dati
vengono scansionate dalla prima all’ultima, essendo memorizzate senza
seguire alcun tipo di ordine. Naturalmente la ricerca si interrompe quando
c’è uguale corrispondenza fra la password inserita dall’utente e quella
contenuta nella struttura dati in esame. Si noti che sono escluse le strutture
dati che sono state precedentemente marcate come cancellate.
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 28/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 28
Una volta stabilita la validità della password inserita, viene verificatal’abilitazione all’ingresso nel giorno e nella fascia oraria corrente. Infatti
l’utente amministratore può decidere di limitare gli orari e i giorni di
accesso di tutti gli altri utenti.
Figura 14: Diagramma delle classi per la gestione accessi via password a fasce
orarie
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 29/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 29
Realizzazione hardware della centralina
Il circuto stampato della centralina è stato progettato al computer con un
software CAD dedicato. E’ prassi comune, anche per prototipi amatoriali,delegare la realizzazione fisica dello stampato a una delle molte aziende
specializzate in questo tipo di stampa. In tal caso si è adoperato il software
usato nella progettazione per generare dei files di tipo “Gerber”. Questifiles vengono resi disponibili all’azienda di stampaggio e sono compatibili
industrialmente con le apparecchiature CAD/CAM del realizzatore.
Figura 15: Printed Circuit Board ospitante il microcontrollore Arduino Mega el’elettronica logica e di potenza
La scheda a circuito stampato è stata disegnata per ospitare componenti
comunemente reperibili in commercio con modalità di montaggio a foropassante.
Di seguito si riportano le immagini reali della centralina assemblata. Si
notino i seguenti elementi principali:
• l’Arduino Mega inserito capovolto
• la resistenza di potenza gialla che limita l’assorbimento del motore
• la morsettiera di tipo “a castello”
• i tre relay rettangolari di colore nero che fungono da Ponte H per il
motore e da “Open Collector” verso altri eventuali dispositivi esterni
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 30/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 30
Figura 16: Vista lato componenti della centralina
Figura 17: Vista lato saldature della centralina
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 31/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 31
Motoriduttore
E’ stato scelto il seguente motoriduttore a spazzole considerando:
• la velocità media a coppia massima
• i consumi di corrente
• la bassa tensione continua, nel rispetto delle normative
• la presenza di un encoder a effetto Hall integrato
• l’elevato tempo di vita dichiarato dal produttore
Figura 18: Esploso e dimensioni del motoriduttore
Figura 19: Dati tecnici del motoriduttore
Motoriduttore epicicloidale.
Albero di uscita supportato da due cuscinetti a sfera.
Soppressione disturbi con VDR sul collettore e condensatori.
Direzione di rotazione secondo polarità.Può essere montato in ogni posizione.
Massimo carico radiale: 200N
Massimo carico assiale: 100N
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 32/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 32
Temperatura di esercizio: -20°C/60°CPeso approssimativo: 385/485g
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 33/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 33
Esploso di montaggio Grazie all’utilizzo di Autocad Inventor è stato realizzare con precisione il
disegno tecnico del cover. In modo più semplice è stato riprodotto ilmotoriduttore al fine di creare un chiaro esploso di montaggio.
Si desidera far notare la scelta dell’utilizzo una coppia conica in acciaio
Inox per trasferire il moto rotazionale del perno in uscita dal motoriduttore
al codolo del cilindro della serratura.
Figura 20: Esploso di montagggio del motoriduttore sul codolo
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 34/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 34
Possibili utilizzi del prototipo Di seguito si vuole dare una panoramica dei possibili utilizzi del prototipo
in diversi scenari.
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 35/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 35
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 36/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 36
Figura 21: Possibili utilizzi del prototipo
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 37/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 37
Analisi comparativa con i dispositivi commerciali esistenti ed elementi di novità
Tutti i grandi produttori di serrature di livello internazionale stanno
aggiornando i loro cataloghi dei prodotti inserendo versioni motorizzate
delle serrature. I dispositivi motorizzati prevedono l’apertura e la chiusura
automatica di scrocco e mandate senza l’ausilio delle chiavi. Generalmentei produttori considerano l’accessorio più comune per l’accesso il lettore di
impronta digitale, non valutando le molteplici difficoltà che tale dispositivo
può comportare:
• necessaria presenza fisica dell’utente a cui si vuole garantire
l’accesso
• combinazione difficoltosa di tasti per la memorizzazione
dell’impronta
• problematica la modifica o la cancellazione di dati esistenti senza
ricorrere al collegamento di un personal computer o dispositivo
esterno di programmazione
In altri casi viene considerato come strumento di apertura il transponder
con le seguenti difficoltà e svantaggi:
• necessaria presenza fisica dell’utente per consegna del dispositivo
• stesse problematiche della normale chiave quali il furto, lo
smarrimento, la duplicazione e l’ingombro
• necessaria riconsegna del dispositivo nel caso di revoca dell’accesso
• problematica la modifica o la cancellazione di dati esistenti senza
ricorrere al collegamento di un personal computer o dispositivo
esterno di programmazione
La tastiera è un ulteriore dispositivo per l’immissione delle credenziali di
accesso. Nei sistemi attualmente in commercio, le tastiere presentano iseguenti limiti:
• sono di dimensioni troppo ridotte per un comodo utilizzo in quanto
sono favoriti l’estetica e il design
• le parti del sistema installate esternamente all’ingresso, tra cui latastiera, sono costituite di materiale plastico e quindi facilmente
danneggiabili
• la fragile qualità del materiale di costruzione delle tastiere implica
nel tempo un’evidente usura dei tasti, andando ad evidenziare quelli
premuti per l’inserimento della password
• l’installazione delle tastiere è prevista solo sulla struttura della porta
stessa e non sulle opere murarie adiacenti
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 38/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 38
Alcuni produttori hanno progettato le serrature motorizzate prevedendonel’installazione solo su porte dedicate ad ospitare il dispositivo. Invece la
totalità dei produttori obbliga il cliente, già in possesso di una porta
blindata, alla sostituzione della serratura e del cilindro per renderlicompatibili con il prodotto automatizzato.
Dal punto di vista operativo si possono riscontrare altre problematiche
riguardanti i prodotti attualmente in commercio. Le più frequenti sono:
• la poca coppia in uscita al perno del motoriduttore che è causa di
chiusure incomplete su porte di vecchia costruzione con
accostamenti imprecisi
• vari comportamenti errati del sistema nel caso di situazioni
impreviste come ad esempio nel caso di lenti accostamenti della
porta alla cassamatta. Tale situazione è conseguenza di una chiusura
errata delle mandate sui battenti a cui segue la mancata segnalazione
sonora all’utente o addirittura la riapertura automatica
• le effrazioni al sensore porta non sono considerate dalla logica del
sistema. Spesso la manomissione del sensore viene rilevata dal
sistema come una apertura manuale della porta tramite chiave a cui
segue l’inopportuna apertura automatica della serratura
Il prototipo oggetto della tesi è dotato di una centralina elettronica
attraverso la quale vi è la possibilità di programmare le password diaccesso tramite il solo utilizzo della tastiera e con l’ausilio di segnali
sonori. Il progetto è stato sviluppato in modo tale da poter impostare fino a
50 utenti personalizzabili con accesso a fasce orarie ristrette, giornaliere o
settimanali. Nessuna funzionalità di programmazione richiede il
collegamento della centralina con un personal computer esterno.
La tastiera è tra i componenti più importanti dell’intero prototipo e come
tale presenta le seguenti caratteristiche di rilievo:
• manifattura in acciaio inox, tasti compresi
• certificazione antivandalo e grado di protezione IP67
• comunicazione digitale e criptata con la centralina e, di conseguenza,
anche operando direttamente sui fili il sistema non potrà ricevere un
comando di apertura
• possibilità di bloccare la tastiera attraverso un pulsante interno
• segnalatore acustico integrato
Prendendo in considerazione i difetti dei dispositivi attualmente reperibili
nel mercato, il prototipo di serratura motorizzata è stato fin dall’inizio
progettato inserendo i seguenti elementi di novità e miglioramento:
• un potente motoriduttore da 2 Ncm in grado di aprire e chiudere le
mandate anche nelle più difficili situazioni
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 39/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 39
• la serratura motorizzata è stata predisposta in modo tale da poter
essere installata ovunque, anche su cilindri già esistenti con codolo
• modalità Day&Night attivabile con un interruttore che permette di
inibire la chiusura automatica a seguito dell’accostamento dellaporta. E’ utile negli uffici e negli ambienti a elevata frequentazione
• funzionalità Rolling Code mediante la quale, a seguito di svariate
pressioni di tasti, il sistema verifica sempre solo gli ultimi 5 numeridigitati. Ciò rende più difficoltosa la memorizzazione visiva da parte
di persone nelle immediate vicinanze
• blocco della tastiera per 3 minuti a seguito di 30 digitazioni non
corrette. La tastiera si riattiva prima del tempo nel caso di aperture
manuali o pressioni del tasto di apertura dall’interno
•
possibilità di memorizzare fino a 5500 accessi con le relative data eora. Tutti questi dati sono scaricabili comodamente su una chiavetta
USB
Un altro elemento di novità nel prototipo è rappresentato dalla presenza di
un modulo GSM.
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 40/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 40
Figura 22: Il modulo GSM adottato nel prototipo
Tale modulo integrato permette di abilitare le seguenti funzionalità:
• apertura da remoto tramite squillo telefonico senza alcun costo in
quanto il modulo disconnette subito la chiamata non appena
identifica il chiamante tra gli autorizzati
• facile programmazione, anche da remoto, tramite semplici messaggi
SMS contenti una password amministrativa
• anticoercizione utile in caso di richiesta forzata di apertura dellaporta da parte di estranei in situazioni di pericolo. Infatti, inserendo il
proprio codice con l’ultimo numero incrementato di uno, la porta si
apre normalmente e in contemporanea il modulo GSM manda dei
messaggi preimpostati a degli utenti presenti in una lista di
emergenza.
5/16/2018 Tesi centralina di controllo per serrature - slidepdf.com
http://slidepdf.com/reader/full/tesi-centralina-di-controllo-per-serrature 41/41
Università Telematica e-Campus Facoltà di Ingegneria
Pag. 41
Bibliografia
•
Stan Gibilisco, Manuale pratico di elettrotecnica ed elettronica,Hoepli, 2008
• Michael Margolis, Arduino. Progetti e soluzioni, Hops, 2011
• Muhammad Rashid, Elettronica di potenza. Dispositivi e circuiti,
Pearson, 2007
• Cesare Rota, Programmare con C++, Hoepli, 2009
• Salvatore Salpagno, Manuale di programmazione modulo GSM
TELxxC versione 20, Salpagno, 2011
• Maik Schmidt, Il manuale di Arduino, Apogeo, 2011
• Curtis Waguespack, Sean Dotson, Bill Bogan e Andrew Faix,Mastering Autodesk Inventor 2009 and Autodesk Inventor LT 2009,
Autodesk, 2010
• Arduino Learning, tratto da http://arduino.cc/en/Tutorial/HomePage
• Arduino Reference, tratto da
http://arduino.cc/en/Reference/HomePage
• Tutorial e specifiche del software Sprint Layout, tratto da
http://www.abacom-online.de/uk/html/sprint-layout.html
• EAO Product Information S.series Lite, datasheet del keypad
• Datasheet del motoriduttore, tratto dahttp://www.micromotorssrl.com/motor_e192/e192_pg.html
• Datasheet di Arduino Mega, tratto da
http://arduino.cc/en/Main/ArduinoBoardMega