Sunteți pe pagina 1din 89

NECLASIFICAT

ACADEMIA TEHNIC MILITAR BUCURETI


FACULTATEA DE SISTEME ELECTRONICE I INFORMATICE
MILITARE
PROGRAMUL DE STUDII TRANSMISIUNI

PROIECT DE DIPLOM
Sistem robotizat comandat de la distan

Coordonator tiinific:
Lt.col. conf. univ. dr. ing. POPESCU FLORIN

Realizator proiect:
Sd. sg. maj. BURICEA DANIEL
Conine ______ file
Inventariat sub nr. _______
Poziia din indicator: ____
Termen de pstrare: _______

BUCURETI
2016

NECLASIFICAT

NECLASIFICAT
2 din 89

NECLASIFICAT

NECLASIFICAT
3 din 89

NECLASIFICAT

Cuprins
1. Introducere ...................................................................................................... 8
1.1. Conceptul Om-Robot ............................................................................ 8
1.2. Transpunerea limbajului natural ............................................................... 9
1.3. Morfemul robot ..................................................................................... 9
2. Aspecte teoretice privind sistemele robotizate telecomandate ..................... 10
2.1. Generaliti.............................................................................................. 10
2.2. Arduino punte de legtur ntre virtual i real ..................................... 11
2.2.1. Ce este Arduino? .............................................................................. 11
2.2.2. De ce Arduino? ................................................................................. 12
2.2.3. Convertorul analog-numeric al platformei Arduino ........................ 12
2.2.3.1. Lumea Analogic ....................................................................... 12
2.2.3.2. Ce este un ADC? ........................................................................ 13
2.2.3.3. Raportul valoare post ADC tensiune ...................................... 13
3. Schema bloc a sistemului robotizat telecomandat ........................................ 14
4. Scheme electrice de principiu ....................................................................... 15
4.1. Centrul Tx ............................................................................................... 15
4.1.1. Modulul LCD keypad ....................................................................... 15
4.1.2. Mnua cu senzori flex ..................................................................... 19
4.1.3. Modulul Tx principal de achiziie i gestionare date ....................... 20
4.2. Centrul RX .............................................................................................. 23
4.2.1. Platforma mobil .............................................................................. 23
4.2.2. Modulul Rx principal ....................................................................... 24
5. Studiu de caz ................................................................................................. 26
5.1. Banda ISM .............................................................................................. 27
5.2. Modulul nRF24L01 ................................................................................ 27
5.2.1. Configuraia pinilor .......................................................................... 29
5.2.2. Modurile Operaionale ..................................................................... 30
5.2.2.1. PUTERE REDUS ................................................................ 30
5.2.2.2. STANDBY ............................................................................. 30
NECLASIFICAT
4 din 89

NECLASIFICAT

5.2.2.3. EMISIE ...................................................................................... 31


5.2.2.4. RECEPIE ................................................................................. 31
5.3. Tehnologia Bluetooth ............................................................................. 32
5.3.1. Introducere ........................................................................................ 32
5.3.2. Securitatea informaiei ..................................................................... 37
5.3.2.1. Autorizaie vs autentificare ........................................................ 39
5.3.3. Modulul Bluetooth HC-06................................................................ 42
5.3.4. Configuraiile pinilor ........................................................................ 43
6. Prezentare instruciuni i biblioteci ............................................................... 45
6.1. Arduino ................................................................................................... 45
6.1.1. Centrul Tx ......................................................................................... 48
6.1.1.1. Mn Animatronic Tx .............................................................. 48
6.1.1.2. Modulul LCD ............................................................................. 54
6.1.2. Centrul Rx ........................................................................................ 55
6.1.2.1. Mn Animatronic Rx .............................................................. 55
6.1.2.2. Platform Mobil ....................................................................... 60
6.2. Processing ............................................................................................... 63
6.2.1. Aplicaia AnimatedHand.pde ........................................................... 64
6.2.1.1. Rezultat final .............................................................................. 65
6.2.1.2. Descrierea codului, fr comunicaie serial activ................... 66
6.2.2. Comunicaia cu microcontrolerul Atmega328P ............................... 69
6.3. QPython v3.0 .......................................................................................... 70
6.4. Calcularea timpilor de rspuns teoretici n cazul nRF24L01 ................. 73
6.5. Calcularea razei maxime de aciune n condiii de laborator ................. 74
7. Studiu experimental ...................................................................................... 75
7.1. Calcularea timpilor de rspuns practici n cazul nRF24L01, n raport cu
raza de aciune .................................................................................................. 76
8. Concluzii ....................................................................................................... 80
8.1. n continuare ....................................................................................... 82
9. Anexe ............................................................................................................ 83
NECLASIFICAT
5 din 89

NECLASIFICAT

9.1. Tabel timpi tranziie i sincronizare modul nRF24L01.......................... 83


9.2. Profiluri n tehnologia Bluetooth ............................................................ 84
9.3. Comenzi AT modul HC-06 .................................................................... 85
9.4. Regitrii modulului nRF24L01 utilizai n programare .......................... 86
9.5. Extras din biblioteca Servo ................................................................. 88
10.

Bibliografie ................................................................................................ 89

NECLASIFICAT
6 din 89

NECLASIFICAT

Let the future tell the truth and evaluate each one according to his work and
accomplishments. The present is theirs; the future, for which I have really
worked, is mine.
Nikola Tesla

Fie ca viitorul s releve adevrul i s evalueze pe fiecare n parte,


bazndu-se pe considerente meritorii. Prezentul e al lor; viitorul, pentru care
lucrez din greu, e al meu. Citatul aparine croatului de origine istro-romn,
Nikola Tesla (Nicolae Teslea) (1856 1943), om de tiin, inventator n
domeniul electrotehnicii i radiotehnicii. Printre marile sale realizri se numr
descoperirea cmpului magnetic nvrtitor, a curentului electric alternativ
bifazat, realizarea primelor motoare asincrone bifazate etc.
Lumea evolueaz rapid, n special n domeniul ingineriei electronice.
Rmne de stabilit dac procesul de evoluie este unul favorabil rasei umane i
planetei, sau dimpotriv, datorit capitalismului conservatorist, neo-liberal, a
dorinei marilor puteri de a impune un monopol la nivel mondial, prin rzboaie
economice, vom uita cu desvrire s rezonm cu legile naturii.
Realizarea acestui proiect are ca scop salvarea de viei omeneti, n
special n teatrele de operaii, prin nlocuirea resursei umane cu maina. Aceast
operaiune, pe lng scopul su principal, poate veni cu mbuntiri majore,
precum eficientizarea timpului de lucru, identificarea potenialelor pericole i
prevenirea lor etc.

NECLASIFICAT
7 din 89

NECLASIFICAT

1. Introducere
1.1. Conceptul Om-Robot
Pe msur ce roboii devin tot mai capabili de a executa misiuni
complexe, crete cererea angajrii unor oameni, chiar i neantrenai, pentru a-i
controla. Astfel, nevoia transpunerii aciunilor naturale n instruciuni binare, d
natere unei importante arii de cercetare. Trebuie avut n vedere analizarea
limbajului natural i corelarea acestuia cu aciuni i structuri de control ce pot fi
rapid implementate ntr-un sistem robotizat.
Dac n trecutul recent doar ne imaginam c personajele principale din
Robocop, Iron Man, Terminator sau alte filme de asemntoare, ar face o treab
mult mai bun dac ntr-adevr ar exista n afara acelui ecran, astzi lucrurile nu
mai par att de SF. Omul, mai ales cel modern, tinde s obin maximul de
plcere cu minimul de efort i, cel puin n domeniul tehnologic, acest lucru se
poate observa la nivel mondial: au fost nlocuite coasa cu maina de tuns iarba,
mtura cu aspiratorul, btrna lingur de lemn cu mixerul etc.
Lucrurile, n domeniul roboticii, merg chiar mai departe. Momentan este
n dezvoltare o tehnologie numit Machine Learning, prin care roboii (de
buctrie, de curse, umanoizi etc), nva din experiena acumulat de-a lungul
vieii. Conceptul are la baz diverse tehnici, printre care utilizarea regresiei
liniare, regresiei logistice, reelelor neuronale etc, n scopul obinerii ct mai
rapide a convergenei. Acest lucru presupune ca utilizatorul s nvee robotul
anumite aciuni, iar ulterior, din experiena acumulat, acesta s rezolve singur
alte aciuni similare i din ce n ce mai complexe.
Robotica evolueaz ntr-o direcie care creeaz att satisfacii, ct i
diverse critici. Din punctul meu de vedere, faptul c ne putem crea ajutoare n
gospodrie i n viaa de zi cu zi n general, reprezint un imens avantaj
tehnologic pe care ar trebui s l utilizm frecvent. Dac nu vom mai fi nevoii
s ntreprindem diverse aciuni care fac parte din rutina zilnic i ne vom putea
concentra mai mult pe studiu, exist mult mai mari anse de evoluie. Evoluie
sun destul de vag acest termen. Din punct de vedere tehnologic suntem destul
de evoluai, comparativ cu ceea ce ne nva istoria. Dar totui, levitaia,
teleportarea, telekinezia, cltoria n timp, crearea vieii umane n laborator etc
sunt concepte pe care, la momentul actual, doar ni le imaginm.

NECLASIFICAT
8 din 89

NECLASIFICAT

1.2. Transpunerea limbajului natural


Procesarea limbajului natural (NLP) este o ramur care combin tiina
calculatoarelor i inteligena artificial, orientat fiind pe interaciunile dintre
main i limbajul natural al omului.
Algoritmii NLP moderni utilizeaz conceptul Machine Learning, orientai
n special pe rezultate statistice. Machine Learning este o tehnologie diferit de
altele similare prin denumire, n sensul c implementrile anterioare de
procesare a limbajului natural implicau scrierea direct a codului asupra unei
baze largi de date, pe cnd algoritmii utilizai n Machine Learning nu utilizeaz
doar datele iniiale i proceseaz n baza lor, ci creeaz alte date noi pe baza
celor introduse iniial.
Obiectivele majore ale NLP sunt:
Generarea ideilor principale din articole
o Producerea clar, logic, a unui rezumat dintr-un text
introdus
Relaia de coreferin
o Are un rol important n extragerea de informaii. Sistemul
folosete rezoluia anaforei i const n evidenierea
cuvintelor dintr-un text care sunt n legtur cu un alt cuvnt
de referin din acelai text.
Analiza discursului
o Identific structura unui discurs sau clasific ideile formulate
n diverse categorii: probleme de coninut, ntrebri de tipul
da-nu etc
Segmentare morfologic
o Separ cuvintele n morfeme individuale i identific o clas
pentru fiecare morfem.

1.3. Morfemul robot


Care este primul lucru la care ne gndim cnd vine vorba de roboi?
Pentru majoritatea oamenilor, probabil, morfemul reprezint o main care imit
ct mai real omul, precum protagonistul filmului Terminator. Dei imaginaia
uman este foarte bogat, n lumea real nc nu s-a realizat un sistem suficient
de performant, nct s se apropie ca nivel de complexitate cu cel al fiinei
umane. Cu toate acestea, o echip din cadrul Laboratorului de Cercetare n
NECLASIFICAT
9 din 89

NECLASIFICAT

Domeniul Inteligenei Artificiale de la MIT (Massachusetts Institute of


Technology) lucreaz continuu pentru a crea roboi umanoizi.
Roboii ntlnii n lumea real sunt programai s execute aciuni
considerate prea periculoase, plictisitoare sau poate njositoare pentru om.
Aceti roboi sunt prezeni n domeniul auto, medical, aeronautic etc, alii
exploreaz zone n care omul nu a ajuns nc, cum e cazul roboilor exploratori
subacvatici sau pe suprafaa planetei Marte, sau alii pot fi utilizai ca simple
jucrii care fac ziua de Crciun mai frumoas pentru oamenii de toate vrstele.
Sunt cteva mii de astfel de roboi care lucreaz pentru noi, n prezent.
i totuice e un robot?
Paradoxal, nu este stabilit o definiie clar pentru un robot, ns exist un
set de caracteristici pe care o main ar trebui s le dein, pentru a putea fi
numit robot:
Sim: Un robot trebuie s fie capabil s perceap mediul
nconjurtor din vecintatea sa ntr-un mod asemntor omului.
Poate face acest lucru dac beneficiaz de diferii senzori: de
lumin (ochi), tactili i de presiune (piele), chimici (nas), sonare
(urechi) i senzori de gust (limb)
Micare: Un robot trebuie s se deplaseze n mediul pentru care a
fost conceput. Nu conteaz modalitatea de deplasare.
Energie: Un robot trebuie s fie capabil de a se autoncrca. Sursa
de alimentare poate s fie de la soare, din acumulatori etc.
Inteligen: Un robot are nevoie s dein o anumit capacitate
intelectual. n aceast sfer conteaz n mod expres abilitile
unui programator.

2. Aspecte teoretice privind sistemele


robotizate telecomandate
2.1. Generaliti
Robotul, n orice form s-ar gsi, este un produs al imaginaiei umane
combinat cu mult studiu. n mod similar, omul a creat multe astfel de produse,
printre care i sisteme de amplificare vocal. Pentru a utiliza un sistem de
amplificare vocal, omul are nevoie de traductoare acustice. Rolul traductorului
NECLASIFICAT
10 din 89

NECLASIFICAT

acustic este de a transforma semnalul vocal n semnal electric, care ulterior va fi


procesat i trimis ctre difuzoare. Pentru a exista o interaciune om-robot, este
nevoie, de asemenea, de un anumit traductor. n vreme ce creierul uman
utilizeaz diverse tipuri de semnale auditive, vizuale, cognitive etc, pentru a
interaciona cu lumea nconjurtoare, creierul robotului, fiind reprezentat de cel
puin un microcontroler, utilizeaz semnale digitale. Prin urmare, pentru a exista
o interaciune ntre aceste dou medii, real i virtual, se utilizeaz convertoare
analog-numerice (ADC) alturi de o multitudine de senzori specializai.

2.2. Arduino punte de legtur ntre virtual i


real
2.2.1. Ce este Arduino?
Arduino este o platform de dezvoltare de tip open-source, bazat pe
utilizarea accesibil a mediilor hardware i software. Plcile Arduino sunt
capabile s citeasc valori de intrare precum intensitatea luminoas, verificarea
strii unui buton, un mesaj pe o reea de socializare, i, n urma procesrii lor, s
ntoarc diverse variabile de ieire, cum ar fi activarea unui motor, aprinderea
unui LED, publicarea online a unui document etc. Utilizatorul poate interaciona
cu placa Arduino introducnd ntr-un mediu de programare specializat un set de
instruciuni, trimindu-le ulterior serial, prin intermediul unui cablu USB, spre
microcontrolerul plcii.
De-a lungul timpului, Arduino a fost creierul a mii de proiecte, de la
cele de uz zilnic, pn la instrumente complexe tiinifice. n mediul online i-au
artat interesul i mulumirea foarte muli pasionai, studeni, programatori
profesioniti, oferind rspunsuri celor mai puin experimentai sau chiar
neiniiai n arta programrii sau a roboticii.
Arduino a luat natere la Ivrea Interaction Design Institute ca un
dispozitiv util pentru programare rapid, ce putea fi utilizat de studeni fr o
pregtire prealabil n electronic sau programare. De ndat ce a comunitatea a
crescut, plcile Arduino au suferit un proces de modificare i adaptare la nevoi i
provocri noi, ajungnd s dein produse de la cele mai simple, cu procesoare
pe 8 bii, pn la produse utilizate n imprimri 3D sau medii embedded. Toate
produsele Arduino, att cele hardware, ct i software sunt cu licen liber i
pot fi utilizate de ctre oricine dorete.

