Sistem de localizare în clădiri folosind senzori inert...

54
Universitatea Politehnica din Bucures , ti FACULTATEA DE AUTOMATIC ˘ AS , I CALCUALTOARE DEPARTAMENTUL DE AUTOMATIC ˘ AS , I INGINERIA SISTEMELOR Lucrare de licent , ˘ a Sistem de localizare ˆ ın cl˘ adiri folosind senzori inert , iali Absolvent: Andrei Dobrin Coordonator: Prof. Dr. Ing. Sergiu Iliescu Consultant , i Ing. Catalin Vasile S , l. Dr. Ing. Grigore Stamatescu

Transcript of Sistem de localizare în clădiri folosind senzori inert...

Page 1: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 2: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 3: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 4: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 5: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 6: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 7: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 8: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 9: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 10: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 11: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 12: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 13: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 14: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 15: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 16: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 17: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 18: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 19: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 20: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 21: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 22: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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 .

Page 23: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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;

Page 24: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 25: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 26: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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;

Page 27: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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;

Page 28: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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;

Page 29: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 30: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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;

Page 31: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 32: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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];

Page 33: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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:

Page 34: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 35: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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;

Page 36: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 37: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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).

Page 38: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 39: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

Chapter 4. Rezultate s,i evaluare experimentala 34

Figura 4.3: Rezultatele filtrarii pentru giroscop

Page 40: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

Ch

ap

ter4.

Rezu

ltate

s, ieva

luare

experimen

tala

35

Figura 4.4: Interfat,a programului pentru vizualizarea datelor

Page 41: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 42: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 43: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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;

Page 44: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 45: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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).

Page 46: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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 ;

Page 47: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 48: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 49: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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;

Page 50: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.

Page 51: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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++;

Page 52: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

Capitolul 5

Concluzii

47

Page 53: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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

Page 54: Sistem de localizare în clădiri folosind senzori inert ...acse.pub.ro/wp-content/uploads/2013/07/Andrei_Dobrin_341B1.pdf · ponente electrice s,i mecanice cu o lungime caracteristic

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.