Modul telecomandat prin modulație de [625387]
Universitatea “Politehnica” din București
Facultatea de Electronică, Telecomunicații și Tehnologia Informației
Modul telecomandat prin modulație de
frecvență
Proiect de diplomă
prezentat ca cerință parțială pentru obținerea titlului de
Inginer în domeniul Electronica si Telecomunicatii
programul de studii de licență Electronica Aplicata
Conducător științific Absolvent: [anonimizat].Dr.Ing .Alexandru Vasile Flăcău Cristina -Maria
2
3
4
5
6
7
Cuprins
Lista figurilor ………………………….. ………………………….. ………………………….. ………………………….. 9
Lista acronimelor ………………………….. ………………………….. ………………………….. …………………… 11
Introducere ………………………….. ………………………….. ………………………….. …………………………. 13
Capitolul 1 : Structura unui modul telecomandat ………………………….. …………… 15
1.1 Generalități ………………………….. ………………………….. ………………………….. ……………………… 15
1.2 Funcționarea sistemului ………………………….. ………………………….. ………………………….. …….. 19
Capitolul 2 : Microcontrolerul ATmega88 ………………………….. ……………………… 23
2.1 Caracteristici generale ………………………….. ………………………….. ………………………….. ………. 23
2.2 Porturi I/O ………………………….. ………………………….. ………………………….. ………………………. 30
2.3 Convertorul A/D al microcontrolerului Atmega 324 ………………………….. ……………………… 32
2.3.1 Caracteristici generale ………………………….. ………………………….. ………………………….. …32
2.3.2 Tensiunea internă de referință ………………………….. ………………………….. …………………… 34
2.3.3 Timer -ul WatchDog ………………………….. ………………………….. ………………………….. ……35
Capitolul 3 : Elemente de control ………………………….. ………………………….. ……… 37
3.1 Generalități ………………………….. ………………………….. ………………………….. ……………………… 37
3.2 Modulul de Bluetooth HC -05 ………………………….. ………………………….. …………………………. 40
3.3 Sistemul de operare Android ………………………….. ………………………….. …………………………. 44
Capitolul 4 : Realizare practică ………………………….. ………………………….. ………… 45
4.1 Hardwar e ………………………….. ………………………….. ………………………….. ………………………… 46
4.1.1 Puntea H și motoarele de curent continuu ………………………….. ………………………….. …..46
4.1.2 MOSFET -uri ………………………….. ………………………….. ………………………….. ……………… 48
4.1.3 Circuitul de alimentare ………………………….. ………………………….. ………………………….. ..49
4.1.4 Bateriile ………………………….. ………………………….. ………………………….. …………………….. 50
4.1.5 LED -urile ………………………….. ………………………….. ………………………….. ………………….. 53
4.1.6 Oscilatoare cu cuarț ………………………….. ………………………….. ………………………….. …….. 55
4.2 Software ………………………….. ………………………….. ………………………….. …………………………. 56
Capitolul 5: Rezultatele proiectării și implementării ………………………….. ……… 59
Concluzii ………………………….. ………………………….. ………………………….. ………………………….. …65
Bibliografie ………………………….. ………………………….. ………………………….. ………………………….. ..67
Anexe ………………………….. ………………………….. ………………………….. ………………………….. ………… 69
8
9
Lista figurilor
1 Figura 1.1.1 Șasiul, motoreductoarele și roțile …………………………………………………………….. ..17
2 Figura 1.1.2 – RBBB „Board” ………………………………………………………………………… ……………. 17
3 Figura 1.1.3 PCB driver …………………………………………………………………………….. ……….. ……..18
4 Figura 1.1.4 – Noul circuit și sursa d e alimentare în comutație……………………………. …………..18
5 Figura 1.2.1 Structura modului telecomandat…………………………………………………… …………….19
6 Figura 1.2.2 Conectarea Bluetooth prin telefon…………………………………………………. ……………21
7 Figura 2.1.1 Microcontrolerul A Tmega 88………………………………………………………….. ………….25
8 Figura 2.1.2 Schema bloc a microcontrolerului ATMega 88………………………………….. ……… …26
9 Figura 2.1.3 Diagrama bloc a nucleului CPU AVR ……………………………………………. …………… 28
10 Figura 2.1.4 Implementarea microcontrolerului ATMega 324 ……………………………… …………. 29
11 Figura 2.2.1 Schema echivalenta a pinilor I/O ………………………………………………….. ………….. 30
12 Figura 2.2.2 Porturile digitale I/O…………………………………………………………………… …….. …….31
13 Figura 2.3.1 Schema bloc a convertorului……………………………………………………. ………………. 33
14 Figura. 3.1 Structura genera lă a unui sistem de acționare ………………………………… …………….. 37
15 Figura 3.1.2 Factor de umplere…………………………………………………………………. ………. ……….. 39
16 Figura 3.2.1 Rețea Piconet……………………………………………………………………. ………. …………… 41
17 Figura 3.2.2 Modul HC -05…………………………………………………………………….. …………………… 42
18 Figur a 3.2.3 Modulul Bluetooth HC -05…………………………… …………………….. ……………………. 43
19 Figura 4.1.1.1 Proiectarea punții H…………………………………………………………………. ……………46
20 Figura 4.1.1.2 Stările punții H……………………………………………………… …….. ………………………47
21 Figura 4.1.2.1 Simbolurile tranzistoarelor MOSFET………… ……………………………………………48
22 Figura 4.1.3.1 Blocul sursei de alimentare…………………………………………………………………….49
23 Figura 4.1.4.1 Simbolul electric…………………………….. …………………………………………………….50
24 Figura 4.1.4.3 Celula voltaică…………………………………….. ……………………………………………….51
25 Figura 4.1.5.1 Diona luminiscentă………………………………………………………………………………..53
26 Figura 4.1.5.2 Circuitul led -ului……………………………….. …………………………………………………54
27 Figura 4.1.6.1 Circuitul oscilator cu cuarț……………………………………………………………………..54
28 Figura 4.1.6.2 Cristal cu cuarț………………………………………… ……… ……………………………………55
29 Figura 4.2.1 AVR ISP…………………………………………….. ………. …………………………………………56
30 Figura 4.2.2 Schema logică a codului……………………………………………………………………… ……57
31 Figura 5.1 Proiectare Atmega88, bluetooth HC -05 și sursa de tensiune…………………………….59
32 Figura 5.2 Proiectare motoare de curent continuu, led -uri și tranzistoare…………………………..60
33 Figura 5.3 Proiectarea în OrCAD a plăcuței PCB…………………………………………………………..61
34 Figura 5.4 Imaginea printată pe folie utilizată la lampa de UV…………………………………………62
35 Figura 5.5 Plăcuța cu componentele lipite…. ………………………………….. ……………………………..63
36 Figura 5.6 Componentele folosite la deplasarea robotului……………………………………………….64
37 Figura 5.7 Robotul finalizat……………………….. ……………………………………………………………….64
10
11
Lista acronime folosite:
A/D = Analog/Digital
ADC = Analog to Digital Converter
ALU = Arithmetic Logic Unit
BJT = Bipolar Junction Transistor
CAD = Computer Aided Design
C-MOS = Complementary Metal -Oxide Semiconductor
CPU = Central Processing Unit
EEPROM = Electrically Erasable Programmable Read -Only Memory
I/O = In/Out
IR = Infrared
ISP = Internet Service Provider
LED = Light -Emitting Diode
MOSFE T = Metal -Oxide Semiconductor Field -Effect Transistor
N-MOS = N type Metal -Oxide Semiconductor
P-MOS = P type Metal -Oxide Semiconductor
PCB = Printed Circuit Board
PWM = Pulse Width Modulation
RAM = Random Access Memory
RBBB = Right Bundle Branch Block
RISC = Reduced Instruction Set Computing
SRAM = Static Random -Access Memory
UART = Universal Asynchronous Receiver/Transmitter
USART = Universal Synchronous/Asynchronous Receiver/Transmitter
UV = Ultraviolet
12
13
Introducere
Prin intermediul acestei lucr ări îmi propun să prezint modul în care a fost realizat și
programat un robot destinat folosirii în cazul intervenției umane în zone de conflict . În cazul
acestei cercetă ri au fost verificate câteva variante constructive de str ucturi de robot cu
microcontrol er, fiind aleasă cea mai convenabilă soluție sub raport preț/siguranță în
funcționare/simplitate constructivă. Dimensiunile acestui robot permit explorarea unor spaț ii
inaccesibile omului.
Lucrarea prezentă , ”Modul teleco mandat prin modulație de frecvență ”, are în
componența sa un terminal Bluetooth, astfe l încât să se poată transmite date prin intermediul
altui terminal Bluetooth aflat încorpora t în telefonul mobil sau în tabletă, către senzorii externi ai
robotului. Toată partea logică se desfă șoară în interiorul telefonului mobil, fiind efectuată o
aplicație care rulează pe sistemul de operare Android. Robotul nu face decât să preia informații
de la senzori și să interpreteze comenzile primite de la dispozitivul par tener.
În ceea ce privește c onstrucția aparatului din punct de vedere hardware, aceasta a durat
aproximativ trei luni, deoarece majoritatea componentelor au fost comandate din străinătate și
transportul a durat o perioadă de timp îndelungată . PCB -ul s-a realizat manual prin metoda de
transfer UV al cablajului, iar lipirea componentelor a fost realizată cu un ciocan de lipit. Acest
proces a durat două săptămâni pentru realizarea integrală a ansamblului electronic.
În compon ența sa , modulul telecoma ndat are și un microcontroler AT mega 88 ce folosește
la executarea un or instrucțiuni simple. Pentru programarea microc ontrolerului am folosit unelte
de dezvoltare ce sunt puse la dispoziție de Atmel , gratuit pe sit e-ul http://www.atmel.com/ . ISP
(en. In-system programming ) este un mediu de programare dezvoltat pe platforma C++, care
permite dezvoltarea și editarea facilă a programelor și a algoritmilor. Cu ajutorul compilatorului ,
se construiește un program în limbaj C transpus apoi în cod mașină , specific microcontrolerului
ATm ega88.
Din microcontroler am folosit modulele UART (en. Universal Asynchronous
Receiver/T ransmitter ), timere, convertor A/D (en. Analog/Digital) , precum și întreruperile
disponibile ce folosesc aceste module pentru scrie rea unui algoritm performant de control al
robotului.
Dezvoltarea sof tware -ului a durat aproximativ trei luni, fiind începută imedia t după
terminarea proiectării pă rții hardware, dar înainte de a o avea realizată integral . Primii pași au
reprezentat configurar ea perifericelor microcontrolerului și stabilirea unei structuri schelet,
precum și a câtorva mașini de stare pe care acesta să ruleze.
14
15
Capitolul 1
Structura unui modul telecoma ndat
Un robot este conside rat un operator mecanic sau virtual, artificial. Acesta este un sistem
compus din mai multe elemente , printre care : partea mecanică, senzori și actuatori , și un
mecanism de direcționare, care are drept scop îndeplinirea obiectivelor robotului cu succes,
evaluând informațiile senzorilor. Mecanismul reglează motoarele ș i planifică mișcările ce vor fi
efectuate. Pentru a prelua date și pentru a le pune î n aplicare , un robot are nevoie de senzori și
elemente de execuție (actuatori).
1.1 Generalități
Roboții , structuri indispensabile funcționării societă ții umane a secolului contemporan,
sunt întâlniți în diverse arii de interes , precum dive rtisment , comunicații , medicină , transporturi
sau agricultură ce duc la îmbunătățirea perfomanțelor umane din punct de vedere cantitativ și
calitativ.
Conceptul de roboți provine din cele mai îndepărtate timpuri. O primă relatare a acestora a
fost prezentată în diferite mituri și legende din epoca antică , cum ar fi î n Iliada lui Homer în care
este descr isă darul zeului meșteșugarilor și al metalurgiei Hefaistos ce putea transforma aurul în
servitori mecanici cu asemănare umană. De asemenea put em găsi astfel de referiri și î n
legendele evreiești și ale viki ngilor , unde sunt descriși oameni uri ași făcuți din lut și animați cu
ajutorul magiei ce erau creați spre a ajuta oamenii la muncile grele. Aceștia erau văzuți ca
soluție pentru dezvoltarea societății umane, iar Homer specula că existența acestora ar putea duce
la abolirea sclaviei.
Din seco lul al X -lea umanitatea a simțit nevoia de a a vea dispozitive care să realizez e
anumite sarcini î n locul omului . Astfel î n 1088, în China , a fost construi primul ceas mecanizat
care avea figurine înfățișând oameni (manechini) , care indicau ora și băteau clopotele. Puțin timp
mai târziu , unul ditre primii roboți cu chip uman a fost pi ctat de înșuși Leonardo Da Vinc i în
jurul anului 1495.
Odată cu revoluția industrială , care a avansat foar te mult datorită cererii umanită ții, au
apărut ș i roboții mode rni. Aceștia au început să evolueze din ce în ce mai mult , fapt care a dus la
crearea de motoare compacte , ce puteau pune în mișcare mașinării voluminoase folosite în
industrie. Astfel după 1920, apare ideea creării unor mașină rii automate de mărime umană ce pot
imita mișcările omul ui așa cum au fost relatate în legende le copilăriei . La sfârșitul celui de al
Doilea Război Mo ndial s -au pus bazele inteligenței artificiale, cercetarea fiind făcută de mai
multe grupuri de interes. La aceste descoperiri au luat parte numeroși ingineri precu m Nobert
Wiener, Alan T uring și Claude Shannon, dar și vestiți psihologi precum Walter Pitts și Warrn
McCulloch.
16
Prima utilizar e a roboților a avut loc în interiorul fabricilor , aceștia fiind roboți industriali.
Aceștia erau niște mașină rii fixe , capabile să producă bunuri fără asistență umană având fiecare
un rol fix î n procesul de producție. Roboții industriali controlați și roboți i care utilizează
inteligență artificială au început să fie construiți începând cu anul 1960.
Cu toate acestea , nevoia de roboți s -a amplificat , iar nevoia lor de a arăta cât mai uman a
început să ia alte direcții. Începând cu anii 1980 , Texas Instruments au realizat cercetări în
crearea unor bombe și rachete inteligente din punct de v edere electronic. În industrie , roboții au
început să ia locul oamenilor în producție, lărgind astfel gama posibilitățile și scăzând costurile,
deoarece lucru rile pe ca re oamenii nu le pot face fizic sunt rezolvate de roboți cu precizie
maximă.
În prezent roboții se împart în două mari categorii în funcție de utilizarea lor, și anume în
roboți autonomi cu funcționare generală și roboți dedicați.
Roboții autonomi cu funcționare generală pot îndeplini o varietate de fun cții
independent. Un robot auton om este un robot care efect uează comportamente sau sarcini cu un
grad ridicat de autonomie . Acesta este deosebit de dorit î n domenii cum ar fi explorarea
spațiului, curățarea pardoselilor, peluze cosit e, tratarea apelor uzate , livrarea bunurilor și
serviciilor. Ca și în cazul computerelor , roboții se pot con ecta la diferite rețele, li se pot schimba
sau altera partea software și li se pot atașa accesorii pentru a le crește utilitatea. Roboții autonomi
de uz general pot să recunoască obiecte sau perso ane, funcțiile lor fiind limitate în momentul în
care trebuie să rezolve situații noi, de care nu s -au lovit în trecut.
Roboții dedicați fac parte din categoria celor industriali. Aceștia sunt î n general imobili și
au o funcți e specifică în uzine cum ar fi: sudură, lipire, împachetare, amplasare componente
electronice în locații specifice cu precizie maximă. Aceștia sunt utilizați în multe sarcini care
pentru oamenii ar fi plictisitoare , murdare sau periculoase precum explorarea altor planete, a
vulcan ilor, curățarea unor țevi lungi ce conțin materiale periculoase, dezamorsare de bombe etc.
Aplicație Maze Solving Robot V3
Datorită evoluției tehnologice , roboții realizează astăzi o serie de activițăț i cât mai
apropiate de activit ățile umane. Aceș tia pot fi folosiți în situații periculoase în care operatorul
uman nu poate ajunge sau este foarte periculos să intervină.
Un model de robot mobil este Maze Solvin Robot V3, o aplicație ce se regăsește în țările
din întreaga lume. Pentru construcția rob otului , Patrick McCabe , un student al Institutului
Tehnologic Massachusett, Cambridge a dezvoltat în mediul de proiectare AutoCAD platforma de
bază sau șasiul robotului ; acesta fiind alcătuit din două placi montate împreună cu ajutorul unor
distanțiere. S -a ales ca material de lucru plexiglas ul (material termoplastic rigid, transparent cu o
foarte bună transmisie luminoasă), ce urma să fie pre lucrat prin debitare cu laser. De șasiu , în
partea superioară a punții de jos , au fost atașate două motoare de curen t continuu, având în
componența lor un reductor 30:1 din roți metalice și o tensiune de alimentare de 6 V. Roțile din
17
plastic cu anvelope de silicon , ce măsoară în diametru 32 milimetrii , se pot atașa prin simpla
apăsare pe arborele motorului.
Figura 1.1.1 Șasiul, motoreductoarele și roțile . [10]
Urmărind realizarea unui robot cât mai simplu și cu un aspect cât mai plăcut s-a trecut la
integrarea celor două circuite imprimate, rezultând placa Really Bare -Bones Board (RBBB),
prezentată în figura 1. 1.2, care folosește un microcontroler ATmega 328 produs de către firma
Atmel și un driver creat de acesta în mediul de proiectare Eagle .
Circuitul rezultat este de fapt un Arduino la care a fost adăugat un driver SN754410
pentru mot oare. După cum se observă în figura mai jos atașată, ca ieșiri au fost păstrate doar ce i
pentru senzori și motoare le. Un ava ntaj suplimentar al ace stui circuit, este accesul la pinii de
ENABLE ai driverului. Aceștia sunt conectați la modulatoarele PWM de l a microcontroler care
permit un co ntrol asupra vitezei robotului. Pe pinul 13 al microcontrolerului există, de asemenea,
un led care poate fi folosit pentru depanare.
Figura. 1.1.2 – RBBB „Board” . [10]
Really Bare -Bones Board a fost proiectat pentru a fi cât mai compact și cât mai ușor de
asamblat; Arduino adresâdu -se în special studenților și persoanelor care crează un prototip. Placa
poate fi conectată la un montaj sau poate fi integrată pentru a putea fi folosită în proiecte mai
mari sau mai mici, cum ar fi jucării le, aparate le mici, proiecte le ușor de transportat.
18
RBBB include toate funcțiile pe care le oferă celelalte plă ci Arduino , excepție făcând
limitările fizice.
Figura 1.1.3 PCB driver . [10]
Au fost adăugați trei pini pentru o sursă de alimentare în comutație (Pololu Adjustable
Boost Regulator) care oferă două game de valori de reglare, de la 2.5 V până la 9.5 V și de la 4 V
până la 25 V. Pentru acest robot s -a ales primul domeniu de valo ri. Motoarele și driverul au fost
alimentate de la o tensiune de 6 V. A mai fost adăugată o ieșire digitală lângă ieșirile analogice ,
care permite ledurilor infraroșu (en. Infrared Light -Emitting D iode – IR LED ) de pe bara de
senzori (Pololu QTR -8A Reflectance Sensor Array) care permite controlul acestora.
Alimentarea robotului se realizează cu ajutorul unui suport de patru acumulatori tip AA.
De asemenea , suportul are încorporat un comutator care ajută la înch iderea și la deschide rea
conexiunii dintre cele patru celule și circuit.
Figura 1.1.4 Noul circuit și sursa d e alimentare în comutație . [10]
Robotul a fost programat folosind regula de stânga precizată anterior. Pe lângă toate cele
menționate, există și o funcție care reface cel mai scurt drum calculat de către robot .
19
1.2 Funcționarea sistemului
Obiectivele principal e ale tezei de licență sunt studiul, concepția, dezvolta rea,
implementarea și testarea unui sistem de învățare pentru roboți autonomi , care execută diferite
activități de deplasare și manipulare în anumite medii.
Platforma de bază a robotului va fi compusă din el ementele necesare deplasării acestuia ,
din alimentarea circuitului cu mijloace de comunicație folosite de operatorul uman pen tru
realizarea comenzi lor și obținerea de informații. Caracteristicile esenți ale ale platformei de bază
sunt: dimensiuni le mici, masa utilă de 270 grame , necesare pentru ca robotul să poată fi ușor de
manevrat în diferite medii și expus la anumite situați i. Tracț iunea se face cu ajutorul a două roți
motrice. Roțile vor fi acționate de motoarele de curent continuu care vor fi cuplate cu cutii de
viteze variabile , pentru un control mai eficient al puterii și pentru cuplul motoarelor. Alimentarea
se face cu patru baterii de tip AA de 1.5 V, asigurând o misiune de 3 -4 ore.
Prin structura unui robot se înțelege un sistem compus din mai multe subsisteme.
Sistemul este un ansamblu al părților componente, precum și a legăturil or dintre acestea. Modul
de compune re a unui sistem din subsisteme și legăturile dintre aceste subsisteme definesc
structura unui sistem. Această compunere a sistemelor din subsisteme se ilustrează folosind
schema bloc, iar legăturile di ntre subsisteme se evidențiază prin matrici de cuplare ,care definesc
legăturile dintre "intrări" și "ieșiri ", și matrici de structură , care ne arată modul de legare a
subsistemelor.
Figura 1.2.1 Structura modului telecomandat [17]
În structura acestu i proiect a fost abordată o pro blemă complexă, determinată de
necesitatea definirii principalelor subsisteme componente ale acestui robot mobil, care să poată fi
dezvoltată în etapele ulterioare. Pornind de la o structură de bază specifică unor roboți mobili, în
cadrul studiului realizat pe capitole, s -a pornit de la o analiză în detaliu a unor subsiste me de
bază, evidențiind realizăr ile specifice pe plan mondial în acest domeniu, care în ultima perio adă
beneficiază de o dinamică de dezvoltare impresionantă.
20
În figura 1.2 .1 se prezintă schema funcțion ală a robotului ce urmează a se realiza în
cadrul proiectului ” Modul delecomandat prin modulație de frecvență ”. Placa robotului pe care
sunt monta te toate module le de ca re are nevoie pentru a fun cționa, aceasta a fost facută manu al
prin meto da de transfer UV (en. ultraviolet) a cablajului , iar componentele au fost lipite cu un
ciocan de lipit.
Blocul principal din structură este sistemul de procesare al robotului c are cuprinde
microcontrolerul AT mega88. Acesta are rolul de a exe cuta programele utilizatorului și de a
controla prin PWM (en. Pulse Width Modulation ) motoarele de curent continuu, menținând
viteza în funcție de sarcină. Microcontrolerul asigură conexiunea dintre toate elementele
electronice și cele mecanice. Sub aceeași car casă este gă zduit și modulul de Bluetooth HC -05
care are rolul de a realiza legătura dintre robot ș i telefonul mobil.
Există mai multe metode p entru a co ntrola turația motoarelor de cu rent continuu . Cea mai
simplă metodă ar putea fi înserierea unui rezistor variabil î n circuitul de alimentare al motorului.
Modificarea valorii rezistenței duce la modificarea tensiunii aplicate motorului. Variația tensiunii
nu este proporțională cu va rianția rezistenței , ci depinde ș i de curentul absorbit de motor. Având
în vedere faptul că se pierde foarte multă energie prin disipare a căldurii, această metodă nu est e
eficientă.
Pentru ca robotul să se poată deplasa sau să își poată mișca vreun membru trebuie să
amplasăm și să controlăm diverse motoare care au atașate fie roți care pot servi ca principal
mijloc de locomoție , fie diverse roți zimțate care pot produce deplasarea unu i braț sau strângerea
unui clește.
Motoarele sunt dispozitive care depind de funcțiiile robotului , prin urmare pot fi
clasificate în motoare hidraulice sau electrice. Motoarele hidraulice sunt folosite pentru roboții
care au rolul de a acționa asupra uno r obiecte de mare greutate, deoarece motoarele electrice nu
pot face față la asemenea sarcin i. Acestea din urmă sunt folosite în cazul unor sarcini c e necesită
exactitate mare, deoarece ele pot fi controlate la un nivel mult mai înalt decât cel al motoarel or
hidraulice.
De obicei , pentru a alimenta un asemenea motor avem nevoie de o tensiune cu o valoare
de maxim 20 V și de un curent cu o gamă de valori cuprinsă între 500 mA și 8 A, iar comanda
lor necesită un curent de 20 mA, deci pentru a le putea controla pe circuitul nostru este nevoie de
un montaj special cunoscut în mod uzual sub denumirea de punte H .
Pentru proiectul meu de licență am avut nevoie de un telefon mobil care lucrează pe
sistemul de operare Android și este echipat cu Bluetooth. În ceea ce privește telefonul mobil nu a
fost necesar să programez nimic în plus, ci doar s ă instalez o aplicație pe telefon din magazinul
virtual al mobilului. Aplicația aleasă de mine se numește ”Ard uino RC” . Am ales această
aplicație deoarece este ușor de utilizat, tot ce trebuie să fac ca să realizez conexiunea este
accesarea aplicației printr -un simplu clic și conectarea telefonului la Bluetooth.
Aplicaț ia de pe telefonul mobil oferă utiliz atorului o interfață interactivă și uș or de
folosit , prin care acesta poate da comenzi către mașină (înainte, înapoi, stânga, dreapta) .
Comenzile sunt interpretate de către modul ul de Bl uetooth și transmise mai departe către
microcontrol er-ul ATMEGA 88 prin interfața serială USART (en. Universal
Synchronous/Asynchronous Receiver/Transmitter ). Mai departe, informația se transmite că tre
puntea H și către motoare le de curent continuu .
21
Tehnologia Bluetooth este o soluție economică pentru comunicațiile fără fir, fiind
acceptată la nivel global. Dispozitivele cu Bluetooth pot crea rețele între computere, notebook –
uri, telefoane mobile și alte dispozitive mobile. Un avantaj suplimentar ar putea fi acela că
dispozitivele nu trebuie să fie setate de fiecare dată pent ru a comunica între ele și de asemenea
pot rula în diferite medii . Producătorii de dispozitive Bluetooth le creează după aceleași
standarde , astfel încât nu apar probleme privind interoperabilitatea între diverse tipuri de
dispozitive .
Pentru proiectul meu am ales să folosesc un modul de Bluetooth HC -05 format dintr -un
modul de interfață serială Bluetooth și un adaptor Bluetooth. Modulul serial Bluetooth este
utilizat pentru c onversia port -serial Bluetooth. Modulul de Bluetooth HC -05 lucreză la o tensiun e
de putere mică de 1.8 V, având tensiuni cuprinse între 3.3 V si 5.0 V, având o rată de transfer de
9600.
Figura 1.2.2 Conectarea Bluetooth prin telefon
22
23
Capitolul 2
Microcontrolerul Atmega88
Un microcontroler este un sistem într eg amplasat pe o singură capsulă mică. Acesta este
cunoscut sub numele de ”system on a chip ”, conținând o unitate de procesare, o memo rie și
periferice de intrare/ieș ire programabile. Cu toate aceste componente încorporate îl putem
considera un sistem înglobat. Microcontrolerul poate lucr a și fără un sistem de operare, chiar și
în situația în care are o memorie foar te mică, fiind necesar doar un program de o complexitate
mai scăzut ă, mai ușor de creat și de imple mentat.
2.1 Caracteristici generale
Majoritatea r oboți lor din zilele noastre sunt controlați d e cel puțin un microcontroler.
Acesta reprezintă creierul robotului, asigurând conectivitatea di ntre toate elementele electronice
și mecanice , precum și funcționarea lor simultană pentru îndeplinirea sarcinii dorite. Toată partea
decizională se realizează aici, unde prin analizarea ieșirii de la senzori are loc alocarea acțiunilor
pentru îndeplinirea sarcinii. Robotul poate fi programat să realizeze mai mu lte funcții dacă are în
componența s a un microcontroler destul de performant. În general , microcontrolerul poate fi
programat în diferite limbaje de programare, cel mai utilizat lim baj contemporant fiind C -ul sau
Asembler -ul.
Un al t concept cheie al microcontrolerului este cel al întreruperilor . Această funcție îi
permite acestuia să răspundă în timp real la orice factor perturbator ce acționează asupra
sistemului. Întreruperile sunt în esență niște schimburi ce au loc în fluxul de control , care nu su nt
cauzate de programul care se execută, ci de alte cauze ce sunt deobicei în legatură directă cu
dispozitivele de intrare/ieșire ( I/O).
O altă caracteristică importantă a microcontroler ului este cea a pinilor de intrare/ieșire ,
care reprezintă baza controlul ui unui robot. Aceștia sunt configura ți prin programul încărcat pe
microcontroler să fie ori în stare de ”intrare” ori în stare de ”ieșire” depinzând de ce dorim să
cone ctăm la ei. Dacă aceștia se află în starea de ”intrare” pot fi folosiți pentr u citirea valorilor
primite de la senzori, dar dacă se află în stare de ”ieșire” pot fi folosiți la controlarea
dispozitivelor externe , cum sunt motoarele și LED -urile.
Depinzând de mărimea robotului pe care dorim să îl construim putem alege ca pl aca PCB
să conțină microcontrolerul sau dacă dorim să simplificăm proiectarea putem folosi un modul
preconstruit ce are pinii și oscilatorul de cuarț deja configurat. Pentru această aplicație am ales să
folosim un microprocesor pe care l -am integrat pe plă cuța PCB. Am ales utilizarea unui procesor
de tip ATm ega88 datorită performanțelor sale deosebite.
Microcontrolerul Atmega88 face parte di n seria microcontrolerelor AVR. Acesta este u n
microprocesor cu o arhitectură RISC (en. Reduced Instruction Set C omputing ), fiind produs de
24
Atmel. Arhitec tura acestui microprocesor a fost proiectată de câțiva oameni la o universitate
norvegiană de științe. Microcontrolerul are integrat pe o singură capsulă oscilatorul, memoria
program, o memorie RAM, numărătoare, int erfețe de comunicație și periferice de program
intrare/ieșire. De asemenea , microcontrolerul poate avea în structura sa blocuri analogice cum
ar fi: modulatoare PWM , convertoare analog -numerice de 8, 10 sau 12 biți, comparatoare
analogice, etc.
Microc ontrolerele mai noi au în structura lor o memorie de date integrată de tip RAM
(en. Random -Access M emory ), pe care o folosesc pentru variabile și o memorie de tip
EEPROM (en. Electrically Erasable Programmable Read -Only Memory ) pentru stocarea
constantelor.
La fel ca microprocesoarele, unele tipuri de microcontrolere pot adresa memorii externe,
de exemplu o memorie de program și o memorie RAM. Microcontr olerele care au în
componența s a o memorie FLASH (en. Free Electron LAS er in Hamburg ) s-au dezvoltat foarte
rapid din cauza costului redus și a modul ui de utilizare foarte simplu, care duce la reducerea
timpului de proiectare. Acest tip de memorie poate f i ștearsă și înscrisă de foarte multe ori,
suficient pentru punere a la punct a oricărei aplicații. P rețul unui microcontroler cu memorie
FLASH încorporată este foarte mic, de câ țiva dolari, însă cu un program de aplicație prețul
acestuia poate crește de până 100 de ori mai mult.
Aceste tipuri de microp rocesoare folose sc o arhitectură de tip Harvard, tipic
microcontrolerelor RISC, cu o memori e de 12 , 14 sau 16 biti, codul de program executându -se
într-o singur ă perioadă de ceas, iar procesarea info rmațiilor se realizează utilizând tehnica
paralelismul ui, având posibilit atea de a înscrie programul de aplicație direct în circuit . Înscrierea
în circuit ISP (en. In S ystem Programming) se face pe interfața serie SPI (en. Serial Peripheral
Interface ).
O altă caracteristică importanță a acestor familii de microcontrolere o constituie
consumul mic de energie. Tensiunile de alimentare au valori cuprinse î ntre 1.8 V si 5 V.
Procesorul activ poate consuma 1. 1 mA la o frecvenț ă de 1 MHz și o tensiune de alimentare de 3
V.
O famillie de microcontrolere cu arhitectură RISC din se ria AVR a firmei Atmel
cuprinde : ATmega48A, ATmega48PA, Atmega324A, ATmega88PA, ATmega168A,
ATmega168PA, ATmega324, ATmega328P ,.
Microcontrolerul ales de mine, și anume ATmega 88, este un circuit electronic integrat
produs de compania Atmel. El are la b ază un set de instrucțiuni AtmelAVR.
Microcontrolerul ATm ega88 poate fi inclus perfect în aplicații le de comand ă a roboților
mobili, a celor industriali, în controlul motoarelor, senzorilor de consum redus, în cheile
electronice, în industria automobilelor, et c.
Acesta este un microcontroler de înaltă performan ță, realizat cu tranzistoare CMOS de
mică putere pe 8 biți și este bazat pe arhitectura AVR RISC. Cu ajutorul performanței de 1MIPS
pe MHz, pentru executarea unor instrucțiuni pute rnice într-un singur tact, microcontrolerul
25
permite oricărui inginer sau proiectant de sistem să optimizeze consumul de putere contra vitezei
de procesare.
Atmega88 foloseș te o arhitectură RISC avansată, prezintă un set de 131 , majoritatea
executându -se într -un singur ciclu de ceas. În ceea ce privește modul de organizare al memoriei,
această clasă de microcontroler c onține 32 de r egistre de uz general pe 8 biți , capacitatea de
procesare fiind de până la 20MIPS la 20 MHz.
Memoria ne volatilă de andur anță ridicată este împarțită în 8 KB de memorie de program
nevolatilă (FLASH) auto programabilă, dintre care 0.5 KB sunt ocupați de bootloader -ul de
arduino, 512 B de memorie EEPROM – memorie d e date ce trebuie să fie salvată când nu mai
există alimentare cu energie electrică, 2 KB de memorie internă SRAM – memorie de date
folosită de un program în timpul executării sale.
Microcontrolerul este dotat cu 23 de linii generale intrare/ieș ire, ce sunt grupate în trei
porturi: PORTUL B, PORTUL C, PORTUL D, acestea realizând conexiunea fizic ă între
microcontroler și lumea externă , 6 canale PWM (OC0A, OC0B, OC1A, OC2A, OC1B, OC2B),
USART, 6 canale ADC cu o acuratețe pe 10 biți.
Figura 2. 1.1 Microcontrolerul A Tmega 88[9]
Microcontrolerul are o interfață serial, ADC , cu 6 canale (8 canale în TGFP și pachete
MLF) cu o acuratețe de 10 biți. Cronometru l este în timp real, dar oscilatorul este separat. Acesta
conține și numărătoare pe 8 biți (T0, TOSC1) care sunt flexibile cu moduri de comparare.
Atmega 88 are suplimentar în componența sa și un cronometru pe 16 biți (T1), de supraveghere ,
cu oscilator inter n. Pentru a economisi putere a fost integrat un port serial SPI.
Acesta d ispune de cinci ”moduri de somn ”: modul Standby, m odul ADC Noise
Reduction, modul Idle, modul Power -down, modul Power -save.
În continuare vom explica pe scurt semnificațiile fiecărui modul. Așadar , modulul
Standby arată că funcționează doar oscilatorul , în timp ce restul dispozitivulu i este în repaus.
Modul ul ADC Noise Reduction oprește unitatea centrală și toate modulele de I/O cu e xcepția
26
numărătorului asincron ș i a ADC -ului, pentru a minimaliza zgomotul de comutație din timpul
conversiei . Modul ul Idle oprește unitatea centrală , în timp ce permite SR AM-ului, cronometrelor
numărătoarelor, porturilor SPI și sistemului de întrerupere să funcționeze. Modul ul Power -down
salvează conținutul registrelor , dar îngheață oscilatorul, făcând incapabile orice alte funcții ale
cipului până la următoarea întrerupere sau resetare de hard ware . Modul ul Power -save ne
informează că numărătorul asincron continuă să funcționeze, fapt ce permite utilizatorului să
mențină o bază , în timp ce restul dispozitivului este în repaus . Portul B este un port de
intrare/ieșire bidirecț ional pe 8 biți cu rezistoare intern e selectate pentru fiecare bit. Portul C
(PC0…PC5) este un port bidirecțional de I/O pe 8 biți cu rezistoare interne selectate pentru
fiecare bit. PC6/RESET PC6 este folosit ca pin de I/O atunci când conținutul RSTDISB L este
programat, caracteristicile sale fiind diferite față de ceilalți pini ai portului C.
ATMega 88 este un microcontroler CMOS cu un consum redus de putere , pe 8 biți , ce are
la bază o arhitectură AVR RISC îmbunătățită. Prin executarea de instrucțiuni puternice într -un
singur ciclu de ceas ATMega88 atinge capacități de procesare de 1 MIPS pe MHz permițând
celui ce face design -ul de sistem să optimizeze consumul de puter e în funcție de putere a de
procesare.
Figura 2.1.2 Schema bloc a microcontrolerului ATMega 88[9]
27
Nucleul AVR combină un set de instrucțiuni cu 32 de regi stre de uz general. To ate cele
32 de regi stre sunt direct conectate la unitatea aritmetrico – logică (ALU), astfel permițând ca
două registre independen te să fie accesa te printr -o singură instrucțiune executată într -un singur
ciclu de ceas. Astfel , arhitectura rezultată este mult mai eficientă din punct de vedere al codului
și în același timp are capacități de procesare de până la 10 ori mai rapide decât la
microcontrolerele CISC convenționale.
Microcontrolerul ATMega 88 are următoarele facilități : 8 KBytes de memorie F LASH de
program cu capacități de Read -While -Write (citire în timp ce se scris în mem orie), memorie
EEPROM de 1 KByte , memorie SRAM de 2 Kbytesm , 23 de linii generale de intrare/ieșire , 32
de regi stre de uz general, 3 timere/countere flexibile cu moduri de comparare, întreruperi interne
și externe, un programator serial USART, o in terfață serială orientată pe biț i 2-wire, un port
serial SPI, un ADC de 10 biți pe 6 canale, un Watchdog programabil cu oscilator intern și 5
moduri de preze rvare a puterii programabile din software. În modul ul IDLE acesta oprește CPU –
ul, dar în același timp permite funcționarea în continuare a memoriei SRAM, a
timerelor/counterelor, a USART -ului, a interfeței serial, a portului SPI și a sistemului de
întreru peri. Modul ul Power -Down salvează conținutul regi strelor , dar îngheață activitatea
oscilatorului, dezactivând orice altă funcție din chip până când se înregistrează următoarea
întrerupere sau următorul reset hardware. În modul ul Power -Save, timerul asincro n continuă să
funcționeze, permițând astfel utilizatorului să mențină o evidență a timpului , cât timp restul
dispozitivului este într -un mod de hibernare. Modul ul ADC Noise Reduction oprește CPU -ul și
toate modulele de I/O cu excepția timerului asincron și a convertorului ADC, pentru a minimiza
zgomotul de comutație din timpul conver siei ADC. În modul ul Standby, oscilatorul cu cristal
continuă să funcționeze, în timp ce restul dispozitivului este într -o stare de hibernare. Aceasta
permite o pornire foarte r apidă a dispozitivului în caz de nevoie, împreună cu un consum de
putere redus.
Dispozitivul este produs folosind tehnologia de densitate ridicată a memoriei nonvo latile
deținută de Atmel. ISP FLASH -ului de pe chip permite memoriei de program să fie repr ogramată
în siste m printr -o interfața serial SPI , printr -un programator con vențional de memorie nonvolatilă
sau utilizând un program de b utare, ce rulează în miezul AVR. Programul de b utare poate folosi
orice interfaț ă ca să descarce programul în memoria flash destinată aplicației. Partea software din
FLASH -ul de bu tare continuă să funcționeze atâta timp cât memoria FLASH destinată aplicației
este updatată , furnizând cu adevărat operațiunea de Read -While -Write. Prin combina rea unui
CPU de tip RISC de 8 biți cu memoria de sistem FLASH auto programabilă se furnizează o
soluție foarte flexibilă și eficien tă, din punct ul de vedere al costului , pentru multe aplicații
înglobate .
Această secțiune prezintă mai în detaliu arhitect ura miezului AVR în general. Funcția
principală a miezului CPU este de a asigura execuția corectă a programului. Motiv pentru care
acesta trebuie să acceseze memoria, să facă calcule, să controleze perifericele și să se ocupe de
funcționarea întreruperilor .
28
Figura 2.1.3 Diagrama bloc a nucleului CPU AVR [9]
Pentru a maximiza performanța și paralelismul, nucleul AVR utilizează o arhitectură
Harvard cu memorii separate și cu magistrale de program și date. Instrucțiunile în memoria de
program sunt executate cu un singur nivel de pipeline . În timpul execuții unei instrucțiuni ,
următoarea instrucțiune se găsește în memoria de program și este adusă în memorie . Acest
concept permite ca 14 instr ucțiunilor să fie executate în fiecare ciclu de ceas. Memoria de
program este o memorie Flash inclusă în sistem, reprogramabilă.
Nucleul AVR prezintă o metodă de acces rapid la ce le 32 de regi stre de uz general pe 8
biți care utilizează un singur semnal de ceas pentru timpul de acces. Ac esta permite ca operațiile
în Unitatea Aritmetico Logică (ALU) să fie executate într -un singur ciclu de ceas. Într -o operație
ALU tipică , doi operanzi sunt scoși din registru , operația între cei doi este executată și rezultatul
este stocat înapoi în regi stre, toate acestea se realizează într-un singur ciclu de ceas.
Șase registre din cele 32 pe 8 biți pot fi folosite ca trei registre de 16 biți cu ceas, indirect
la informații, pemițând astfel calcularea eficient ă a adresei. Una dintre aceste adrese poate fi
folosită pentru (tabelele de căutare), a căuta tabele, în memoria FLASH.
Unitatea ALU permite operații aritmetice și logice între regi stre sau între o constantă și
un registru. Aceste operații conțin dat e dintr -un singur registru și pot fi de asemenea executate de
către ALU. După o operație aritmetică, registrul de stare este actualizat pentru a reflecta
informația , care este rezultatul operației.
Parcurgerea fluidă a codului de program este asigurată de salturi condiționate și
necondiționate și de către instrucțiuni de apelare , care au permisiunea de a accesa direct întreg
29
spațiul de adrese. Majoritatea instrucțiunilor AVR au formatul cuvântului pe 16 biți, iar fiecare
adresă de memorie de pr ogram conține o instrucțiune pe 16 sau 32 de biți.
Spațiul memoriei F LASH de program este împărțit în două secțiuni: secțiunea pentru
codul de b utare și cea pentru programele aplicației. Ambele secțiuni au biți de blocare dedicați
pentru a sigură pro tecție de scriere sau citire. Instrucțiunea SPM trebuie să fie găsită în secțiunea
programului de b utare.
În timpul întreruperilor și a apelării de subrutine, adresa de întoarcere la secțiunea de
cod principală numită și numărător de program ( en. PC- program counter) este reținută î ntr-o
stivă. Stiva este regăsită propriu -zis în memoria de date din SRAM, în consecință mărimea ei
este limitată numai de mărimea totală a memoriei SRAM și de utilizarea acesteia. Toate
programele trebuie să inițializeze s tiva ( en. SP – stack pointer) în rutină de reset (înainte ca orice
subrutină sau întrerupere să fie executată). Pointerul de stivă SP este accesibil pentru
citire/scriere în spațiu I/O. Datele din memoria SRAM pot fi accesate cu ușurință prin cele cinci
moduri de adresare e xistente în arhitectura AVR . Toate spațiile de memorie din arhitectura AVR
sunt liniare.
Un modul flexibil de întreruperi are regi stre de control în spațiul I/O cu un bit de
întreruperi existent în registrul de stare. Toate întreruperil e au un vector de întreruperi și un tabel
de întreruperi. Întreruperile au prioritatea stabilită în concordanță cu poziția vectorului lor de
întreruperi, adică cu cât adresa acestuia este mai mic ă cu atât întreruperea are o prioritate mai
mare.
Spațiul de memorie I/O conține 64 de adrese pentru funcțiile de periferice ale CPU cum
ar fi regi strele de control, SPI, funcții I/O. Memoria I/O poate fi accesată direct sau indirect cu
ajutorul locațiilor spațiului de date de la 0x20 la 0x5F. Adițional ATMega88 are un spațiu de
adrese I/O extins de la 0x60 la 0xFF unde doar următoarele instrucțiuni pot fi folosite:
ST/STS/STD și LD/LDS/LDD.
Figura 2.1.4 Implementarea microcontrolerului ATMega 88
30
2.2 Porturi I/O
Toate porturile AVR, utilizate ca por turi digit ale I/O , execută funcțiile de citire/scriere și
se pot modifica tot timpul . Cu ajutorul instrucțiunilor SBI și CBS , direcția unui port al pinului
poate fi schimbată fără ca această schimbare să afecteze restul pinilor . În momentul în care se
modifică valoarea de driver , adică dacă este configurat ca o ieșire sau de activare/dezactivar ,e
dacă rezistorii sunt dezactivați sau dacă este configurat ca o intrare , toate aceste caracteristici
rămân la fel . Fiecare buffer de ieșire are caracteristici de drive s imetrice cu ambele capacități ale
sursei. Pinul driverului are suficientă putere pentru o afișare directă. Toți pinii porturilor au
fiecare rezistori de pull -up selectabili cu rezerve de putere. Toții pinii I/O au diode de protecție la
ambele surse de cure nt digital și împământare.
Figura 2.2.1 Schema echivalentă a pinilor I/O [9]
Toți regiștrii și biții la care se face referire în această secțiune sunt prezentați la forma
generală. La utilizarea regi strelor și biților în program, forma precisă trebuie să fie PORTB3
pentru bitul numărul 3 al portului B, iar forma generală este PORTxn. În concluzie, u n nivel
scăzut „x‟ reprezintă numărul literei portului și un nivel scăzut „n‟ reprezintă numărul de bit .
Pentru fiecare port I/O sunt aloca te trei regi stre, unul pentru Registrul de Date – PORTx, unul
pentru Registrul Fluxului de Date (en. Data Direction Register – DDRx ) și unul pentru portul de
intrare al pinilor (en. Port Input Pins – PINx ). Portul de intrare/ieș ire este doar citibil, iar
Registrul de Date (en. Data Register ) și Registrul Fluxului de Date (en. Data Direction Register )
se pot citi/scrie . Adițional , bitul Pull -up Disable (PUD ) în SFIOR (en. Pull Up Disable in Special
Function Input Output Register ) când este setat , dezactivează rezistențele pull -up pentru toți pinii
în toate porturile.
În continuare vom folosi por tul de intrare/ieșire drept intr are/ieșir e general ă digital ă.
Majoritatea pinurilor portului sunt multiplexate cu funcții alternative pentru perifericile
31
dispozitivului. Porturile sunt dispozitive de intrare /ieșire bidirecționale cu pull -up-uri interne
opțional e. În figura de mai jos este ilustrată fun cționarea unui pin a l portului I/O, denumit Pxn.
Figura 2.2.2 Porturi digitale I/O ale pinului Pxn [9]
Semnalele WPx, W Dx, RRx, RPx, și RDx sunt comune tuturor pinilor în interio rul
aceluiași port, iar semnalele ClkI/O, SLEEP și PUD sunt comune tuturor porturilor.
Semnalul denumit SLEEP în figură , este comandat de unitatea MCU Sleep Controller în
modul Power -Down, modul Power -save, modul Standby și modul Extended Standby pentru
evitarea consumului mare de putere în cazul în care unele semnale de intrare prezintă fluctuații la
stânga sau se găsesc pe un nivel aproape de VCC/2.
SLEEP este suprascris pentru pinii portului și comunică cu pinii întreruperilor externe.
Dacă o cerere de întrerupere externă nu este activă, SLEEP este activ pentru acești pini. SLEEP
este de asemenea suprascris de o varietate de funcții alternative. Dacă nivelul de ”1” logic este
prezent în pinul corespunzător intreruperilor externe asincrone ca ”Întrerupere pe front pozitiv,
front negativ sau orice schimbare logică a pinului” în timp ce întreruperea externă nu este
disponibilă, fanionul întreruperilor externe corespunzător va fi setat atunci când se reocupă
modul SLEEP.
32
Fiecare port este alcătuit din trei registre : DDxn, PORTxn,și PINxn. Biții DDxn sunt
adresați de DDRx I/O , biții P ORTxn sunt adresați de PORTx I/O , biții PINxn sunt adresați de
PINx I/O.
Bitul DDxn din registrul DDRx selectează direcția acestui pin. Dacă DDxn este setat ca
”1” logic atunci Pxn e ste configurat ca pin de ieșire, iar dacă DDx este setat ”0” logic atunci Pxn
este configurat ca pin de intrare. Dacă PORTxn este configurat ”1” logic atunci când pinul este
setat ca pin de intrare , rezistorul pull -up se activează . Pentru ca rezistorul pull-up sa treacă în
poziția of, PORT xn trebuie să fie setat ca ”0” logic s au pinul trebuie să fie configurat ca un pin
de ieșire. Atunci c ând funcția Reset devine activă portul pinilor are trei stări, chiar dacă ceasul nu
funcționează. Dacă PORTxn este setat ca ”1” logic atunci când pinul este setat ca pin de ieșire ,
portul pini lor este 1. Dacă PORTxn este setat „0‟ logic atunci când pinul este configurat ca pin de
ieșire , portul pinilor este 0 .
La schimbarea între cele trei stări ({DDxn, PORTxn} = 0b00) și ieșirea pe nivel înalt
({DDxn,PORTxn} = 0b11), o stare intermediară cu posibilitatea pull -up ({DDxn, PORTxn}
=0b01) sau ieșirea la nivel scăzut ({DDxn, PORTxn} = 0b10), trebuie sa apară. În mod normal
posibilitatea stării de pull -up este total acceptată la fel cum o impedanță înaltă nu va sesiza
diferența între un driver pute rnic și un pull -up. Dacă nu se întâmplă acest lucru , bitul PUD în
registrul SFIOR poate fi setat pentru dezactivarea t uturor pull -up-urilor din toate porturile.
Schimbul dintre o intrare cu pull -up și o ieșire cu nivel scăzut va genera aceeași problemă.
Utilizatorul trebuie să folosească oricare din cele trei stări ({DDxn, PORTxn} = 0b00) sau ieșirea
de nivel înalt ({DDxn, PORTxn} = 0b11) ca o etapă intermediară. Independent de setările bitului
DDxn , pinul portului poate fi citit datorită bitului registrul ui PINxn.
2.3 Convertor ul A/D al microcontrolerului ATmega88
2.3.1 Caracteristici generale
Convertorul asociat microcontrolerului ATmega88 are o rezoluție de 10 biți și o acuratețe
absolută de ± 2 LSB. Timpul de conversie necesar este cuprins între 13 µs și 260 µs. Cele 6
canale simple se multiplexează în vederea prelevării semnalului asociat. Acestora li se mai
adaugă alte 2 canale independente mul tiplexabile , TQFP și QFN/MLF. Alinierea șirului de biți
rezultat în urma conversiei se face la stânga. Tensiunea de alimentare variază în intervalul 0 –
VCC. Tensiunea de referință poate lua mai multe valori , dar cea implicită este 1.1 V. La sfârșitul
unui ciclu de conversie complet se preia o întrerupere. Acest convertor este prevăzut cu un
modul de fun cționare economic SLEEP .
O conversie presupune aproximări succesive , ce sunt realizate printr -un circuit de tip S/H
(Sample And Hold ). În timpul conversiei tensiunea rămâne constantă ; tensiune ce poate proveni
de la 2 surse de alimentare , AVCC sau VCC, prima fiind de tip analogic și nu poate avea valori
diferite de ±0.3 V față de VCC.
33
Tensiunile de referință interne de la nivelul cipului au valoarea nominală fie de 1.1 V, cea
recomandată, fie AVCC. Această tensiune de referință se poate decupla la nivelul pin ului AREF
de un condensator pentru a obține o reducere a zgomotului.
Valoarea minimă convertibilă este cea de GND deci 0, iar cea maximă este cea de la
nivelul pinului AREF – 1 LSB. Se poate opta pentru valoarea tensiunii de referință prin
configurarea corespunzătoare a pinilor din succesiunea de biți REFSn din interiorul registrului
ADMUX.
Figura 2.3.1 Schema bloc a convertorului [9]
Intrarea canalului analogic se alege prin configurarea corespunzătoare a grupării de biți
MUX din cadrul registrului ADMUX.
Activarea convertorului se face la nivelul bi tului ADC ENABLE, denumit ADEN î n setul
ADCSRA. Atunci când acest bit are valoarea 0 consumul de putere este unul minimal , de aceea
34
se recom andă aducerea lui pe nivel 0 logic atunci când se dorește comutarea lui în modul de
funcționare ”sleep” . Rezultatul generat de conversie este încărcat într -o succesiune de 10 biți ,
care se regăsesc în registrul de date al convetorului ADCH și ADCL . Acest r ezultat este formatat
implicit , dar poate fi ajustat prin setarea bitului ADLAR din registrul ADMUX.
Inițierea conversiei se face în funcție de intenția ut ilizatorului, aceasta putând fi singulară
sau multiplă. O singură conversie se inițializează prin b itul PRADC , atunci când acestuia i se
atribuie valoarea 0 și bitului ADSC i se atribuie valoarea ”1” logic . La finalizarea conversiei ,
aceștia vor fi formatați prin rutine hardware. Chiar dacă se selectează un alt canal în timpul
conversiei în curs de desfășurare, se va aștepta finalizarea acesteia. Pornirea unei alte conversii
se face cu ajutorul fanionului de întrerupere al convertorului care poartă rol de trigger, cu
condiția ca prima conversie să înceapă cum s -a descris mai sus.
Circuitul de a proximări succesive are nevoie de o frecvență de ceas cuprinsă între 50
KHz și 200 KHz pentru o rezoluție maximă. Acest circuit de conversie conține și un prescala r
care generează o frecvență de ceas adecvată , indiferent de procesorul care îl intrebuințeaz ă și
care funcționează la frecvențe mai mari de 100 KHz. Pentru această funcționalitate sunt dedicați
biții ADPS din registrul ADCSRA.
Din punct de vedere al duratelor de timp o conversie normală durează 13 cicluri de ceas,
dar prima conversie este de 25 de cicluri , în această durată fiind inclusă și inițializarea circuitului
de conversie. În momentul finalizării unei conversii, următoarea începe imediat f ără a mai fi
necesare instrucțiuni adiționale.
Formula pe baza căreia se poate obține rezultatul con versie este următoarea:
ADC = 𝑉𝑖𝑛∗1024
𝑉𝑟𝑒𝑓
Unde Vin este tensiunea de intrare, iar Vref tensiunea de referință selectată.
2.3.2 Tensiunea internă de referință
Atmega 88 prezintă un spațiu de referință intern. Această referin ță este folosită pentru
detecția Brown -out-ului, și poate fi folosită ca și ieșire a comparatorul ui analogic sau ADC.
Referința de 2.56 V a ADC -ului este generată de către spațiul de referință.
Tensiunea de referință are un timp de declanșare care poate influența modul în care ar
trebui folosit. Pentru a economisi energie, referința nu este întotdeauna activată. Referința este
activată pe durata doar a unor situa ții, și anume: a tunci când BOD este activat (prin programarea
BODEN Fuse) sau a tunci când referința este conect ată la comparatorul analogic (prin setarea
bitului ACBG în ACSR) sau în situația în care ADC este activat.
Cu toate acestea, atunci când BOD nu este activat, după setarea bitului ACBG sau
activarea ADC, utilizatorul trebuie întotdeauna să permită activare a referinței înaintea folosirii
ieșirii comparatorului analogic sau ADC -ului. Pentru a reduce consumul de energie în modul
Power -down, utilizatorul poate evita cele trei condiții d e mai sus pentru a se asigura faptul că
referința este inactivă înainte de i ntrarea în modul Power -mode.
35
2.3.3 Timer -ul Watchdog
Timer -ul Watchdog este sincronizat de la un oscilator realizat separat pe cip, care rulează
la 1Mhz , aceasta este valoarea tipică la V CC = 5 V. Prin controlarea demultiplicatorului
Watchdog Timer, intervalul Watchdog Reset se poate ajusta așa cum se arata în i nstrucțiunea
WDR ( Watchdog Reset ) care resetează timer -ul Watchdog. Timer -ul Watchdog este deasemenea
resetat atunci când este dezactivat și atunci când se produce Chip Reset. Opt perioade de ciclu
diferite pot fi selectate pentru a determina perioada de resetare. În cazul în care perioada de
resetare expiră fă ră un alt Watchdog Reset, Atmega88 resetează și execută din Reset Vector.
Pentru a preveni dezactivarea neint enționată a Watchdog -ului, o secvență specială de
oprire trebuie să fie urmată atunci când Watchdog -ul este dezactivat.
36
37
Capitolul 3
Elemente de control
Sistemul de acționare al unui robot cuprinde totalitatea surselor energetice ale robotului ,
precum și elementele de control direct e ale acestora. În acest sens, prin sistem de acționare se va
înțelege ansamblul motoarelor și convertoarelor prin care se obține energia mecanică necesară
deplasării robotului , precum și dispozitivele suplimentare ce controlează acest transfer energetic .
3.1 Generalităț i
Sistemul de acționare al unui robot va cuprinde: o sursă primară de energie, un sistem de
conversie al energiei primare în energie mecanică, un sistem pentru transmisia energiei mecanice
la articulația corespunzătoare, un control al parametrilor caracteristici a cestor sisteme.
Sistemele uzuale de acționare folosesc trei surse primare de energie , și anume : energie
electrică , pneumatică sau hidraulică. Din punct de vedere p rocentual, cel mai mare număr de
sisteme de roboți industriali moderni utilizează acționarea hidraulică datorită unor caracteristici
deosebite pe care aceste echipamente le oferă în ceea ce privește raportul dintre forța exercitată
la dispozitivul motor și greutatea acestuia. O ar ie largă o au deasemenea acționă rile electrice,
utilizate îndeosebi datorită facilităților de control pe care le pot asigura. Acționarea pneumatică
ocupă o pon dere redusă în această direcție , ea fiind de obicei utilizată în sistemele de comandă
ale dispozitivelor auxililiare.
Figura 3.1 Structura generală a unui sistem de acționare [12]
Deși mai puțin utilizată decât acționarea hidraulică, acționar ea electrică ocupă o arie
suficie nt de întinsă a roboților industriali , datorită unor avantaje principale printre care amintim :
sursa de energie electrică primară care este ușor de găsit, sistemele de control care sunt precise,
38
sigur e și relativ ușor de cuplat la o conducere numerică de nivel înalt, se asigură o funcționare
autonomă prin alimentarea cu baterii, nu se impun probleme specifice de poluare.
Acționarea cu motoare de curent conti nuu are avantajul important că momentul creat este
practic independent de poziția și viteza motorului, depinzând numai de câmpul înfășurărilor și
curentul din armături. Dacă înfășurările de câmp sunt înlocuite cu un magnet permanent , atunci
momentul dezvoltat este proporțional cu valoarea curentului din armături și deci cu tensiunea
aplicată.
Anumite proceduri tehnologice au permis micșorarea greutății motoarelor. Ele se referă,
de exemplu, la eliminarea înfășurărilor de excitație prin utilizarea motoarelor cu magnet sau
micșorarea greutății rotorului prin motoarele disc. Dezavantajul principal constă în greutatea
componentelor. Raportul putere – greutate sau moment – greutate este mai mic decât la
acționările hidraulice. Această gr eutate nu poate fi redusă în mod semnificativ datorită circuitului
magnetic care, pentru asigurarea unor performanțe ridicate , necesită o geometrie
corespunzătoare.
Controlul roboților mobili , bazat prin teleoperare , necesită un sistem ro bust cu o inte rfață
intuitivă, flexibilă și ef icientă. În cele mai frecvente situații roboții mobili sunt echipați cu
senzori și module controlabile, care furnizează un volum impresionant de date către utilizator.
Proiectarea și implementarea unui sistem fiabil devine o s arcină dificilă dacă robotul mobil este
folosit ca mijloc de intervenție operativă în situații complexe, care presupun siguranță și precizie
în exploatare. Instrumentația vi rtuală are un rol important și î n acest domeniu, oferind soluții
pentru integrarea elementelor de control într -un sistem unitar, compact, cu un grad ridicat de
mobilitate.
Contro ler-ul unui robot este interfața dintre opera tor și componentele mecanice și
electrice (hardware) ale robotului. Misiunea lui este de a controla cinematica (mișcarea)
robotului și de a oferi operatorului suport maxim pentru utilizarea eficientă a rob otului. Pentru
îndeplinirea ace stei misiuni, contro ler-ul asigură următoarele funcții: comunicația cu operatorul,
suportul de programare, gestiunea programelor, int erpretarea programelor, calculararea automată
a valorilor, modificarea valorilor de poziționare, generarea de informații pentru echipamentele
periferice.
Pentru controlul sistemului și a driverelor , pentru tranzistoarele MOSFET s -a folosit un
microcontroler ATmega88 al firmei Atmel. Acest microcontroler folosește o arhitectu ră Harvard
modificată pe 8 biți, are o memorie flash de 8 Kb și una SRAM de 1.024 Kb. Tensiunea de
alimenta re a acestui microcon troler este cuprindă între 1.8 V și 5.5 V. Am ales acest tip de
microcontroller deoarece dispune de un PWM și de 6 canale PWM pentru controlul motoarelor.
Rolul principal al controlerului este de a prelua informații de la ieșire și de a rula
algoritmul de control astfel încât tensiunea să fie stabilizată la o anumită valoare pentru a nu arde
plăcuța.
Într-un sistem mecatronic, microcontrolerele formează partea logică de comandă sau de
decizie , iar motoarele partea de execuție. Partea de comandă operează cu nivele de tensiuni de 5
V și puteri mici , iar partea de execuție cu tensiuni și puteri mai mari. Interfața dintre cele două
părți ale sistemului se face prin circuit de amplificare care are frecvent și rolul de separare
galvanică între cele două sisteme . Datorită tensiunii ș i curentului de val ori foarte mici furnizate
la ieșirea microcontrolerelor este nevoie de circuite de amplificare pentru acționarea motoarelor
de curent continuu.
O schemă simplă si eficientă pentru comanda acestor motoare este repre zentată de
“puntea H” . Puntea este construit ă din patru întrerupătoare, acționate pe diagonală. Când
39
întrerupătorul T 1 și T4 sunt închise (ș i întrerupătoarele T2 si T3 sunt deschise), o tensiune
pozitivă va fi aplicată motorului. Prin deschiderea întrerupătoarelor T3 și T4 si închiderea lui T2
și T3, această tensiune este inversată, făcând posibilă rotirea motorului în sensul opus. Aranjarea
de tip punte H este în gene ral folosită pentru a inversa polaritatea motorului, însă poate fi folosită
și pentru frân area motorului (motorul se opreș te brusc datorită scurtcircuitării terminalelor sale)
sau pentru a lăsa motorul să se rotească liber până la oprire.
Pentru a con trola turația motoarelor de cur ent continuu există mai multe metode. Cea mai
simplă ar fi îns erierea unui rezistor variabil î n circuitul de alimentare al motorului. Prin
modificarea valorii rezistenței se modifică tensiunea aplicată motorului. Variația tensiuni i nu este
proporțională cu varianția rezistenței , ci depinde ș i de curentul absorbit de motor. Această
metodă nu este eficientă, având î n vedere faptul că se pierde foarte multă energie prin disipare de
căldură.
Cea mai utilizată metodă de control a turați ei este comanda cu modulația în frecvență a
impulsurilor (en. Pulse Width Modulation – PWM ).
Variația tura ției motorului se face prin creșterea sau micș orarea timpului în care semnalul
de comandă are valoarea ”1” logic (t ON). Astfel , la un factor de umpl ere de 100%, motorul are
turație maximă, deci t ON este maxim, iar tOFF este zero. La un factor de u mplere de 50 %, motorul
are jumătate din turația nominal, deci t ON = tOFF. Iar la un factor de umplere de 0%, motorul este
oprit , deci t OFF este maxim , iar t ON este 0.
𝑓= 𝑡𝑂𝑁
𝑡𝑂𝑁+𝑡𝑂𝐹𝐹∙100 %
Figura 3.1.2 Facto rul de umplere [16]
40
Majoritatea microcontrolerelor pot genera semnale PWM. Pentru măsurarea timpului cât
semnalul este în ”1” logic și al timpului cât stă în ”0” logic, se foloseș te un Timer.
Pentru a genera un astfel de semnal numărăt orul este incrementat periodic și este resetat la
sfârș itul fiecărei perioade a PWM -ului. Când valoarea numărătorului este mai mare decâ t
valoarea de referin ță, ieș irea PWM trece din starea ”1” logic î n starea ”0” logic (sau invers).
Printre a vantajele comenzii PWM se numără și: puterea consumată și debitată care este mai
mică (puterea disipată pe dispozitivele electronice de putere care lucrează în comutație este mult
mai mică decât puterea disipată pe elem entele de reglare serie); puterea consumată care este cu
atât mai mică cu cât dispozitivul electronic de putere care lucrează în comutație se apropie de
performanțele unui comutator electric ideal; randament ul energetic ridicat; volum ul redus;
posibilitatea includerii ușoare în scheme de automatizare, care reprezintă o cerință importantă a
circuitelor electronice de putere; prin controlul factorului de umplere, circuitele de comandă
PWM pot furniza tensiuni de ieș ire dintr -o gama mare; tensiunil e stabilizate de la ieșire sunt
izolate galvanic față de tensiunea de la intrare.
3.2 Modulul de Bluetooth HC -05
În prezent există mai multe exemple de comunicație digitală realizată pe distanțe . O mare
parte din această comunicație se face prin legături fizice, pe fire, cabluri. Aceste cabluri
conectează între ele o multitudine de dispozitive făcând uz de o mare varietate de conectori cu
diverse forme, mărimi și număr de pini. Fiind necesar un cablu între fiecare două dispozitive ,
aceasta poate u neori cauza probleme utilizatorului. Folosind tehnologia Bluetooth se înlătură
acest neajuns, întru cât dispozitivele pot comunica printr -o interfață ”aer” și nu prin fire, folosind
unde radio pentru a transmite și recepționa date. Această tehnologie este s pecial proiectată pentru
comunicații pe distanțe scurte (nominal 10 m), ceea ce are ca rezultat un consum foarte redus de
putere, făcând -o astfel potrivită pentru a fi utilizată de către dispozitive mici, portabile, care sunt
alimentate de obicei cu bateri i.
Tehnologia bluetooth prezintă un sistem de comunicație, fără fir, cu rază mică de acțiune,
care intenționează să înlocuiască o comunicarea bazată pe conectare cablată, cu fir, prin
intermediul căreia se pot transmite voce și date. Se remarcă din ce în c e mai mult o tendință de
întrepătrundere a domeniului computerelor cu cel al telecomunicațiilor, liniile tradiționale din
acestea devenind tot mai puțin distincte. Un bun exemplu este cel al telefonului mobil care, la
bază, este utilizat pentru aplicații d e voce , dar acum poate fi folosit și pentru aplicații de date
precum accesul la informație sau accesarea paginilor web . Unele tehnologii de comunicație
wireless sunt proiectate să transporte doar voce, pe când altele tratează doar trafic de date. Prin
Blue tooth se pot transporta atât date cât și voce , astfel reprezentând o tehnologie ideală pentru
unificarea acestor “două lumi” permițând tuturor tipurilor de dispozitive să comunice, ele
transportând fie voce, fie date, fie pe amândouă.Trăsăturile de bază al e sistemelor de comunicație
bluetooth sunt: robustețea, consumul scăzut de energie și pre țul mic. Multe dintre caracteristicile
de bază ale specificațiilor Bluetooth sunt opționale, implementarea reperezentând diferența dintre
produse.
Bluetooth este un s tandard de tehnologie wireless pentru schimbul de date pe distanțe
scurte, folosind unde radio care au lungimea de bandă 2.4 – 2.485 GHz. El se poate folosi pentru
dispozitive fixe , dar și mobile sau construirea unei rețele personale PANs (en. Personal Ar ea
Network). Documentația aces tei noi tehnologii a fost creată în anul 1994 de către cercetătorii
41
Jaap Haartsen și Sven Mattison, ei fiind angajați pentru o platformă mobilă din ca drul companiei
Ericsson. Standardul dezvolat de aceștia se bazează pe tehno logia de transmisie cu salt în
frecvență și spectru distribuit (en. Frequency -Gopping Spread Spectrum – FHSS ). Organizația
SIG (Special Interest Group) fondată în anul 1998 de către Ericsson , IBM, Intel, Sony a pus
bazele acestei platfome Bluetooth, urmând ca de -a lungul timpului o mulțime de alte companii să
adere la acestă organizație.
Acest nou concept de tehnologie Bluetooth creează o cale prin care se poate face schimb
de informații între aparate precum telefoane mobile, laptop -uri, tablete, calculatoare personale,
imprimante, camere digitale, printr -o frecvență radio sigură și de rază mică. Aparatele Bluetooth
comunică între ele atunci când acestea se află în aceeași rază de acțiune. Acestea folosesc un
sistem de comunicații radio , din acest mot iv nu este nevoie ca aparatele să fie față în față pentru
a putea să transmită informații , ele putând fi puse și în camere diferite cu condiția ca transmisia
să fie suficient de puternică. Prin această tehnologie se pot conecta între ele maxim șapte
dispoz itive într -o rețea de calculatoare ad -hoc.
Protocolul Bluetooth funcționează în banda de frecvență 2.4 – 2.4835 GHz. Acest
protocol își schimbă permanent canalele , de 1600 de ori pe secundă pentru a evita interfețele cu
alte dispozitive care fo losesc aceea și banda de 2.45 GHz , împărțind în același timp banda în 79
de canele. Implementările Bluetooth din versiunea 1.1 și 1.2 funcționează la viteza de 723.1 kb/s
, iar versiunea 2.0 folosește modul EDR (en. Enhanced Data Rate) pentru a atinge o viteză de 2.1
Mb/s. Consumul de energie a fost redus cu până 50% dotorită versiunii 2.0 , deoarece are un
consum de energie mai ridicat , dar o viteză de transfer de trei ori mai mare. Standardele
Bluetooth dezvoltate până astăzi sunt: Bluetooth 1.0 ș i 1.0B , Bluetooth 1.1 , Bluetooth 1.2,
Bluetooth 2.0. Cel mai bun standart este Bluetooth 2.0 , deoare ce are o viteză de transmisie de trei
ori mai mare față de toate celelalte , consumul de energie este mic, erorile au dispărut, iar rata
eroriilor este mai mică.Un dispozitiv Blu etooth de tip master poate comunica în același timp cu
alte șapte dispozitive. Aceast grup de opt dispozitive se numește reț ea piconet. Rețeau care
permite unui dispozitiv Bluetooth master să interconecteze cu celelalte șapte dispozitive
Bluetooth active s e poate defini ad -hoc. Pe lângă această rețea pot exist a alte 255 dispozitive
inactive , pe care dispozitivul master le poate activa în orice moment.
Figura 3.2.1 Rețea ua Piconet [6] SLAVE A
SLAVE B
SLAVE C SLAVE D SLAVE H
SLAVE E SLAVE F
MASTER
42
O rețea piconet este sub formă de stea, din care fac parte un dispozitiv master situat
centr al și restul slave pe exterior. Masterul este cel care inițiază o conexiune Bluetooth,
dispozitivel e slave nu pot comunica direct între ele, doar comunicația fiind direcționată prin
dispozitivul master.
La un moment dat, prin int ermediul protocolului Bluetooth , dispozitivul master nu poate
comunica decât cu un singur alt echipament. Pentru a combate acest aspect negativ, dispozitivele
îsi pot schimba rolul în cadrul piconet -ului în orice moment și astfel orice dispozitiv slave poate
deveni master și viceversa. Mai mult decât atât , specificațiile standardului Bluetooth permit
interconectarea a două sau mai multe piconet -uri pentru a forma un scatternet. Astfel, unele
echipament e vor avea rolul de master într -un piconet și rol de slave în alt piconet. Acest lucru
este util , deoar ece se permite interconectarea a mai mult de 8 dispozitive active simultan.
Orice dispozitiv Blue tooth va transmite la cerere a altui dispozitiv următoarele seturi de
informaț ii: numele și clasa dispotivului , lista de servicii și specificații tehnice. De asemenea,
orice dispozitiv Bluetooth poate executa o căutare pentru a vedea ce alte echipamente
compatibile există în proximitate și , de asemenea, orice dispozitiv poate fi configurat să răspundă
la căutarea executată de un alt echipament. Totuși , dacă dispozitivul care dorește să se conecteze
la alt echipament cunoaște adresa exactă a acestuia, se va p utea conecta la el indiferent de
setările de vizibilitate ale echipamentului accesat.
Pentru proiectul meu am ales sa folosesc un modul de Bluetooth HC -05 format dintr -un
modul de interfață serială Bluetooth și un adaptor Bluetooth. Modulul serial Bluetooth este
utilizat pentru conversia port – serial Bluetooth . Acest modul are două moduri: slave și master .
Figura 3.2.2 Modul HC -05[18]
Modulul de Bluetooth HC -05 lucre ază la o tensiune de putere mică de 1.8 V, având
tensiuni cuprinse într e 3.3 V și 5.0 V, având o rată de transfer de 9600 .
Acest modul are în componența sa 32 de pini, fiecare având propriile lor caracteristici. În
continuare vom detalia pe scurt utilizarea celor mai importanți pini. PIN1 este pinul pentru
UART TXD , care se conectează la pinul RXD al microcontrolerului Atmega88. PIN2 este pinul
pentru UART RXD , care se conectează la pinul TXD al microcontrolerului Atmega88 (acesta nu
43
este rezistor ridicător de tensiune). PIN11 este pinul de RESET și acesta induce o tensi une joasă
echivalentă cu conectarea în gol a acestuia. PIN12 reprezintă pinul de alimentare, VCC pentru
circuitul logic la o tensiune standard de 3.3 V, putând, însă, fu ncționa în intervalul 3 – 4.2 V.
PIN13 asociat PIN12, reprezintă masa, GND. LED1 sezize ază unul dintre cele trei moduri de
funcționare. Atunci când modulul este alimentat și PIN34 are semnal ”1” logic pe intrare, ieșirea
PIN31 este la 1 Hz și face ledul să clipească lent. În acest caz se semnalează că modulul
funcționează în modul AT și rata baud are valoarea de 38400.
Atunci când modulul este alimentat și pe PIN34 avem semnal ”0” logic la intrare, PIN31
are la ieșire 2 Hz și face led -ul să clipească alert, în acest fel semnalându -se disponibilitatea de
conectare a dispozitivului. Dacă PIN34 este pe nivel ”1” logic se intră în modul de funcționare
AT, dar ieșirea PIN31 rămâne tot 2 Hz. După conectare , PIN31 are o frecvență de 2Hz. PIN32
are rolul de terminal de ieșire, înainte de conectare având nivel ”0” logic și odată realizată
conexiunea comută pe ”1” logic. PIN34 are rolul de comutator între modurile de funcționare.
Atunci când semnalul de pe acest pin are valoarea ”0” logic, dispozitivul are o comunicație
stabilită, în caz contrar, se comută în modul de funcționare AT. Chiar dacă modulul a stabilit o
conexiune , el comută în modul AT în momentul în care PIN34 ia valoarea ”1” logic.
Figura 3.2 .3 Modulul Bluetooth HC -05
Tehnologia Bluetooth este o soluție economică pentru comunicațiile fără fir, fiind acceptată la
nivel global. Dispozitivele cu Bluetooth pot crea rețele între computere, notebook -uri, telefoane
mobile și alte dispozitive mobile. Un alt avantaj ar putea fi acela că dispozitivele nu trebuie
44
setate de fiecare dată pentru a comunica î ntre ele și de asemenea pot rula în background.
Producătorii de dispozitive Bluetooth le creează după aceleași standarde , astfel încât nu apar
probleme privind interoperabilitatea între diverse tipuri de dispozitive.
3.3 Sitemul de operare Android
Pentru proiect ul meu de licență am avut nevoie de un telefon mobil care lucrează pe
sistemul de operare Android și care este echipat cu Bluetooth. În zona telefonului mobil nu a fost
necesar să programez nimic în plu s, ci doar să instalez o aplicație pe te lefonul mobil din
magazinul virtual al acestuia . Aplicația aleasă de mine se numește ”Arduino Bluetooth
Controller ”. Am făcut această alegere deoarece este foarte ușor de utilizat ; tot ce trebuie să fac
este să dau clic pe ea și să conectez telefonul la Bluetooth.
Sistemul de operare Android este o platform ă software pentru dispoz itive și telefoane
mobile care se bazează pe nucleul Linux și care a fost dezvoltat pentru prima dată de Google.
Android permite dezvoltatorilor să scrie cod gestionat în li mbajul Java, controlând dispozitivul
prin intermediul bibliotecilor Java dezvoltate de Google.
În anul 2008 , Androi d a fost disponibil tuturor utilizatorilor , Google deschizând întreg
codul sursă, inclusiv suportul pentru rețea și telefonie, care înainte era indisponibil fiind sub
licența Apache. Deși este un produs de tip ”open source ”, o parte din dezvoltarea software pentru
Android a fost continuată într -o ramură privată. În scopul realizării acest software public, a fost
creată o ramură oglindă ”read only ”, cunoscută sub numele unui desert, anume ”cupcake ”. Se
crede că numele vine de la Marissa Mayer , care are o pasiune pentru acesta. ”Cupcake ” este de
obicei interpretat greșit ca numele unei actualizări, dar după cum este declarat pe sit e-ul de
dezvoltare al Google -ului: ”<<Cupcake >> este deocamdată în curs de dezvoltare. Este o ramură
de dezvoltare, nu o versiune stabilă.” Modificări notabile la software -ul Android care vor fi
introduse în ”cupcake ” includ modificări la ”download manager ”, platformă, Bluetooth ,
software -ul de sistem, radio și telefonie, instrumente de dezvoltare, sistemul de dezvoltare și
câteva aplicații, precum și o serie de remedieri de probleme. Momentul exact al la nsării rămâne
neclar . Viitoarele versiuni Android vor folosi prezumptiv nume de cod numite după deserturi , ca
și exemplu : ”cupcake ”, ”donut ”, ”eclair ”, etc.
Această aplicație Android poate stabili o conexiu ne dintre telefon și proiectul meu, care
este dotat cu un modul Bluetooth. Aplicația permite utilizatorului să seteze un UUID (en.
universally unique identifier ) ce aparține modului de Bluetooth ce are rolul de a conecta
aplicația android cu proiectul dorit. Modulul UUID folosit în această aplicație se folosește pentru
modulul de Bluetooth HC -05. Aplicația Android îi ofe ră utilizatorului po sibilitatea de a -și alege
la ce dispozitiv Bluetooth par tener să se conec teze, ce setări ale aplica ției să configu reze, de a -l
notifica când apar anumite excepții prin interme diul unui sistem de jurnalizare și, cel mai
important, de a -i reda în timp real mișcările pe care poate să le efectueze robotul.
După stabilirea unei conexiuni Bluetooth cu mașina, se va apăsa butonul de start și
procesul de explorare va începe imediat.
45
Capitolul 4
Realizare pr actică
Spațiul de operare al unui robot este strâ ns legat de domeniul de lu cru al acestuia, de
gama aplicațiilor la care participă . Acest spaț iu este definit direct de parametrii arh itecturii
mecanice a robotului și este restricț ionat , pe de o parte de anumite caracteristici ale elementelor
interne, mecanice, și pe de altă parte de caracteristicile obiectelor implicate în procesul
tehnologic.
Sursa de energie constituie suportul energet ic neces ar pentru punerea în mișcare atâ t a
elementelor mobile ale robotului , cât și pentru asigurarea alimentă rii electrice a sistemului de
acționare ș i a celui de conducere.
Sursa de informație defineș te modul de operare al rob otului, caracteristicile de bază al e
funcționă rii acestuia, struc tura algoritmilor de conducere în funcție de specificul operaț iei, d e
modul de prelucrare a informației de bază (în timp real sau nu) și de relaț ia robot – operator
exist entă în procesul de operare. Această relație poate deter mina funcționarea automată,
independentă a robotului sau în asociere cu operatorul (de exemplu sistemele de teleoperare).
Robotul, componenta de bază a aces tui sistem, este format din două părț i esențiale, și
anume : unitatea de prelucrare a informației și unitatea operațională .
Unitatea de prelucrare a informaț iei este un microcontr oler hardware -software ce primește
date privind instrucțiunile ce definesc operațiile executate, măsurători privind starea unității
operaț ionale, observații asupra spaț iului de o perare al robotului, date pe baza cărora determină,
în conformitate cu algoritmii de conducere stabiliț i, deci ziile privind modalitatea de acționare a
unității operaț ionale , etc.
Unitatea operațională corespunde robotulu i propriu -zis, cuprinzând structura mecanică a
acestuia și sistemul de acționare asociat. Această unitate acționează asupra spațiului de operare
utilizând și transformând energia furnizată de sursă și reacționâ nd adecvat la s emnalele primite
din exterior. În componenț a robotului dis tingem: elementele care interacționează direct cu
spațiul de operare (elem entele efectoare, gripere sau mâini), componente de structură
(articulaț ii, segmente), modulatoare de energie (amplificatoare), convertoare de energie
(motoare), sisteme de transmisie a ener giei mecanice ș i senzori interni.
4.1 Harware
4.1.1 Puntea H și motoarele de curent continuu
Pentru ca robotul să se poată deplasa sau să își poată mișca vreun membru trebuie să
amplasăm și să controlăm diverse motoare care au atașate fie roți care pot servi ca principalul
mijloc de locomotive, fie diverse roți zimțate care pot produce deplasarea unui braț sau
strângerea unui clește.
Motoarele sunt dispozitive, care din punctual de vedere al funcțiilor robotului pot fi
hidraulice sau electrice. Motoarele hidraulice sunt folosite pentru roboții care au rolul de a
acționa asupra unor obiecte de gre utate mare, deoarece motoarele electrice nu pot face față la
46
asemenea sarcină. Acestea din urmă sunt folosite când vine vorba de sarcini care au nevoie de o
precizie cât mai bună , deoarece ele pot fi con trolate la un nivel mult mai înalt decât cel al
motoa relor hidraulice.
De obicei pentru a alimenta un asemenea motor avem nevoie de o tensiune de până la 20
V și de un curent între 500 mA și 8 A, iar comanda lor necesită un curent de 20 mA, deci pentru
a le putea controla pe circuitul nostru este nevoie de un montaj special cunoscut în mod uzual ca
o punte H ce este descrisă în Figură 4.1.
Figura 4.1.1.1: Proiectarea Punții H [13]
O punte H este un circuit electronic care permite unei tensiuni să fie aplicată pe un
consumator în orice direcție. Aceste circuite sunt folosite deseori în robotică sau în alte aplicații
asemănătoare , pentru a permite unui motor de curent continuu să se rotească atât înainte cât și
înapoi (în sens invers). Punțile H sunt dispo nibile ca și circuite integrate sau pot fi construite din
componente distincte. Termenul de punte H este derivat din reprezentar ea grafică uzuală a
circuitului. O punte H este construită din patru comutatoare (mecanice sau electronice, în cazul
nostru niște tranzistoare). Când comutatoarele T1 și T4 (conform Figurii 4.1.2 ) sunt închise, iar
T2 și T3 sunt deschise o tensiune pozitiv ă va fi aplicată asupra motorului. Prin deschiderea
comutatoarelor T1 și T4 și închiderea lui T2 și a lui T3, această tensiune este inversată,
permițând astfe l o operare opusă a motorului. Utilizând figura de mai sus observăm că
comutatoarele T1 și T2 nu a r trebui niciodată să fie închise în același timp, deoarec e asta ar
cauza scurcircuitarea sursei de tensiune. Aceiași condiție se aplică și pentru comutatoarele T3 și
T4.
Motoarele utilizate la construcția robotului meu au schimbător ul de viteze încorpor at,
ceea ce le face mult mai puternice decât omologi i lor fără această facilitate. Astfel , dacă
particularizăm circuitul din Figura 4.1.1 pe cazul nostru particular, atunci când pentru
comutatoare folosim tranzistoare, putem spune că el funcționează în fel ul următor: dacă
47
tranzistorii T1 și T4 sunt în regim normal de funcționare, curentul de la sursa de tensiune
alimentează motorul. În acest timp tranzistoarele T2 și T3 sunt în blocare și putem să ne gândim
la ele ca și cum nu ar exista în circuit. Prin ale gerea perechii de tranzistoare , care va funcționa și
care va fi în blocare , controlăm direcția tensiunii care străbate motorul. Deoarece motoarele cu
magneți permanenți își schimbă direcția de rotire în funcție de tensiunea ce îi străbate putem
controla da că motoarele noastre se învârt înainte sau înapoi, deci putem controla sensul de
deplasare a robotului. Dacă ne gândim la mișcare și robotul nostru are cel puțin 2 roți, fiecare
roată atașată unui motor controlat de o punte H, putem să controlăm mișcarea a stfel: pentru ca
robotul să meargă înainte , pentru ambele punți H activăm tranzi stoarele T1 și T4, dacă dorim ca
robotul să meargă înapoi , activăm doar tranzistoarele T2 și T3, iar dacă dorim că acesta să se
întoarcă la o punte H activăm T1 și T4, iar la c ealaltă T2 și T3. Turația motorului este dată de
factorul de umplere a se mnalului PWM dat de microcontro ler. Cu cât factorul de umplere este
mai mare cu atât turația este mai mare. Prin analogie, dacă ne gândim la mișcarea robotului în
cazul în care ambele motoare funcționează în același sens, dar unul are o turație mai mare și
celălalt mai mică, robotul va avea o traiectorie curbată.
Figura 4.1.1.2 Stările Punții H [13]
Aranjamentul punții H este folosit , în general , astfel încât să inverseze pol aritatea
motorului, dar de asemenea aranjamentul poate fi folosit și pentru frânarea motorului, caz în care
motorul ajunge la o oprire rapidă când terminalele motorului sunt supuse unui scurt circuit, sau
să i se permită motorului un mers în gol până la op rire, când motorul este efe ctiv deconectat de la
circuit. O punte H este de obicei construită folosind dispozitive de polaritate opusă cum ar fi
BJT-urile PNP (en. Bipolar Junction Transistor ) sau MOSFET -urile (en. metal –oxide –
semiconductor field -effect transistor ) cu canal P conectate la o magistrală de tensiune mare și
BTJ-urile NPN sau MOSFET -uri cu canal N conectate la o magistrală de tensiune mică.
Proiectarea cea mai eficientă, și anume cea cu MOSFET -uri, folosește MOSFET -uri cu
canal N atât pe pa rtea ridicată cât și pe partea scăzută , deoarece în mod uzual au o treime din
rezistența de ON a unui MOSFET cu canal P. Ace sta necesită o proiectare mai complexă,
48
deoarece por țile pă rții înalte ale MOSFET -urilor trebuie să fie acționate pozitiv, cu privir e la
sursa de alimentare de curent continuu.
4.1.2 MOS FET -uri
MOSFET -ul este un tip de tranzistor cu efect de câmp utilizat pentru amplificarea sau
comutatea semnalelor electronice. Am utilizat aces t tip de tranzistoare pentru comandarea
motoarelor de curent continuu și punerea în mișcarea a modulului teleco mandat cu modulație de
frecvență . Principalul avatanj al acestui tranzistor MOSFET est e că necesită foarte puțin curen t
pentru a porni (mai puțin de 1 mA), oferind în același timp un c urent mult mai mare către o
sarcină, de la 10 A până la 50 A sau chiar mai mult . Cu toate acestea, MOSFET -urile necesită o
tensiune mai mare (3 – 4 V) pentru a porni.
Acesta este format din trei terminale: sursă (S), poartă (G) și drena (D). Tra nzistorul mai
are un terminal , care este legat la substratul pe care a fost fă cut tra nzistorul; acest terminal
trebuie să fie la cel mai mic potențial din circui t. În general curenții din sursă și din drenă sunt
egali, iar curent ul de poartă este nul , deoarece poarta este izolată cu un strat de oxid de siliciu.
Tranzistorul funcționează pe baza canalului dintre drenă și sursă, control ul fiind efectuat prin
tensiunea poartă – sursă.
Tranzistoarele MOSFET se pot clasifica în mai multe tipuri în funcție de pol aritatea lor ș i
principiul de funcționare. Există tranzistoare MOS cu canal n (NMOS) și tranzistoare cu canal p
(PMOS), iar după modul de funcționare există tran zistoare cu canal indus sau cu canal inițial. În
cazul tranzistoarelor cu canal indus nu există nici un canal înainte de a pune o tensiune pe poartă,
iar la cele cu canal inițial tensiunea aplicată pe poartă micșorează conductanța canalului existent.
Figura 4.1.2.1 Simboluri Tranzistoare MOSFET [14]
49
În figura de mai sus pe primul rând su nt reprezentate tranzi stoare MOSFET canal P, iar
pe rândul al doilea cele cu canal N. În prima coloană este figurată și conexiunea la substrat.
Uneori poate fi legată direct la sursă, alteori, poate să vină la un pin al capsulei. Sensul săgeții
arată tipul joncțiunii care se formează între substrat și sursă. În a doua coloană su nt alte tipuri de
simboluri, simplificate. A se observa că sensul săgeții este invers. Aceasta este o reprezentare
mai intuitivă, avâ nd săgeata la fel ca tranzistorul bipolar corespunzător. La MOS cu canal N și
NPN, săgeata iese, iar la MOS cu canal P și PNP, săgeata intră.
4.1.3 Circuitul de alimentare
O altă parte importantă din componența unui robot este sursa de tensiune prin care este
alimentat tot sistemul și datorită căreia robotul prinde viață. Deoarece acumulatorul pe care îl
folosim are tensiunea de 1.5 V și intensitatea de 100 mA trebuie ca între acesta și circuitele care
dorim să le alimentăm să folosim un regulator de tensiune care va converti tensiunea de la intrare
în tensiune a de 3.3 V pe care noi putem să o utilizăm. Cu tensiunea rezultată putem alimenta atât
microcontrolerul cât și sensorii și driverele de motor.
Circuitul integrat utilizat la acest robot este L M3490IM5 -3.3 bloc prezentat în figura
prezentată mai jos, figura 4.3.1.
Figura 4.1.3.1 Blocul sursei de alimentare [12]
In figura 4 .3.1 este prezentat modul dorit de proiectare al sur sei de alimentare pentru ca
aceasta să funcționeze la parametrii doriți. Modul de prelucrare ne cere în mod specific
amplasarea condensatorilor în acest fel și cu aceste valori, ce sunt puși atât pe intrarea cât ș i pe
ieșirea regulatorului de t ensiune și au rolul de a proteja tensiunea de elemente parazite care ar
putea duce la oscila ția tensiunii cu care se va alimenta circuitul nostru. Condensatorul de la ieșire
COUT trebuie să fie de cel puțin 0.1 μF pentru a se menține stabilitatea. Această valoare poate fi
crescută pentru a se menține tensiunea de ieșire la valoarea dorită în timpul regimurilor de
tranziție . Acesta trebuie să fie localizat cât mai aproape de regulatorul de tensiune.
Condensatorul trebuie să aibă parametrii de operare în funcție de temperatură și în concordanță
cu parametri i regulatorul ui pentru o bună funcționare. Această oscilație nu va apărea pe un
50
voltmetru , deoarece acestea au o viteză de reacție mică, dar dacă analizăm semnalul cu un
osciloscop punem observa că t ensiunea are o oscilație de frecvență mare în lipsa
condensatoarelor.
LM3490IM5 -3.3 este un regulator pozitiv de tensiune ce încorporează abilitatea de a
scoate la ieșire un curent de 1 mA cu o cădere de tensiune de obicei de 6 V pe toată gama de
temperatu ră suportată. De asemenea , acesta prezintă posibilitatea de a reduce curentul de masă
când diferența dintre tensiunea de intrare și cea de ieșire depășește 3 V.
4.1.4 Bateriile
În lucrarea mea am folosit drept acumulatori patru baterii de 1.5 V astfel încât să rezulte
tensiune a de 3.3 V de care am nevoie pentru ca circuitul meu să funcționeze .
Alessandro Volta a construit și a descris prima baterie electrochimică, gra dată voltaic în
anul 1800. Aceasta a fost o stivă de plăci de cupru și zinc, separate de saramură îmbibată discuri
de hârtie, care ar putea produce un curent constant pentru o perioadă considerabilă de timp. Volta
nu a apreciat că tensiunea era din cauza reacțiilor chimice , el a crezut ca celulele sale au fost o
sursă inep uizabilă de energie și că efectele de coroziune asociate electrozilor au constituit mai
degrabă o problemă decât o consecință inevitabilă a funcționării lor, lucru arătat de Michael
Faraday în anul 1834.
O baterie electrică este un dispozitiv format din două sau mai multe celule electrochimice
care transformă energia chimică stocată în energie electrică. Fiecare celulă conține un terminal
pozitiv, catod ul, și un terminal negativ, sau anod ul.
Figura 4. 1.4.1 Simbolul electric
Electroliți i permit ionilor să se deplaseze între electrozi și terminalele, care permite
curentului să treacă din bateria de a efectua munca. Bateriile vin în multe forme și mărimi, de la
celulele miniatura utilizate pentru alimentar ea ajutoare și ceasuri auditive , bat erii de
dimensiunea unei camere care oferă energie în modul standby pentru centrale telefonice și
centre de date de calculator. Bateriile au mult mai mici specific de energie (energie pe unitatea
de masă) decât combustibilii comune, cum ar fi benzina. Ac est lucru este oarecum compensat de
eficiența mai mare a motoarelor electrice în producerea de lucru mecanic, în comparație cu
motoarele cu ardere.
Bateriile convertesc energia chimică direct în energie electrică. O bat erie este formată
dintr -un numă r mare de celule voltaice. Fiecare celulă la rândul ei este formată din două jumătăți
de celule conectate în serie cu un electrolit conductor conținând anioni și cationi. O jumătate de
51
celulă include electrolit și electrodul negativ, iar cealaltă jumăt ate de celulă include electrolit ș i
electrodul pozitiv. Reacțiile redox dau putere bateriei. În timp ul încărcării cationii se reduc , se
adaugă electroni, în timp ce anioni i sunt oxidați electronii sunt eliminați la anod pe timpul
descărcării. Electrozii nu se ating reciproc , dar sunt legați electric de electrolit. Unele celule
folosesc electrol iți diferiți pentru fiecare jumă tate de celulă. Un separator per mite ionilor să
curgă între jumă tățile de celule, dar în același timp previne și amestecarea electroli ților. Fiecare
jumătate de celulă are o forță electromotoare care determină trecerea curentului electric din
interiorul celulei către exterior. Forța electrică este cunoscută ca fiind tensiunea la bornele
bateriei și se măsoară în volți. Tensiunea terminal ă a unei celule care nu este nici încărcată nici
descărcată se numește tensiune de circuit deschis.
O celulă ideală are rezistența internă neglijabilă, ceea ce duce la menț inerea unei tensiuni
constante până la epuizarea energiei din baterie. Dacă tensiune a și rezistența sunt reprezentate
grafic în funcție de timp, graficele rezultate sunt de obicei o curbă, forma curbei variind în
funcție de chimia și aranjamentul intern angajat. Tensiu nea dezvoltată peste terminale depinde de
eliberarea de energie a reacțiilor chimice produse de electrozi și electrolit.
În figura de mai jos este ilustrată o celulă voltaic ă pentru scopuri demonstrative. Î n acest
exemplu, cele două jumătăți de celule sunt legate printr -un separator punte de sare care permite
transfe rul de ioni.
Figura 4. 1.4.2 Celula voltaică
Bateriile pot fi clasificate în două forme: baterii primare și baterii secundare. Bateriile
primare transformă ireversibil energia chimică în energie electrică, în cazul în care furnizarea de
reactivi este epuizată, energia nu mai poate fi ușor restaurată la baterie. Baterii le secundare pot fi
reîncărcate , ele pot avea reacții chimice ale acestora , inversate prin furnizarea de energie
electrică spre celulă, restabilind aproximativ compoziția lor originală. Aceste tipuri de baterii nu
sunt reîncărcabile pe termen nelimitat, deoarece se pierde electrolitul și coroziunea internă.
O celulă uscată folosește un electrolit pastă cu suficientă umiditate pentru a permite
trecerea curentului. Spre deosebire de o celu lă umedă, o celulă uscată poate funcționa în orice
orientare fără să verse, deoarece nu conține lichid liber , făcând -o potrivit ă pentru echipamente le
52
portabile. Prin comparație, în primele celule umede au fost de obicei recipiente de sticlă fragile
cu tije de plumb agățat din pa rtea de sus deschisă și necesitau o manipulare atentă, pentru a evita
scurgerile. Baterii le plumb -acid nu au fost sigur e și s-a așteptat dezvoltarea bateriei gel. O celulă
uscată comună este bateria de zinc -carbon, numit ă uneori celu lă uscat ă Leclanché, ce are o
tensiune nominală de 1. 5 volți, aceeași valoare ca bateria alcalină (deoarece ambele utilizează
aceeași combinație de dioxid de zinc -mangan).
Un standard de celule uscate cuprinde un anod de zinc, de obicei sub forma unui vas
cilindric, cu un catod de carbon sub formă de tijă centrală. Electrolitul este clorura de amoniu în
formă de pastă lângă anod zinc. Spațiul care rămâne între catodul electrolitic și carbon este
preluat de o a doua pastă care conține clorură de amoniu și d ioxid de mangan, urmând să
acțion eze ca un depolarizant. Î n unele desene, clorura de amoniu se înlocuiește cu clorură de
zinc.
Bateri a de unică folosință pierd e de obicei 8-20 % din taxa lor originală pe an, atunci
când este păstrată la temperatura camerei (20-30 °C). Acest lucru este cunoscut sub numele de
"auto -descărcare de gestiune" și se datorează reacți ilor chimice care au loc în interiorul celulei ,
chiar atunci când nu este aplicată nici o sarcină . Rata reacțiilor adverse este redus ă pentru
bateriile care sunt depozitate la temperaturi mai scăzute , deși unele pot fi deteriorate de îngheț .
În proiectul meu am ales să folosesc baterii de unică folosiță cu o tensiune de 1.5 V, cu o
durată de funcționare de aproximativ cinci ore. Aceste baterii sunt alc aline de tip LR6/AA, cu o
capacitate de 2000 mAh. Acestea a u o durată proprie de viață de 7 ani, sunt rezistente la uzură,
până la 100 -500 reîn cărcări. Pentru a le reîncarca trebuie să folosim încărcă tori speciali PURE
ENERGY, nu put em să le reîncărcăm cu altfel de tip de încărcătoare deoarece se vor distruge.
4.1.5 Led-urile
Pentru semnalizarea mișcări lor de dreapta, stânga, înainte și înapoi am folosit trei tipuri
de led -uri, și anume : galben e, roșii și albe. Led -urile albe reprezintă luminile de așteptare și sunt
aprinse în momentul când robotul stă pe loc. Led -urile galbene reprezintă semnalizarea direcției
de mers, iar led -urile roșii sunt implementate în spatele robotului și reprezintă stopurile.
LED -ul (Light Emitting D iode) este o diodă care are proprietatea de a emite lumină
atunci când este polarizată direct. LED -ul este construit dintr -o structură semiconductoare pn cu
o suprafață foarte mică care emite lumină. Această structură se realizează din aliaje
semiconductoare speciale. La construcția structurii semiconductoare nu se utilizează siliciu sau
germaniu deoarece se încălzesc și nu emit bine lumină. Această structură c are mai poartă
denumirea de diodă este amplasată într -o cupă reflectoare și este conectată la terminalele diodei (
ANOD și CATOD). Toate aceste elemente sunt încapsulate. Aceste capsule se realizează din
rășini sintetice de diverse culori și sub diverse fo rme. Culoarea radiației luminoase depinde de
aliajul utilizat la realizarea structurii semiconductoare: roșu, infraroșu – AlGaAs (Aluminiu –
Galiu -Arsen) .
53
Figura 4. 1.5.1 Dioda luminiscentă [15]
Între semiconductorul de tip N și semiconductorul de tip P al diodei se formează o
joncțiune PN. La frontiere le joncțiunii , electronii difuzează din partea N în partea P și se
recombină cu golurile de aici, iar golurile difuzează din parte P în partea N și se recombină cu
electronii de aici. În consecință , se form ează o regiune sărăcită de purtători, în care nu există nici
electroni liberi și nici goluri libere, ce formează o barieră care nu mai permite recombinarea
electronilor din partea N cu golurile din partea P. Prin polarizarea directă a joncțiuni PN, bariera
creată de regiunea sărăcită de purtători este străpunsă, electronii din partea N sunt atrași către
terminalul pozitiv al sursei de alimentare , iar golurile din partea P sunt atrase către terminalul
negativ al sursei de alimentare. Atât electronii cât și g olurile ajung în regiunea sărăcită de
purtători unde se recombină și eliberează energie sub formă de căldură și lumină. La LED -uri,
prin construcția acestora, majoritatea combinărilor electron -gol eliberează fotoni sub formă de
lumină în spectrul vizibil. Acest proces se numește electroluminescență. Intensitatea radiațiilor
luminoase produse de LED -uri sunt direct proporționale cu intensitatea curentului direct prin
joncțiunea PN a LED -ului. Un LED emite lumină într -un anumit domeniu de lungimi de undă (în
funcție de aliajul utilizat la construcția diodei). Lungimea de undă (λ) este exprimată în
nanometri (nm) și încadrează lumina în spectrul vizibil sau invizibil astfel : pentru λ= 460 nm –
lumină albastră, pentru λ= 590 nm – lumină galbenă, iar pentru λ= 660 nm – lumină roșie .
Curentul direct (IF) reprezintă curentul maxim suportat de LED în polarizare directă.
Valoarea maximă a acestui curent este de 50 mA pentru LED -urile ce emit în spectrul vizibil
respectiv , 100 mA pentru LED -urile ce emit în infraroș u. În majoritatea cazurilor se alege un
curent IF egal cu 20 mA . Tensiunea de deschidere (VF) reprezintă tensiunea ce trebuie aplicată
la bornele LED -ului, pentru ca acesta să emită radiații luminoase. Valoarea acestei te nsiuni
variază între 1.2 V și 3. 2 V, în funcție de culoarea luminii emise vom avea: LED ROȘU cu VF =
1.2 – 1.6 V, LED VERDE și cel GALBEN au VF = 2 – 2.4 V, iar LED ALBASTRU are VF =
54
2.8 – 3.2 V .Tensiunea inversă (VR) reprezintă tensiunea maximă inversă care o poate suporta
LED -ul fără a se distruge (tipic 3 V – 10 V).
Figura 4. 1.5.2 Circuitul led -ului
Un LED se conectează într -un circuit electric, întotdeauna , în serie cu un rezistor care
limitează valoare a intensității curentului prin LED.
4.1.6 Oscilatoare cu cu arț
Oscilatoarele sunt generatoare de oscilații electrice întreținute cu o frecvență proprie
(funcționează fără semnalul de intrare). Oscilatoarele cu cuarț sunt oscilatoare de semnale
sinusoi dale de foarte mare stabilitate a frecvenței.
În prezent, pentru a obține oscilații cu frecvență slabilă la aproximativ 1 kHz, se folosesc
cel mai des oscilatoarele controlate cu cuarț. Atunci când avem nevoie de o frecvență foarte
stabilă, în locul circuitului rezonat clasi c format din bobine și co ndensatoare , în genera l se
folosește un cristal de cuarț, care din punct de vedere electric prezintă o impedanță cu proprietăți
de circuit rezonant, a cărui fun cționare se bazează pe efectul piezoelectric. Unui cristal de cuarț i
se poate asocia o schemă electrică echivalentă, simplificată, ce este prezentată în figura de mai
jos.
Figura 4.1.6.1 Circuit oscilator cu cu arț
55
În figura de mai sus este prezentat un circuit oscilant serie, valorile elementelor de circuit
fiind determinat e de proprietățile mecanice ale cristalului. Se observă că dis pozitivul prezintă
două rezonanț e, una serie și alta paral el. Cele două frecvențe sunt foarte apropiate și stabile
motiv pentru care rezonatorul este folosit în oscilatoarele la care dorim să avem o frecvență cât
mai precisă. De aceea,cuarțul lucrează la rezonanță serie, când impedanța lui este minimă iar
reacția sa pozitivă este maximă.
Cuarțul este bioxid de siliciu cristalizat romb oedric cu trei axe de simetrie.
Figura 4. 1.6.2 Cristal cu cuarț [15]
Cuarțul prezintă fenomenul piezoelectric direct și fenomenul piezoelectric invers.
Fenomenul piezoelectric direct apare la aplicarea unei solicitări mecanice pe două fețe opuse, iar
pe celelalte două fețe apar sarcini electrice și fenomenul piezo electric invers. La aplicarea unei
diferențe de potențial între două fețe opuse apar deformări mecanice elastic e. Efectul
piezoelectric presupune un schimb de energie electric ă și mecanică.
4.2 Software
Pentru programarea microcontrole r-ului am ales program area AVR ISP. Programarea ISP
(en. in -system programming ) înseamnă posibilit atea de a programa procesorul fără a-l demonta
din circuit, există și varianta programă rii sepa rate, prin scoaterea din s oclu și montarea î n soclul
unui programator dedicat.
Programarea ISP presupune existen ța a 2 componente: circuitul de programare
(programatorul), care se conectează la mufa ISP a plă cuței și la portul serial/paralel/USB al PC –
ului și soft-ul de programare, care preia fi șierul utilizat și îl transmite progr amatorului care
trebuie s ă fie compatibil cu acesta din urmă .
Interfața serie SPI (en. Serial Peripheral Interface) este o interfață sincronă, de mare
viteză, pentru transferul datelor între un microcontroler AVR și un dispozitiv periferic sau între
două microcontrolere AVR. Transferul pe interfața SPI se face cu următoarele caracteristici:
transfer full-duplex (pe trei fire), operare master -slave, transfer cu primul bit LSB sau MSB,
patru viteze de transfer, semnalizare sfârșit de transmisie și activare din modul de consum
56
redus. Scrierea datelor în registrul de date al dispozitivului master va genera activarea
generatorului de ceas și data va fi transferată bit cu bit pe linia MOSI, prin intermediul registrului
de deplasare .
Figura 4.2.1 AVR ISP
Din microcontroler am folosit modulele : UART, timere, precum și întreruperile
disponibile pentru aceste module , pentru a putea scrie un algoritm performant de control al
robotului.
Dezvoltarea software -ului a durat aproximativ 2 luni, fiind începută imedia t după
terminarea proiectării pă rții hardware, dar înainte de a o avea realizată integral . Primii pași au
reprezentat configurarea perifericelor microcontroler -ului și stabilirea unei structuri schelet,
precum și a câtorva mașini de stare pe care acesta să ruleze.
Mediul de programare pe care l -am ales este unul foarte simplu, altgorit mul construit de
mine presupune învățarea robotului de a exacuta diferite mișcări. Pentru implemen tarea
algoritmului este necesară stabilirea pun ctului stabil. Acesta reprezin tă starea în care robotul
trebuie să tindă să se menț ină. Starea inițială a robotului are loc în momentul în care motoarele
nu se mișcă, dar led -urile sunt aprinse, semnalizând avariile.
if (!digitalRead(btcon)){
analogWrite(motor11,0);
analogWrite(motor12,0);
analogWrite(motor21,0);
analogWrite(motor22,0);
digitalWrite(ledyr, !digitalRead(ledyr));
digitalWrite(ledyl, !digitalRead(ledyl));
analogWrite(ledw, intensity[3]);
analogWrite(ledr, intensity[3]);
delay(200);
}
În figura de mai jos vor fi evidențiate toate stă rile pri n care robotul a fost învățat să
funcționeze.
57
Figura 4.2.2 Schema logică a codului
58
După conectarea Bluetooth -ului și inițializarea variabilelor, solicităm accesul la modul
prin funcția ”setup”.
void setup() {
Serial.begin(9600);
pinMode(ledyl, OUTPUT);
pinMode(ledyr, OUTPUT);
pinMode(ledw, OUTPUT);
pinMode(ledr, OUTPUT);
pinMode(motor11, OUTPUT);
pinMode(motor12, OUTPUT);
pinMode(motor21, OUTPUT);
pinMode(motor22, OUTPUT);
pinMode(btcon, INPUT);
}
În bucata de cod d e mai sus se setează pinii, d eschidem portul serial și -l setă m la o rată de
transfer de 9600 bps. Pinii digitali pentru ieșire sunt ai led -urilor ș i ale motoarelor. Ca ieșire se
setază pin ul BTCON, care este pinul cu numă rul 32 al microcontrolerului ATmega88.
Pentru a pune robotul în mișcare avem nevoie de o funcție repetitivă ”void loop () ” car e
se va închide în momentul în care robotul va fi oprit.
void loop() {
byte sread; //citim bitul
if (Serial.available()) {
sread = Serial.read();
switch (sread){
case '2' : //fata
analogWrite(motor11,viteza);
analogWrite(motor12,0);
analogWrite(motor21,viteza);
analogWrite(motor22,0);
digitalWrite(ledyr, LOW);
digitalWrite(ledyl, LOW);
analogWrite(ledw, intensity[3]);
analogWrite(ledr, intensity[1]);
break;
În codul de mai sus se va citi bitul de intrare, se vor selecta numărul de biți pentru citirea
portului seria l, se citește primul bit disponibil, apoi robotul se va pune în mișcare la o anumit ă
viteză și se vor executa mișcările stânga, dreapta, înainte și înapoi.
Robotul posedă la circuitul de alimentare un senzor alcătuit dintr -un divizor rezistiv între
acumulator și masă, ce duce spre un pin al microcontroler -ului. Acesta măsoară permanent
tensiunea de pe acumulator și în cazul în care aceasta scade sub 3V robotul intră în starea de
urgență. Din această stare robotul nu mai intră sub nici o formă în starea de supraviețuire , oprește
motoarele și intră în starea de repaus . Singurele dispozitive care mai funcționează sunt senzorii.
59
Capitolul 5
Rezultate le proiectării și implementării
Primul pas în construi rea robotului a fost reprezentat de crearea design -ului logic, ce
urmează să fie implementat. Pentru crearea acestuia am folosit programul OrCAD PCB. Acest
program folosește o tehnologie nouă combinând o interfață interectivă, intuitivă și ușor de
utilizat. Acesta deține l ibrăriile cu toate componentele folosite de mine pentru acest robot și
crearea propriu -zisă a layout -ului constă în adăugarea pieselor ce vor fi folosite și crearea de
conexiuni între ele, piese și conexiuni explicate în capitolele anterioare, cu valori extrase din
fișele de catalog pentru a asigura o funcționare optimă.
Figura 5.1 Proiectarea folosind OrCAD a Atmega88, Bluetooth HC -05 și sursa de tensiune
60
Figura 5.2 Proiectarea folosind OrCAD a motoarelo r de curent continuu, led -urile și
tranzistoarele
În figurile 5.1 și 5.2 sunt descrise schemele f inale rezultate în urma proiectă rii layout –
ului, în care observăm în partea de sus, în stânga primei scheme microcontroler -ul împreună cu
conexiunile sale către celelalte componente. Tot în prima figură în partea de sus, în dreapta, se
află modulul de Bluetooth HC -05 și conexiunile către microcontroler și celelalte componente. În
partea de jos , în stânga primei figuri se află sursa de tensiune, iar în dreapta ISP-ul, care folosește
la programarea microntroler -ului.
În a doua figură observăm în partea de stânga sus motoare le de curent continuu împreună
cu puntea H, iar în partea dreaptă regăsim tranzistoarele. În partea de jos se află circuitul pentru
led-uri.
Următorul pas în cre area plăcuței a fost trecerea de l a design -ul logic la cel fizic prin
alegerea locației fizice unde vor fi amplasate compopentele propriu -zise. Acest lucru a fost făcut
cu ușurință prin crearea unor margini de dimensiunea plăcuței, componentele își știu deja
legăturile, deci singura proble mă este reprezentată de grija nesuprapunerii traseelor și grosimea
acestora pentru a ne asigura că prin ele poate trece un curent de valori impus e.
61
Pentru realizarea acest ui proiect am folosit o plăcuț ă PCB simplu strat și am decis să trag
majoritatea traseelor dintre componente pe aceeași parte cu acestea . În figura următoare este
prezentată partea superi oară a designului fizic a plăcuț ei utilizate în crearea robotul ui.
Figura 5.3 Proiectarea în OrCAD a plăcuței PCB
După ce este gata layout -ul fizic trebuie să începem să implementăm partea fizică,
concretă. Primul pas este utilizarea programului pentru a ne crea o imagine a circuitelor. Această
imagine este printată pe o folie specială transparentă , folie ce va fi aplicată peste plăcuța
62
fotos ensibilă. Aceasta funcționează astfel: umple cu negru zonele ce trebuie protejate de lu mina
UV, iar zonele ce trebuie corodate sunt transparente.
Figura 5.4 Imaginea printată pe folie utilizată la lampa de UV
Foliile sunt printate cu imaginea de protejare pentru ambele fețe, după care sunt aplicate
pe plăcuța de steclo textolit dublu placat și sunt fixate în dispozitivul ce emite raze UV, aceste
raze acționează termic asupra plăcuței fotosensibile timp de 10 minute. După acest timp se scoate
plăcu ța din aparat și este introdusă timp de 5 minute într -o soluție de sodă caustică (NAOH)
concentrată pentru eliminarea de impurități printr -o metodă chimică. După acest pas este
introdusă într -o baie de soluție de clorură ferică (FeCl3) timp de 30 de minute . Aceasta se
folosește la îndepărtarea cuprului în procesul de realizare a circuitelor imprimate .
Pentru a fi siguri că traseele vor rezista în timp și că nu vor exista întreruperi în ele din
cauza procesului de imprimare , am întărit toate traseele cu flu dor, cu ajutorul unui ledcon. Acum
că m -am asigurat că toate traseele sunt funcționale prin întărirea lor și testarea conectivității cu
63
ajutorul unui multimetru, am trecut la etapa următoare și anume adăugarea componentelor și
lipirea lor cu fludor.
Figura 5.5 Placuța cu componentele lipite
Pentru fun cționarea robotului am comandat o cutie de viteze de pe robofun. Această cutie
de viteză dublă oferă o soluție excelentă pentru a construi rapid robotul meu. Cutia de viteze are
incluse două motoare și a ngrenajele sale necesare pentru două roți motoare. Roțile sunt rotițe
independent e una de alta, atât în față cât și în spate. Cutia de viteze poate fi de asemenea
configurată pentru două viteze diferite . Produsul i nclude tot ceea ce este necesar: roțile din țate,
carcasa, motoare le, vaselina și cheia pentru montaj. Oferă 58:1 și 203:1 ca rapo arte de
tranfer. Motoarele funcționează între 3 ș i 6 V. Transmisia se poate asambla cu un raport de 58:1
sau de 203:1 (ra portul de transmisie se stabilește la asamblare, nu se schimbă în timpul
funcționă rii). Am mai avut nevoie pen tru deplasarea robotului de două roți.
64
Figura 5.6 Componentele folosite la deplasarea robotului
Figura 5.7 Robotul finalizat
65
Concluzii
Proiectul ”Modul telecomandat prin modulație de frecvență” ce a fost tratat în paginile
anterioare este o lucrare complexă, cu re ferire în multe domenii reale: e lectronică, mecanică și
robotică. Robotul realizat în urma acestei lucrări prezintă din punct de vedere electronic o
complexitate sporită, fiind utilizate elemente din circuitistică digitală, microprocesoare, semnale,
proiectare asistată de calculator, precum și programare.
În această lucrare am realizat robotul, urmărind pașii necesari:proiectare, costruire,
asamblare și implemen tare. Proiectarea am realizat -o folosind programul OrCAD. Construirea și
asamblarea a fost realizată prima, pentru ca mai apoi să urmeze implementarea cu programarea
software a microcontrolerului. Implementarea algoritmului principal de control al robotulu i a
constat în mai multe părți: comunicația cu motoroarele, comunicația cu microcontrolerului,
comunicația microcontrolerului cu calculatorul, comunicația cu modulul de Bluetooth.
Materiile care au pus baza acestui proiect includ Arhitectura Microproceso arelor,
Microcontrolere, Programare, Structuri de Date și Algoritmi, Electronică Auto, Robotică,
Testarea Automată a Echipsmentelor și Proceselor, precum și Dispozitive Electronice și Circuite
Electronice Fundamentale.
În această lucrare contribuția mea a constat în analizarea sistemelor asemănătoare,
proiectarea unui sistem asemănător dar cu elemente proprii, sinteza în realizarea controlului și a
comenzii electronice, conceperea modelului experimental prin împletirea de elemente existente
pe piață și ele mente proprii proiectate, precum și conceperea și realizarea totală a părții software
a proiectului. Pentru construcția și montajul elementelor fizice am consultat diverse persoane
pricepute în domeniul mecanic, iar aparatul a ieșit foarte rigid, cu elemen te plastic și aluminiu.
Cam 20% din timp l -am petrecut proiectând placuța electronică (PCB), 40% în construcția fizică
a aparatului, iar restul de 40% în realizarea și testarea software -ului.
Versiunea de față poate fi îmbunătățită prin creșterea acurateț ii virajelor executate, prin
construirea unui sistem adaptiv, care să fie capabil să citească parametrii mediului în timp real și
să ia decizii diferite. Pe lângă cele menționate, s -ar mai putea lua în considerare integrarea unor
algoritmi de învățare aut omată, altfel încât să luăm la fiecare moment de timp, cea mai bună
decizie. O contribuție suplimentară a robotului ar putea consta în implementarea unei camere
video pentru identificarea, cu ajutorul telefonului mobil, problemelor întâmpinate în timpul
mișcării.După o dezvoltare mai complexă și completă a robotului, acesta poate fi folosit în
industrie pentru a detecta diferite probleme în spațiile mici, precum și vizualizarea obstacolelor
cu ajutorul camerei video implementate.
În ceea ce privește opinia personală a fost un proiect interesant, din care am avut de
învățat o serie de lucruri și chiar dacă nu am făcut ceva de real ajutor pentru alți oameni, mă
bucur că a fost ceva practic, diversificat, altceva decât o simplă aplicație software. Este dest ul de
greu să inventezi ceva complet nou în acest domeniu, deoarece la ora actuală din punct de vedere
hardware apar tot felul de limitări, ajugându -se și la o oarecare saturație .
66
67
Bibliografie
[1] Florescu A., “Switching Power Supply with Monoloithic Switching Regulator Subsystems
and DC -DC Step -Up Converter – Part A: Descrip tio n of Switching Regulator Subsystemes and
mathemayical Theory of DC -DC Step -Up Converter Contro ller by them”, Procee dings of 4th
International Symposium “Advanced Topics in Electrical Engineering” (ATEE 2004). ISBN
973-7728 -31-9, November 25 -26, 2004, Bucuresti, Romania, pp. 249 -255.
[2] Richard H. Barnett, Sarah Cox, Larry O'Cull , “Embedded C Programming and the At mel
AVR”, ISBN 978 -1418039, Cengage Learning, 2006 .
[3] Viorel -Constantin Petrec, ” Introducere in microcontrolere si automate programabile”, ISBN
9789737556363, Editura Matrixrom 2007.
[4] Ciugudean Mircea, ” Circuite integrate analogice cu tranzistoare MOS ”, Editura Timișoara,
2000
[5] Viorel Popa ,”Electronică Aplicată”, ISBN 973 -36-0101 -2, Editura VEST Timișoara, 1992.
[6] Radu Rădescu , Constantin Negrescu , ” Arhitectura sistemelor de calcul ”, ISBN 973844928,
Editura Politehnica Press, 2003 .
[7] History of robots. Wikipedia. http://en.wikipedia.org/wiki/History_of_ro bots.
[8] Comandarea motoarelor.
http://www.robotics.ucv.ro/flexform/aplicatii/m1/Nicula%20Manuela –
Comanda%20bidirectionala%20a%20motorului%20de%20curent%20continuu/
[9] ATMEL ATMega88 DataSheet.
http://www.atmel.com/devices/atmega88.aspx?tab=documents
[10] Robot. http://patrickmccabemakes.com/hardware/Maze_Solving_Robot_V3/
[11] H Bridge. Wikipedia. http://en.wikipedia.org/wiki/H_bridge
[12] LM3490 DataSheet. http://www.ti.com/lit/ds/symlink/lm3490.pdf
[13] Punte H.
http://www.instructables.com/id/Dual -H-Bridge -L298 -Breakout -Board -Homemade/
[14] Tranzistorul MOSFET. http://electrodb.ro/teorie -in-electronica/tranzistorul -mosfet/
[15] Led -urile. http://eprofu.ro/docs/electronica/carte/led -afisaj -7-segmente.pdf
68
[16] Oscilat orul cu cuarț. https://www.scribd.com/doc/260917231/Oscilatoare -cuart
[17] Schema bloc. http://cs.curs.p ub.ro/wiki/pm/prj2015/tvisan/bcar?s[]=bluetooth
[18] Modul Bluetooth HC -05.
http://www.tec.reutlingen -university.de/uploads/media/DatenblattHC -05_BT -Modul.pd f
69
Anexe
Cod sursă
// Secvență de inițializare
const int viteza=255;
const int ledyl=A1;
const int ledyr=A0;
const int ledw= 11;
const int ledr= 3;
const int btcon= 2;
const int motor11=6;
const int motor12=5;
const int motor21=10;
const int motor22=9;
const int intensity[]={10, 50, 255};
// Inițializarea modulelor hardware
void setup() {
Serial.begin(9600); // deschide portul serial și setează rata de transfer la 9600bps
pinMode(ledyl, OUTPUT); //setăm pinii digitali ca ie șiri
pinMode(ledyr, OUTPUT);
pinMode(ledw, OUTPUT);
pinMode(ledr, OUTPUT);
pinMode(motor11, OUTPUT);
pinMode(motor12, OUTPUT);
pinMode(motor21, OUTPUT);
pinMode(motor22, OUTPUT);
pinMode(btcon, INPUT); //setăm pinul 32 al microcontrolerului ATmega88
}
//apelăm o funție repetitivă care se va opri numai în momentul când robotul este închis
void loop() {
byte sread; //citim bitul
if (Serial.available()) { //selectam numărul de biți pentru citirea din portul serial
sread = Serial.read(); // se citește bitul disponibil
switch (sread){
case '2' : //fata
analogWrite(motor11,viteza); // funție pentru a mișca robotul la viteze diferite
analogWrite(motor12,0);
analogWrite(motor21,viteza);
70
analogWrite(moto r22,0);
digitalWrite(ledyr, LOW);
digitalWrite(ledyl, LOW);
analogWrite(ledw, intensity[3]);
analogWrite(ledr, intensity[1]);
break;
case '8' : //spate
analogWrite(motor11,0);
analogWrite(motor 12,viteza);
analogWrite(motor21,0);
analogWrite(motor22,viteza);
digitalWrite(ledyr, !digitalRead(ledyr));
digitalWrite(ledyl, !digitalRead(ledyl));
analogWrite(ledw, intensity[1]);
analogWrite(ledr, intensit y[3]);
break;
case '4' : //stanga local
analogWrite(motor11,0);
analogWrite(motor12,viteza);
analogWrite(motor21,viteza);
analogWrite(motor22,0);
digitalWrite(ledyr, LOW);
digitalWrite(ledyl, !digitalRead(ledyl));
analogWrite(ledw, intensity[2]);
analogWrite(ledr, intensity[2]);
break;
case '6' : //dreapta local
analogWrite(motor11,viteza);
analogWrite(motor12,0);
analogWrite(motor21,0);
analogWrite(motor22,viteza);
digitalWrite(ledyr, !digitalRead(ledyr));
digitalWrite(ledyl, LOW);
analogWrite(ledw, intensity[2]);
analogWrite(ledr, intensity[2]);
break;
case '1' : //stanga FAȚĂ
analogWrite(motor11,viteza);
analogWrite(motor12,0);
analogWrite(motor21,0);
analogWrite(motor22,0);
digitalWrite(ledyr, LOW);
digitalWrite(ledyl, !digitalRead(ledyl));
analogWrite(ledw, intensity[3]);
71
analogWrite(ledr, intensity[2]);
break;
case '3' : //dreapta FAȚĂ
analogWrite(motor11,0);
analogWrite(motor12,0);
analogWrite(motor21,viteza);
analogWrite(motor22,0);
digitalWrite(ledyr, !digitalRead(ledyr));
digitalWrite(ledyl, LOW);
analogWrite(ledw, intensity[3]);
analogWrite(ledr, intensity[2]);
break;
case '7' : //stanga SPATE
analogWrite(motor11,0);
analogWrite(motor12,0);
analogWrite(motor21,0);
analogWrite(motor22,viteza);
digitalWrite(ledyr, LOW);
digitalWrite(ledyl, !digitalRead(ledyl));
analogWrite(ledw, intensity[2]) ;
analogWrite(ledr, intensity[3]);
break;
case '9' : //dreapta SPATE
analogWrite(motor11,0);
analogWrite(motor12,0);
analogWrite(motor21,viteza);
analogWrite(motor22,0);
digitalWrite(ledyr, !digitalRead(ledyr));
digitalWrite(ledyl, LOW);
analogWrite(ledw, intensity[2]);
analogWrite(ledr, intensity[3]);
break;
case '5' : //STOP
analogWrite(motor11,0);
analogWrite(motor12,0);
analogWrite(motor21,0);
analogWrite(motor22,0);
digitalWrite(ledyr, LOW);
digitalWrite(ledyl, LOW);
analogWrite(ledw, intensity[1]);
analogWrite(ledr, intensity[1]);
break;
};
72
}
if (!digitalRead(btcon)){ // expresia se execută dacă valoarea conținută de bit nu corespunde cu
informația citită
analogWrite(motor11,0);
analogWrite(motor12,0);
analogWrite(motor21,0);
analogWrite(motor22,0);
digitalWri te(ledyr, !digitalRead(ledyr));
digitalWrite(ledyl, !digitalRead(ledyl));
analogWrite(ledw, intensity[3]);
analogWrite(ledr, intensity[3]);
delay(200);
}
delay(50);
}
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Modul telecomandat prin modulație de [625387] (ID: 625387)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