NECLASIFICAT
11 din 89

NECLASIFICAT

2.2.2. De ce Arduino?
Datorit interaciunii simple a utilizatorului cu produsele Arduino, acestea
sunt utilizate n mii de proiecte i aplicaii. Softul Arduino este uor utilizabil de
ctre neiniiai, dar totui suficient de flexibil pentru utilizatorii experimentai.
Acesta ruleaz sub Mac, Linux i Windows. Att profesorii, ct i studenii,
apeleaz la Arduino pentru a realiza instrumente tiinifice la costuri reduse,
pentru a demonstra principii din fizic sau chimie, sau pentru a intra n lumea
roboticii. Designerii i arhitecii folosesc produsele Arduino pentru a construi
prototipuri interactive, muzicienii i artitii le folosesc pentru a experimenta noi
instrumente muzicale. Arduino este un dispozitiv cheie n a nva lucruri noi.
Oricine este interesat n a iei din zona de confort poate ncepe s utilizeze
Arduino, respectnd instruciunile kit-ului de instalare sau distribuind idei n
mediul online, alturi de ceilali membri ai comunitii Arduino.
Microcontrolerul de pe plcile Arduino este din gama AVR i aparine
companiei Atmel. Pe pia sunt multe tipuri de microcontrolere care ar putea fi
utilizate pentru interaciunea cu mediul nconjurtor. Cel mai rezonant nume, pe
lng Arduino este PIC, microcontrolerele companiei Microchip. Motivul pentru
care am optat pentru Arduino este experiena mai mare de lucru cu aceast gam
de microcontrolere.

2.2.3. Convertorul analog-numeric al platformei


Arduino
2.2.3.1. Lumea Analogic
Microcontrolerele sunt capabile s detecteze semnale: Este apsat
butonul? Aceste semnale sunt digitale. Cnd un microcontroler este alimentat
n tehnologie TTL, la 5Vcc, interpreteaz 0V ca fiind 0 logic i 5V ca fiind 1
logic. Lumea nu e chiar att de simplu construit, n sensul c nu e totul numai
alb i negru. Exist i nuane de gri. Cum ar fi dac semnalul ar fi 3.14V? Acest
nivel de tensiune este considerat 0 sau 1? Exist adesea nevoia de a msura
niveluri de tensiune intermediare. Acestea se exprim prin semnale analogice.
Un senzor analogic alimentat la 5Vcc poate s aib la ieire niveluri de tensiune
cuprinse ntre 0.00V i 5.00V. Din fericire, aproape toate microcontrolerele
dein un dispozitiv integrat care le permite s transforme tensiunea de alimentare
n valori utilizate n luarea unor decizii.

NECLASIFICAT
12 din 89

NECLASIFICAT

2.2.3.2. Ce este un ADC?


Un convertor analog numeric (ADC) este un dispozitiv care transform
tensiunea analogic aplicat pe un pin n semnale numerice. Nu orice pin al
microcontrolerului are abilitatea de a transforma un semnal analogic ntr-unul
digital. Pe plcile Arduino, pinii analogici au nscris litera A n dreptul
indexului (A0 A5). ADC-urile pot varia destul de mult n funcie de
productorul microcontrolerului. ADC-ul utilizat de Arduino este pe 10 bii,
ceea ce reprezint 1024 de niveluri discrete de tensiune pe care le poate detecta.
Alte microcontrolere au ADC pe 8 bii, altele pe 16 bii etc.
Funcionarea unui ADC este complex i variaz de la un ADC la altul.
Una din cele mai comune tehnici folosete tensiunea analogic pentru a ncrca
un condensator intern i apoi microcontrolerul va msura timpul de care are
nevoie condensatorul pentru a se descrca pe un rezistor intern. Cu alte cuvinte,
microcontrolerul numr ciclurile de ceas trecute nainte de a se fi descrcat
condensatorul. Numrul acestor cicluri este cel returnat n momentul n care
conversia a fost finalizat.

2.2.3.3. Raportul valoare post ADC tensiune


ADC ntoarce o valoare raportat. Asta presupune c ADC consider
tensiunea de alimentare (5Vcc n cazul tehnologiei TTL) ca fiind 1023, iar orice
nivel de tensiune sub cel maxim va fi raportat la cel maxim.


=

(2.2.3.3.1)

Dac tensiunea analogic introdus ntr-un pin analogic este 3.14V,


valoarea citit de ADC se determin din ecuaia:
1023

=
5
3.14
=

1023 3.14
= 642
5

Prin urmare, la o tensiune analogic de intrare de 3.14V, ADC va citi


valoarea 642.

NECLASIFICAT
13 din 89

NECLASIFICAT

3. Schema bloc a sistemului robotizat telecomandat

Fig. 3.1 Schema bloc a Sistemului robotizat telecomandat

NECLASIFICAT
14 din 89

NECLASIFICAT

4. Scheme electrice de principiu


4.1. Centrul Tx
Centrul Tx este compus din dou componente hardware, o component
software i un smart phone cu SO Android: un modul principal de achiziie i
gestionare a datelor, de conectare serial cu un PC/laptop via USB, un modul
LCD keypad, avnd rolul de monitorizare i trimiterea (serial a) unor comenzi
spre modulul principal pentru a fi emise i o aplicaie Java care comunic printrun port serial cu modulul principal, avnd rol de transmitere suplimentar a unor
date. Procesarea datelor, n cazul ambelor module, se realizeaz cu ajutorul
microcontrolerelor Atmega 328p (controler CMOS pe 8 bii de mic putere,
32KO Flash, 1KO EEPROM, 2KO RAM), integrate n platforme de dezvoltare
Arduino Uno R3.

4.1.1. Modulul LCD keypad


Modulul din fotografie este compus dintr-un LCD 16x2, text alb pe fond
albastru, i un keypad compatibil cu platformele Arduino Uno. Acesta folosete
biblioteca LiquidCrystal.

Fig. 4.1 Modul LCD keypad 16X2

NECLASIFICAT
15 din 89

NECLASIFICAT

Keypad-ul conine comutatoarele denumite SELECT, LEFT, RIGHT, UP,


DOWN, independente de comutatorul RST.
Ajustarea contrastului LCD-ului se realizeaz cu ajutorul unui trimmer de
10k, n colul din stnga-sus al modulului.
Conexiunea pinilor

Fig. 4.2 Schema electric a unui LCD 16X2


Pinii LCD-ului sunt n numr de 16. n simularea efectuat n Proteus apar
doar primii 14 pini, ntruct ultimii doi pini sunt destinai iluminrii fundalului,
caracteristica aceasta fiind predefinit.
Interfaa de tip paralel a LCD-ului descris n simulare conine urmtorii
pini:
1.
2.
3.
4.

VSS pin de alimentare GND


VDD pin de alimentare +5V
VEE pin de control al contrastului
RS Register Select selecteaz doi regitri de memorie n care
pot fi scrise informaii, i anume: registrul de date, care menine

NECLASIFICAT
16 din 89

NECLASIFICAT

informaia afiat pe display sau registrul informaional, accesat de


fiecare dat cnd se schimb informaia ce trebuie afiat
5. RW Read/Write selecteaz modul citire sau scriere
6. E Enable iniiaz scrierea n regitrii de memorie
7. 14. pini de date strile acestor pini sunt echivalente cu biii
scrii n regitri n modul scriere sau citii n modul citire. LCDurile pot fi controlate n dou moduri: pe 4 bii (utiliznd pinii de
date 11 14) sau pe 8 bii. Deoarece afiarea textului pe display se
poate realiza pe 4 bii, este mai comun acest mod de comand.
Modulul LCD keypad utilizeaz comanda pe 4 bii.
Pentru conectarea diferitelor tipuri de dispozitive externe sau pentru
realizarea unor comunicaii seriale, o parte din pinii platformei Arduino (Pinul 0
(Rx), Pinul 1 (Tx), Pinii digitali 2, 3, 11, 12, 13) pot fi utilizai.

Fig. 4.3 Partea superioar a modulului LCD keypad

Fig. 4.4 Partea inferioar a modulului LCD keypad

NECLASIFICAT
17 din 89

NECLASIFICAT

Toate comutatoarele sunt conectate printr-o serie de rezistori, la pinul


analogic A0, diferenierea fcndu-se pe nivele de tensiune, salvnd n acest
mod pinii analogici A1A5 pentru alte aplicaii.

Fig. 4.5 Conectarea mai multor butoane la acelai pin analogic


lui

Nivelele de tensiune aferente fiecrui buton se pot calcula utiliznd legea


Ohm n configuraia divizorului rezistiv de tensiune, astfel:
=

1 + 2

NECLASIFICAT
18 din 89

(4.1.1.1)

NECLASIFICAT

Fig. 4.6 Configuraia standard a unui divizor rezistiv de tensiune


Cnd este apsat comutatorul RIGHT, masa e conectat direct la pinul A0,
prin urmare, tensiunea 0 este:
0 = 0
La apsarea comutatorului UP, tensiunea 0 este:

(4.1.1.2)

220
5 = 0.49
2000 + 220
La apsarea comutatorului DOWN, tensiunea 0 este:

(4.1.1.3)

220 + 470
5 = 1.28
2000 + 220 + 470
La apsarea comutatorului LEFT, tensiunea 0 este:

(4.1.1.4)

220 + 470 + 620


5 = 1.97
2000 + 220 + 470 + 620
La apsarea comutatorului RESET, tensiunea 0 este:

(4.1.1.5)

0 =

0 =

0 =

220 + 470 + 620 + 2000


(4.1.1.6)
5 = 3.11
2000 + 220 + 470 + 620 + 2000
ADC-ul plcii Arduino transform nivelurile de tensiune de mai sus n
valori cuprinse ntre 0 i 1023.
0 =

4.1.2.Mnua cu senzori flex


Destinat pentru a produce informaie, fiecare senzor al mnuii
corespunde unui pin analogic al modulului Tx principal. Senzorii sunt
componente cu rezisten variabil, n funcie de gradul de ndoire. La un grad
de ndoire nul, senzorul are o rezisten nominal de 10kOhmi. Pe msur ce
unghiul de ndoire crete pn la maxim 90, rezistena scade.

NECLASIFICAT
19 din 89

NECLASIFICAT

Fig. 4.7 Mnua cu senzori Flex


Pentru a realiza conexiunea cu platforma Arduino, este necesar un rezistor
de 10kOhmi montat n configuraie de divizor de tensiune, ca n figura de mai
jos:

Fig. 4.8 Pregtirea unui senzor Flex pentru a putea fi conectat la Arduino

4.1.3.Modulul Tx principal de achiziie i gestionare date


Transmisia datelor, wireless, ntre centrele Tx-Rx se realizeaz cu ajutorul
a dou module nRF24L01, 2.4GHz ISM, modulaie GFSK.
Modulul principal colecteaz date din mai multe surse:
De la senzorii Flex din mnu, care sunt conectai la pinii
analogici ai modulului
Prin comunicaie serial, de la modulul LCD keypad
Printr-un port serial de tip COM, de la aplicaia Java
Setul de date de mai sus este transmis la centrul Rx.
Prin recepia datelor achiziionate din mediu de ctre centrul Rx.
Acest set l transmite prin comunicaie serial spre modulul LCD keypad.

NECLASIFICAT
20 din 89

NECLASIFICAT

Schem electric de principiu pentru centrul Tx:

Fig. 4.9 Schema electric a MCU_Tx1

NECLASIFICAT
21 din 89

NECLASIFICAT

Fig. 4.10 Schema electric a MCU_Tx2

NECLASIFICAT
22 din 89

NECLASIFICAT

4.2. Centrul Rx
Centrul Rx cuprinde 2 componente: o platform mobil i un bra animatronic
cu structur antropomorfic conectat modulului Rx principal.

4.2.1. Platforma mobil

Fig.4.11 Schema electric a MCU_Rx2


Platforma mobil este compus dintr-un controler de tip Arduino Mini, o
surs de alimentare, dou motoare de curent continuu, un modul cu punte H, un
tranzistor NPN de medie putere de tip 2N2222, un rezistor de 1kOhm, i un
modul Bluetooth HC-06. Comunicaia ntre modulul Bluetooth i controler este
asigurat serial, iar comunicaia ntre controlerul platformei mobile i
controlerul centrului RX este de tip I2C.
Arduino Mini 5V, 16MHz, este utilizat datorit spaiului de lucru restrns,
dar i faptului c este singura alternativ a platformei Arduino Uno R3, care s i
respecte configuraiile pinilor ntocmai.
NECLASIFICAT
23 din 89

NECLASIFICAT

Sursa de alimentare de 15V tensiune n und continu, 2200mAh, este


format prin nserierea a 3 surse de 5V i acelai amperaj. Este utilizat pentru
alimentarea modulului cu punte H.
Motoarele reductoare, de curent continuu, alimentate la 5V prin
intermediul modulului cu punte H, sunt controlate PWM de ctre Arduino Mini
i sunt destinate acionrii individuale a roilor platformei.
Modulul Bluetooth HC-06 face parte din clasa a 2-a a dispozitivelor
Bluetooth, cu o raz de aciune de aproximativ 10m. Transceiverul funcioneaz
n banda 2,4GHz ISM, modulaie GFSK, are o sensibilitate de -80dBm, putere la
emisie de 2dBm. Acesta preia comenzile seriale de la smart phone i le trimite
microcontrolerului.
Tranzistorul 2N2222 este montat n circuit n configuraie de comutator,
asigurnd alimentarea modulului cu punte H doar n momentul n care
controlerul primete comenzi ASCII de la smart phone, mrind astfel eficiena
dispozitivului iar rezistorul de 1kOhm are rol de limitare a curentul din baza
tranzistorului.

4.2.2. Modulul Rx principal


Pri componente: un modul transceiver nRF24L01, descris n capitolul
4.2.1., un senzor de temperatur LM35, 7 servomotoare SG90, fiecare
prezentnd un cuplu de 1.2kg*cm la 4.8Vcc sau 1.6kg*cm la 6Vcc.
n cazul modulului Rx principal, transceiverul preia date, de la modulul
Tx principal, referitoare la modificarea unghiului servomotoarelor i transmite
ctre acesta informaii despre temperatur i nivelul de ncrcare al
acumulatorilor.

NECLASIFICAT
24 din 89

NECLASIFICAT

Fig. 4.12 Schema electric a MCU_Rx1

