Sistem de localizare în clădiri folosind senzori inert...
Transcript of Sistem de localizare în clădiri folosind senzori inert...
Universitatea Politehnica din Bucures,ti
FACULTATEA DE AUTOMATICA S, I CALCUALTOARE
DEPARTAMENTUL DE AUTOMATICA S, I INGINERIA SISTEMELOR
Lucrare de licent, a
Sistem de localizare ın cladirifolosind senzori inert,iali
Absolvent:
Andrei Dobrin
Coordonator:
Prof. Dr. Ing. Sergiu Iliescu
Consultant,i
Ing. Catalin Vasile
S, l. Dr. Ing. Grigore
Stamatescu
Abstract
Mediul tehnologic cotidian are un impact din ce ın ce mai mare asupra situat, iilor
cu risc ridicat ca de exemplu, ın cazul intervent, iilor trupelor speciale. In astfel de cazuri,
daca evenimentele se desfasoara ın interiorul unei cladiri, apare necesitatea cunoas,terii
ın orice moment a pozit, iei fiecarui luptator, ın scopul coordonarii situat, iei de ansamblu.
Proiectul de licent, a propus vizeaza proiectarea s, i dezvoltarea unui dispozitiv de loca-
lizare inert, ial, destinat localizarii unei persoane aflata ın deplasare ın interiorul unei
cladiri. Se vor folosi senzori inert, iali MEMS. Se considera ca aparatul de localizare se
afla asupra persoanei. Mis,carea acesteia poate fi normala sau rapida, se vor lua ın consi-
derare 6 grade de libertate. Funct, ii dorite sunt: cunoas,terea pozit, iei relativ la un punct
de referint, a dat(e.g. punctul la care s-a init, ializat sistemul). Se va descrie raspunsul
sistemului ın timp s, i ın funct, ie de tipurile de mis,care.
Obiectivele avute ın vedere pentru realizarea acestei lucrari de licent, a sunt:
studiul sistemelor micro-electro-programabile, realizarea unei arhitecturi pentru achizi-
t, ionarea corecta s, i ıntr-un format specific cercetarilor realizate a datelor de la senzori, fil-
trarea datelor pentru eliminarea zgomotelor, realizarea unui program cu ajutorul caruia
se pot citi, prelucra s, i interpreta datele pe calculator.
Cuprins
Abstract i
Lista de Figuri iv
1 Introducere 1
1.2 Principii de funct, ionare ale sistemelor de localizare ın timp real . . . . . . 2
1.3 Caracterul inovativ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Sisteme micro-electro-mecanice 4
2.1 Scalarea dispozitivelor micro-mecanice . . . . . . . . . . . . . . . . . . . . 5
2.2 Scalarea sistemelor mecanice . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Senzorii inert, iali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.1 Principiu de funct, ionare: . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.2 Accelerometrul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.3 Giroscopul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Arhitectura sistemului 12
3.1 Proiectarea de ansamblu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Arduino Uno[1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.1 Caracteristici: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.2 Pini: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.3 Alimentare: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.4 Comunicat, ie: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.5 Programare: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.6 ATmega328: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 Accelerometrul ADXL345[? ] . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.1 Descriere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.2 Mod de operare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.3 Caracteristici: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.4 Alimentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4 Giroscopul ITG-3200[2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.1 Descriere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.2 Caracteristici: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5 Protocolul I2C[? ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.6 5 Modul bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.6.1 Caracteristici: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
ii
Contents iii
4 Rezultate s, i evaluare experimentala 26
4.1 Citirea datelor s, i transmisia acestora catre PC[3] . . . . . . . . . . . . . . 26
4.2 Filtrarea datelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.1 Descriere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.2 Implementare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.3 Rezultate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3 Aplicat, ia pentru PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.4 Sect, iunea de desenare: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.5 Citirea s, i prelucrarea datelor de la senzori . . . . . . . . . . . . . . . . . . 39
4.6 Determinarea deplasarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5 Concluzii 47
Bibliografie 48
Lista de figuri
2.1 Schema bloc a unui senzor inert, ial[4] . . . . . . . . . . . . . . . . . . . . . 9
3.1 Echipament . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Schema de conectare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3 Arduino Uno[5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4 Accelerometrul ADXL345[6] . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5 Giroscopul ITG-3200[3] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.6 Schema pentru conectarea prin I2C . . . . . . . . . . . . . . . . . . . . . 24
3.7 Modul bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1 Datele de la senzori afis,ate pe seriala . . . . . . . . . . . . . . . . . . . . . 29
4.2 Rezultatele filtrarii pentru accelerometru . . . . . . . . . . . . . . . . . . . 33
4.3 Rezultatele filtrarii pentru giroscop . . . . . . . . . . . . . . . . . . . . . . 34
4.4 Interfat,a programului pentru vizualizarea datelor . . . . . . . . . . . . . . 35
4.5 Partea de desenare a interfet,ei . . . . . . . . . . . . . . . . . . . . . . . . 39
4.6 Fereastra pentru setarile conexiunii . . . . . . . . . . . . . . . . . . . . . . 40
4.7 Datele de la senzori ın format numeric . . . . . . . . . . . . . . . . . . . . 42
4.8 Animat, ia care imita mis,carile senzorilor . . . . . . . . . . . . . . . . . . . 42
4.9 Fereastra pentru selectarea axei unuia dintre cei doi senzori . . . . . . . . 43
iv
Capitolul 1
Introducere
Nevoia de a avea un sistem de localizare ın cladiri nu este o noua, ea fiind
prezena mai ales ın sistemele de securitate de ceva vreme. Astfel, camerele TV ın circuit
ınchis sunt folosite de mai multe zeci de ani pentru a se putea monitoriza cat mai bine
ceea ce fac anumite persoane ın cladiri cu important, a majora (e.g. institut, ii militare,
aeroporturi, etc).
Marele dezavantaj al unui sistem de camere ın circuit ınchis este acela ca nu
se pot monitoriza toate zonele, ıncaperile, colt,urile, etc ale unei cladiri chiar s, i ın cazul
unor cladiri de dimensiuni mici deoarece acest lucru necesita un sistem de camere foarte
complex, mare s, i costisitor chiar s, i ın zilele noastre cand pret,ul acestor sisteme a scazut
dramatic fat, a de cel de acum 10-20 de ani. Mai mult, cu cat un astfel de sistem este mai
mare, cu atat este nevoie de mai mult, i oameni pentru a-l monitoriza (i.e. a sta cu ochii
ın monitoare pentru a surprinde eventualele ıncalcari de reguli s, i a le raporta). Acest
fapt ridica probleme de natura umana precum: oboseala (dupa mai multe ore de privit
ın monitoarele care prezinta imaginile transmise de catre camere omul poate trece cu
vederea anumite lucruri care i se par nesemnificative, dar care, ın realitate, sunt de o
important, a majora) sau chiar neraportarea unor evenimente ın mod intent, ionat.
Astfel, a aparut nevoia de a avea un sistem de localizare care sa nu nece-
site oameni sa ıl supravegheze ın totalitate s, i care sa ofere informat, ii precise ın mod
continuu(fara ”goluri”) despre pozit, ia unui om sau chiar a unui obiect daca se dores,te
monitorizarea locat, iei unui obiect de valoare (e.g. un tablou ıntr-un muzeu) ın timp
real. Aceste sisteme poarta chiar numele de Sisteme de Localizare ın Timp Real - SLTR
(Real Time Location Systems - RTLS).
1
Chapter 1. Introducere 2
Un astfel de sistem poate monitoriza mis,carea unei persoane sau a unui obiect
s, i se poate da o alarma daca o persoana a intrat ıntr-o zona ın care nu are acces sau
daca un obiect a parasit o zona de sigurant, a.
Astfel de sisteme exista deja, ele folosesc tehnologii precum senzori RFID
(radio-frequency identification = identificare prin frecvent, a radio) pasivi s, i activi, Blue-
tooth (tehnologie radio pentru schimbul de date) s, i WiFi (alt tip de tehnologie pentru
schimbul de date fara fire) care se folosesc de noduri sau taguri aflate asupra persoanei
sau obiectului care se dores,te a fi monitorizat pentru a-l putea identifica s, i de cititoare
care primesc informat, iile pe care apoi le interpreteaza pentru a determina cat mai precis
pozit, ia.
1.2 Principii de funct, ionare ale sistemelor de localizare ın
timp real
Aceste sisteme sunt folosite, ın general, ın spat, ii ınchise precum cladiri s, i
nu ofera o acoperire pentru suprafet,e vaste precum GPS-ul. Tagurile de identificare
sunt aplicate pe obiectele sau sunt atas,ate persoanelor care se doresc a fi monitorizate.
Puncte de referint, a care pot fi reprezentate de catre emit, atoare sau de catre receptoare
sunt pozit, ionate ın mai multe locuri din interiorul cladirii sau suprafet,ei ın care se
realizeaza monitorizarea pentru a se asigura acoperirea zonei ın care poate sa ajunga
tagul respectiv.
Pentru determinarea distant,ei sau a unghiurilor de mis,care sunt folosite mai
multe tipuri de date de intrare fie separat sau ın combinat, ie. Cele mai utilizate astfel
de metode sunt urmataorele:
Unghiul de apropiere
Pentru o determinare corecta a deplasarii s, i a ungiurilor de deplasare trebuie
determinat de unde se apropie obiectul ce se dores,te a fi monitorizat. aceasta metoda
foloses,te o antena sau mai multe pentru determinarea unghiului de apropiere s, i astfel,
de deplasare.
Diferent,a de timp
Distant,a dintre tag s, i cititor este direct proport, ionala cu timpul necesar pen-
tru propagarea semnalului dintre cele doua. Aceasta metoda este folosita din ce ın ce
mai put, in datorita preciziei foarte mari necesara ın sincronizarea ceasurilor celor doua
dispozitive.
Chapter 1. Introducere 3
Puterea semnalului primit
Puterea semnalului primit este invers proport, ionala cu patratul distant,ei.
Aceasta este una dintre cele mai folosite metode datorita practicalitat, ii sale, a costurilor
scazute s, i a disponibilitat, ii sale.
1.3 Caracterul inovativ
In lucrearea de licent, a de fat, a va fi tratata problema crearii unui sistem de
localizare cu ajutorul unor senzori inert, iali fara a fi nevoie de multiple cititoare sau
transmit, atoare care sa primeasca, respectiv sa trimita informat, ia s, i sa o prelucreze (ca
de exemplu, ın cazul sistemelor GPS). Pentru realizarea acestui obiectiv vor fi folosit, i doi
senzori: un accelerometru s, i un giroscop cu ajutorul carora se va ıncerca determinarea
cat mai precisa a pozit, iei obiectului monitorizat.
Un astfel de sistem are nevoie de un singur element fara de care nu se poate
realiza: determinarea cat mai exacta a pozit, iei init, iale adica, a referint,ei ın funct, ie de
care se va determina deplasarea. Acesta este s, i marele dezavantaj al acestui tip de
sistem: plecarea trebuie sa sa faca dintr-o pozit, ie fixata anterior.
Toate datele pot fi prelucrate local (i.e. pe dispozitivul care cont, ine senzorii)
cu ajutorul unui microcontroler, iar apoi aceste date pot fi transmise unui alt dispozitiv
(e.g. calculator, telefon inteligent, etc) pentru a se realiza o afis,are a acestora. Precizia
unui astfel de sistem depinde numai de acuratet,ea algoritmilor folosit, i pentru prelucrarea
datelor s, i de precizia punctului de referint, a.
In cele ce urmeaza se va face o prezentare teoretica a senzorilor intert, iali, apoi
se va descrie echipementul (partea hardware a lucrarii), apoi se va prezenta programul
realizat pentru citirea s, i afis,area datelor de la senzori, iar ın final sa vor trage concluziile
ın urma cercetarilor ıntreprinse.
Capitolul 2
Sisteme micro-electro-mecanice
Sistemele micro-electro-mecanice (MEMS) sunt dispozitivele care combina com-
ponente electrice s, i mecanice cu o lungime caracteristica mai mica de 1mm, dar mai mare
de 1µm.[7]
Domeniul acestor tipuri de senzori a cunoscut o cres,tere exploziva ın ultimul
deceniu, tehnologia progresad ıntr-un ritm care depas,es,te cu mult puterea noastra de
ınt,elegere a fizicii implicate. Au fost fabricate elemente de execut, ie, motoare, valve,
angrenaje s, i diafragme electrostatice, magnetice, pneumatice s, i termice mai mici de
100-µm. Acestea sunt folosite ca senzori de presiune, temperatura, debit masic, viteza,
sunet s, i compozit, ie chimica, ca elemente de execut, ie pentru mis,cari liniare s, i unghiulare,
ca s, i componente simple pentru sisteme complexe precum robot, i s, .a.[7].
Accelerometrele pentru airbag-uri auto, sistemele de intrare fara cheie, ret,elele
dense de micro-oglinzi pentru ecrane optice de ınalta definit, ie, microscoapele pentru
scanarea unui singur atom, micro-schimbatoarele de caldura pentru racirea circuitelor
electronice, reactoarele pentru separarea celulelor biologice, analizoarele de sange s, i sen-
zorii de presiune pentru catetere sunt doar cateva dintre modurile de folosire actuale ale
acestor tipuri de senzori. Microconductele sunt utilizate ın detectoarele ın infraros,u, ın
diodele laser, ın cromatografele de gaz ın miniatura s, i ın sistemele pentru controlul flui-
delor la frecvent, a ınalta. Micropompele sunt utilizate pentru imprimarea de cerneala cu
jet, testarea mediului s, i pentru racirea electronica. Aplicat, iile medicale posibile pentru
pompele mici includ livrarea controlata s, i monitorizarea cantitat, ii de medicamente la
minut, fabricarea ın nano-litri a substant,elor chimice, precum s, i dezvoltarea de pancreas
artificial.
4
Chapter 2. Sisteme micro-electro-mecanice 5
2.1 Scalarea dispozitivelor micro-mecanice
Int,elegerea s, i utilizarea dispozitivelor micro-mecanice ıncep sa fie doua feno-
mene din ce ın ce mai raspandite la nivel mondial. Utilitatea acestor dispozitive va fi
enorma, iar beneficiile pe care le pot aduce sunt ınca neıt,elese ın totalitate. Cu timpul,
aceste micro-dispozitive vor face parte din viet, ile noastre ca s, i electronicele. Ce forma
vor lua aceste micro-dispozitive? Ce le va act, iona s, i cum vor interact, iona cu mediul lor?
Noi nu putem prevedea unde ne va duce dezvoltarea tehnologiei.
Teoria scalarii este un ghid valoros pentru ceea ce se poate realiza s, i ceea ce nu
se poate realiza. Prin ınt,elegerea modului ın care fenomenele se comporta s, i se schimba,
atunci cand se produc modificari ale dimensiunilor putem obt, ine unele informat, ii s, i sa
ınt,elegem mai bine abordarile posibile.
In general, sunt trei dimensiuni cand se vorbes,te despre marimi: obiecte astro-
nomice, obiecte la scara normala(dimensiuni cu care noi, oamenii suntem obis,nuit, i) s, i
obiecte foarte mici numite micro-obiecte. Fenomenele de la una dintre aceste dimensiuni
de multe ori sunt nesemnificative la alta. De exemplu, fort,ele gravitat, ionale domina pe
o scara astronomica. Mis,carea planetei noastre ın jurul Soarelui s, i a Soarelui ın jurul
galaxiei este determinata ın mare parte de fort,e gravitat, ionale. Cu toate acestea, pe
scara macroscopica a unui birou fort,ele gravitat, ionale ıntre doua obiecte ca de exemplu,
un capsator s, i un pix sunt nesemnificative. Pe scara astronomica suntem preocupat, i de
fort,a gravitat, ionala, iar pe masura ce dimensiunile scad, ne intereseaza alte fort,e pentru
a mis,ca obiectele.
Ceea ce este evident la scara astronomica sau la scara normala de multe ori nu
este atat de evident la dimensiuni foarte mici. De exemplu, ın cazul necesitat, ii generarii
de fort,e la scara macroscopica se utilizeaza un motor electric care este ın realitate un
motor magnetic s, i aproape toate elementele de act, ionare electrice la dimensiuni normale
utilizeaza campuri magnetice pentru a genera fort,e. O prima intuit, ie ar fi de a folosi
motoare magnetice s, i ın proiectarea micro-dispozitivelor. Cu toate acestea, cele mai
comune modele de micromotoare utilizeaza campuri electrostatice ın loc de campuri
magnetice.
Domeniul dispozitivelor micromecanice este extrem de larg. Aceasta cuprinde
toate disciplinele s,tiint, ifice s, i ingineres,ti tradit, ionale, doar ca pe o scara mai mica.
Incercat, i sa va gandit, i la o s,tiint, a tradit, ionala sau disciplina de inginerie care nu are un
micro-echivalent. Ceea ce se ıncearca ın aceasta noua disciplina este replicarea macro-
s,tiint,elor s, i domeniilor ingineres,ti la o scara micro. Ca rezultat, oamenii tehnici din toate
disciplinele s,tiint, ifice s, i ingineres,ti pot aduce contribut, ii importante ın acest domeniu.
Chapter 2. Sisteme micro-electro-mecanice 6
Timpul de la concept, ie pana la utilizare a fost foarte scurt. Alessandro Volta s, i
Andre Marie Ampere au dezvoltat conceptele de baza ale energiei electrice. Aproximativ
o suta de ani mai tarziu, Nikola Tesla s, i Thomas Alva Edison au dezvoltat generatoare
s, i motoare electrice practice. In contrast, motorul de act, ionare microcomb a fost descris
ın 1989 s, i ın prezent este utilizat ın automobile ca un senzor pentru airbag. Ideiile lui
Volta s, i ale lui Ampere au luat o suta de ani pentru a ajunge sa fie puse ın practica, dar
motorul de act, ionare microcomb a luat mai put, in de cat, iva ani de la concepere pana la
punerea ın aplicare pe scara larga.
2.2 Scalarea sistemelor mecanice
Atunci cand dimensiunea unui sistem se schimba, diferent,a se reflecta s, i asupra
parametrilor fizici ai acestui sistem, de multe ori ıntr-un mod dramatic. Pentru a ınt,elege
modul ın care se schimba aces,ti parametri se ia ın considerare un factor de scara S. Acest
factor de scara este similar cu notat, ia mica din colt,ul unui desen tehnic ca de exemplu,
1:10. Obiectul real trebuie facut la o marime de 10 ori mai mare decat marimea desenului.
Scara 100:1 ınseamna ca obiectul trebuie facut de 100 de ori mai mic decat cel din desen.
Atunci cand se schimba scara dimensiunilor, toate dimensiunile obiectului se schimba
de exact aceles, i numar de ori S.
Acest factor de scala S poate fi utilizat pentru a descrie modul de schimbare
al fenomenelor fizice. Toate lungimile desenului se scaleaza prin factorul S, dar alt, i
parametrii cum ar fi volumul se scaleaza diferit. Volumul V este:
V = L× l × I (2.1)
Atunci cand scara se schimba de 1/100 de ori (adica, scade cu un factor de
100) lungimea, lat, imea s, i ınalt, imea se schimba toate de 1/100 de ori, iar volumul scade
cu (1/100)3 sau cu 1/1, 000,000. Volumul scade cu un factor de un milion cand di-
mensiunea scade cu un factor de o suta. Volumul este un exemplu de parametru care
se scaleaza ca S3. Fort,a cauzata de tensiunea de suprafat, a se scaleaza ca S1, fort,a
electrostatica se scaleaza ca S2, fort,a cauzata de fenomene magnetice se scaleaza ca
S3, iar fort,a gravitat, ionala se scaleaza ca S4. Daca dimensiunea sistemului scade de
la un metru la un milimetru, aceasta implica o scadere a dimensiunii cu un factor de
o mie, S = 1/1000. Fort,a cauzata de tensiunea de suprafat, a se scaleaza cu un fac-
tor de o mie, S1 = (1/1000)1; fort,a electrostatica scade cu un factor de un milion,
S2 = (1/1000)2 = 1/1, 000, 000; fort,a magnetica scade cu un factor de un miliard,
S3 = (1/1000)3 = 1/1, 000 milioane s, i fort,a gravitat, ionala scade cu un factor de un
trilion, S4 = (1/1000)4 = 1/1, 000 miliarde. Intr-adevar, modificarea dimensiunii unui
sitem mecanic schimba fort,ele de interes.
Chapter 2. Sisteme micro-electro-mecanice 7
Cunoscand modul ın care se scaleaza un fenomen fizic, fie ca este S1, S2, S3, S4
sau o alta putere de S, putem int,elege modul de proiectare a sistemelor mecanice mici.
Ca de exemplu, consideram un gandac de apa. Greutatea gandacului de apa se scaleaza
ca volumul adica, S3 ın timp ce fort,a care sprijina gandacul se scaleaza ca tensiunea
de suprafat, a (S1) ori distant,a ın jurul piciorului gandacului (S1) deci, fort,a pe piciorul
gandacului se scaleaza ca S1 × S1 = S2. Cand marimea de scala, S scade, greutatea
scade mai rapid decat fort,ele tensiunii de suprafat, a. Trecerea de la un om de 2 metri
la un gandac de 2 mm scade greutatea cu un factor de un miliard, ın timp ce fort,a de
tensiune de suprafat, a descres,te cu un factor de numai un milion. Prin urmare, gandacul
poate merge pe apa.
Scalarea ofera un ghid bun asupra modului ın care lucrurile se comporta s, i ne
ajuta sa obt, inem o perspectiva asupra sistemelor mici, dar scalarea este doar atat, un
ghid bun. Aceasta, neoferind de obicei, solut, ii exacte. De exemplu, scalarea de mai sus
nu ia ın considerare diferent,a ıntre piciorul gandacului de apa s, i piciorul unei persoane.
Picioarele gandacului de apa sunt concepute pentru apa s, i ne as,teptam la performant,e
superioare. Creativitatea s, i intuit, ia sunt ceea ce fac un design excelent, scalare este doar
un ghid pentru a ınt,elege ceea ce este important.
2.3 Senzorii inert, iali
Un senzor inert,ial reprezintaa un observator ınchis ıntr-o carcasa care ıncearca
sa determine schimbarile de pozit,ie ale carcasei ın raport cu un sistem de referina, inert,ial
exterior.[4]
Aces,ti senzori se folosec de fort,ele inert, iale care act, ioneaza asupra unui corp
pentru a determina comportamentul dinamic al corpului respectiv. Parametrii de baza
sunt accelerat, ia pe o anumita axa s, i rata unghiulara. Fort,ele externe care act, ioneaza asu-
pra unui corp ıi imprima acestuia o accelerat, ie s, i/sau o schimbare a orientarii acestuia(pozit, ia
unghiulara). Rata de schimbare a pozit, iei unghiulare reprezinta viteza unghiulara. Un
vitezometru nu este un sensor inert, ial deoarece el este capabil sa masoare o viteza con-
stanta a unui corp care nu este expus unor fort,e inert, iale. Un senzor inert, ial nu poate
sa faca acest lucru; cu toate acestea, daca condit, iile init, iale sunt cunoscute, evolut, ia lor
poate fi calculata prin integrarea ecuat, iei dinamice pe baza accelerat, iei masurate s, i a
semnalelor rata.
Chapter 2. Sisteme micro-electro-mecanice 8
2.3.1 Principiu de funct, ionare:
Senzorii inert, iali convertesc fort,ele inert, iale cauzate de catre accelerat, ia impri-
mata corpurilor sau de catre rata semnalului ın nis,te schimbari fizice ca de exemplu,
deflect, ia maselor sau deviat, ia stresurilor care sunt mai apoi captate de catre un traduc-
tor corespunzator s, i transformate ıntr-un semnal electric. Acest semnal electric este mai
apoi supus unor proceduri de estimare precum filtrari liniare sau non-liniare pentru a
obt, ine o estimare cat mai apropiata a semnalului de intrare. Ies, irea este o valoare cali-
brata a accelerat, iei sau a ratei masurate. Ies, irea nu este ın mod obligatoriuu un semnal
electric. De exemplu, ın cazul unor medii periculoase(cu potent, ial exploziv), semnalul
de ies, ire poate fi unul optic.
Accelerat, iile s, i vitezele unghiulare sunt semnale vectoriale ce poseda valori s, i
orientari absolute. Daca este masurata o singura componenta a vectorului atunci, sen-
zorul este de tip 1D sau pe o axa, iar pentru doua sau trei componente ale vectorului,
senzorul este de tip 2D, respectiv 3D.
Astazi, giroscoapele s, i accelerometrele de tip MEMS sunt un produs finit, cali-
brat s, i testat care poate fi dat spre ıntrebuint,are s, i integrat cu un efort minim ıntr-un
sistem de nivel ınalt de masurare s, i/sau control. Nivelul de precizie necesar depinde
de aplicat, ie, unul din principalele elemente care determina precizia acestor senzori fiind
mediul ın care vor opera. Astfel, intervalul ın care poate varia temperatura mediului
exterior, umiditatea acestui mediu, precum s, i vibrat, iile s, i s,ocurile pe care senzorul le va
suporta sunt elemente cheie ın ceea ce prives,te precizia. Datorita acestor patru elemente
durata de viat, a s, i robustet,ea acestor senzori poate varia ın limite destul de largi. Mai
mult, condit, iile de mediul determina s, i pret,ul acestor senzori, cu cat aceste condit, ii sunt
mai dure, cu atat pret,ul este mai mare.
Un senzor inert, ial nu este doar senzorul propriu-zis ci, acesta mai cont, ine s, i
o serie de componente interconectate precum traductoare s, i diferite componente elec-
tronice. Senzorul s, i traductoarele interact, ioneaza cu pachetul, principalele interact, iuni
fiind reprezentate de transferurile de caldura s, i stres.
O schema simplificata ın care sunt reprezentate principalele elemente compo-
nente ale unui astfel de senzor poate fi vazuta ın Figura 1.1.
Electronica este compusa dintr-o etapa init, iala ın care se amplifica semnalul
de la ies, irea traductorului pentru a-l aduce la o forma convent, ionala. Electronica poate
genera de asemenea, semnalele de excitat, ie s, i de control necesare pentru un anumit mod
de operare s, i pentru condit, ionarea operarii. In practica, traductorul s, i etapa init, iala
a electronicii formeaza un element indivizibil unde etapa init, iala ofera condit, ionarea
s, i excitat, ia pentru traductor s, i vice-versa, part, i ale etapei init, iale pot fi componente
Chapter 2. Sisteme micro-electro-mecanice 9
Figura 2.1: Schema bloc a unui senzor inert,ial[4]
ale traductorului. Mai mult, traductorul este adesea, integrat ın senzorul intrinsec.
In general, un traductor de un anumit fel, cu un anumit principiu impune nu numai
alegerea unui anumit element de traductor ci, s, i adaptarea senzorului s, i a electronicii.
Din structura de mai sus se pot observa urmatoarele interact, iuni s, i caracteristici:
• Feedback-ul ajuta la liniarizarea s, i optimizarea caracteristicilor de transfer. Cu
toate acestea, este nevoie de elemente de execut, ie s, i deci, de un efort adit, ional.
Astfel, nu tot, i senzorii au componenta de feedback, iar acolo unde este posibil, se
opereaza ın bucla deschisa.
• Performant,ele sistemului sunt determinate ıntr-o mare masura de zgomote s, i de
perturbat, ii.
Rolul aparent central al senzorului ın MEMS dispare rapid atunci cand se
examineaza numeroasele etape necesare pentru realizarea unui astfel de dispozitiv:
• Mediul de lucru pentru senzor este stabilit ın mod obis,nuit prin as,a numitul nivel
zero de ambalare;
• Semnalele citite de catre senzor trebuiesc achizit, ionate s, i procesate;
• In multe cazuri, ca de exemplu, ın toate giroscoapele vibratoare, senzorul trebuie sa
fie act, ionat prin mis,care primara care trebuie sa fie controlata cu o mare precizie;
• Pentru aplicat, ii de nivel ınalt, sunt integrate funct, ii de monitorizare on-line;
• Semnalele de ies, ire pentru comunicarea externa - inclusiv, daca este cazul, rezul-
tatele testelor interne - trebuie sa fie formate s, i monitorizate.
• Senzorul s, i unitatea de prelucrare a semnalului trebuie sa fie ambalate s, i legate de
conexiunile cu pinii externi;
• Intregul produs trebuie calibrat, ceea ce necesita un echipament special cu scopul
de a crea accelerat, iile necesare sau semnale cu rata mare de precizie. Funct, iile de
reprezentare selectate sunt testate de obicei, ın ıntreaga gama de temperaturi de
aplicare.
• Nu ın ultimul rand, proceduri de calificare mai mult sau mai put, in comprehensive
trebuiesc adoptate ınainte ca product, ia sa poate fi init, iata.
Chapter 2. Sisteme micro-electro-mecanice 10
2.3.2 Accelerometrul
Accelerometrele sunt dispozitive care convertesc accelerat, iile ın deflect, ii sau
deviat, ii de stres. Acestea, sunt transformate ın semnale electrice Ye care reprezinta o
aproximat, ie mai buna sau mai rea a vectorilor de accelerat, ie a. Cel mai adesea, algoritmii
de estimare sunt proceduri liniare de filtrare care elimina zgomotele.
Senzorii inert, iali pot fi vazut, i ca sisteme care ofera semnale ce depind de
s,ase fort,e inert, iale cauzate de trei accelerat, ii liniare s, i trei semnale rata sau deviat, iile
acestora: XTi = (ax, ay, az,Ωx,Ωy,Ωz). Chiar s, i ın cazul senzorilor care, ın general,
pot fi vazut, i ca sisteme 1D, impactul tuturor fort,elor inert, iale este prezent sub forma
efectelor de cumplare ıncrucis,ata. In cazul sistemelor uni-dimensionale efectele celorlalte
5 componente sunt reduse la valori neglijabile fat, a de cea a componentei de interes.
Ideal, un accelerometru ar trebui sa ofere semnalul de ies, ire Ye care sa respecte
urmatoarele criterii:
• Intr-o gama de masurare data: X ∈ [Xmin, Xmax] sa reprezinte o estimare liniara,
scalata a semnalului de intrare Xi,
Ye = S(Xi − X0)
unde S este matricea-factor de scalare, iar X0 este defazajul;
• Sa reprezinte o estimare ”buna” a componentei de intrare adica, sa o determine
cu precizie mare ın gama de masurare s, i ın lungimea de banda alese;
• Daca nu este primit nici un semnal de intrare, sa ofere un semnal sub o limita
predefinta apropiata de pozit, ia zero;
• Ar trebui sa prezinte efecte de cuplare ıncrucis,ata neglijabile. Adica, semnalul de
ies, ire sa nu fie perturbat de catre alte accelerat, ii liniare sau unghiulare;
• Sa fie stabil atunci cand apar variat, ii de temperaturi;
• Sa nu aibe momente de blocaj sau defect, iuni ın timpul funct, ionarii;
In general, aceste cerint,e sunt descrise ın detaliu de specificat, iile corespunzatoare
s, i sunt reflectate ın datasheet-ul senzorului. Principalii parametrii specificat, i sunt sensi-
bilitatea, liniaritatea, rezolut, ia, bias-ul, deviat, ia bias-ului, sensibiliatea ıntre axe, rezistent,a
la s,ocuri s, i la vibrat, ii. Aces,ti parametrii sunt relevant, i s, i pentru giroscoape.
2.3.3 Giroscopul
Un giroscop clasic consta dintr-o roata volanta a carui flotabilitate mare
ımpreuna cu mecanisme de compensare a frecarii, permite aproximarea rotat, iei ca o
fort, a de mis,care ıntr-un spat, iu inert, ial. Daca platforma se rotes,te, principiul conservarii
Chapter 2. Sisteme micro-electro-mecanice 11
momentului cinetic ment, ine mis,carea rot, ii neschimbata ın sistemul inert, ial, ceea ce duce
la schimbarea orientarii vectorului vitezei unghiulare ın sistemul platformei. Prin ob-
servarea acestei schimbari se poate determina unghiul de rotat, ie al platformei. Acelas, i
mecanism fort,eaza pendulul lui Foucault sa ”deseneze” pe suprafat,a de nisip forma
non-inert, iala, rotativa a suprafet,ei Pamantului.
Mis,carea relativa a unui corp pe platforma unui sistem de coordonate poate
fi descrisa ın mod echivalent prin folosirea unor entitat, i virtuale precum fort,e Coriolis
sau momente. Principiul masurarii as,a numitelor giroscoape ”rata” exploateaza fort,ele
Coriolis ca mecanisme cu cuplare ıntre rotat, ia platformei s, i mis,carea maselor ın raport
cu platforma. In aceste tipuri de giroscoape viteza relativa este ment, inuta constanta
s, i astfel, este creata o fort, a Coriolis proport, ionala cu viteza unghiulara a platformei.
Aceasta viteza unghiulara poate fi determinta prin masurarea devierilor cauzate de catre
fort,a Coriolis.
In contrast cu giroscoapele ”unghiulare” s, i ”integratoare a ratei” se mai poate
determina orientarea platformei prin ment, inerea corpului ın mis,care ”libera” prin control
de tip feedback fara a perturba fort,ele Coriolis s, i masurarea orientarii medii a unui
corp de pe platforma. Cum orientarea corpului ın spat, iul inert, ial ramane neschimbata,
orientarea corpului ın raport cu platforma refleca orientarea platformei ın spt, iul inert, ial.
O alta alternativa a tipurilor de giroscoape de mai sus a aparut atunci cand
s-au investigat corzile vibratoare, ceea ce a deschis drumul giroscoapelor vibratoare.
Acestea nu mai folosesc o rotat, ie constanta pentru generarea fort,ei Coriolis ci, mis,cari
oscilante sub forma devierilor liniare sau rotative ale maselor. Alte tipuri de giroscoape
sunt cele bazate pe cochilii care folosesc un inel ce are doua rezonant,e ın plan s, i cele de
tipul val acustic.
Capitolul 3
Arhitectura sistemului
3.1 Proiectarea de ansamblu
Pentru a citi datele de la senzori s, i a le transmite mai departe catre calculator
este folosita o placa Arduino Uno datorita uns,urint,ei de folosire a acesteia, ea avand un
mediu de dezvoltare integrat intuitiv. In plus, aceasta placa poate comunica foarte us,or
cu alte dispozitive(e.g. senzori) prin intermediul protocoalelor I2C s, i SPI.
Conectarea celor doi senzori cu placa Arduino se realizeaza cu ajutorul unei
placi breadboard. Protocolul de comunicat, ie folosit pentru a conecta senzorii s, i placa
Arduino este protocolul I2C. In imaginea de mai jos se poate vedea acest echipament.
Figura 3.1: Echipament
12
Chapter 3. Arhitectura sistemului 13
Schema detalita a conectarii tuturor elementelor din echipament se poate vedea
in Figura 3.2.
Figura 3.2: Schema de conectare
3.2 Arduino Uno[1]
Arduino Uno este o placa electronica care foloses,te un microcontroler AT-
mega328 pentru realizarea unei game largi de funct, ii. Este foarte us,or de folosit s, i de
programat. Are 14 pini digitali intrare/ies, ire(I/O) (dintre care 6 pot fi folosit, i ca ies, iri
pentru PWM), 6 intrari analogice, un rezonator ceramic de 16 MHz, un port pentru
conectarea prin USB, o mufa pentru alimentarea de la o alta sursa decat USB-ul s, i un
buton de resetare. Aceasta cont, ine tot ce este necesar pentru a sprijini microcontrolerul
ın aplicat, iile pe care utilizatorul dores,te sa le realizeze cu aceasa placa. Tot ce trebuie
facut este sa se conecteaze placa la un calculator cu ajutorul unui cablu USB sau sa se
alimenteze placa cu un adaptor CA-CC de la priza sau de la o baterie pentru a o porni.
Chapter 3. Arhitectura sistemului 14
Figura 3.3: Arduino Uno[5]
Uno difera de alte placi prin faptul ca nu se foloses,te de driver-ul pentru cipul
FTDI USB-la-serial. In schimb, acesta dispune de un Atmega16U2 (Atmega8U2 pana
la versiunea R2) programat ca un convertor USB-la-serial. Revizia 2 a placii Uno are
o rezistent, a pentru a trage linia 8U2 HWB la masa, ceea ce ıl face mai us,or de pus ın
modul DFU.
3.2.1 Caracteristici:
Microcontroler ATmega328
Tensiunea de operare 5 V
Tensiunea de operare(recomandata) 7-12 V
Pini I/O digitali 14(dintre care 6 furnizeaza ies, ire PWM)
Pini de intrare analogica 6
Curent DC per pin I/O 40 mA
Curent pentru pinul 3.3 V 50 mA
Memorie Flash 32 KB dintre care 0.5 KB sunt folosit, i de
bootloader
SRAM 1KB
Frecvent,a ceasului 16MHz
3.2.2 Pini:
Fiecare dintre cei 14 pini digitali de pe Uno poate fi utilizat ca o intrare
sau ca o ies, ire utilizand funct, iile pinMode(), digitalWrite() sau digitalRead(). Aces,tia
funct, ioneaza la 5 volt, i. Fiecare pin poate furniza sau primi un maxim de 40 mA s, i are
Chapter 3. Arhitectura sistemului 15
o rezistent, a de pull-up interna (deconectata ın mod implicit) cu valoarea ıntre 20 s, i 50
kΩ. In plus, anumit, i pini au funct, ii specializate:
• Serial: 0(RX) s, i 1(TX). Folosit, i pentru recept, ia(RX), respectiv transmisia(TX)
datelor seriale. Aces,ti pini sunt conectat, i la pinii corespunzatori ai cipului serial
ATmega8U2 USB-to-TTL;
• Intreruperile externe: 2 s, i 3. Aces,ti pini pot fi configurat, i pentru a declans,a
o ıntrerupere cu o valoare mica pe un front crescator sau descrescator sau la o
schimbare ın valoare. A se vedea funct, ia ”attachInterrupt()” pentru detalii.
• PWM: 3,5,6,9,10 s, i 11. Furnizeaza o ies, ire PWM pe 8 bit, i cu ajutorul funct, iei
”analogWrite()”;
• SPI: 10(SS), 11(MOSI), 12(MISO) s, i 13(SCK). Aces,ti pini suporta comunicat, ia
SPI cu ajutorul librariei ”SPI”;
• LEd 13. Exista un LED pe placa Arduino legat la pinul digital 13.
Uno are 6 intrari analogice etichetate de la A0 pana la A5, fiecare dintre
ele oferind o rezolut, ie de 10 de bit, i (adica, 1024 valori diferite). In mod implicit, se
masoara de la valoarea masei pana la cea de 5 volt, i des, i, este posibil sa se schimbe
limita superioara a intervalului folosind pinul AREF s, i funct, ia ”analogReference()”. In
plus, unii pini au funct, ii speciale ca de exemplu pinul:
• TWI: pinul A4 sau pinul SDA s, i pinul A5 sau pinul SCL. Suporta comunicat, ia
TWI folosind libraria ”Wire”;
Mai sunt s, i alt, i pini precum:
• AREF. Tensiunea de referint, a pentru intrarile analogice.
• RESET.
3.2.3 Alimentare:
Arduino Uno poate fi alimentat prin conexiunea USB sau de la o sursa de
alimentare externa. Sursa de energie este selectata automat.
Sursa Externa(non-USB) de putere poate veni fie de la un adaptor CA-CC
(priza de perete) sau de la o baterie. Adaptorul poate fi conectat prin introducerea unui
s,techer de 2.1mm cu centru-pozitiv ın mufa de alimentare a placii. Firele de la o baterie
pot fi introduse ın pinii GND s, i Vin ai conectorului de alimentare(POWER).
Placa poate funct, iona de la o sursa externa care da o tensiune ıntre 6 s, i 20
de volt, i. Daca primes,te mai put, in de 7 V, pinul care ofera 5V poate furniza mai put, in
de atat, iar placa poate deveni instabila. Daca primes,te mai mult de 12 V, regulatorul
Chapter 3. Arhitectura sistemului 16
de tensiune se poate supraıncalzi ceea ce duce la deteriorarea placii.Gama recomandata
pentru alimentare este ıntre 7 s, i 12 volt, i.
Pinii de alimentare sunt urmatorii:
• VIN: Daca se foloses,te o baterie pentru alimentarea placii, firul de plus trebuie
legat la acest pin sau ın cazul ın care tensiunea de alimentare este furnizata prin
mufa de alimentare aceasta tensiune se poate accesa prin acest pin pentru a ali-
menta alte dispozitive.;
• 5V: Acest pin ofera 5V reglat, i de catre regulatorul de pe placa;
• 3V3: Acest pin ofera 3.3V reglat, i de catre regulatorul de pe placa;
• GND: Pinul de masa;
• IOREF: Acest pin de pe placa Arduino furnizeaza tensiunea de referint, a cu care
opereaza microcontrolerul. Un scut configurat corect poate citi tensiunea de pe
pinul IOREF s, i selecta sursa de alimentare corespunzatoare.
3.2.4 Comunicat, ie:
Arduino Uno are o serie de facilitat, i pentru comunicarea cu un calculator, cu
o alta plca Arduino sau cu alte microcontrolere. ATmega328 ofera comunicat, ie seriala
UART TTL (5V) care este disponibila pe pinii digitali 0 (RX) s, i 1 (TX). ATmega16U2-
ul de pe placa transmite aceasta comunicat, ie seriala pe USB, aparand ca un port COM
virtual pentru programele de pe calculator. Firmware-ul ’16U2 foloses,te driverele stan-
dard pentru USB COM s, i nu este nevoie de nici un driver extern. Cu toate acestea, pe
Windows, este necesar un fis, ier ”inf”. Software-ul Arduino include un monitor de seriala
care permite datelor textuale simple sa fie trimise la s, i de la placa Arduino. LED-urile
RX s, i TX de pe placa vor clipi atunci cand datele sunt transmise prin intermediul cipu-
lui USB-la-serial s, i conexiunea USB la calculator (dar nu pentru comunicat, ia seriala pe
pinii 0 s, i 1).
ATmega328 suporta de asemenea, comunicat, iile de tip I2C(TWI) s, i SPI. Mai
mult, Arduino include s, i o librarie ”Wire” pentru simplificarea comunicat, iei prin inter-
mediul protocolului I2C, iar pentru protocolul SPI este inclusa libraria ”SPI”.
3.2.5 Programare:
Arduino Uno poate fi programat cu software-ul Arduino. Se selecteaza ”Ardu-
ino Uno” de meniul Tools- Board (ın funct, ie de microcontrolerul de pe placa).
ATmega328 pe Arduino Uno vine deja cu un bootloader care permite ıncarcarea
codului nou pe ea fara utilizarea unui programator hardware-ul extern. Acesta comunica
folosind protocolul STK500 original (de referint, a, fis, iere cu antet C). Acest bootloader
Chapter 3. Arhitectura sistemului 17
se poate evita s, i microcontrolerul se poate programa prin header-ul ICSP (programare
seriala-ın-circuit).
3.2.6 ATmega328:
ATmega328P este un microcontroler CMOS pe 8-bit, i cu un consum mic de
putere bazat pe arhitectura RISC ımbunatat, ita de AVR. Prin executarea de instruct, iuni
puternice ıntr-un singur ciclu de ceas, ATmega328P atinge throughputs ce se apropie de
1 MIPS pe MHz care permit proiectant, ilor de sisteme sa optimizeze consumul de energie
ın detrimentul vitezei de procesare.
3.3 Accelerometrul ADXL345[? ]
Figura 3.4: Accelerometrul ADXL345[6]
3.3.1 Descriere
ADXL345 este un accelerometru cu 3 axe de dimenziuni mici, subt, ire, cu un
consum de putere mic, cu o rezolut, ie de masurare ınalta (pe 13-bit, i), ceea ce ofera o
gama larga de masurare a accelerat, iilor de pana la ±16g. Datele digitale de ies, ire sunt
formatate ca 16-bit, i ın complement fat, a de doi s, i sunt accesibile prin intermediul a doua
protocoale: fie prin SPI (pe 3 sau 4 fire), fie prin I2C. Acest senzor este foarte potrivit
pentru aplicat, ii cu dispozitive mobile. El poate fi folosit ın masurarea accelerat, iei sta-
tice a gravitat, iei ın aplicat, ii de detectare a ınclinat, iilor, precum s, i accelerat, ia dinamica
rezultata din mis,care sau din s,ocuri. Rezolut, ia sa ınalta (4 mg/LSB) permite masurarea
schimbarilor de ınclinare mai mici de 1 .
Chapter 3. Arhitectura sistemului 18
Acest senzor furnizeaza mai multe funct, ii speciale de detectare. Capacitatea
de detectare a activitat, ii s, i inactivitat, ii determina daca se produce sau nu o mis,care
s, i daca accelerat, ia pe oricare dintre axe depas,es,te un nivel presetat de catre utilizator.
Poate detecta atingerea(e.g. lovitura cu degetul) simpla sau dubla. Permite detectarea
caderii libere. Aceste funct, ii pot fi mapate pe unul din cei doi pini de ıntrerupere. Un
buffer pe 32 de bit, i de tipul primul venit, primul ies, it(FIFO) poate fi folosit pentru a
stoca datele minimizand astfel intervent, ia procesorului gazda.
3.3.2 Mod de operare
Senzorul este o structura cu suprafat,a microtexturata din polisiliciu construita
pe partea de sus a unei plachete de siliciu. Arcuri din polisiliciu suspenda aceasta
structura pe suprafat,a plachetei s, i ofera o rezistent, a ımpotriva fort,elor de accelerat, ie.
Deformarea structurii este masurata folosind condensatoare diferent, iale care
sunt realizate din placi fixate independent s, i placi atas,ate la masa ın mis,care. Accelerat, ia
deviaza fasciculul s, i dezechilibreaza condensatorul diferent, ial rezultand ıntr-o ies, ire a
senzorului a carei amplitudine este proport, ionala cu accelerat, ia. Demodularea sensibila
la faza este utilizata pentru a determina amplitudinea s, i polaritatea accelerat, iei.
3.3.3 Caracteristici:
• Consum de putere foarte scazut: 40 mA ın modul de masurare s, i 0,1
mA ın modul de standby la VS = 2,5 V (tipic);
• Consumul de putere se scaleaza automat ın funct, ie de lungimea de
banda;
• Rezolut, ie setata de utilizator
Rezolut, ia presetata de 10 bit, i;
Rezolut, ia maxima care cres,te cu gama lui g. Pana la 13 bit, i la
±16g;
• Buffer FIFO pe 32 de bit, i pentru stocarea datelor ceea ce minimizeaza
sarcina procesorului gazda;
• Detectarea atingerilor simple sau duble;
• Monitorizarea activitat, ii s, i inactivitat, ii;
• Detect, ia caderii libere;
• Gama de alimentare de la 2 pana la 3,6 V;
• Gama tensiunii I/O de la 1,7 V pana la VS;
• Interfet,e SPI(pe 3 sau 4 fire) s, i I2C;
• Moduri de ıntrerupere flexibile, mapabile oricarui pin de ıntrerupere;
• Game de masurare selectabile prin comenzi seriale;
Chapter 3. Arhitectura sistemului 19
• Lungime de banda selectabila prin comenzi seriale;
• Gama de temperaturi mare: ıntre -40C s, i +85C;
• Torelant, a la s,oc de pana la 10000g;
• Este mic s, i subt, ire: 3mm× 5mm× 1mm;
3.3.4 Alimentare
Alimentarea poate fi aplicata pe VS sau pe VDD I/O ın orice ordine fara a strica
accelerometrul. Nivelul tensiunii de interfat,are este setat cu tensiunea de alimentare pe
interfat, a VDD I/O care trebuie sa fie prezenta pentru a se asigura ca ADXL345 nu creeaza
un conflict pe magistrala de comunicat, ie. Pentru operarea cu o singura alimentare
VDD I/O poate fi aceas, i sursa de alimentare cu VS . Cu toate acestea, ıntr-o aplicat, ie
cu dubla alimentare, VDD I/O poate diferi de VS pentru a oferi tensiunea dorita pentru
interfat, a atat timp cat VS este mai mare decat VDD I/O. Toate modurile de alimentare
posibile sunt prezentate ın tabelul de mai jos.
Condit, ie VS VDD I/O Descriere
Power Off Off Off Aparatul este complet oprit, dar exista po-
sibilitatea unui conflict pe magistrala de
comunicat, ie.
Magistrala deconectata On Off Aparatul este ın modul standby, dar co-
municarea nu este disponibila s, i va crea
un conflict pe magistrala de comunicat, ie.
Durata acestei stari trebuie sa fie redusa
la minimum (timpul de power-up) pentru
a preveni un conflict.
Magistrala conectata Off On Nu exista funct, ii disponibile, dar dispozi-
tivul nu va crea un conflict pe magistrala.
Standby sau masurare On On La pornire, aparatul este ın modul stan-
dby s, i toate funct, iile senzorului sunt
oprite, el as,tepand o comanda pentru a in-
tra ın modul de masurare. Dupa ce senzo-
rul primes,te comanda de a intra ın modul
de masurare toate funct, iile sunt disponi-
bile
Dupa ce se aplica VS , dispozitivul intra ın modul de as,teptare, ceea ce ınseamna
ca va fi redus la minimum consumul de energie, iar dispozitivul va as,tepta sa fie aplicata
VDD I/O s, i comanda pentru a intra ın modul de masurare sa fie primita (aceasta comanda
Chapter 3. Arhitectura sistemului 20
poate fi init, iata prin setarea bitului de masurare din registrul POWER CTL (Adresa
0x2D) la 1. In plus, orice registru pot fi scris sau citit pentru a configura partea ın timp
ce dispozitivul este ın modul de as,teptare. Este recomandata configurarea senzorului
ın modul de as,teptare, iar apoi activarea modului de masurare. Resetarea bitului de
masurare readuce senzorul ın modul de standby.
3.4 Giroscopul ITG-3200[2]
Figura 3.5: Giroscopul ITG-3200[3]
3.4.1 Descriere
ITG-3200 este primul giroscop cu 3 axe din lume pe un singur cip, cu ies, iri
digitale optimizat IC pentru jocuri, mouse 3D s, i aplicat, ii 3D de control de la distant, a.
Acesta dispune de bias ımbunatat, it s, i stabilitate la temperatura, fapt ce reduce ne-
voia calibrarii. Zgomotul de frecvent, a redusa este mai mic fat, a de dispozitivele din
generat, iile anterioare simplificad dezvoltarea de aplicat, ii s, i realizarea mai receptiva a
telecomenzilor.
Acesta are trei convertoare analog-digitale pe 16-bit, i pentru digitizarea ies, irilor
giroscopului, o lat, ime de banda a filtrului trece-jos intern selectabila de catre utilizator
s, i o interfat, a Fast-Mode I2C (400kHz). Funct, iile suplimentare includ un senzor de
temperatura ıncorporat s, i un oscilator intern de precizie 2%. Descoperirile din domeniul
acestor tipuri de senzori au dus la o reducere dramatica a dimensiunilor, au oferit o
reducere a consumului de putere de pana la 50% s, i au adus astfel, avantaje de cost
inerente ın comparat, ie cu solut, iile oferite de giroscoapele multi-cip.
Chapter 3. Arhitectura sistemului 21
3.4.2 Caracteristici:
• Ies, iri digitale ale axelor X, Y s, i Z pe un circuit integrat cu o sensibilitate
de 14.375 LSB-uri pe /sec s, i o gama totala de ±2000/sec;
• Trei convertoare analog-digitale integrate ofera es,antionare simultana
fara a necesita o multiplexare externa;
• Biasul ımbunatat, it s, i stabilitatea la temperatura reduc nevoia calibrarii
de catre utilizator;
• Zgomotul de frecvent, a redusa este mai mic fat, a de dispozitivele din
generat, iile anterioare ceea ce simplifica dezvoltarea aplicat, iilor s, i pro-
cesarea informat, iei;
• Filtru trece-jos programabil digital;
• Consum de curent scazut de 6,5 mA;
• Gama de alimentare de la 2,1 pana la 3,6 V;
• Permite o tensiune de referint, a pentru interfat,a I2C de la 1,7 V pana
la VDD;
• Consum de curent ın as,teptare de 5µA;
• Cel mai mic s, i mai subt, ire senzor din gama sa;
• Nu necesita filtru trece-sus;
• Timp de pornire: 50ms;
• Senzor de temperatura cu ies, ire digitala;
• Factor de scalare calibrat din fabrica;
• Torelant, a la s,oc de pana la 10000g;
3.5 Protocolul I2C[? ]
Protocolul I2C este un tip de transmisie de date seriala master-slave inventata
de catre Philips foarte potrivita pentru aplicat, iile ın care este necesara conectarea unei
placi de baza, a unui sistem embeded, a unui telefon sau a oricarui dispozitiv electronic cu
periferice ce funct, ioneaza la viteza redusa. Necesitatea acestui protocol a aparut pentru
a se putea realiza o conectare bidirect, ionala simpla pe doua fire pentru un control eficient
a acestor tipuri de dispozitive.
Principalele caracteristici ale acestui protocol sunt:
• Utilizarea a doar doua fire: unul pentru datele seriale(SDA), iar altul pentru ceasul
serial(SCL);
• Fiecare dispozitiv atas,at magistralei este adresabil pe seriala printr-un identificator
unic s, i o relat, ie de tip master-sclav exista ıntotdeauna. Masterul poate opera fie
ca transmit, ator-master, fie ca receptor-master;
Chapter 3. Arhitectura sistemului 22
• Utilizeaza o magistrala de tip master-sclav ın adevaratul sens al cuvantului prin
implementarea funct, iilor de detectare s, i arbitrare a coliziunilor pentru prevenirea
coruperii datelor daca doi masteri ıncep transmisia ın acelas, i timp;
• Transmisiile seriale bidirect, ionale de date pot fi facute la o viteza de pana la 100
kb/s ın modul Standard s, i pana la 400 kb/s ın modul Rapid Plus sau chiar pana
la 3,4 Mb/s ın modul de Viteza ınalta;
• Transmisiile seriale unidirect, ionale de date pot fi facute la o viteza de pana la 5
Mb/s ın modul Ultra-Rapid;
• Filtrele de pe cipuri rejecteaza spike-urile pentru a pastra integritatea datelor;
Dispozitivele compatibile cu acest protocol pot fi implementate ıntr-un sistem
foarte us,or chiar s, i ın cazul unor sisteme de dimensiuni mari. Mai mult, datorita faptului
ca intefat,area acestor tipuri de dispozitive se face prin simpla lor conectare la magis-
trala(prin lipirea unor fire) fara a fi necesare alte adaugari, modificarea unui sistem care
cont, ine astfel de dispozitive se face foarte us,or.
Semnalele SDA s, i SCL
Atat SDA, cat s, i SCL sunt linii bidirect, ionale conectate la o sursa de ten-
siune prin intermediul unei surse de curent sau unei rezistent, de pull-up. Atunci cand
magistrala este libera, amble linii au valoarea HIGH.
Datorita varietat, ii mari de tehnologii folosite ın fabricarea dispozitivelor ın
zilele noastre(CMOS, NMOS, bipolar) care pot fi conectate la o magistrala de tipul
I2C, nivelele logice ’0’(LOW) s, i ’1’(HIGH) nu sunt fixate s, i depind de nivelul asociat
al lui VDD. Nivelurile referint,elor de intrare sunt ıntre 30% s, i 70% din VDD; VIL este
0.3VDD, iar VIH este 0.7VDD.
Validitatea datelor:
Datele de pe SDA trebuie sa fie stabile atunci cand ceasul este pe HIGH. Starile
de HIGH s, i LOW de pe linia de date se pot schimba numai atunci cand semnalul de
ceas este ın starea LOW.
Condit, iile de START s, i de STOP:
Toate tranzact, iile ıncep cu un START(S) s, i se termina cu un STOP(P).
• O tranzit, ie de la HIGH la LOW pe linia SDA ın timp ce SCL-ul este ın starea
HIGH ınseamna o condit, ie de START;
• O tranzit, ie de la LOW la HIGH pe linia SDA ın timp ce SCL-ul este ın starea
HIGH ınseamna o condit, ie de STOP;
Chapter 3. Arhitectura sistemului 23
Acest tip de condit, ii sunt generate ıntotdeauna de catre master. Magistrala
este considerata a fi ocupata dupa o condit, ie de START s, i libera dupa o condit, ie de
STOP. Magistrala ramane ocupata daca dupa o condit, ie de tip START urmeaza o alta
de acelas, i tip s, i nu una de tip STOP.
Detectarea acestor condit, ii de catre dispozitivele conectate la magistrala se
face foarte simplu daca acestea au incorporate componentele hardware necesare. Micro-
controlerele fara aceste componente hardware trebuie sa verifice linia SDA la o frecvent, a
de cel put, in doua ori mai mare decat cea a ceasului pentru a detecta o tranzit, ie.
Formatul byte-ului
Fiecare byte de pe magistrala SDA trebuie sa aibe 8 bit, i insa, numarul de bytes
transmis, i la fiecare transfer este nelimitat. Fiecare byte trebuie urmat de catre un bit de
ACK. Primul bit al fiecarui byte trebuie sa fie cel mai semnificativ bit(MSB). Daca un
sclav nu poate sa transmita sau sa primeasca un byte de date pana cand nu a terminat
de realizat o anumita funct, ie(de exemplu, sa serveasca o anumita ıntrerupere) acesta
poate sa t, ina linia SCL ın starea LOW pentru a fort,a masterul ıntr-o stare de as,teptare.
Transferul de date continua atunci cand sclavul este pregatit pentru un alt byte de date,
el eliberand linia de ceas SCL.
Semnalele ACK s, i NACK
Confirmarea(acknowledgement) are loc dupa fiecare byte. Bitul de confirmare
permite unui receptor sa ıi semnaleze transmit, atorului ca a primit byte-ul s, i ca este
pregatit sa primeasca un alt byte. Masterul genereaza toate pulsurile de ceas inclusiv
bitul de confirmare.
Bitul de de confirmare este definit ın felul urmator: transmit, atorul elibereaza
linia SDA ın timpul pulsului de ceas pentru confirmare astfel ıncat receptorul sa poata
sa traga linia SDA ın starea LOW s, i sa o ment, ina stabil ın aceasta stare atat timp cat
pulsul de ceas este ın HIGH. Timpii de set-up s, i as,teptare trebuiesc, de asemenea, luat, i
ın considerare.
Atunci cand linia SDA ramane ın starea HIGH la aparit, ia celui de-al noualea
puls de ceas acest lucru este definit ca semnal de neconfirmare(NACK). Masterul poate
genera apoi fie o condit, ie de STOP pentru a anula transferul, fie o condit, ie repetata
de START pentru a ıncepe un nou transfer. Exista cinci posibilitat, i prin care se poate
ajunge la generarea unui semnal de tip NACK:
• Nu exista un receptor pe magistrala cu adresa transmisa astfel ıncat nu se poate
primi semnalul de ACK;
Chapter 3. Arhitectura sistemului 24
• Receptorul nu poate sa primeasca sau sa transmita deoarece executa o anumita
funct, ie s, i nu este pregatit sa comunice cu master-ul;
• Pe parcursul transferului, receptorul primes,te date sau comenzi pe care nu le
ınt,elege;
• Pe parcursul transferului, receptorul nu mai poate sa primeasca alt, i bytes de date;
• Un receptor master trebuie sa ıi semnaleze unui transmit, ator sclav sfars, itul unui
transfer.
Conectare:
O schema standard pentru conectarea unor senzori la o placa Arduino este cea
din figura urmatoare:
Figura 3.6: Schema pentru conectarea prin I2C
Rezistent,ele de pull-up RP sunt necesare pentru o operare corecta a acestui
protocol. Daca aceste doua rezistent,e ar lipsi, liniile SDA s, i SCL vor fi ıntotdeauna ın
starea LOW(aproape 0 volt, i) s, i astfel, magistrala nu va funct, iona. Valoarea rezistent,ei
RP aleasa pentru conectarea celor doi senzori la placa Arduino este de 10 kΩ.
3.6 5 Modul bluetooth
Acest modem se foloses,te de pinii RX s, i TX(sau de orice alta combinat, ie de pini
ce pot fi folosit, i ın acest scop) pentru recept, ia, respectiv transmisia datelor s, i reprezinta
un ınlocuitor foarte bun pentru cablurile seriale. Orice flux serial ıntre 2400 s, i 115200
bps poate fi trecut fara probleme de la calculator la modul sau invers. Aceste unitat, i au
fost testate cu succes pana la 106m. Modemul foloses,te un modul clasic RN-41 de calsa
1, ceea ce ıl face un modul bluetooth foarte us,or de folosit s, i bine documentat.
Mate Gold are regulatoare de tensiune pe placa s, i astfel, poate fi alimentat de
la o sursa ce ofera ıntre 3,3V s, i 6 VDC.
Chapter 3. Arhitectura sistemului 25
Figura 3.7: Modul bluetooth
3.6.1 Caracteristici:
• Conceput pentru a lucra direct cu principalele placi Arduino Pro s, i
Lilypad;
• Modul radio bluetooth aprobat FCC Clasa 1;
• Legatura foarte robusta atat ın integritate, cat s, i ın distant, a de trans-
misie(100m) - fara depas, iri ale buffer-ului;
• Consum de putere scazut: 25mA ın medie;
• Schema de salt ın frecvent, a Hardy - opereaza ın medii dure din punct
de vedere al perturbat, iilor radio precum WiFi, 802.11g s, i Zigbee;
• Conexiune criptata;
• Frecvent,a ıntre 2,4 s, i 2,524 GHz;
• Voltaj de operare ıntre 3,3 s, i 6 VDC;
• Temperaturi de operare ıntre -40 s, i 70 C;
• Antena incorporata;
Capitolul 4
Rezultate s,i evaluare
experimentala
4.1 Citirea datelor s, i transmisia acestora catre PC[3]
Pentru citirea datelor de la senzori s, i transmisia acestora catre PC s-a folosit
urmatoarea metoda:
Datele citite de la senzori sunt stocate ıntr-un buffer. Apoi, aceste date sunt atribuite
unor variabile de tip string pentru a putea fi transmise apoi pe seriala:
char str[512];
int regAdr; //Cu aceasta variabila se adreseaza registrul pentru citirea datelor
de la senzori
void setup()
//Pentru a se asigura funct, ionarea corecta a senzorilor este nevoie de modificarea unor
valori din regis,trii acestora. De asemenea, trebuie init, iata transmisia pe seriala.
Wire.begin();
Serial.begin(9600); //se incepe transmisia pe seriala
//Pornirea accelerometrului ADXL345
26
Chapter 4. Rezultate s,i evaluare experimentala 27
Dupa cum se poate vedea mai jos, se scriu trei valori diferite ın acelas, i re-
gistru(0x2D) al accelerometrului. Acesta este registrul de ”POWER CONTROL” al
accelerometrului. Mai ıntai se reseteaza acest registru, apoi se trece senzorul ın modul
de standby, iar ın final senzorul trece ın modul de masurare.
scrie(acc, 0x2D, 0);
scrie(acc, 0x2D, 16);
scrie(acc, 0x2D, 8);
//Pornirea girocopului
scrie(itgAdr, DLPF FS, (DLPF FS SEL 0—DLPF FS SEL 1—DLPF CFG 0));
//Se seteaza frecventa de esantionare la 100Hz
scrie(itgAdr, SMPLRT DIV, 9);
In loop se executa toate operat, iile necesare pentru achizit, ia s, i prelucrarea
datelor de la senzori, precum s, i transmisia acestor date prin seriala s, i prin modemul de
bluetooth.
void loop()
int x acc, y acc, z acc; //variabile ın care se t, in datele de la accelerometru
int x g, y g, z g; //variabile ın care se t, in datele de la giroscop
regAdr = 0x32;//Pentru registrul accelerometrului
citeste(acc, regAdr, TO READ, buff); //Se cites,te accelerat, ia de la
ADXL345
//Datele citite de la fiecare axa vin ın cate 2 bytes. LSB-ul primul! Astfel, ambii
bytes sunt convertit, i la un int
//Conversia la int a datelor citite
x acc = (((int)buff[1]) << 8) — buff[0];
y acc = (((int)buff[3]) << 8) — buff[2];
z acc = (((int)buff[5]) << 8) — buff[4];
regAdr = 0x1D;//Pentru registrul giroscopului
citeste(0x69, regAdr, TO READ, buff);
//Conversia la int a datelor citite
x g = (((int)buff[0]) << 8 ) — buff[1];
y g = (((int)buff[2]) << 8 ) — buff[3];
z g = (((int)buff[4]) << 8 ) — buff[5];
Chapter 4. Rezultate s,i evaluare experimentala 28
//Transmisia pe seriala a valorilor de la cei doi senzori
sprintf(str, ”%d %d %d %d %d %d”, x acc, y acc, z acc, x g, y g, z g);
Serial.println(str);
//Pentru a nu bloca portul este nevoie de un delay
delay(100);
Funct, iile folosite pentru citirea datelor de la senzori s, i modificarea valorilor
regis,trilor acestora:
Exista doua modalitat, i de conectare a senzorului cu placa Arduino s, i cate
o adresa pentru fiecare dintre cele doua modalitat, i. Pentru modalitatea de conectare
aleasa(mai simpla) adresa ın cazul accelerometrului este 0x53. Mai mult, exista o adresa
pentru citirea datelor de la senzori s, i alta pentru scrierea ın regis,trii acestora, dar aceste
doua adrese nu conteaza deoarece sunt gestionate ın spate de catre libraria ”Wire”
Conform diagramei din datasheet-urile celor doi senzori, pentru a scrie ın
regis,trii senzorilor trebuiesc urmarit, i pas, ii:
• Init, ializarea transmisiei catre senzor;
• Scrierea adresei registrului ın care se dores,te sa se faca scrierea;
• Scrierea valorii ın registru;
• Incheierea transmisiei.
//Se scriu valori in registrele senzorilor
void scrie(int senzor, byte adresa, byte val)
Wire.beginTransmission(senzor); //Se ıncepe transmisia catre senzor
Wire.write(adresa); //Se transmite adresa registrului
Wire.write(val); //Se transmite valoarea
Wire.endTransmission(); //Se ıncheie transmisia catre senzor
Funct, ia de citire este ceva mai lunga, dar modalitatea de operare este aproxi-
mativ aceas, i. Spre deosebire de scriere, citirea se face pe mai mult, i bytes. Se vor citi 6
bytes de date de la fiecare senzor(cate 2 pentru fiecare axa).
Pentru citirea datelor de la senzori trebuiesc urmat, i pas, ii:
Chapter 4. Rezultate s,i evaluare experimentala 29
• Init, ializarea transmisiei catre senzor;
• Scrierea adresei registrului din care se dores,te sa se faca citirea;
• Init, ializarea transmisiei catre senzor din nou(folosind adresa de citire);
• Citirea cate unui byte;
• Incheierea transmisiei.
void citeste(int senzor, byte adresa, int num, byte buff[])
Wire.beginTransmission(senzor); //Se ıncepe conexiunea cu senzorul
Wire.write(adresa); //Se transmite adresa de la care sa se citeasca
Wire.endTransmission(); //Se ıncheie conexiunea cu senzorul
Wire.beginTransmission(senzor); //Se ıncepe transmisia catre senzor
Wire.requestFrom(senzor, num); //Se cer 6 bytes de la senzor
int i = 0;
while(Wire.available()) //Senzorul poate sa trimita mai put, ina informat, iebuff[i] = Wire.read(); // recept, ionarea unui byte
i++;
Wire.endTransmission(); //ıncheierea transmisiei
In figura de mai jos se pot vedea datele de la cei doi senzori transmise pe seriala
s, i citite ın interfat,a programului Arduino:
Figura 4.1: Datele de la senzori afis,ate pe seriala
Chapter 4. Rezultate s,i evaluare experimentala 30
4.2 Filtrarea datelor
4.2.1 Descriere
Avand ın vedere faptul ca datele primite de la cei doi senzori sufera de pe urma
perturbat, iilor, apare nevoia filtrarii acestor date pentru a se asigura o acuratet,e cat mai
mare s, i o concordant, a cat mai buna cu realitatea. Accelerometrul are erori rapide, dar
se stabilizeaza ın timp pe cand giroscopul este foarte precis pe termen scurt, dar erorile
se acumuleaza ın timp s, i de aceea este necesara filtrarea datelor primite de la senzori.
Pentru filtrarea datelor a fost aleasa metoda Kalman pentru care denumirea
de predictor sau estimator poate fi mai corecta decat cea de filtru, dar cum ın cazul
de fat, a aceasta metoda act, ioneaza precum un filtru va fi denumita ın continuare filtru
Kalman. Aceasta metoda este denumita dupa Rudolf E. Kalman, unul dintre principalii
dezvoltatori ai acestei teorii.
Metoda Kalman de filtrare a datelor reprezinta un algoritm care pe baza datelor
anterioare aproximeaza valoarea citita la momentul actual, aceasta valoare fiind mai
apropiata de realitate (i.e. valoarea masurata efectiv de senzor) decat cea primita de la
senzor doarece aceasta din urma este afectata de zgomote s, i de catre alte inexactitat, i.
Astfel, un filtru Kalman act, ioneaza ın mod recursiv pe datele primite care cont, in s, i
zgomote pentru a da o estimare statistica asupra starii sistemului.
Cum filtrul Kalman este un estimator recursiv, pentru a determina datele
primite de la senzori sunt necesare doar doua elemente: valorile citite la momentul
actual s, i valorile estimate ın baza datelor anterioare. Astfel, spre deosebire de alte
tipuri de metode, nu sunt necesare valorile anterioare efective.
4.2.2 Implementare
Implementarea acestui filtru s-a realizat separat pentru fiecare axa a fiecarui
senzor. Astfel, s-au implementat 6 filtre diferite. S-a ales aceasta cale deoarece este una
foarte simpla, us,or de ınt,eles s, i pentru ca ın acest mod se pot vedea mai bine efectele
modificarii parametrilor filtrelor pe fiecare axa.
Formulele folosite pentru implementarea acestui filtru sunt urmatoarele:
x = x
e = e+ zp;
Chapter 4. Rezultate s,i evaluare experimentala 31
k =e
e+ zs;
x = x+ k × (valoare− x);
e = (1− k)× e;
Primele doua formule reprezinta partea de predict, ie a filtrului Kalman, iar
urmatoarele trei formule reprezinta partea de actualizare a masuratorilor. Variabilele
din formule reprezinta:
• x = valoarea filtrata;
• zp = zgomotul procesului;
• zs = zgomotul senzorului;
• e = eroarea estimata;
• k = cas,tigul Kalman;
Filtrele sunt aplicate la fiecare masuratoare s, i sunt init, ializate cu zgomotele
procesului zp s, i senzorului zs, cu eroarea estimata init, ial e s, i cu valaorea init, iala x.
Valoarea init, iala e nu este foarte importanta deoarece este modificata ıncontinuu atunci
cand se citesc datele de la senzori, aceasta a fost init, ializata cu valoarea 1. La fel ca ın
cazul erorii e, nici init, ialzarea valorii lui x nu este importanta s, i aceasta are la ınceput
tot valoarea 1.
Pentru alegerea coeficient, ilor celor doua zgomote s-a realizat o identificare
experimentala cu ajutorul graficelor din aplicat, ie s, i s-au obt, inut valorile:
• zp = 0.6 pentru axele accelerometrului;
• zs = 0.8 pentru axele accelerometrului;
• zp = 0.4 pentru axele giroscopului;
• zs = 0.5 pentru axele giroscopului;
acestea au au fost alese pentru a se realiza o rejectare a zgomotelor fara a afecta semnalele
reale. Astfel, daca zp s-ar fi ales prea mare sau zs s-ar fi ales prea mic, filtrul nu ar fi avut
efect adica, semnalul filtrat ar fi fost identic cu cel citit de la senzori, iar daca zp s-ar fi
ales prea mic sau zs s-ar fi ales prea mare, filtrul ar fi atenuat foarte mult semnalul.
Placa Arduino transmite datele nefiltrate de la senzori pentru a putea fi tra-
sate pe grafice s, i pentru a putea modifica valorile zgomotelor, dar ea mai transmite s, i
unghiurile pitch, roll s,i yaw care folosesc valori filtrate ale datelor. Astfel, filtrarea se
realizeaza atat pe placa Arduino, cat s, i ın programul de pe calcualtor. Valorile folosite
la init, ializarea variabilelor de pe placa fiind cele determinate experimental ın program.
Chapter 4. Rezultate s,i evaluare experimentala 32
Dupa ce datele sunt citite sub forma de string ın program, sunt separate s, i
apoi atribuite unor variabile dintr-o clasa globala DateDeLaSenzori pentru a putea fi
disponibile tuturor form-urilor din program. Astfel, implementarea pentru axa X a
accelerometrului arata ın felul urmator:
DateDeLaSenzori.e x acc = DateDeLaSenzori.e x acc+DateDeLaSenzori.zp x acc;
DateDeLaSenzori.k x acc = DateDeLaSenzori.e x acc / (DateDeLaSenzori.e x acc +
DateDeLaSenzori.zs x acc);
DateDeLaSenzori.x acc f = DateDeLaSenzori.x acc f + DateDeLaSenzori.k x acc *
(DateDeLaSenzori.x acc - DateDeLaSenzori.x acc f);
DateDeLaSenzori.e x acc = (1 - DateDeLaSenzori.k x acc)*DateDeLaSenzori.e x acc;
Toate variabilele folosite pentru filtrarea datelor sunt de tip double. Pentru
celalalte variabile procesul este asemanator s, i din acest motiv, calculele filtrelor respec-
tive nu mai sunt prezentate aici.
4.2.3 Rezultate
Datele primite de la cei doi senzori precum s, i rezultatele filtrarilor acestora se
pot vedea ın figurile de mai jos. In prima imagine sunt datele axei X a accelerometrului,
iar ın cea de-a doua imagine sunt detele axei Z a giroscopului. Pentru celalalte axe ale
celor doi senzori rezultatele fiind similare. Dupa ce a fost deschisa una din aceste ferestre
trebuie apasat butonul Ploteaza! pentru a afis,a cele doua semnale. Valoarea nefiltrata
este reprezentata cu culaorea galbena, iar cea filtrata cu culaorea ros, ie.
Prin intermediul acestor doua ferestre se pot modifica velorile pentru zgomotul
procesului zp s, i senzorului zs prin intermediul textbox -urilor aferente celor doua variabile.
Pentru a modifica aceste valor s, i ın algoritm trebuie apasat butonul Refresh.
4.3 Aplicat, ia pentru PC
Pentru a putea vizualiza, interpreta s, i modifica datele primite de la senzori
pe calculator a fost creata o interfat, a grafica ın limbajul C# cu ajutorul mediului de
dezvoltare integrat Visual Studio 2012. Acest mediu de dezvoltare integrat a fost ales
deoarece este un mediu ergonomic, ceea ce face foarte us,oara dezvoltarea aplicat, iilor.
Visual Studio include un set complet de instrumente de dezvoltare pentru generarea
de aplicat, ii ASP.NET, servicii Web XML, aplicat, ii desktop s, i aplicat, ii mobile. Visual
Basic, Visual C++, Visual C# s, i Visual J# toate folosesc acelas, i mediu de dezvoltare
integrat (IDE).
Chapter 4. Rezultate s,i evaluare experimentala 33
Figura 4.2: Rezultatele filtrarii pentru accelerometru
Aceasta interfat, a are mai multe posibilitat, i prin care se pot utiliza datele pri-
mite de la senzori. Astfel, ın aceast program se pot vizualiza valorile primite de la
senzori sub forma de date numerice sau sub forma de grafice, se pot vedea rezultatele
filtrarii datelor cu ajutorul estimatorului Kalman s, i se pot modifica parametrii estima-
torului pentru a se gasi valori mai bune (i.e. identificare experimentala) sau pentru a se
vedea ce efect au modificarile aduse acestor parametri asupra filtrarii. Prin intermediul
unei saget, i tri-dimensionale se poate vedea orientarea platformei (breadboard -ul) care
cont, ine senzorii s, i nu ın ultimul rand, se pot reprezenta pe imaginea structurii cladirii
(blueprintul) punctele ce reprezinta mis,carea efectuata de cel ce are asupra lui senzorii.
In plus, aceasta interfat, a are s, i o parte de tip ”Microsoft Paint” prin interme-
diul careia se poate desena structura (blueprint-ul) cladirii ın interiorul careia se dores,te
sa se faca monitorizarea deplasarii sau se poate ıncarca o imagine deja realizata cu
structura cladirii.
Aceasta interfat, a se poate vedea ın imaginea de mai jos.
Chapter 4. Rezultate s,i evaluare experimentala 34
Figura 4.3: Rezultatele filtrarii pentru giroscop
Ch
ap
ter4.
Rezu
ltate
s, ieva
luare
experimen
tala
35
Figura 4.4: Interfat,a programului pentru vizualizarea datelor
Chapter 4. Rezultate s,i evaluare experimentala 36
4.4 Sect, iunea de desenare:
Pentru a se putea lucra mai us,or cu datele primite de la senzori s, i a se putea
reprezenta aceste date a fost realizata ın acest program o parte de tip ”Microsoft Paint”
care cont, ine urmataorele elemente s, i prin intermediul careia se pot realiza urmatoarele
act, iuni:
1 Fereastra ın care se deseneaza
Aici se vor realizeaza act, iunile de desenat a structurii cladirii sau ınarcat a
pozelor cu blueprint-ul. De asemenea, ın aceasta fereastra se vor reprezenta punctele
care vor arata mis,carea platformei ce cont, ine senzorii prin interiorul cladirii ın care se
dores,te sa se monitorizeze deplasarea.
2 Curat,area ferestrei de desenat
Prin apasarea acestui buton se va ”curat,a” fereastra principala care cont, ine
schema cladirii s, i ın care se realizeaza reprezentarea punctelor de mis,care.
3 Deschiderea unui fis, ier
Prin intermediul acestui buton se poate ıncarca o poza care are deja structura
cladirii desenata.
Sunt trei tipuri de fis, iere care se pot ıncarca:
• jpeg;
• png;
• bmp;
4 Salvarea imaginii din fereastra principala
In cazul ın care s-a desenat structura unei cladiri pentru a nu o desena din nou
daca se va face monitorizarea deplasarii ın aceas, i cladire se poate salva aceasta imagine.
Mai mult, vor fi salvate s, i punctele ce reprezinta deplasarea ın interiorul cladirii daca se
dores,te sa se salveze traseul urmat ın cladire. Tipurile de fis, iere ın care se poate salva
imaginea sunt aceleas, i ca s, i ın cazul ıncarcarii imaginilor adica:
• jpeg;
• png;
• bmp;
5 Nici un element
In cazul ın care s-a finalizat desenarea cladirii s, i nu se mai dores,te sa se modifice
aceast desen sau se dores,te sa se selecteze referint,a se apasa acest buton s, i nu se va
Chapter 4. Rezultate s,i evaluare experimentala 37
ma desena nimic atunci cand se va apasa cu butonul mouse-ului ın interiorul ferestrei
principale.
6 Linie
Prin apasarea acestui buton se va selecta linia ca element de desenat. Pentru
realizarea unei linii ın fereastra principala se apasa pe butonul stanga al mouse-ului
ıntr-unul din punctele limita ale liniei ce se dores,te a fi desenata s, i ment, inand butonul
apasat se va deplasa mouse-ul ın cel de-al doilea punct limita al liniei, iar acolo se va
ridica degetul de pe buton. In fereastra principala va aparea o linie ıntre cele doua
puncte.
7 Patrulater
Procesul de desenare a unui patrulater este asemanator cu cel de desenare a
unei linii: se selecteaza doua puncte limita ale diagonalei principale (cu cea secundara
nu se poate) s, i astfel va fi desenat patrulaterul.
8 Elipsa
Prin intermediul acestui element se poate desena fie o elipsa, fie un cerc. Pentru
a realiza unul din aceste desene trebuie urmat, i pas, ii de la desenarea patrulaterului sau
liniei. In funct, ie de cat de mare este distant,a dintre cele doua puncte va fi desenat un
cerc sau o elipsa.
9 Creion
Cu ajutorul creionului fie se poate desena ın fereastra principala un punct
acolo unde se va apasa cu butonul stang al mouse-ului, fie se poate desena o succesiune
de puncte prin ment, inerea butonului apasat s, i deplasarea mouse-ului ıntr-o anumita
direct, ie.
10 Pensula
Deosebirea dintre pensula s, i creion este dimensiunea cercului. Daca ın cazul
creionului dimensiunea este fixa (adica 1), ın cazul pensulei aceasta poate fi modificata
facand-o oricat de mare se dores,te.
11 Dimensiunea pensulei
Prin intermediul acestui textbox se poate modifica dimensiunea pensulei.
Chapter 4. Rezultate s,i evaluare experimentala 38
12 Patrulater umplut cu culoare
Se poate selcta acest element atunci cand se dores,te colorarea unei anumite
suprafet,e cu aceas, i culoare. Procedura este aceas, i ca ın cazul desenarii unui patrulater
simplu.
13 Scris
Atunci cand se apasa acest buton se va scrie textul din textbox -ul 15 cu fontul
din 16, la dimensiunea din 17 ın stilul din 18 acolo unde a fost apasat butonu stang al
mouse-ului ultima data. In mod implicit, textul va fi desenat ın colt,ul din stanga sus.
14 Guma de s,ters
Cu ajutorul acestei gume se pot s,terge e port, iuni din desenul din picturebox -
ul principal. Pentru a realiza acest lucru, trebuie urmat, i pas, ii de la desenarea unui
patrulater. S, tergerea fiind ın fond, desenarea unui patrulater cu culoare alba ın interiorul
sau.
15 Textul de scris
In acest textbox se va scrie textul ce se va dori a fi scris atunci cand va fi apasat
butonul 13.
16 Fontul textului de scris
Fontul textului din textbox -ul 15 va fi selectat din aceasta lista. Posibilitat, ile
sunt cele oferite de catre mediul integrat de dezvoltare Visual Studio 2012.
17 Dimensiunea fontului pentru textul de scris
Dimensiunea textului din textbox -ul 15 va fi selectata din aceasta lista.
18 Tipul textului de scris
Tipul textului din textbox -ul 15 va fi selectat din aceasta lista. Posibilitat, ile
fiind urmatoarele:
• Regular, adica normal;
• Bold, adica ıngros,at;
• Underline, adica subliniat;
• Strickeout, adica taiat cu o linie pe mijloc;
• Italic, adica aplecat;
Chapter 4. Rezultate s,i evaluare experimentala 39
19 Culoarea curenta
Toate elementele detalite mai sus se pot desena, respectiv scrie, cu diferite
culori. Culoarea curenta cu care se realizeaza aceste lucruri fiind cea din acest picturebox.
20 Paleta de culori
Acest picturebox cont, ine posibilele culori cu care se pot realiza act, iunile de
mai sus. Prin apasarea cu butonul stang al mouse-ului pe una dintre culorile de aici se
va schimba culoarea curenta de desenat.
O posibila realizare cu elementele prezentate mai sus poate fi vazuta ın imagi-
nea de mai jos.
Figura 4.5: Partea de desenare a interfet,ei
4.5 Citirea s, i prelucrarea datelor de la senzori
21 Butonul de selctare a referint,ei
Prin apasarea acestui buton se selcteaza referint,a (i.e. punctul de plecare al
celui care poara asupra sa platforma cu senzorii) ca ultimul punct ın care s-a apasat
butonul stang al mouse-ului ın picturebox -ul principal.. Referint,a este de asemenea,
simbolizata printr-un cer de culoare albastra ın picturebox -ul principal.
Chapter 4. Rezultate s,i evaluare experimentala 40
22 Coordonata X a referint,ei
In acest textbox este reprezentata coordonata X a punctului de referint, a.
23 Coordonata Y a referint,ei
In acest textbox este reprezentata coordonata Y a punctului de referint, a.
24 Setari conexiune
Prin apasarea acestui buton se deschide fereastra de mai jos prin intermediul
careia se aleg setarile pentru conectarea la placa Arduino pentru a primi datele.
Figura 4.6: Fereastra pentru setarile conexiunii
In mod implicit, conexiunea este setata la un baud rate de 9600 deoarece
cu aceas, i rata transmite s, i placa Arduino. Astfel, daca se dores,te modificarea acesteia,
trebuie modificata mai ıntai ın programul de pe placa. Lista de porturi cont, ine porturile
disponibile de pe calculator (i.e. porturile la care sunt conectate dispozitive). Daca
aceasta lista este goala, ınseamna ca placa nu este conectata la calculator. Dupa ce a fost
conectata palca se apasa pe butonul de Refresh pentru actualizarea listei s, i se selecteaza
portul corespunzator, iar apoi se apasa butonul OK pentru finalizarea setarilor.
25 Butonul de conectare
Atunci cand a fost apasat acest buton programul ıncearca sa se conectareze
la placa Arduino pentru a primi datele. Daca acest lucru reus,es,te datele vor aparea ın
richtextbox -ul 27, iar daca nu va aparea eroarea corespunzatoare (e.g. ”Nu sunt porturi
disponibile” = placa nu este conectata la calculator).
Chapter 4. Rezultate s,i evaluare experimentala 41
26 Butonul de deconectare
Pentru a termina coexiunea cu placa Arduino trebuie apasat acest buton.
27 Datele de la senzori ın format numeric
Pentru a putea citi datele da la senzori prin portul serial de pe calculator s-a
ales urmatoarea metoda:
La apasarea butonului 25 se declara un port software cu datele din ferestra
pentru setarile conexiunii 24:
System.ComponentModel.IContainer components =
new System.ComponentModel.Container();
port = new System.IO.Ports.SerialPort(components);
port.PortName = Comune.numePort;
port.BaudRate = Comune.bRate;
port.DtrEnable = true;
port.ReadTimeout = 5000;
port.WriteTimeout = 500;
Daca portul nu este deschis se deschide s, i se pornes,te un fir de execut, ie paralela
pentru a citi ıncontinuu datele de la senzori:
if (!port.IsOpen)
port.Open();
readThread = new Thread(new ThreadStart(this.Read));
readThread.Start();
this.muncitor.RunWorkerAsync();
Evenimentul de mai sus apeleaza o funct, ie ”Read” ın care sunt tratate except, iile
referitoare la datele primite s, i ca care trimite ca parametru, daca totul este ın regula,
funct, iei ”SetText” de mai jos ın care se realizeaza urmatoarele operat, ii:
• afis,area datelor ın format numeric ın richtextbox ;
Chapter 4. Rezultate s,i evaluare experimentala 42
• separarea datelor ın variabile de format corespunzator s, i atribuirea lor variabilelor
din clasa DateDeLaSenzori pentru a putea fi accesate ın toate ferestrele progra-
mului;
• atribuirea valorilor unghiurilor scrollbar -urilor 31 pentru realizarea animat, iei care
imita mis,carile senzorilor;
• efectuarea calculelor filtrelor Kalman s, i atribuirea rezultatelor variabilelor din clasa
DateDeLaSenzori;
private void SetText(string text)
this.richTextBox1.Text += text;...
DateDeLaSenzori.x acc = inturi[0];...
tX.Value = -Convert.ToInt32(Convert.ToDouble(separate[7]));
textBox5.Text = Convert.ToString(tX.Value);...
Rezultatele acestei metode se pot vedea ın imaginea de mai jos:
Figura 4.7: Datele de la senzori ın format numeric
28 Animat, ia care imita mis,carile senzorilor
Figura 4.8: Animat,ia care imita mis,carile senzorilor
Chapter 4. Rezultate s,i evaluare experimentala 43
Pentru determinarea unghiurilor pe care platforma le face fat, a de pozit, ia
init, iala au fost folosite urmataorele formule:
roll = (atan2(-y acc f, z acc f)*180.0)/M PI;
pitch = (atan2(x acc f, sqrt(y acc f*y acc f + z acc f*z acc f))*180.0)/M PI;
yaw = ((3.3/32768.0)*z g f-(3.3/32768.0)*z g f/0.007)/2;
Aceste unghiuri sunt calculate pe placa Arduino s, i transmise catre calculator
pentru a fi citite. Funct, ia atan2 folosita pentru determinarea primelor doua unghiuri
difera de atan prin faptul ca ofera unghiuri ıntre ±180 fat, a de ±90. Pentru cel de-al
treilea unghi se face doar scalarea datelor citite ın unghiuri.
29 Butonul de reset
Acest buton foloses,te la aducerea saget, ii care imita mis,carea platformei cu
senzori ın pozit, ia init, iala (0,0,0). Acesta este folositor atunci cand erorile de la senzori
se acumuleaza s, i sageata nu mai indica pozit, ia coreca a platformei.
30 Butonul pentru grafice
Cu ajutorul acestui buton se deschite fereastra de mai jos cu ajutorul careia
se poate selecta axa accelerometrului sau giroscopului pentru care se dores,te sa se vizu-
alizeze graficul.
Figura 4.9: Fereastra pentru selectarea axei unuia dintre cei doi senzori
Chapter 4. Rezultate s,i evaluare experimentala 44
31 Scrollbar-urile care arata unghiurile saget, ii
Cu ajutorul acestor scrollbar -uri se pot vedea unghiurile facute de platforma cu
senzori fat, a de pozit, ia init, iala. Cu ajutorul lor se pot chiar modifica unghiurile, dar daca
aplicat, ia este conectata la senzori aces,tia vor modifica ınapoi valoarea scrollbar -urilor s, i
deci, acest lucru este posibil numai atunci cand aplicat, ia nu este conectata la senzori.
32 Textbox -uri care arata valaorea numerica a unghiurilor saget, ii
Pentru o mai buna vizualizare a datelor de la senzori s, i a mis,carii platformei
(ın unghiuri) se realizeaza s, i aceasta afis,are numerica separata a unghiurilor de mis,care
ale platformei.
4.6 Determinarea deplasarii
Pentru determinarea deplasarii s, i reprezentarea acesteia ın richtextbox -ul prin-
cipal s-a ales urmatoarea metoda: datorita modului prin care accelerometrul ADXL345
determina accelerat, ia, senzorii vor fi pozit, ionat, i pe varful piciorului pentru a determina
accelerat, iile din zona respectiva, o alta metoda(pozit, ionarea senzorilor ın alta zona)
facand determinarea corecta a mis,carii aproape imposibila. Astfel, se vor determina
numarul de pas, i pe care cel care are senzorii asupra sa ıi face.
Cunoscand numarul de pas, i facut, i, lungimea pasului celui care are senzorii
asupra sa, dimensiunile zonei(camerei) ın care se face ”supravegherea” mis,carii, punctul
de plecare(referint,a) s, i direct, ia init, iala se poate determina cat s, i ın ce direct, ie s-a realizat
deplasarea.
Elementele din interfat, a folosite pentru realizarea obiectivului propus sunt
urmatoarele:
33 Direct, ia init, iala
Dupa cum implica s, i numele, din acest combobox se selecteaza direct, ia din care
se pornes,te. Aceasta informat, ie este esent, iala pentru a determina ımpreuna cu referint,a
de unde s, i cum se pornes,te determinarea mis,carii. Pozit, iile init, iale posibile sunt:
• ”jos-sus” adica, senzorii sunt ındreptat, i ın sus(pe desenul din interfat, a) s, i depla-
sarea se face dintr-o pozit, ie de jos ınspre una de sus;
• ”sus-jos” adica, senzorii sunt ındreptat, i ın jos(pe desenul din interfat, a) s, i deplasa-
rea se face dintr-o pozit, ie de sus ınspre una de jos;
• ”stanga-dreapta” adica, senzorii sunt ındreptat, i ınspre dreapta(pe desenul din
interfat, a) s, i deplasarea se face dintr-o pozit, ie din stanga ınspre una din dreapta;
Chapter 4. Rezultate s,i evaluare experimentala 45
• ”dreapta-stanga” adica, senzorii sunt ındreptat, i ınspre stanga(pe desenul din interfat, a)
s, i deplasarea se face dintr-o pozit, ie din dreapta ınspre una din stanga;
34 Direct, ia curenta
Atunci cand platforma cu senzori face o rotat, ie de 90 de grade spre stanga
sau spre dreapta se schimba direct, ia curenta de deplasare. De exemplu, daca init, ial
platforma este ındreptata ın direct, ia ”jos-sus” s, i platforma se ındreapta 90 de grade spre
dreapta, direct, ia se schimba ın ”stanga-dreapta”. Direct, ia curenta curenta de depalsare
este astfel, afis,ata ın acest textbox.
35, 36, 37 Puncte care delimiteaza desenul ın richtextbox -ul principal
Pentru scalarea dimensiunilor camerei ın care se realizeaza determinarea de-
plasarii se folosesc aceste trei puncte din richtextbox -ul principal astfel:
• primul punct 35 este reprezentat de catre cel mai de sus s, i cel mai din stanga
punct din care ıncepe desenul camerei/cladirii;
• cel de-al doilea punct 36 din care se ia doar coordonata X, este reprezentat de catre
cel mai de sus s, i cel mai din dreapta punct din care ıncepe desenul camerei/cladirii;
• cel de-al treilea punct 37 din care se ia doar coordonata Y, este reprezentat de catre
cel mai de jos s, i cel mai din stanga punct din care ıncepe desenul camerei/cladirii;
Cunoscand dimensiunile camerei se poate determina numarul de pas, i care pot
fi facut, i ın aceasta. Impart, ind numarul de pas, i pentru fiecare axa la valorile respective
ale operat, iilor de scadere:
• 36 - valoarea X a lui 35;
• 37 - valoarea Y a lui 35;
se determina numarul de pixeli care reprezinta un pas pe richtextbox -ul principal. Astfel,
atunci cand subiectul s-a mis,cat un pas pe imaginea care reprezinta structura camerei
va amparea un punct care va fi noua coordonata a subiectului.
38 s, i 39 Numarul de pas, i
In aceste textbox -uri se vor introduce de catre utilizator ınainte de conectarea
la senzori dimensiunea camerei pe axele X, respectiv Y ın numarul de pas, i ce pot fi
facut, i pe cele doua axe. Este de notat ca lungimea medie a unui pas este de 90cm, ceea
ce face ca de exemplu, ıntr-o camera de 10m × 10m sa poata fi facut, i aproximativ 11
pas, i pe fiecare axa.
Chapter 4. Rezultate s,i evaluare experimentala 46
40 Numarul de pas, i facut, i
In acest textbox se va arata numarul de pas, i facut, i ın total, ın orice direct, ie de
catre cel care are senzorii asupra sa.
41 Pozit, ia curenta
In aceste textbox -uri vor fi reprezentate coordonatele pozit, iei curente ın care
se afla cel care are asupra sa senzorii.
Algoritm pentru detectarea s, i reprezentarea mis,carii Pentru a detecta realizarea unui
pas s, i reprezentarea deplasarii ın interfat, a s-a utilizat urmatorul algoritm:
daca yaw ≥ 90
schimba direct, ia spre dreapta;
deplasare = 0;
yaw = 0;
daca yaw ≤ -90
schimba direct, ia spre stanga;
deplasare = 0;
yaw = 0;
daca Y ACC > 90
pas detectat = true;
daca pas detectat == true && Y ACC > 40
contor++; daca pas detectat == true && Y ACC < 40 && contor < 3
pasi++;
pas detectat = false;
contor = 0;
daca pasi > pasi facuti
deseneaza punct;
pasi facuti++;
Capitolul 5
Concluzii
47
Bibliografie
[1] Arduino, ultima accesare: 24.06.2013. . URL http://arduino.cc/en/Main/
arduinoBoardUno.
[2] Itg-3200 datasheet. .
[3] Conectarea adxl345-arduino, ultima accesare: 24.06.2013. . URL http://
codeyoung.blogspot.ro/2009/11/adxl345-accelerometer-breakout-board.
html.
[4] Volker Kempe. Inertial MEMS principles and practice, cambridge university press.
2011.
[5] Imagine arduino uno, ultima accesare: 20.06.2013. . URL http://www.
liquidware.com/shop/show/ARD-UNO.
[6] Imagine adxl345, ultima accesare: 20.06.2013. . URL http://mbed.org/cookbook/
ADXL345-Accelerometer.
[7] Mohamed Gad el Hak. The MEMS Handbook, crc - press. 2002.
[8] Simon Haykin. Adaptive filter theory, prentice hall. 1996.
[9] Osama O. Awadelkarim Julian W. Gardner, Vijay K. Varadan. Microsensors,
MEMS, and Smart Devices, john wiley & sons. 2001.
[10] John L. Champion Robert Osiander, M. Ann Garrison Darrin. MEMS and Micros-
tructures in Aerospace Applications, crc press - taylor & francis group. 2006.
[11] Atmega328 datasheet. .
[12] Real time location systems, ultima accesare: 24.06.2013. 10.2009.
[13] Implementarea filtrului kalman, ultima accesare: 24.06.2013.
. URL http://interactive-matter.eu/blog/2009/12/18/
filtering-sensor-data-with-a-kalman-filter/.
48
Bibliografie 49
[14] Animat, ie 3d, ultima accesare: 24.06.2013. . URL http://www.vcskicks.com/3d$_
$gdiplus$_$drawing.php.
[15] Imagine itg-3200, ultima accesare: 20.06.2013. . URL https://www.sparkfun.
com/products/9801.