NECLASIFICAT
25 din 89

NECLASIFICAT

Conectarea servomotoarelor menionate mai sus se poate face direct la


pinii controlerului, ca n figura Fig.4.12, dar n practic se recomand
utilizarea unei surse de alimentare externe pentru borna + a servomotoarelor,
pinii de control i de mas fiind conectai ca n figur. Motivul pentru care se
recomand un astfel de montaj este de a nu se activa pinul de RESET al
controlerului, datorit scderii brute de tensiune sub 5Vcc, ca urmare a
consumului mare de curent a mai multor servomotoare acionate simultan,
innd cont c un singur servomotor consum 150mA.
Senzorul de temperatur LM35 poate fi montat n circuit n dou feluri,
conform foii sale de catalog:
n configuraie de baz, la fel ca n figur, cu pinul de alimentare
conectat la o surs Vcc (4V-20V), pinul negativ conectat la mas.
Astfel, pinul de ieire genereaz
(4.2.2.1)
= 0 + 10/
n montaj diferenial, pinul de alimentare conectat la o surs Vcc
(4V-20V), pinul negativ la mas iar pinul de ieire conectat n serie
cu un rezistor, care ulterior va fi conectat la Vcc. Valoarea
rezistorului este
=

50

(4.2.2.2)

n aceast configuraie,

1500 @ 150
= { 250 @ 25
550 @ 55

(4.2.2.3)

5. Studiu de caz
Se va realiza practic un sistem comandat prin dou tehnologii wireless
care utilizeaz protocoale diferite, opernd n aceeai band ISM 2.4GHz:
Enhanced Shock Burst (modulul nRF24L01) i Bluetooth (modulul HC-06). La
un terminal al sistemului, utilizatorul transmite semnale prin dou ci: fizic,
utiliznd o mnu cu senzori i unele butoane de pe modulul LCD keypad sau
digital, prin intermediul unei aplicaii Java n softul Processing. De asemenea, de
NECLASIFICAT
26 din 89

NECLASIFICAT

la cel de-al doilea terminal sunt recepionate date cu privire la temperatur i


durata de via a acumulatorilor platformei mobile.

5.1. Banda ISM


Pentru a putea folosi o anumit frecven, de obicei au loc negocieri cu
reprezentani abilitai, ulterior avnd loc sesiunea de nregistrare a arhitecturii i
nchirierea benzii respective. Anumite organizaii rspund de spectrul utilizabil,
precum ETSI n Europa, FCC pentru America de Nord etc. Exist, de asemenea,
regulamente care prevd drepturile de alocare a frecvenelor TV, radio, n
domeniul militar etc. Organizaiile anterior menionate au hotrt de comun
acord, datorit cererii crescute de utilizare a spectrului electromagnetic n
diverse domenii, s nfiineze o band neliceniat de frecvene, disponibil n
mod gratuit. Aceast band a primit denumirea ISM (Industrial, tiinific,
Medical) i cuprinde frecvenele din gama 900KHz 2.4GHz. Pentru evitarea
utilizrii abuzive, fiecare ar are propriile standarde i constrngeri de utilizare
a benzii.
n general, modulele care utilizeaz banda 2.4GHz au unele limitri:
putere redus a semnalului, ceea ce conduce la o raz mic de aciune (mai mic
de 150m), viteze de transfer relativ mici, n funcie de protocolul utilizat. n
cazul nRF24L01, care folosete protocolul Enhanced Shock Burst, rata de
transfer prin aer poate fi de 250kbps, 1Mbps sau 2Mbps. La 250kbps, raza de
aciune este cea mai mare, deoarece la aceast rat de transfer, sensibilitatea
receptorului este de -94dBm. La 1Mbps, sensibilitatea este -85dBm, iar la
2Mbps receptorul are o sensibilitate de -82dBm.

5.2. Modulul nRF24L01


Modulul nRF24L01 reprezint un transceiver cu nucleu adaptiv de
selecie a formelor de und nemodulate, adecvat pentru aplicaii wireless de
mic putere. Modulul este proiectat pentru a opera n banda 2.4000 2.525GHz.
Avantajul operrii n aceast band de frecvene, fiind neliceniat, este de la
sine neles. Dezavantajele sunt destul de multe. Dat fiind faptul c este cea mai
utilizat band pentru uz casnic sau afaceri comerciale, se ntmpl adesea s fie
supraaglomerat, dezavantajul major fiind, n astfel de cazuri, puterea
semnalului aproape inexistent pe distane mai mari de 100-150m.
Caracteristica principal a modulului nRF24L01 este dat de funcionarea
pe baza protocolului Shock Burst (Enhanced ShockBurst). Acesta este de
NECLASIFICAT
27 din 89

NECLASIFICAT

nivel legtur de date n cadrul stivei ISO/OSI i se bazeaz pe transmisia,


gestionarea i sincronizarea pachetelor. Ct timp transceiverul emite,
ShockBurst construiete pachetul i sincronizeaz biii pentru emisie. n
modul de recepie, ShockBurst caut constant o adres valid n semnalul
demodulat. Cnd gsete o astfel de adres, proceseaz restul pachetului i l
valideaz prin CRC. Dac pachetul e validat, informaia este mutat ntr-un slot
liber din stiv, pentru prelucrri ulterioare.

Fig. 5.1 Formatul unui pachet n tehnologie Enhanced Shock Burst


Cmpul de preambul
- Dimensiunea: 1 octet
- Secven binar utilizat pentru sincronizarea demodulatorului
receptorului cu fluxul de bii de intrare
Cmpul de adres
- Se stabilete de ctre utilizator un canal unic de comunicaie ntre
emitor i receptor, pentru a nu exista interferene de tip cross-talk
Cmpul de control al pachetului
- Utilizeaz 6 bii pentru stabilirea lungimii cmpului informaional
(000000 pentru lungime nul, iar 100000 pentru 32 de octei), 2 bii
pentru identificarea pachetului, astfel nct s nu fie recepionate
pachete redundante, 1 bit pentru a stabili dac ACK se transmite
automat.
Distana maxim pn la care dou module nRF24L01 pot comunica n
mediu deschis i condiii LOS, cu antena dipol microstrip integrat, este de
aproximativ 100m, dimensiunea unui pachet fiind de 8 octei, iar viteza de
transfer de 250kbps (sensibilitatea receptorului la aceast rat: -94dBm).
Caracteristici ale modulului nRF24L01:
Operare n band ISM 2.4GHz
Transmite semnale modulate de tip GFSK
Putere de emisie programabil: 0, -6, -12 sau -18dBm
NECLASIFICAT
28 din 89

NECLASIFICAT

ACK i retransmisie automat


126 canale de RF
Rat de transfer prin aer de 250kbps, 1Mbps sau 2Mbps
Banda unui canal:
o 1MHz @ 1Mbps
o 2MHz @ 2Mbps
Gam de alimentare: 1.9 3.6 Vcc

5.2.1. Configuraia pinilor

Fig. 5.2 Faa superioar a modulului nRF24L01


Pin 1 GND

Pin 5 SCK (Serial Clock)

Pin 2 VCC

Pin 6 MOSI (Master Out


Slave In)

Pin 3 CE (Chip Enable)


Pin 4 CSN (Chip Select
Not)

Pin 7 MISO (Master In


Slave Out)
Pin 8 IRQ

NECLASIFICAT
29 din 89

NECLASIFICAT

Conectarea cu Arduino:
nRF24L01
Arduino

GND
GND

VCC
3.3V

CE
CSN
SCK MOSI
dgt 9 dgt 10 dgt 13 dgt 11
Tabel 5.1

MISO
dgt 12

IRQ
-

5.2.2. Modurile Operaionale


Modulul nRF24L01 poate fi configurat de ctre utilizator n 4 moduri
operaionale fundamentale: putere redus, standby, emisie, recepie. n aceast
seciune vor fi descrise aceste moduri n detaliu.

5.2.2.1. PUTERE REDUS


Acest mod operaional presupune un consum foarte mic de curent. Toate
valorile disponibile ale regitrilor sunt meninute i interfaa periferic serial
(SPI) este activ, permind modificri ale configuraiilor i ncrcarea sau
descrcarea regitrilor de date.
Pentru ca modulul s intre n acest mod operaional, bitul PWR_UP din
registrul CONFIG trebuie s se gseasc n 0 logic.

5.2.2.2. STANDBY
5.2.2.2.1. STANDBY-1
Setnd bitul PWR_UP din registrul CONFIG n 1 logic, dispozitivul intr
n modul STANDBY-1. Acest mod operaional este utilizat pentru minimiza
consumul mediu de curent n vreme ce intervalele de timp de pornire rmn
mici. n acest mod operaional numai o fraciune din oscilatorul cu cuar este
activ. Tranziia la un mod operaional activ (EMISIE sau RECEPIE) se face
numai dac pinului CE i este schimbat starea n 1 logic. Dac pinul CE va fi
schimbat n 0 logic, dispozitivul intr n modul operaional STANDBY-1 din
orice mod operaional activ s-ar afla n acel moment.
5.2.2.2.2. STANDBY-2
n modul operaional STANDBY-2 este utilizat un consum mai mare de
curent, comparativ cu modul operaional STANDBY-1. Modulul nRF24L01
intr n acest mod operaional dac pinul CE este meninut n 1 logic pe un
emitor principal cu coada FIFO_TX neocupat. Dac un pachet nou este
introdus n stiv, bucla PLL pornete automat iar pachetul este emis dup
intervalul de timp de acomodare al buclei (130s).

NECLASIFICAT
30 din 89

NECLASIFICAT

n ambele moduri STANDBY, valorile regitrilor sunt meninute iar


interfaa periferic serial poate fi activat. Pentru intervalele de timp de pornire
vezi tabelul din Anexa 9.1.

5.2.2.3. EMISIE
Acest mod operaional este unul de tip activ, utilizat pentru transmisia de
pachete. Pentru a intra n acest mod, bitul PWR_UP trebuie setat n 1 logic, bitul
PRIM_RX setat n 0 logic, n coada TX trebuie s existe un pachet informaional
iar pinul CE trebuie meninut n 1 logic pentru cel puin 10 s.
Dispozitivul rmne n modul operaional EMISIE pn la finalizarea
transmisiunii pachetului. Dac CE este n 0 logic, nRF24L01 tranziteaz n
modul standby-1. Dac CE se afl n 1 logic, starea stivei TX determin
urmtoarea aciune. Dac n coad exist informaie, dispozitivul rmne n
modul EMISIE i transmite urmtorul pachet. n cazul n care coada nu conine
pachete, dispozitivul tranziteaz n modul standby-2. Circuitul PLL al
dispozitivului nRF24L01 opereaz n bucl deschis n modul operaional
EMISIE. De menionat este faptul c dispozitivul nu trebuie s se afle n acest
mod operaional mai mult de 4ms.

5.2.2.4. RECEPIE
Ca i n cazul modului operaional EMISIE, modul RECEPIE este unul
activ n care dispozitivul nRF24L01 este utilizat ca receptor. Pentru a se afla n
acest mod, dispozitivul trebuie s aib biii PWR_UP, PRIM_RX i pinul CE n
starea 1 logic.
n modul RECEPIE, receptorul demoduleaz semnalele de pe canal,
trimind constant informaia demodulat nucleului adaptiv de selecie a
formelor de und nemodulate, care va face o verificare a pachetului recepionat.
Dac adresa i CRC-ul sunt valide, informaia este trimis ntr-un loc disponibil
din coada Rx. Dac toate locurile din stiv sunt ocupate, pachetul va fi eliminat.
Dispozitivul nRF24L01 rmne n modul operaional RECEPIE pn
cnd microcontrolerul l configureaz n modul operaional STANDBY-1 sau
PUTERE REDUS.
n modul operaional RECEPIE este disponibil un semnal detector al
puterii recepionate (RPD). Acest tip de semnal se afl n starea 1 logic atunci
cnd un semnal RF mai puternic de -64dBm este detectat n interiorul canalului
de recepie. Semnalul RPD este filtrat nainte de a fi trimis n registrul RPD.
NECLASIFICAT
31 din 89

NECLASIFICAT

Semnalul RF trebuie s ajung nainte cu cel puin 40 s nainte ca semnalul


RPD s fie n 1 logic.
Tabelul 5.2 evideniaz configurarea modurilor operaionale.
Mod
RECEPIE

PWR_UP
1

PRIM_RX
1

EMISIE

EMISIE

STANDBY-2

STANDBY-1

PUTERE
REDUS

CE
1

Starea FIFO
Exist date n
1
FIFO. Vor fi
terse toate.
Exist date n
Min 10s n 1 FIFO. Va fi
logic
ters doar
primul nivel.
Nu exist date
1
n FIFO.
Nu exist
0
schimb de
pachete.
-

Tabel 5.2

5.3. Tehnologia Bluetooth


5.3.1. Introducere
Tehnologia Bluetooth a fost inventat n 1994 de ctre Ericsson.
Compania a nceput ulterior un parteneriat cu diverse alte companii, formnd
Bluetooth Special Interests Group (SIG), pentru a dezvolta tehnologia i a o
aduce unde este astzi. Termenul Bluetooth vine de la un nume de cod utilizat
iniial de SIG pentru proiectul extraordinar ce se va transforma n scurt timp
ntr-o tehnologie utilizat la nivel mondial. Acest termen face referire la un rege
danez din secolul al X-lea, Harold Bluetooth, care a unit Norvegia, Suedia i
Danemarca.
Tehnologia a fost creat pentru a elimina mediile cablate de conectare
dintre dispozitivele electronice mobile sau fixe. Dezavantajele cablului sunt
reprezentate de reducerea mobilitii terminalului i facilitatea defectrii sau
pierderii. Avantajele tehnologiei Bluetooth sunt: complexitate redus, robustee,
cost sczut.

NECLASIFICAT
32 din 89

NECLASIFICAT

Bluetooth este o modalitate de conexiune i de transfer de date wireless


ntre dou terminale, n mod gratuit. Aceasta presupune utilizarea benzii de
frecvene ISM de 2.4GHz, gama frecvenelor de lucru n aceast band fiind
cuprins ntre 2400 i 2483.5MHz, precum i vitez mare de transmisie prin aer
i putere redus la emisie. De asemenea, Bluetooth utilizeaz protocolul
RFCOMM, care se regsete n standardul ETSI TS 07.10. Modulaia utilizat
este GFSK. Distana pn la care are loc transmisia de date este mai mic n
comparaie cu alte tehnologii wireless sau cablate.
Un modul Bluetooth conine pe o plcu de circuit imprimat, din
sticlotextolit, diverse componente, printre care amintim:
Procesor Bluetooth
Anten (sau conector pentru anten extern)
Circuitul de adaptare de impedan al antenei i (dac nu sunt
integrate n Procesorul Bluetooth) un Balun, amplificator de putere
(PA) i amplificator de zgomot mic (LNA).
Orice cristal sau oscilator cu cuar necesar
Componente electronice adiionale, precum: condensatoare de
decuplare, bobine, convertoare DC-DC etc.
Memorie non-volatil (opional): Unele procesoare au nevoie de
astfel de memorie, ntruct este utilizat la reinerea cheii de acces,
a PIN-ului, memorarea adreselor dispozitivelor la care s-a conectat
modulul. Alte procesoare nu au nevoie de memorie non-volatil,
ntruct dein memorie Flash integrat.
Procesorul conine un convertor analog numeric (ADC) care transform
datele introduse de utilizator n semnale numerice, iar antena, de obicei utilizat
att pentru emisie, ct i pentru recepie, asigur interfaa dintre linia de
transmisie a energiei electromagnetice i mediul de propagare. Dac este
utilizat la emisie, antena are rolul de a transforma energia curenilor de nalt
frecven n energia undelor electromagnetice, precum i de a asigura o anumit
selectivitate spaial. Antena, la recepie, transform energia undelor
electromagnetice n energia curenilor de nalt frecven i asigur o recepie
directiv. Fie c este utilizat la emisie, fie c este utilizat la recepie, antena
are i o selectivitate n frecven.

NECLASIFICAT
33 din 89

NECLASIFICAT

Adresa dispozitivului Bluetooth


Fiecare procesor Bluetooth are alocat un numr unic de 48 de bii pentru
adres. Aceast adres deriv din standardul IEEE802 i este mprit n trei
cmpuri:
Cmpul LAP: lower address part, constnd n 24 de bii.
Cmpul UAP: upper address part, constnd n 8 bii
Cmpul NAP: non-significant address part, constnd n 16 bii.

Fig. 5.3 Cmpul de adres Bluetooth


Bluetooth folosete n comunicaii saltul de frecven cu spectru distribuit,
pentru a evita ntreruperile transmisiei de date datorate factorilor externi, precum
i pentru a asigura o securitate mai bun pe timpul transmisiei. De asemenea,
datorit faptului c unele state impun o limitare a spectrului, au fost adugai
algoritmi speciali de salt de frecven acestor state, pentru ca dispozitivele s
poat funciona, chiar dac n regim redus. Acest regim de funcionare este
considerat local, pentru o singur pia.
Regiuni geografice
SUA, Europa i
majoritatea celorlalte
state

Gam de frecvene

Canale RF

2400 2483.5 MHz

f = 2402 + k MHz
k = 0,,78

Tabel 5.3
Ecartul de frecven ntre canale este de 1 MHz. Pentru a fi n
conformitate cu reglementrile interne ale statelor care impun o limitare a
spectrului, exist dou praguri de band n limita inferioar i n cea superioar a
benzii:

NECLASIFICAT
34 din 89

NECLASIFICAT

Prag inferior de
band

Regiuni geografice
SUA, Europa i
majoritatea
celorlalte state

2 MHz

Prag superior de
band

3.5 MHz
Tabel 5.4

Fig. 5.4 Distribuia informaiei pe 79 de canale RF n tehnologie Bluetooth


Pentru a comunica, terminalele nu au nevoie s se afle n vizibilitate
direct, ntruct undele trec prin obiecte i sunt transmise omnidirecional.
Tehnologia Bluetooth asigur comunicaie punct-la-punct sau punct-lamultipunct.

Fig. 5.5 Modele de reele Bluetooth: a) conexiune punct-la-punct; b) picoreea;


c) reea cu dispersie
NECLASIFICAT
35 din 89

NECLASIFICAT

n conexiunea punct-la-multipunct, canalul este mprit ntre mai multe


uniti Bluetooth. Dou sau mai multe uniti care mpart acelai canal formeaz
o picoreea (piconet). O unitate Bluetooth din interiorul picoreelei se comport
ca Master, n timp ce unitile rmase se comport ca Slave. ntr-o picoreea pot
exista maxim 7 uniti de tip Slave. Controlul accesului este realizat de unitatea
de tip Master. Mai multe picoreele cu arii de acoperire suprapuse formeaz o
reea cu dispersie (scatternet). Fiecare picoreea poate avea numai o singur
unitate Bluetooth de tip Master. Cu toate acestea, unitile de tip Slave pot
participa n diferite picoreele ca baze de multiplexare cu diviziune n timp. n
plus, o unitate de tip Master ntr-o picoreea poate servi drept unitate de tip
Slave n alt picoreea. Picoreelele nu vor fi sincronizate n frecven. Fiecare
picoreea va avea propriul canal cu salt de frecven.
Canalul este reprezentat de o secven pseudo-aleatoare de salt, trecnd
prin toate cele 79 de canale RF. Secvena de salt este unic pentru picoreea i
este determinat de adresa dispozitivului Bluetooth de tip Master. Faza n
frecvena de salt este determinat de ceasul intern al unitii de tip Master. Un
canal este divizat n sloturi de timp, iar fiecare slot corespunde unei frecvene de
salt. Salturile consecutive corespund unor frecvene de salt diferite. Rata uzual
de salt n tehnologia Bluetooth este de 1600 salturi/sec. Toate unitile Bluetooth
din interiorul picoreelei sunt sincronizate n timp i n salt canalului respectiv.
Exist un singur standard de comunicaii Bluetooth, astfel nct un
dispozitiv Bluetooth este compatibil cu un altul oriunde n lume.
Protocolul utilizat n banda de baz combin comutaia de pachete cu cea
de circuite. Pentru a exista sigurana recepiei pachetelor n ordinea n care au
fost emise, pot fi rezervate maxim 5 sloturi de memorie pentru depozitare
temporar. Pentru fiecare pachet emis se folosete un semnal de salt diferit.
Canalele de comunicaie pot fi sincrone sau asincrone. Capacitatea unui
canal este practic dimensiunea buffer-ului su. Dac un canal nu are buffer,
capacitatea sa va fi nul. Astfel, mesajele nu pot atepta n canal. Prin urmare un
emitor trebuie s atepte pn cnd receptorul reface mesajul i cele dou ci
de comunicaie sunt sincronizate pentru a avea loc un nou transfer. Cu alte
cuvinte, dac un emitor emite un mesaj nainte ca receptorul s ajung n
modul de refacere a mesajul, emitorul ateapt pn cnd receptorul reface
mesajul. n mod similar, dac receptorul ajunge n modul de refacere a mesajului
nainte ca emitorul s emit un mesaj, receptorul ateapt pn cnd mesajul
NECLASIFICAT
36 din 89

NECLASIFICAT

va fi emis. n acest fel, comunicaia i sincronizarea sunt n strns legtur. Mai


mult, canalele cu capacitate nul sunt cunoscute ca fiind canale sincrone. O linie
telefonic servete drept un bun exemplu de comunicaie sincron, pentru c,
nainte s aib loc o conversaie, trebuie stabilit o conexiune. Dac este vorba
de un canal cu o capacitate nenul, mesajele ateapt n buffer nainte de a fi
refcute la recepie. n acest caz, dac buffer-ul este plin, un emitor ateapt
pn se golete buffer-ul, iar dac buffer-ul nu conine mesaje, un receptor
ateapt pn cnd exist un mesaj disponibil. Acest tip de canale sunt
cunoscute ca fiind asincrone. Un telefon cu robot automat servete drept un bun
exemplu de comunicaie asincron. Ct timp exist spaiu de stocare n memoria
utilizat de robotul telefonic, un apelant (emitor) poate suna i lsa un mesaj.
Pe de alt parte, un receptor poate reface mesajul din memoria receptorului
telefonic sau poate atepta un nou mesaj.
n tehnologia Bluetooth, un canal sincron poate suporta o rat de transfer
de 64kbps, ceea ce nseamn c acesta este adaptat adecvat pentru transmisii
vocale. Un canal asincron poate transmite pn la 721kbps ntr-un sens i
57.6kbps n sens opus. De asemenea, n cazul n care legtura este simetric,
este posibil ca un canal asincron s suporte o rat de transfer de 432.6kbps n
ambele sensuri.

5.3.2. Securitatea informaiei


n specificaiile tehnice ale tehnologiei Bluetooth v1.1 sunt descrise 13
profiluri. Acestea reprezint comportrile generale prin care unitile Bluetooth
comunic unele cu altele. Un tabel cu cele 13 profiluri este adugat n Anexa
9.2.
Primul profil din tabel, denumit Profilul de Acces Universal (GAP)
definete modul n care dou dispozitive Bluetooth descoper i stabilesc o
interconexiune. GAP are rolul de a asigura descoperire i stabilirea
interconexiunii doar a acelor dispozitive care nu au mai fost anterior
interconectate. GAP asigur c oricare dou uniti Bluetooth, indiferent de
productor i de aplicaie, pot schimba informaii via Bluetooth n scopul
determinrii tipurilor de aplicaii suportate de cele dou uniti. Unitile
Bluetooth care nu se conformeaz celorlalte 12 profiluri, trebuie s se
conformeze lui GAP pentru a exista interoperabilitate fundamental. De
asemenea, acest profil definete proceduri referitoare la utilizarea diferitelor
niveluri de securitate.
NECLASIFICAT
37 din 89

NECLASIFICAT

n orice dispozitiv Bluetooth exist patru entiti utilizate pentru


meninerea securitii la nivelul legturii.
Adresa dispozitivului Bluetooth (BD_ADDR) este unic pentru
fiecare dispozitiv Bluetooth, are o lungime de 48 de bii i este
definit de Institutul Inginerilor Electricieni i Electroniti (IEEE).
Cheia de autentificare privat, cu o lungime de 128 de bii, definit
n specificaiile tehnice ca fiind pur aleatoare, este utilizat doar
pentru autentificare.
Cheia de criptare privat, cu o lungime de 8-128 de bii, utilizat la
criptare.
Un numr aleator (RAND), ce conine o secven de 128 de bii,
aleatoare sau pseudo-aleatoare, frecvent modificat, generat de
dispozitivul Bluetooth.
Entitate
BD_ADDR
Cheie privat de autentificare
Cheie privat de criptare, cu
lungime configurabil
RAND
Tabel 5.5

Dimensiune (bii)
48
128
8 128
128

Moduri de securitate
n GAP, securitatea Bluetooth este divizat n trei moduri:
Modul 1 (Nesecurizat)
Cnd un dispozitiv Bluetooth se afl n Modul 1, nu va iniia niciodat
vreo procedur de securitate.
Modul 2 (Securitate de nivel serviciu)
Cnd un modul Bluetooth se afl n Modul 2, nu va iniia nicio procedur
de securitate nainte de a fi primit o cerere de stabilire a unei conexiuni pe un
canal de comunicaii, sau nainte de a fi iniiat o procedur de stabilire a unei
conexiuni pe un canal de comunicaii. Dac o procedur de securitate este
iniiat sau nu, depinde de cerinele de securitate ale serviciului sau ale canalului
dorit. Un dispozitiv Bluetooth aflat n Modul 2 trebuie s realizeze o clasificare
a cerinelor de securitate ale propriilor servicii, utiliznd cel puin urmtoarele
caracteristici:
NECLASIFICAT
38 din 89

NECLASIFICAT

Autorizaie necesar

Autentificare necesar
Criptare necesar

Accesul este garantat numai


dispozitivelor marcate cu indicativul
de ncredere sau celor nemarcate cu
acest indicativ, dar dup o procedur
de autorizare.
Autorizaia cere ntotdeauna
autentificarea.
naintea conectrii la o aplicaie,
dispozitivul care dorete o conexiune
trebuie autentificat.
Legtura trebuie s fie schimbat n
modul criptat nainte de a fi posibil
accesul la servicii.
Tabel 5.6

Dac nu a avut loc nici o procedur de nregistrare, este utilizat un nivel


de securitate predefinit:
Conexiune n curs de recepie: Sunt necesare Autorizaia i Autentificarea
Conexiune n curs de emitere: E necesar Autentificarea.
Modul 3 (Securitate de nivel legtur)
Cnd un dispozitiv Bluetooth se afl n modul 3, trebuie s iniieze
proceduri de securitate nainte de stabilirea conexiunii pe canal.

5.3.2.1. Autorizaie vs autentificare


Exist o diferen major ntre cei doi termeni, detaliat n continuare.
Autentificarea
Autentificarea este un proces de verificare c entitatea de la cellalt capt
al legturii este cea care se prezint a fi. n tehnologia Bluetooth, autentificarea
se realizeaz cu ajutorul cheii de legtur memorate, sau prin introducerea
codului PIN.
Autentificarea entitii este realizat utilizndu-se un procedeu de cerererspuns, pe baza cruia se verific dac entitatea cunoate o anumit cheie
secret, printr-un protocol cu cheie simetric. Entitatea client este cea care
dorete s iniieze o conexiune, iar entitatea gazd trebuie s decid dac
permite iniierea conexiunii. Este de precizat faptul c n tehnologia Bluetooth
entitatea gazd nu este neaprat unitatea de tip Master. Aplicaia indic doar
NECLASIFICAT
39 din 89

NECLASIFICAT

cine trebuie s fie autentificat de ctre cine. Procedeul de verificare const n


faptul c entitatea gazd creeaz o secven aleatoare i provoac entitatea client
s se autentifice cu o secven identic. Acea secven reprezint cheia secret
de legtur dintre cele dou entiti i, astfel, conexiunea este creat.
Dac ncercarea de autentificare eueaz, entitatea gazd trebuie s atepte
un anumit interval de timp nainte de a iniia o nou ncercare de autentificare
spre aceeai entitate client. Acest interval de timp crete exponenial dup
fiecare ncercare de autentificare euat. De asemenea, intervalul de timp de
ateptare trebuie limitat la o valoare maxim, iar asta depinde de implementarea
productorului. Acest procedeu previne posibilitatea ca un intrus s repete
procedura de autentificare cu un numr mare de chei diferite.

Fig. 5.6 Evidenierea procedurii de autentificare n tehnologie Bluetooth


NECLASIFICAT
40 din 89

NECLASIFICAT

Autorizaia
Autorizaia este un proces decizional prin care se acord unui dispozitiv
Bluetooth dreptul de a avea acces la un anumit serviciu. Efectul acestui proces
este marcarea dispozitivului cu indicativele trusted sau untrusted.
Dispozitivele marcate cu indicativul trusted au acces la servicii. Dispozitivele
marcate cu indicativul untrusted sau cele care sunt necunoscute pentru
unitatea gazd au nevoie de autorizaie bazat pe interaciunea cu utilizatorul
nainte de a li se permite accesul la servicii. Autorizaia ntotdeauna include
Autentificarea.
Nivelul de ncredere al dispozitivelor

Dispozitiv Trusted"

Dispozitiv Untrusted

Dispozitiv necunoscut

Acest dispozitiv a fost anterior


autentificat, o cheie de legtur este
stocat iar dispozitivul este marcat cu
indicativul trusted n baza de date a
dispozitivului
Acest dispozitiv a fost anterior
autentificat, o cheie de legtur este
stocat iar dispozitivul este marcat cu
indicativul untrusted n baza de date
a dispozitivului
Pentru acest dispozitiv nu sunt
disponibile informaii referitoare la
securitate. De asemenea, acest
dispozitiv este marcat cu indicativul
untrusted
Tabel 5.7

Tabelul cu baza de date este memorat n registrul de administrare a


securitii, iar acesta poate include informaii despre toate serviciile disponibile
sau separat, pentru fiecare serviciu n parte, n funcie de productor.
Autentificarea dispozitivelor cu indicativul trusted
Verificarea se efectueaz utiliznd procedura de autentificare definit de
specificaiile benzii de baz. Un dispozitiv este declarat cu indicativ trusted
dac se primete un rspuns pozitiv n urma procedurii de autentificare i dac
flag-ul de ncredere este setat.

NECLASIFICAT
41 din 89

NECLASIFICAT

Setarea relaiei de ncredere


O relaie de ncredere se stabilizeaz n timpul procedurii de iniiere a
conexiunii. Cnd un dispozitiv marcat ca fiind untrusted primete autorizaie
de a folosi un anumit serviciu, este posibil s fie adugat n lista dispozitivelor
marcate cu indicativul trusted n timpul aceleiai proceduri. Desigur, aceast
operaiune necesit acordul utilizatorului.
Criptarea informaiei
Criptarea se poate realiza, ns nu este un element obligatoriu. Dac
productorul dorete s introduc blocul de criptare, numai informaia din
pachetul transmis va fi criptat, antetul pachetului i codul de acces se transmit
n clar. Criptarea este de tip AES, pe 64 de bii, utilizndu-se un cifru bloc.
Algoritmul genereaz o cheie binar, adugat modulo 2 informaiei ce urmeaz
a fi criptate. Cifrul este simetric. Pentru decriptare se utilizeaz aceeai cheie
folosit la criptare.

5.3.3. Modulul Bluetooth HC-06


Produsele din categoria HC constau n module cu interfa serial
Bluetooth sau adaptoare Bluetooth:
Module cu interfa serial Bluetooth:
o Uz industrial: HC-03, HC-04
o Uz civil: HC-05, HC-06
Adaptoare Bluetooth:
o HC-M4
o HC-M6
Modulul Bluetooth este utilizat pentru a converti portul serial de tip COM
n Bluetooth. Aceste module au dou moduri de funcionare: Master i/sau
Slave. Modulele care au n denumire cifre pare sunt astfel proiectate, nct
modul de funcionare s nu poate fi schimbat de ctre utilizator. Pentru cele care
au n denumire cifre impare, utilizatorii pot schimba modurile de funcionare,
utiliznd comenzi AT.
Clasificarea modulelor HC-06, conform proiectrii din fabric, se
realizeaz n dou categorii:
HC-06-S (slave)
HC-06-M (master)
NECLASIFICAT
42 din 89

NECLASIFICAT

Pentru realizarea proiectului, am ales modulul HC-06-S pentru c rolul


su este de a prelua comenzile trimise de ctre un smart phone cu SO Android i
de a le trimite ctre microcontroler.
Funcia principal a modulului serial Bluetooth este de a nlocui canalul
serial cablat:
n cazul n care dou microcontrolere comunic ntre ele, unul este
conectat la un modul de tip Master, iar cel de-al doilea este conectat
la un modul de tip Slave. Conexiunea ntre ele este stabilit, din
momentul n care mperecherea modulelor a avut loc. Aceast
conexiune Bluetooth este echivalent unei legturi seriale cablate
utiliznd semnale Rx, Tx. Cele dou controlere pot, astfel, utiliza
modulele seriale Bluetooth pentru a comunica ntre ele.
Atunci cnd un microcontroler este conectat la un modul serial
Bluetooth de tip Slave, acesta poate realiza conexiuni cu
adaptoarele Bluetooth din calculatoare sau smart phone-uri. n acest
caz se va stabili un canal virtual de comunicaie serial ntre cele
dou dispozitive.
Majoritatea dispozitivelor Bluetooth de pe pia sunt de tip Slave
(imprimant, GPS etc), iar pentru realizarea conexiunii cu acestea,
este nevoie de un modul serial Bluetooth de tip Master conectat la
un microcontroler.

5.3.4. Configuraiile pinilor

Fig. 5.7 Faa superioar a modulului HC-06


NECLASIFICAT
43 din 89

NECLASIFICAT

Pin 1 STARE aparent fr nsemntate, figureaz tot timpul n starea 0 logic,


indiferent de comenzile primite sau trimise
Pin 2 RXD intrarea serial a modulului, se conecteaz cu pinul TXD al
microcontrolerului. Acest semnal utilizeaz nivelul de tensiune de 3.3Vcc.
Pin 3 TXD ieirea serial a modulului, se conecteaz cu pinul RXD al
microcontrolerului. Acest semnal utilizeaz nivelul de tensiune de 3.3Vcc.
Pin 4 GND
Pin 5 VCC este indicat o gam cuprins ntre (3.6-6)V. Funcioneaz
alimentat att cu nivelul logic de 3.3V, ct i cu cel de 5V, dar n cazul al doilea,
durata de funcionare scade considerabil.
Pin 6 CHEIE Conform foii de catalog, ct timp modulul este n POWERON-RESET, acest pin trebuie setat n 1 logic pentru a intra n modul AT.
Este de menionat faptul c realizarea conexiunii modulului n cazul n
care utilizatorul dorete s l configureze prin comenzi AT este diferit de cea n
care modulul comunic cu un alt dispozitiv Bluetooth, conform tabelului de mai
jos:
COMENZI AT
HC-06
PIN 1 STARE
PIN 2 RXD
PIN 3 TXD
PIN 4 GND
PIN 5 VCC
PIN 6 CHEIE

ARDUINO
NC
Dgt 11
Dgt 10
GND
VCC (5V)
Dgt 9
Tabel 5.8

COMUNICAIE
SERIAL
ARDUINO
NC
TXD
RXD
GND
VCC (3.3V)
NC

Am configurat modulul utiliznd comenzi AT, astfel nct s modific


numele presetat din fabric HC-06 n PlatformaMobila, iar codul PIN, din
1234 n 4321, cu urmtoarele comenzi:
AT+NamePlatformaMobila
AT+PIN4321
Un tabel complet n care sunt trecute comenzile AT suportate de ctre
modulul HC-06 este ataat n Anexa 9.3.
NECLASIFICAT
44 din 89

NECLASIFICAT

6. Prezentare instruciuni i biblioteci


n continuare vor fi prezentate instruciunile principale din programele
software utilizate. Aceste programe se mpart n 3 categorii, fiecrei categorie
revenindu-i un tip diferit de limbaj de programare, dup cum urmeaz:
Centrele Tx i Rx ale sistemul robotizat comandate de platforma de
dezvoltare Arduino Uno R3 i Arduino Pro Mini
o Soft utilizat: Arduino Integrated Development Environment
o Limbaj de programare: C++
Interfa software de comand auxiliar a Centrului Rx
o Soft utilizat: Processing v2.2.1
o Limbaj de programare: Java
Conexiunea unui smartphone cu platforma mobil a Centrului Rx
via Bluetooth
o Soft utilizat: QPython v3.0
o Limbaj de programare: Python

6.1. Arduino
Structura unui program n Arduino IDE arat ca n figura de mai jos:

Fig. 6.1 Prezentare general a ferestrei de lucru n softul Arduino IDE

NECLASIFICAT
45 din 89

NECLASIFICAT

nainte de a lucra cu softul Arduino IDE este foarte important s alegem


tipul plcii Arduino cu care vom lucra, sau cu alte cuvinte, tipul bootloader-ului
nscris n microcontroler i, de asemenea, portul serial corespunztor. Cei doi
factori vitali n desfurarea optim a lucrrii software sunt evideniai n colul
din dreapta-jos a ferestrei de lucru. n imaginea de mai sus, n locul destinat
bootloader-ului apare Arduino/Genuino Uno, iar n locul destinat portului
serial apare COM5. Aceti parametri se pot modifica astfel:

Fig. 6.2 a) Alegerea portului serial; b) Alegerea bootloader-ului


Din momentul n care setrile importante au fost realizate, structura unui
program propriu-zis este simpl: dou subprograme fundamentale, void
setup() i void loop(). n afara celor dou funcii, pot fi create altele, ca n
oricare alt mediu de programare C. naintea funciei void setup() se apeleaz
bibliotecile utilizate (dac e cazul) i se definesc variabilele globale. Funcia
void setup() este apelat o singur dat, la fiecare pornire sau resetare a plcii
Arduino, iar funcia void loop() este apelat continuu, dup fiecare parcurgere.
n interiorul funciei void setup() se definesc elementele necesare a fi
rulate o singur dat, pentru a nu ncrca n van memoria RAM a
microcontrolerului, precum: definirea pinilor de intrare/ieire, declanarea
comunicaiei seriale etc. n interiorul funciei void loop() exist codul propriuzis.
Mediul Arduino poate fi extins prin utilizarea bibliotecilor, la fel ca
majoritatea platformelor de programare. Bibliotecile asigur extrafuncionaliti, pentru ca utilizatorul s lucreze cu alte componente hardware, s

NECLASIFICAT
46 din 89

NECLASIFICAT

poat manipula diverse date etc. Pentru a utiliza o bibliotec ntr-un program,
trebuie selectat submeniul Include Library din meniul Sketch:

Fig. 6.3 Includerea bibliotecilor n mediul de programare


Un numr limitat de biblioteci vin la pachet cu instalarea softului Arduino
IDE, dar pot fi descrcate i utilizate i altele, sau chiar concepute de la zero de
ctre utilizator.
Deoarece sistemul robotizat presupune utilizarea a patru plci Arduino,
fiecare plac este destinat a executa alte instruciuni, dup cum urmeaz:
Mana_animatronica_TX.ino MCU_Tx1 este programul ars
n unul din cele dou microcontrolere din Centrul Tx, care se ocup
cu preluarea serial a unor date de la MCU_Tx2 sau de la aplicaia
creat n softul Processing, precum i de transmiterea wireless a
unui flux de date spre MCU_Rx1 i recepionarea unui alt flux de
date de la MCU_Rx1.
ComenziLCD_SerialTX.ino MCU_Tx2 este programul ars
n cel de-al doilea microcontroler al Centrului Tx, care se ocup de
afiarea unui flux de date, recepionat serial de la MCU_Tx1, pe un
LCD 16X2, precum i de transmiterea serial a unui alt flux de date
spre MCU_Tx1.
Mana_animatronica_RX.ino MCU_Rx1 este programul ars
n unul din cele dou microcontrolere din Centrul Rx, care se ocup
cu preluarea/transmiterea wireless a unor fluxurilor de informaii de
la/spre MCU_Tx1 precum i preluarea I2C a unor date de la
MCU_Rx2.
platforma_mobila.ino MCU_Rx2 este programul ars n cel
de-al doilea microcontroler al Centrului Rx, care se ocup de
NECLASIFICAT
47 din 89

NECLASIFICAT

preluarea wireless a unui flux de date de la smartphone i


deplasarea platformei mobile pe care este ataat braul animatronic
cu structur antropomorfic, precum i de a transmite I2C un flux
de date spre MCU_Rx1.

6.1.1. Centrul Tx
6.1.1.1. Mn Animatronic Tx
Bibliotecile utilizate pentru programul Mana_animatronica_TX.ino sunt
n numr de 3:

Fig. 6.4 Biblioteci utilizate n programul Mana_animatronica_TX.ino


Biblioteca RF24.h faciliteaz controlul modulului nRF24L01, iar
biblioteca SPI.h este apelat n interiorul RF24.h. Biblioteca EasyTransfer.h
gestioneaz transferul de date serial ntre microcontrolere.
Imediat dup includerea bibliotecilor, au fost definite unele constante:

Fig. 6.5 Declarare constante n programul Mana_animatronica_TX.ino


CE_PIN i CSN_PIN sunt cei doi pini ai modulului nRF24L01, Chip
Enable i Chip Select Not, pe care utilizatorul i poate modifica dup cum
dorete, n limita pinilor digitali disponibili. Apoi au fost definite sugestiv cinci
constante care marcheaz pinii analogici de intrare ai senzorilor Flex introdui n
mnu. Ultimele dou constante fac referire la un timp de ateptare maxim de o
secund i un numr de cinci octei, ambele constante viznd fluxul
informaional generat de aplicaia n softul Processing, care este prezentat n
capitolul corespunztor. Timpul de ateptare se refer la un interval maxim de
NECLASIFICAT
48 din 89

NECLASIFICAT

pauz, n care microcontrolerul poate s nu recepioneze informaii de la


aplicaie. Din momentul n care ceasul intern al microcontrolerului a trecut de
acest interval de timp, se consider flag-ul de time-out ridicat, microcontrolerul
proceseaz urmtoarea linie de cod, iar astfel, n cazul unei erori de transmisie,
nu rmne blocat n bucl. Prin comunicaia serial datele circul sub form
octal, iar n cod se pot declara variabile de tip byte sau de tip string.
Diferena dintre cele dou tipuri de variabile const n faptul c variabila de tip
byte aloc un octet de memorie pentru un numr cel mult egal cu 255, iar
variabila de tip string aloc un octet de memorie pentru fiecare caracter, fie
liter sau cifr.
De exemplu, pentru a transmite numrul 11, avem urmtoarele cazuri:
byte 11 se aloc 00001011
string 11 se aloc 00000001/00000001
Variabilele n aplicaia Processing sunt definite de tip byte, astfel c un
singur octet conine toat informaia necesar micrii unui singur deget. Am
ales un numr maxim de 5 octei, pentru ca microcontrolerul s recepioneze
octeii n ordinea transmiterii lor.
Motivul pentru care am declarat constantele cu #define este c nu ocup
memorie. Dezavantajul este c acele constante nu se pot modifica ulterior, n
timpul rulrii, dar nici nu e nevoie.
n continuare, sunt declarate unele clase, obiecte corespunztoare claselor,
precum i adresele de comunicaie ntre modulele nRF24L01:

Fig. 6.6 Declarare clase i obiecte n programul Mana_animatronica_TX.ino


Vectorul pipes prezint dou adrese de 5 octei fiecare, una utilizat la
emisie, iar cea de-a doua la recepie, adrese ce vor fi prezente n antetele
pachetelor transmise de modulele nRF24L01. Este important ca adresele de
emisie i de recepie s fie identice pe ambele controlere, pentru ca
transceiverele s poat comunica.
NECLASIFICAT
49 din 89

NECLASIFICAT

ETin i ETout sunt dou clase definite cu ajutorul bibliotecii


EasyTransfer. Prima este folosit de MCU_Tx1 pentru a primi date seriale de
la MCU_Tx2, iar cea de-a doua clas e utilizat pentru a trimite date seriale spre
MCU_Tx2.
LCD_BUTTONS este o clas care pregtete informaiile primite serial
de la MCU_Tx2, referitoare la butoanele apsate ale modulului LCD keypad,
pentru a fi memorate ntr-o variabil local, cu ajutorul obiectului
commandReceived. VOLTAGE_AND_TEMP este o clas care pregtete
informaiile ce vor fi transmise serial ctre MCU_Tx2, referitoare la temperatura
n grade Celsius a Centrului Rx i tensiunea sursei de alimentare a
servomotoarelor i punii H a platformei mobile, de 12Vcc, cu ajutorul
obiectului valuesSerialTX.
RF24 radio(CE_pin, CSN_pin) este un obiect care creeaz o instan
radio. Cu alte cuvinte, pregtete formatul pachetului care urmeaz a fi emis sau
recepionat.
n secvena urmtoare de cod sunt definite variabilele globale:

Fig. 6.7 Declarare variabile n programul Mana_animatronica_TX.ino


Primul grup de variabile face referire la dou fluxuri informaionale: unul
emis spre MCU_Rx1, care cuprinde valori despre gradul de ndoire al degetelor
i despre starea butoanelor modulului LCD keypad primit serial de la
MCU_Tx2 i alt flux informaional, recepionat de la MCU_Rx1, ce cuprinde
date despre tensiunea i temperatura menionate mai sus. De asemenea, exist un
NECLASIFICAT
50 din 89

NECLASIFICAT

ir de variabile care sunt definite pentru a micora pasul dintre valorile


recepionate prin intermediul pinilor analogici ai plcii Arduino. De exemplu,
distana de ordin ntreg dintre 439 i 440, este prea mare pentru ca valorile s fie
transmise wireless ntr-un flux de informaii, i rezultatul datorat ntrzierilor
cumulate de ordinul milisecundelor la recepie, este acionarea secvenial a
servomotoarelor n locul acionrii cvasi-continue. Pentru a elimina aceast
problem, am realizat o funcie de micorare a distanei dintre valori, de netezire
a lor, astfel nct dac pinii analogici recepioneaz valorile 439 i 440,
microcontrolerul va introduce n fluxul informaional toate valorile 439.0001,
439.0002 etc pn la 440, iar astfel, acionarea servomotoarelor va fi cvasicontinu.
Al doilea grup de variabile, compus dintr-un vector unidimensional i o
constant de timp utilizat n controlul erorilor, se refer la poziiile n care vor
fi memorai octeii transmii serial de la aplicaia n softul Processing.
Urmtorul grup de variabile face referire la comutatorul de mediu. Acesta,
n poziia deschis asigur sursa semnalului n mediul fizic. n poziia nchis
comut sursa semnalului n mediul virtual.
Ultimul grup de variabile conine asignarea pinului digital 8 al plcii
Arduino variabilei denumite tempPin. Aceast variabil va fi utilizat pentru
detectarea unui potenial dezechilibru termic n Centrul Rx.
Codul continu cu funcia void setup()
n interiorul funciei au fost definii pinii de intrare i de ieire, a fost
declanat iniierea comunicaiei seriale la valoarea predefinit de 9600 de bauzi
(durata de transmisie a unui simbol este astfel aproximativ 104.16 s), ntruct
va fi nevoie de monitorul serial att pentru faza de testare, sincronizare i
stabilire a conexiunii ntre modulele nRF24L01, ct i ulterior, pentru afiarea
unor informaii n timp ce comutatorul de mediu este n poziia nchis. De
asemenea, a fost iniiat declanarea comunicaiilor seriale spre i de la
MCU_Tx2, i a comunicaiei radio cu MCU_Rx1. A fost setat un numr de
ncercri de retransmisii n cazuri de eroare de time-out i au fost deschise
canalele de emisie i de recepie pe baza adreselor definite n antetul
programului.

NECLASIFICAT
51 din 89

NECLASIFICAT

Fig. 6.8 Iniiere comunicaie radio n programul Mana_animatronica_TX.ino


Aceast secven de cod este una important i va fi explicat n detaliu.
Prima linie de cod marcheaz iniierea comunicaiei radio, ceea ce implic
stabilirea pinilor CE i CSN ca fiind de ieire, pinul CE se afl n 0 logic, pinul
CSN n 1 logic, nivelul amplificatorului de putere este setat la valoarea maxim:
n registrul RF_SETUP, mnemonica RF_PWR ocup biii 2 i 1 ai
registrului, fiind 4 niveluri de putere diferite iar acei bii sunt setai 11 pentru
ca la emisie s existe o putere de 0dBm, rata de transfer prin aer este setat la
1Mbps, adic bitul 5 i bitul 3 din registrul RF_SETUP sunt setai 00,
dimensiunea CRC este setat la doi octei, bitul 2 din registrul CONFIG fiind
setat 1 iar canalul de comunicaii este predefinit la 76, biii corespunztori din
registrul RF_CH sunt setai 01001100, ceea ce nseamn o frecven de
lucru de 2476 MHz.

Fig. 6.9 Funcia begin din biblioteca RF24

NECLASIFICAT
52 din 89

NECLASIFICAT

Instruciunea radio.setRetries(15,15) este apelat n biblioteca RF24 i


arat ca n figura Fig. 6.10:

Fig. 6.10 Funcia setRetries din biblioteca RF24


Funcia setRetries(15,15) seteaz n registrul SETUP_RETR
intervalul maxim de ateptare ntre transmisii i numrul maxim de retransmisii
n cazul recepiei eronate sau ntrziate a Auto Ack: 4ms i pn la 15
retransmisii.
Instruciunile
radio.openWritingPipe(pipes[0])
i
radio.openReadingPipe(1, pipes[1]) iniiaz adresele de emisie, respectiv de
recepie, prin scrierea n regitrii EN_RXADDR, RX_ADDR_P0,
TX_ADDR, i RX_PW_P0 a valorilor corespunztoare care activeaz
adresa pachetelor emise cu indicele 0, adresa pachetelor recepionate cu indicele
1, stabilesc o lungime maxim de 5 octei pentru ambele adrese i stabilesc
lungimea maxim a pachetului informaional la 32 de octei.
Informaii referitoare la regitrii care au fost menionai n acest subcapitol
se gsesc n Anexa 9.4.
n funcia void loop() urmeaz procesarea datelor recepionate i
introducerea lor n vectori unidimensionali, pentru a fi trimise ntr-o ordine
stabilit, precum i introducerea unor instruciuni care realizeaz tranziia
modurilor operaionale EMISIE i RECEPIE. Secvene din cod sunt
ilustrate n figura Fig. 6.11:

Fig. 6.11 Apelarea unor funcii din biblioteca RF24 n programul


Mana_animatronica_TX.ino
O idee general a buclei void_loop() este c vectorul
voltage_and_temp deine informaiile pe care microcontrolerul le va
recepiona, ulterior acesta va comuta modulul nRF24L01 n mod EMISIE
NECLASIFICAT
53 din 89

NECLASIFICAT

pentru a transmite vectorul fingers_and_handActions, apoi modulul va intra


din nou n mod RECEPIE.

6.1.1.2. Modulul LCD


Programul utilizat pentru MCU_Tx2 este denumit
ComenziLCD_SerialTX.ino, iar bibliotecile utilizate sunt ilustrate n figura
Fig.6.12:

Fig. 6.12 Biblioteci utilizate n programul ComenziLCD_SerialTX.ino


Biblioteca LiquidCrystal este utilizat pentru a facilita funcionarea
modulelor LCD, iar biblioteca EasyTransfer are funcionaliti similare celor
prezentate n capitolul 6.1.1.1.

Fig. 6.13 Iniializarea LCD-ului cu ajutorul bibliotecii LiquidCrystal


Conform bibliotecii LiquidCrystal, prima instruciune din figura
Fig.6.13 este apelat astfel:

Fig. 6.14 Apelarea clasei LiquidCrystal n biblioteca LiquidCrystal


Dup cum reiese din figurile Fig.4.10, Fig.6.13 i Fig.6.14, pinul
REGISTER SELECT al LCD-ului este conectat la pinul 8 digital al plcii
Arduino, pinul ENABLE la pinul digital 9, iar pinii de date reprezentnd
comunicaia pe 4 bii, sunt, n ordine: D0 DGT4, D1 DGT5, D2 DGT6, D3
DGT7. n interiorul clasei LiquidCrystal este apelat funcia init(), care va
iniializa comunicaia pe 4 bii a LCD-ului. n funcia setup() a softului
Arduino IDE este apelat funcia begin() din biblioteca LiquidDisplay, cu
NECLASIFICAT
54 din 89

NECLASIFICAT

dou argumente. Argumentele reprezint numrul de coloane, respectiv 16 i


numrul de linii, respectiv 2. Instruciunile care permit interaciunea
utilizatorului cu LCD-ul sunt print i setCursor. Pentru o orientare optim,
de obicei se apeleaz n funcia setup() a softului Arduino IDE funcia
setCursor(0,0), pentru a iniializa cursorul LCD-ului pe linia 1, coloana 1.
n funcia loop() instruciunile afieaz pe ecranul LCD-ului valorile
recepionate serial, precum i dou cronometre, unul funcioneaz individual, iar
cel de-al doilea funcioneaz numai dac exist conexiune i schimb de pachete
cu modulul MCU_Rx1. Pentru o funcionare optim, fr ntrzieri, cele dou
cronometre trebuie s funcioneze simultan.

6.1.2. Centrul Rx
6.1.2.1. Mn Animatronic Rx

Fig. 6.15 Biblioteci utilizate n programul Mana_animatronica_RX.ino


Bibliotecile SPI i RF24 sunt utilizate n mod similar ca n programul
Mana_animatronica_TX.ino, cu specificaia c n vectorul pipes adresele de
emisie i de recepie sunt inversate.
Biblioteca Wire rspunde de comunicaia I2C ntre MCU_Rx1 i
MCU_Rx2, prin pinii SDA i SCL
Comunicaia I2C
I2C este un acronim pentru Inter-Integrated Circuit. Magistrala I2C
simplific transferul de date, utiliznd numai dou fire: SDA(pinul A4) i
SCL(pinul A5). Rolul magistralei I2C este unul foarte important, avnd n
vedere c prin numai dou fire, microcontrolerul poate comunica cu 1008
dispozitive de tip Slave simultan. Mai mult dect att, I2C poate susine un
sistem multi-master, permind comunicaia tuturor dispozitivelor de tip
Master din reea cu cele de tip Slave.
Viteza de transfer poate fi de 100kHz sau 400kHz. Pentru fiecare 8 bii
informaionali transmii, trebuie transmis un bit de ACK/NACK.
NECLASIFICAT
55 din 89

NECLASIFICAT

Fiecare magistral I2C const n dou semnale: SCL i SDA. SCL este
semnalul de ceas iar SDA este semnalul de date. Semnalul SCL este generat, n
majoritatea cazurilor, de dispozitivul de tip Master. Magistralele sunt de tipul
dren n gol, ceea ce nsemn c pot modifica starea semnalului n 0 logic, dar
nu i n 1 logic. Fiecare linie de semnal are o rezisten de pull-up ataat, pentru
a readuce semnalul n 1 logic cnd nu exist un factor care s i modifice starea.
Semnalele I2C sunt ilustrate n figura Fig. 6.16:

Fig.6.16 Semnalele SCL i SDA n tehnologie I2C


Mesajele sunt divizate n dou cadre: un cadru de adres, prin care
dispozitivul de tip Master arat crui dispozitiv de tip Slave i este destinat
mesajul i unul sau mai multe cadre de date formate din 8 bii de date.
Informaia este introdus pe linia SDA dup ce semnalul SCL a tranzitat n 0
logic i este eantionat dup ce SCL a tranzitat n 1 logic.
Pentru a iniializa cadrul de adres, dispozitivul de tip Master pstreaz
SCL n 1 logic i trage SDA n 0 logic. Aceast aciune are ca efect informarea
dispozitivelor de tip Slave din reea c un mesaj urmeaz a fi transmis.
Cadrul de adres este ntotdeauna aezat naintea cadrelor de date. Pentru
cazul n care exist 7 bii de adres, ordinea acestora este MSB first, secven
urmat de un bit R/W care indic dac operaiunea este de transmitere (R/W = 0)
sau de citire (R/W = 1) a mesajului. Ultimul bit al cadrului de adres este
ACK/NACK. Acest bit se regsete att la finalul cadrelor de adres, ct i de
date. De ndat de cadrul de 8 bii anteriori ACK au fost transmii, dispozitivul
cruia i este destinat mesajul va prelua controlul asupra liniei SDA. Dac
semnalul SDA nu este tras n 0 logic naintea celui de-al noulea impuls de ceas,
exist posibilitatea ca acel dispozitiv s nu fi recepionat cadrul, sau s nu tie

NECLASIFICAT
56 din 89

NECLASIFICAT

cum s execute parsarea. n acest caz, controlul liniei SDA revine dispozitivului
de tip Master care va decide urmtoarea aciune.
Dup ce cadrul de adres a fost transmis cu succes, urmeaz a fi transmis
cadrul de date. Dispozitivul de tip Master va continua s genereze impulsuri
de ceas cu frecven constant, iar informaia va fi introdus pe linia SDA fie de
Master, fie de Slave, n funcie de valoarea bitului R/W.
n momentul n care toate cadrele de date din aceeai secven au fost
transmise, dispozitivul de tip Master va genera condiia de ncetare a
operaiunii. Aceste condiii sunt reprezentate de tranziia n 1 logic a semnalului
SDA dup tranziia n 1 logic a semnalului SCL, acesta din urm meninndu-i
starea.
Pinii destinai pentru comunicaia I2C ai plcii Arduino sunt:
SDA A4
SCL A5

Fig. 6.17 Schem simplificat a tehnologiei I2C


Microcontrolerul MCU_Rx1 funcioneaz ca un dispozitiv de tip Slave,
deoarece recepioneaz date de la MCU_Rx2 despre nivelul de ncrcare al
acumulatorilor platformei mobile. n interiorul funciei setup() este apelat
funcia Wire.begin att n cazul dispozitivului de tip Master ct i a celui de
tip Slave, doar c argumentele funciei n cele dou cazuri sunt diferite.
NECLASIFICAT
57 din 89

NECLASIFICAT

Fig. 6.18 Utilizarea unor funcii din biblioteca Wire n programul


Mana_animatronica_RX.ino
Argumentul funciei Wire.begin() desemneaz dispozitivul cu adresa 5,
cruia
i
vor
fi
destinate
mesajele
transmise.
Funcia
Wire.onReceive(receiveEvent) apeleaz subrutina receiveEvent, similar
ntreruperilor, de fiecare dat cnd exist o transmisie I2C spre adresa indicat.
Servo
Biblioteca Servo permite iniializarea facil a servomotoarelor, precum
i
operarea
braului
acestora.
n
antetul
programului
Mana_animatronica_RX.ino, aa cum se observ n figura Fig. 6.19, se
definesc obiectele din clasa Servo. Numrul obiectelor poate fi maxim 12. Cu
alte cuvinte, conform bibliotecii Servo, un microcontroler Atmega328P poate
utiliza maxim 12 servomotoare, ntruct are un singur timer. Un extras din
biblioteca Servo, cuprinznd secvene din fiierele ServoTimers.h,
Servo.h, Servo.cpp este ataat n Anexa 9.5.
n funcia setup() instruciunea myservo_wrist.attach(7) iniializeaz
servomotorul care direcioneaz ncheietura minii animatronice, atribuind
pinului de semnal al servomotorului, pinul digital numrul 7 al plcii Arduino,
iar
instruciunea
myservo_wrist.write(lastValueForWrist)
realizeaz
deplasarea braului servomotorului la unghiul lastValueForWrist.
Instruciunea este explicat n detaliu n seciunea EEPROM, de mai jos.

NECLASIFICAT
58 din 89

NECLASIFICAT

Fig. 6.19 Utilizarea unor funcii din biblioteca Servo n programul


Mana_animatronica_RX.ino
n funcia loop din figura Fig.6.19 este descris o rutin de apelare a
funciei myservo_wrist.write(smoothWrist), dac este satisfcut o condiie
care presupune apsarea butonului Right de pe modulul LCD (semnal care se
poate transmite numai n cazul n care comutatorul de mediu al Centrului Tx
este deschis). Pentru o modificare ct mai lin a poziiei braului servomotorului,
a fost utilizat subrutina de netezire, asemntoare celei amintite n capitolul
6.1.1.1. De asemenea, servomotorul poate aciona braul n intervalul 0180.
Pentru a evita atingerea limitelor, sunt implementate praguri de limitare. n
figura Fig. 6.19 este surprins pragul de limitare superioar.
EEPROM
Biblioteca EEPROM este utilizat pentru a stoca n memoria EEPROM
a microcontrolerului anumite date eseniale pentru funcionarea optim a
proiectului. Singura valoare pe care servomotoarele o recunosc este cea de
resetare, respectiv 0. De fiecare dat cnd placa Arduino este resetat sau
NECLASIFICAT
59 din 89

NECLASIFICAT

pornit, servomotoarele vor reveni n poziia lor iniial. Datorit masei destul
de ridicate a componentelor pe care unele servomotoare trebuie s le acioneze,
dac situaia ar rmne astfel, durata de via a acelor servomotoare ar scdea
drastic. Soluia presupune introducerea ultimelor valori nregistrate de
servomotoare n memoria EEPROM a microcontrolerului, iar la resetare sau
pornire, valorile vor fi citite din memoria EEPROM i stocate n unele variabile.
Astfel, valorile nregistrate de servomotoare vor fi cele din EEPROM, iar
acestea nu se vor mai reseta.

Fig.6.20 Utilizarea unor funcii din biblioteca EEPROM n programul


Mana_animatronica_RX.ino

6.1.2.2. Platform Mobil


Singura bibliotec utilizat este Wire, iar configuraia MCU_Rx2 este
de tip Master. n figura Fig. 6.21 sunt declarate cteva constante cu diferite
obiective: Enable1 i Enable2 sunt declarate pentru controlul PWM al
turaiei motoarelor reductoare de curent continuu. Urmtorul grup de 4 constante
este divizat n dou grupe, cte o grup pentru fiecare motor reductor,
LmotorUp LmotorDn i RmotorUp RmotorDn i au ca scop
controlul sensului de rotaie al motoarelor i implicit, vor asigura direcia de
deplasare a platformei. Constanta denumit Tranzistor injecteaz semnal n
NECLASIFICAT
60 din 89

NECLASIFICAT

baza tranzistorului NPN 2N2222, cu rol de comutator, de fiecare dat cnd


microcontrolerul recepioneaz serial de la modulul HC-06 informaii referitoare
la direcia de mers a platformei.

Fig. 6.21 Declarare constante n programul platforma_mobila.ino


n figura Fig. 6.22 este ilustrat o secven din programul
platforma_mobila.ino care utilizeaz microcontrolerul ca pe un dispozitiv de
tip Master, care va trimite informaii n tehnologie I2C spre MCU_Rx1.

Fig. 6.22 Utilizarea unor funcii din biblioteca Wire n programul


platforma_mobila.ino
n prim instan este inclus biblioteca Wire, apoi comunicaia I2C
este iniializat n funcia setup() prin instruciunea Wire.begin(), iar funcia
loop() apeleaz continuu subrutina Volts. n interiorul subrutinei, valorile
NECLASIFICAT
61 din 89

NECLASIFICAT

citite de la pinul analogic 0 sunt stocate ntr-o variabil denumit sensorValue.


Ulterior, valorile pe 10 bii sunt transformate n tensiunea continu real,
indicat
de
un
aparat
de
msur
specializat.
Instruciunea
Wire.beginTransmission(5) indic iniierea procedurii de transmisie la adresa
numrul
5,
identic
cu
adresa
de
recepie
din
programul
Mana_animatronica_RX.ino. Semnalul SDA devine 0 logic naintea
semnalului SCL. Urmeaz transmiterea cadrelor informaionale prin
instruciunea Wire.write(voltage), i iniierea procedurii de ncetare a
transmisiei, Wire.endTransmission(), cnd semnalul SDA tranziteaz n 1
logic dup ce SCL a executat primul aceast tranziie, meninnd starea pn la
iniierea urmtoarei proceduri de ncepere a transmisiei.
Deplasarea platformei este efectuat n baza unor instruciuni
asemntoare celor din figura Fig. 6.23. Pentru deplasare au fost implementate
urmtoarele variabile:

w nainte
s napoi
a Stnga
d Dreapta
q nainte-stnga
e nainte-dreapta
z napoi-stnga
c napoi-dreapta
x Stop

Microcontrolerul verific la fiecare rulare canalul serial. Dac


recepioneaz informaii despre direcia de deplasare, acesta va apela
instruciunile n ordinea din figura Fig. 6.23: memoreaz octetul n variabila
input i i compar valoarea n baza unei condiionri de tip case. n cazul n
care octetul recepionat este echivalentul literei w, injecteaz semnal n baza
tranzistorului pentru a nchide circuitul, stabilete turaia motoarelor, diferit din
cauz c centrul de greutate al platformei este modificat sub masa braului
animatronic i apeleaz subrutina MoveF(), care asigur prin perechile de pini
LmotorUp/LmotorDn i RmotorUp/RmotorDn direcia de deplasare
corespunztoare.

NECLASIFICAT
62 din 89

NECLASIFICAT

Fig.6.23 Unele instruciuni de deplasare a platformei n programul


platforma_mobila.ino

6.2. Processing
Processing este o platform software flexibil i un limbaj care stimuleaz
programarea n contextul artelor vizuale. n cadrul Processing a fost creat o
metod alternativ de comand a minii animatronice, n cazul unei defeciuni a
senzorilor Flex, utiliznd compilatorul pentru instruciuni Java. Subcapitolele
descrise mai jos prezint crearea aplicaiei propriu-zise i respectiv realizarea
comunicaiei cu placa Arduino.
Observaie
Pentru a intra n modul de comand al aplicaiei, comutatorul de mediu al
controlerului MCU_Tx1 trebuie s fie nchis i comunicaia serial a
microcontrolerelor MCU_Tx1 i MCU_Tx2 trebuie s fie oprit, ntruct
Processing comunic, de asemenea, serial.

NECLASIFICAT
63 din 89

NECLASIFICAT

6.2.1. Aplicaia AnimatedHand.pde


Structura unui program care utilizeaz compilatorul Java n softul
Processing, precum i funcionarea sa este ilustrat n figurile Fig.6.23 i
Fig.6.24:

Fig. 6.23 Structura unui program n softul Processing

Fig. 6.24 Funcionarea unui program n softul Processing

NECLASIFICAT
64 din 89

NECLASIFICAT

6.2.1.1. Rezultat final


n figura Fig.6.25 este ilustrat aplicaia n form final iar n
Fig.6.26 este reprezentat funcionarea sa, fr a avea comunicaia serial
activat.

Fig.6.25 Aplicaia AnimatedHand.pde

Fig. 6.26 Principiul de funcionare al aplicaiei


NECLASIFICAT
65 din 89

NECLASIFICAT

6.2.1.2. Descrierea codului, fr comunicaie serial activ


Crearea elementelor scenei
Elementele care compun scena ilustrat n figura Fig.6.25 sunt:
Palma
Butoanele
Fiecare element a fost realizat n baza unei clase, ilustrate n figurile
Fig.6.27 i Fig.6.28.

Fig.6.27 Crearea clasei Palm n programul AnimatedHand.pde


Clasa cuprinde o instan de poziionare n cadrul scenei (Palm(float
xpos, float ypos, float w, float h)), 2 subrutine de construcie grafic, ce
definesc centrul i conturul palmei (void hand()), degetele (void fingers()),
precum i o subrutin care definete deplasarea degetelor n cadrul scenei (void
fingerClosed(float amountX, float amountY)).

NECLASIFICAT
66 din 89

NECLASIFICAT

Fig.6.28 Crearea clasei Button n programul AnimatedHand.pde


Clasa Button cuprinde o instan de poziionare n scen (Button(float
xpos, float ypos, float w, float h, int number)), precum i subrutina de
construcie grafic (void button()).
Crearea elementelor scenei reprezint practic crearea unor obiecte din cele
dou clase ilustrate, n funcia setup(). Fiecare obiect, nainte de a fi creat n
cadrul unei clase, trebuie s aparin acelei clase. Aceast operaiune prevede
declararea apartenenei obiectelor la cele dou clase n antetul programului, aa
cum este ilustrat n figura Fig.6.29.

Fig.6.29 Declararea i crearea obiectelor n programul AnimatedHand.pde


NECLASIFICAT
67 din 89

NECLASIFICAT

Dinamica scenei
Degetele sunt acionate de butoanele mouse-ului, ca n figura Fig.6.26,
n spaiile rezervate fiecruia. Deplasarea lor se execut ntotdeauna pe acelai
traseu, avnd ca referin centrul palmei la plecare i poziia iniial la
ntoarcere, iar limitele deplasrii sunt urmtoarele: limita superioar este
delimitat de poziia lor iniial, limita inferioar este delimitat de conturul
palmei. Instruciunile care realizeaz aceste operaiuni sunt ilustrate, pentru un
singur deget, n figura Fig.6.30.

Fig.6.30 Deplasarea unui deget n programul AnimatedHand.pde


Instruciunea println(thumbFinger = , byte(int(thumbFinger.x)));
tiprete n consol valoarea octal actualizat a centrului obiectului
thumbFinger. Este nevoie de conversia n baz octal pentru a putea realiza
transmisia serial cu eficien maxim.
Instruciunea serialInArray[0] = byte(int(thumbFinger.x)); stocheaz
valoarea actualizat a centrului obiectului thumbFinger n prima poziie a
NECLASIFICAT
68 din 89

NECLASIFICAT

vectorului serialInArray. Acest vector este destinat transmiterii seriale ctre


microcontroler i va fi explicat n capitolul 6.2.2

6.2.2. Comunicaia cu microcontrolerul Atmega328P


Realizarea transmisiei seriale este ilustrat n figura Fig.6.31.

Fig.6.31 Realizarea transmisiei seriale n programul AnimatedHand.pde


Prima instruciune din figura Fig.6.31 reprezint includerea bibliotecii
seriale n program. Pentru transmiterea serial a mesajelor este necesar
declararea unui obiect din clasa Serial, denumit port n cadrul acestui
program, care permite accesul la canalul serial de comunicaie de tip COM.
Ulterior este declarat un vector unidimensional de tip byte, cu 5 elemente,
pentru a transmite informaii despre dinamica scenei ntr-o ordine stabilit de
utilizator.
n funcia setup() instruciunea println(Serial.list()); afieaz n
consol lista cu porturi seriale disponibile. Ulterior este creat obiectul port
declarat n antet, fiind astfel iniializat canalul serial de comunicaie la o vitez
de modulaie de 9600 bauzi, pentru a fi aceeai ca a microcontrolerului
MCU_Tx1.
NECLASIFICAT
69 din 89

NECLASIFICAT

n componentele vectorului serialInArray din interiorul funciei


draw() sunt stocate n baz octal valorile actualizate ale centrelor elipselor
care formeaz degetele, apoi sunt trimise pe canal, n ordine cresctoare.
Ateptarea de 100ms este necesar pentru recepia ACK-ului.

6.3. QPython v3.0


Programul creat n versiunea QPython v3.0 pentru Android este un script
i se numete BluetoothCar.py, limbajul de programare utilizat este Python
v3.0, iar compilarea este realizat de SL4A. Funcionarea programului este
realizat pe baza accelerometrului smartphone-ului.
SL4A este un executor de scripturi care suport mai multe limbaje de
programare, precum: Beanshell, JRuby, Lua, Perl, PHP, Python, Rhino.
Orice script SL4A trebuie s importe un fiier extern surs, pentru
limbajul de programare dorit, pentru a-i putea folosi funciile API.

Fig. 6.32 Importarea fiierelor surs n programul BluetoothCar.py


n QPython trebuie importat fiierul surs al executorului de scripturi
SL4A, ntruct Android Faade este parte component a sa. Al doilea modul
importat este cel de timp. Vor fi utilizate perioade de repetiie i intervale de
ntrziere a execuiei.
Aspecte de reinut la programarea n Python:
Este un limbaj orientat pe obiecte;
Utilizeaz indentri ca referin;
Este case-sensitive.

NECLASIFICAT
70 din 89

NECLASIFICAT

Fig. 6.32 Definirea unor constante n programul BluetoothCar.py


n figura Fig. 6.32 sunt definite constante utilizate n structuri
decizionale. Constanta tilt_angle definete limita unghiului de nclinare al
smartphone-ului. Restul constantelor definesc caractere pentru stabilirea
direciei platformei mobile, identice cu cele descrise n capitolul 6.1.2.2 ce vor
fi transmise serial, n funcie de valoarea unghiului de nclinare.

Fig. 6.33 Interogare i pornire/repornire modul Bluetooth n programul


BluetoothCar.py
Majoritatea instruciunilor n SL4A reprezint API-uri asignate obiectului
cu drept de utilizare (n cazul programului BluetoothCar.py, obiectul este
droid): droid.API()
nainte de a realiza conexiunea cu modulul HC-06, se verific starea
modulului Bluetooth al smartphone-ului i se pornete sau repornete, dup caz,
pentru a nu exista eventuale conexiuni anterioare ale acestuia, proces ilustrat n
figura Fig.6.33.
Instruciunea droid.startSensingTimed(2,1000) determin orientarea i
micarea smartphone-ului. Primul argument al API-ului se refer la
accelerometru, iar al doilea, la intervalul necesar senzorului de colectare a
informaiilor.

NECLASIFICAT
71 din 89

NECLASIFICAT

n continuare se realizeaz o bucl infinit n interiorul creia se


realizeaz procesele de cutare, identificare i conectare cu modulul HC-06

(Fig.6.34).
Fig. 6.34 Procesul de conectare cu modulul HC-06 n programul
BluetoothCar.py
Sunt declarate dou constante, uuid i BT_DEVICE_ID. UUID
(UniqueUserID) este adresa de identificare a smartphone-ului n comunicaia cu
modulul HC-06, iar BT_DEVICE_ID este adresa de identificare, pe 6 octei, a
modulului HC-06. API-ul bluetoothActiveConnections() verific n continuu
starea conexiunii iar n cazul n care cmpul de date din obiectul result este
gol, execut procesul de conectare. Timpul alocat acestui proces, conform
protocolului RFCOMM este de aproximativ 10 secunde. Au fost realizate, ns,
testri pentru intervale de timp de 1 secund i nu au existat erori. La finalizarea
procesului de conectare va aprea pentru scurt timp mesajul Connected to
PlatformaMobila i n consol va fi afiat textul Se pot da comenzi.
n acest moment se vor citi valorile dintr-o list dedicat, dup cum este
ilustrat n figura Fig.6.35.

NECLASIFICAT
72 din 89

NECLASIFICAT

Fig. 6.35 Transmisia de date n programul BluetoothCar.py


Urmeaz o secven de structuri decizionale, cu valorile rezultate stocate
ntr-o variabil temporar state. Valorile vor fi ulterior introduse ntr-o coad
de evenimente, pentru a fi transmise dup legea FIFO.

6.4. Calcularea timpilor de rspuns teoretici n


cazul nRF24L01
Conform foii de catalog a modulului nRF24L01, timpii de transmisie a
unui pachet sunt:
8.2 @ 1
= {
6.0 @ 2

(6.4.1)

2 = 130

(6.4.2)

[]
1[]
3,45[]
12[]
8[ ] (
+
+
+
) + 9[]

[ ]

(6.4.3)

(6.4.4)

[]
1[]
3,45[]
12[]
8[ ] (
+
+
+
) + 9[]

[ ]

(6.4.5)

8[][]

=
=
[ ]

(6.4.6)

= + 22 + + +

NECLASIFICAT
73 din 89

(6.4.7)

NECLASIFICAT

Din biblioteca RF24 reiese c pentru un clock de 16MHz este necesar o


rat de transfer SPI de minim 2 ori mai mare dect rata maxim de transfer prin
aer, adic 2Mbps. Pentru c SPI este un protocol serial sincron, pentru fiecare
ciclu de clock este transferat un bit. Rezult c este necesar o rat de transfer
SPI de 4Mbps, adic frecvena clock-ului trebuie s fie egal cu 164 = 4.
Modulele nRF24L01 n sistemul robotizat telecomandat au stabilite adrese
de 5 octei, comunic la o rat de transfer prin aer de 1Mbps, lungimea
pachetului informaional este de 32 octei i au lungimea CRC-ului de 2 octei,
ceea ce nseamn c:
= 8.2
= 329s
= 329
= 64
= 990.2

(6.4.8)
(6.4.9)
(6.4.10)
(6.4.11)
(6.4.12)

unde

timpul efectiv de emisie/recepie


timpul de emisie/recepie al ACK
timpul de ncrcare al pachetului pe canal prin SPI
timpul total de emisie/recepie.

6.5. Calcularea razei maxime de aciune n condiii


de laborator
Raza de aciune teoretic se calculeaz n baza formulei lui Friis:
2
=
(4)2

(6.4.13)

Unde:

puterea la recepie
puterea la emisie
ctigul la recepie
ctigul la emisie
2 viteza luminii
distana dintre antena de emisie i cea de recepie
frecvena de lucru central

Dac introducem n relaia (6.4.13) lungimea de und, relaia devine:


NECLASIFICAT
74 din 89

NECLASIFICAT

2
=
(4)2
Din relaia (6.4.14), raza de aciune va fi:
=

(6.4.14)

(6.4.15)

Raza de aciune va fi maxim pentru o putere de recepie minim


Puterea minim de recepie este limita sensibilitii receptorului pentru o
rat de transfer de 1Mbps: -85dBm. Realiznd conversia n wai, rezult:
[]
10

10
[ ] = 1
1000

[]30
10

(6.4.16)

= 1011.5 3.162277 1012

(6.4.17)

= 1 10

Din relaia (7.1.4) rezult

[ ] = 10

8530
10

Pentru calcularea lungimii de und, se ine cont de frecvena de lucru pe


canalul 76, = 2476:

3 108
(6.4.18)
= =
= 0.121
2.476 109 1
nlocuind valorile obinute n relaia (6.4.15), aproximnd ctigurile la
emisie i la recepie la 2dBi (1.585) i innd cont c = 0 = 1,
rezult:
0.121 103 (1.585)2
(6.4.19)

=
= 271.39
4
3.162277 1012
Trebuie menionat c n formula de calcul a lui Friis nu sunt prevzute
atenurile de mediu. Foaia de catalog a modulului nRF24L01 nu prevede clar o
raz maxim de aciune, ns banda ISM restricioneaz controlul la aproximativ
100m.

7. Studiu experimental
Scopul studiului experimental este obinerea unor informaii practice n
ceea ce privete distana maxim pn la care sistemul robotizat poate fi
comandat att prin tehnologie Shock Burst, precum i a timpului total de
transmisie al pachetelor informaionale n cazul modulelor nRF24L01 n
NECLASIFICAT
75 din 89

NECLASIFICAT

modurile EMISIE/RECEPIE. Ulterior, rezultatele din teorie vor fi comparate


cu cele obinute practic.

7.1. Calcularea timpilor de rspuns practici n


cazul nRF24L01, n raport cu raza de aciune
Au fost executate msurtori n cmp deschis, n vizibilitate direct, la
distanele de 0m, 25m, 50m, 75m i 90m. Msurtorile presupun calcularea
intervalului temporal necesar pachetelor de a parcurge distana Tx-Rx-Tx. Cu
alte cuvinte, dac un pachet a fost emis de sursa S1 la momentul de timp 0 , i
acelai pachet a fost recepionat de ctre sursa S1 la momentul , intereseaz
diferena de drum
(7.1.1)
= 0
exprimat n milisecunde, pe care pachetul o parcurge prin aer. Se emit pachete
ce conin milisecunde generate de ceasul intern al microcontrolerului, la interval
de o secund.

Fig. 7.1.1 Msurtoare la R=0m


Pentru a compara timpul obinut practic cu cel obinut teoretic n capitolul
6.4 conform foii de catalog a modulului nRF24L01, se va utiliza relaia:
=
NECLASIFICAT
76 din 89

(7.1.2)

NECLASIFICAT

unde numrtorul este definit de relaia


=1
(7.1.3)

i reprezint valoarea medie a intervalelor aprute pe monitorul serial. nlocuind


n relaia (7.1.2) se obine:

=1
(7.1.4)
=
2
Conform figurii Fig.7.1.1, la distana de 0m nu exist pachete eronate,
iar valoarea medie a intervalelor este
0 =

Rezult

2 4 + 12 3 + 9
= 3.53
15

(7.1.5)

3.53
(7.1.6)
= 1.76
0
2
ntrzierea dat de atenuarea n mediu, fa de valoarea teoretic este
=

= 1.76 0.99 = 0.77


0

(7.1.7)

Fig. 7.1.2 Msurtoare la R=25m


La distana de 25m, conform figurii Fig.7.1.2, nu exist pachete eronate,
iar valorile temporale sunt:
NECLASIFICAT
77 din 89

NECLASIFICAT

63+45+7+28+29
= 5.26
15
5.26
=
= 2.63
25
2
= 2.63 0.99 = 1.64

25 =

25

(7.1.8)
(7.1.9)
(7.1.10)

Fig. 7.1.3 Msurtoare la R=50m


La 50m, aa cum este ilustrat n figura Fig.7.1.3, exist 3 pachete
eronate din 15 afiate, iar valorile temporale sunt:
4 + 4 5 + 6 + 13 + 16 + 20 + 21 + 26
= 11.45
11
11.45
=
= 5.72
50
2
= 5.72 0.99 = 4.73
50
La 75m, conform figurii Fig.7.1.4, exist 8 pachete eronate din
valorile temporale sunt:
50 =

3 + 9 + 10 + 24
= 11.5
4
11.5
=
= 5.75
75
2
= 5.75 0.99 = 4.76
75 =

75

NECLASIFICAT
78 din 89

(7.1.11)
(7.1.12)
(7.1.13)
15, iar

(7.1.14)
(7.1.15)
(7.1.16)

NECLASIFICAT

Fig. 7.1.4 Msurtoare la R=75m


La 100m au fost realizate msurtori, ns fr vreun pachet recepionat,
astfel c n figura Fig.7.1.5 sunt realizate msurtori la cea mai mare distan
pentru care s-a recepionat mcar un pachet, aproximativ 95m.

Fig. 7.1.4 Msurtoare la R=95m

NECLASIFICAT
79 din 89

NECLASIFICAT

Conform figurii Fig.7.1.4 a fost recepionat un numr de 5 pachete, iar


valorile de interes sunt:
2 6 + 9 + 18 + 20
(7.1.17)
= 11.8
5
11.8
(7.1.18)
=
= 5.9
95
2
= 5.9 0.99 = 4.91
(7.1.19)
95
Adunnd datele obinute ntr-un tabel i notnd = ,
rezult:
95 =

Nr.
R
(ms) (ms) (ms) Semnal

msurtoare (m)
0
3.53
1.76
0.77
1
25
5.26
2.63
1.64
2
50
11.45
5.72
4.73
3
75
11.50
5.75
4.76
4
95
11.80
5.90
4.91
5
>95m
6

Tabel. 7.1

Nivel
comunicaie

n urma analizei msurtorilor se poate deduce c raza de aciune pentru


care exist semnal este de ~95m, dar exist o comunicaie valid la o raz de
aciune de maxim 50m.

8. Concluzii
Sistemul robotizat este utilizat pentru a desfura diverse aciuni, fie
comune, fie primejdioase pentru om. Principiul de funcionare al sistemului este
comunicaia wireless, prin dou tehnologii: Shock Burst i Bluetooth.
Varianta final a proiectului este ilustrat n imaginile de mai jos:

NECLASIFICAT
80 din 89

NECLASIFICAT

Fig.8.1 Centrul Tx

Fig.8.2 Centrul Rx

NECLASIFICAT
81 din 89

NECLASIFICAT

Fig.8.3 Aplicaia AnimatedHand.pde

8.1. n continuare
mbuntirile ce pot fi aduse sistemului se ntind pe o gam larg, att din
punct de vedere mecanic, ct i electronic. Ceea ce mi-am propus n continuare
este o modificare a transmisiei unor comenzi, precum i extinderea razei de
aciune de la zeci de metri, la zeci de kilometri.
n deplasarea platformei mobile este inclus smartphone-ul. Dac se va
nlocui aceast surs de transmisie extern cu o surs de transmisie intern, din
interiorul organismului uman, numrul de componente al sistemului scade, iar
eficiena crete. Comenzile vor fi transmise pe cale neuronal ctre
microcontrolerul MCU_Tx1, care le va transmite ulterior centrului Rx.
Raza de aciune va fi extins prin nlocuirea transmisiei Shock Burst sau
Bluetooth cu GSM. De asemenea, pe suprafaa platformei mobile va fi ataat o
camer IP care va transmite informaii vizuale la centrul de comand.
Dezavantajul unei astfel de extinderi a razei de aciune este c informaiile nu
vor fi afiate n timp real.
NECLASIFICAT
82 din 89

NECLASIFICAT

9. Anexe
9.1. Tabel timpi tranziie i sincronizare modul
nRF24L01
Intervalul de timp al tranziiei de la modul EMISIE la RECEPIE i
vice-versa este identic cu cel al tranziiei de la STANDBY la
EMISIE/RECEPIE.

NECLASIFICAT
83 din 89

NECLASIFICAT

9.2. Profiluri n tehnologia Bluetooth

NECLASIFICAT
84 din 89

NECLASIFICAT

9.3. Comenzi AT modul HC-06


COMAND

RSPUNS

AT

OK

AT+VERSION

OKlinvorV1.8

AT+NAMExyz

OKsetname

AT+PIN1234

OKsetPIN

AT+BAUD1

OK1200

AT+BAUD2

OK2400

AT+BAUD3

OK4800

AT+BAUD4

OK9600

AT+BAUD5

OK19200

AT+BAUD6

OK38400

AT+BAUD7

OK57600

AT+BAUD8

OK115200

AT+BAUD9

OK230400

AT+BAUDA

OK460800

AT+BAUDB

OK921600

AT+BAUDC

OK1382400

NECLASIFICAT
85 din 89

COMENTARIU
Utilizat la verificarea
comunicaiei
Versiunea productorului
Seteaz numele
modulului ca fiind xyz
Seteaz codul PIN al
modulului ca fiind
1234
Seteaz viteza de
modulaie la 1200 bauzi
Seteaz viteza de
modulaie la 2400 bauzi
Seteaz viteza de
modulaie la 4800 bauzi
Seteaz viteza de
modulaie la 9600 bauzi
Seteaz viteza de
modulaie la 19200 bauzi
Seteaz viteza de
modulaie la 38400 bauzi
Seteaz viteza de
modulaie la 57600 bauzi
Seteaz viteza de
modulaie la 115200
bauzi
Seteaz viteza de
modulaie la 230400
bauzi
Seteaz viteza de
modulaie la 460800
bauzi
Seteaz viteza de
modulaie la 921600
bauzi
Seteaz viteza de
modulaie la 1382400
bauzi

NECLASIFICAT

9.4. Regitrii modulului nRF24L01 utilizai n


programare

NECLASIFICAT
86 din 89

NECLASIFICAT

NECLASIFICAT
87 din 89

NECLASIFICAT

9.5. Extras din biblioteca Servo

NECLASIFICAT
88 din 89

NECLASIFICAT

10.

Bibliografie

[1].
Krouk E., Semenov S, Modulation and coding techniques in
wireless communications, John Wiley & Sons, 2011
[2].
Forouzan B., Data Communications and Networking, 3rd Edition,
McGraw-Hill, 2007
[3].
Reas C., Fry R., Processing A Programming Handbook for
Visual Designers and Artists, MIT Press, 2014
[4].
Schwartz M., Arduino Home Automation Projects, Packt
Publishing, 2014
[5].
Atmega 328P datasheet [Atmega datasheet.pdf]
[6].
Bluetooth Security Architecture, Version 1.0, July 15, 1999
[Security_Architecture.pdf] http://www.bluetooth.org
[7].
Specification Volume 1: Specification of the Bluetooth System
Core, Version 1.1, February 22, 2001, [Bluetooth_1_1_vol1.pdf]
http://www.bluetooth.org
[8].
Specification Volume 2: Specification of the Bluetooth System
Profiles, Version 1.1, February 22, 2001,
[Bluetooth_11_Profiles_Book.pdf] http://www.bluetooth.org
[9].
Juha T. Vainio, Bluetooth Security
http://www.niksula.cs.hut.fi/~jiitv/bluesec.html
[10].
nRF24L01+ datasheet http://www.nordicsemi.no
[nRF24L01Pluss_Preliminary_Product_Specification_v1_0]
[11].
Paul Ferrill Pro Android Python with SL4A
[12].
HC-06 datasheet (HC-06_Datasheet.pdf)
[13].
Prof. univ. dr. ing. Alexandru erbnescu Semnale n timp
continuu. Semnale analogice

NECLASIFICAT
89 din 89