Implementarea unui robot mobil. Aplicatie Ballbot Absolvent Dorin Petre Coordonator Sl.dr.ing. Monica Patrascu Bucuresti, 2013 CUPRINS 1. Introducere… [611225]
Universitatea Politehnica București
Facultatea de Automatic a si Calculatoare
Departamentul de Automatic a si Ingineria Sistemelor
LUCRARE DE LICENTA
Implementarea unui robot mobil.
Aplicatie Ballbot
Absolvent: [anonimizat], 2013
CUPRINS
1. Introducere 2
2. Roboti mobili 3
3. Propunere robot de tip Ballbot 7
3.1. Formulare problema 7
3.2. Solutie propusa 8
4. Implementarea robotului de tip Ballbot 11
4.1. Module implementare 11
4.1.1.Implementarea placilor necesare 11
4.1.2. Placa driver 12
4.1.3. Placa microcontroler 17
4.1.4. Suportul mecanic 26
4.2. Alte module 28
4.2.1. Motoarele 28
4.2.2. Acumulatorul 31
4.3. Control 33
5. Concluzii
6. Bibliografie
1
1. Introducere
In aceasta lucrare este prezentata crearea unui robot care are ca prima sarcina
balansarea pe o bila cu ajutorul a 4 roti controlate prin motoare. Ma voi axa pe
controlul robotului in stare de repaus pentru a-si mentine echilibrul.
Am ales realizarea unui astfel de robot pentru agilitatea pe care o poate
dezvolta datorita instabilitatii sale. Acesta poate avea o multitudine de aplicatii
datorita faptului ca din orice pozitie poate sa plece in orice directie in cele 360 de
grade fara a necesita nici un tip de intoarcere. Fiind omnidirectional aceasta confera
agilitate in comaparatie cu alte tipuri de roboti, dandu-i in timpul miscarii
posibilitatea manevrabilitatii mult mai usoara. Datorita contactului cu solul intr-un
singur punct imbunatateste deplasarea in locuri inguste, zone aglomerate sau
dinamice.
Diferite tipuri de utilizari pentru un asfel de robot ar putea fi:
– panou de informatii(atasarea ulterioara a unui touchscreen) intro zona
– in spitale pentru ajutorul doctorilor sau a pacientilor
– robot ajutor in interiorul firmelor: office sau spatiul de lucru si intr-o casa
– industria producerii de jucari
2
2. Roboti mobili
Scurt istoric al construirii de roboti mobili
La inceput primii roboti au fost conceputi static stabili, adica nu consumau
energie pentru a sta pe loc. Acesta era posibila avand minim 3 puncte de sprijin.
Deobicei acesti roboti erau conceputi cu o baza mare si greutate inutila pentru a fi cat
mai jos central de greutate. Baza foarte mare a robotilor stabili static face grea
navigarea printer mediul inconjurator oamenilor din ziua de azi. Acesti roboti au
marele dezavantaj ca nu se pot deplasa in orice directivtie fara a se intoarce pe loc
sau a da cu spatele.
Primul robot static instabil a fost cel pe 2 roti, urmand sa se faca dupa ideea
aceasta si faimosul Segway. Acesta are la baza un controller asemanator pendulului
invers. Din nefericire si acesta nu putea sa plece in orice directive fara a se roti pe loc.
Robotul dinamic este numit si ballbot care in general are corpul robotului care
se balanseaza pe o bila. Acesta se face deobicei prin intermediul elementelor de
executie, care sunt roti in cea mai mare parte actionate prin intermediul unor
motoare. Acestea duc la crearea unui robot cu foate multe grade de libertate datorita
balansarii pe o sfera. Corpul robotului este tinut in pozitie vertica in acest echilibru
instabil tot cu un controller facut cu ajutorul conceptelor pendului invers.
Concepte de roboti dinamic stabili pe o bila
a) Primul ballbot care a fost construit cu succes a fost CMU Ballbot (Lauwers
et al., 2005) de catre profesorul Ralph Holis la Universitatea Carnegie Mellon,
Pittsburg, SUA. Acesta a fost conceput pentru imita statura unui om si al doilea
obiectiv a fost de a crea o platforma de dezvoltare pentru viitoare idei de
imbunatatire. Acest robot are 1,5 m inaltime, diametrul de 400 mm si greutatea de 45
kg. S-a folosit o bila de bawling acoperita cu cauciuc subtine prentru a face contactul
3
cu solul. Corpul este sustinut de 3 bare de aluminiu, acesta are straturi care
diferentiaza diferitele functii ale robotului dupa cum se poate vedea si in Figura 1.1.
Alimentarea s-a facut cu ajutorul unei baterii de 48V cu capacitatea de a time
robotul pornit timp de catega ore. Unitatea de procesare e un procesor Pentium de
200MHz. Stabilizarea pe verticala a fost facuta cu ajutorul unui filtru Kalman.
Comanda motoarelor se face prin intermediul driverelor comandate in PWM.
Mecanismul care invarte bila este similar cu cel de la mouse, doar ca toate
actiunile sunt inversate, deoarece motoarele invart bila prin intermediul curelelor in
diferite pozitii pentru a echilibra. Sunt folosite servomotoare pentru actionarea
organelor de executie. Un compromis a fost facut intre un coeficient de frictiune mare
si un coeficient de frictiune mare intre barile de actionare si bila pentru a se putea
deplasa pe ambele axe.
Suportarea greutatii robotului se realizeaza prin plasarea a 3 bile
omnidirectionale in partea superioara a sferei.
4Figura 1.1. CMU Ballbot (Lauwers et al., 2005)
Modelul acestui robot a fost facut in spatiul starilor. Partea de reglare a fost
abordata din 2 perspective: prima a fost conceputa din control optimal si un controler
PI intern, iar a doua a fost facuta doar cu ajutorul unui PID.
b) Un alt ballbot este numit Rezero si este realizat de un grup de studenti din
Zurich. Acestia au avut o viziune diferita asupra constructiei mecanice a robotului.
Prima diferenta se poate vedea direct la sistemul de balansare pe bila, fiind
conceput din 3 bile fara a mai fi nevoie de ajutor la sustinerea greutatii. Motoarele
folosite nu am mai fost de tip servomotor si s-au utilizat motoare de curent continuu
fara perii cu reductoare incorporate.
Acestea au encodere pentru a cunoste la fiecare
moment de timp cate rotatii s-au efectuat. In cazul acesta
nu a mai fost utilizata o curea de transmisie.Organele de
executie in cazul acesta sunt diferite; acestea prezinta
inele aditionale ce realizeaza o miscare de rotatie
urmarind forma rotii.
Corpul robotului este asemanator constituit din
etaje care sa diferentieze diferite parti ale robotui cum ar
fi bateria, IMU, microcontrolerul(aici s-a folosit o placa
linux).
Regulatorul folosit a fost de tip control optimal in
care intrau unghurile de inclinatie cat si numarul de
rotatii efectuat de catre motoare cat si viteza acestora.
5Figura 1.2. CMU Ballbot – detaliu
(Lauwers et al., 2005)
Figura 1.3. Rezero ( Peter
F., Corsin G., 2010 )
6
3. Propunere robot de tip Ballbot
3.1. Formulare problema
Datorita contactului cu solul intr-un singur punct robotul este instabil in
miscare dar si in timpul repausului. Pornim cu un robot care trebuie sa fie tot timpul
activ pentru a nu se dezechilibra si a cadea de pe bila.
Inaltimea este un factor important care influenteaza acest tip de robot,
deoarece trebuie sa fie la o inaltime cat mai mare pentru a-si atinge scopul utilitar.
Direct dependenta de inaltime este greutatea. Aceasta creste in primul rand riscurile
in cazul de avarie.
Factorii de mai sus influenteaza urmatoarea problema care este centrul de
greutate. Cu cat va dus catre extreme(partea superioara/inferioara) robotul se va intra
mai usor in instabililate.
Cuplul maxim al motoarelor trebuie sa fie adecvat precedentelor, dar in acelasi
timp si viteza. In functie de tipul elementului de executie trebuie ales un reductor
adecvat.
In functie de toate elementele enumerate mai sus se vor permite interpretarea
cerintelor directe ale robotului dupa cum urmeaza: acceleratia, unghiurile maxime de
inclinare, dinamica si agilitatea. Viteza maxima la care poate ajunge acest robot este
data de puterea motoarelor si caracteristicile acestuia. Elementele de executie mai au
un rol important in trasmiterea momentului de rotatie intre bila si sol.
Coeficientii de frictiune intre organele de executie si sfera si sfera si sol au un
rol major in designul sistemului. Bila trebuie sa fie conceputa dintr-un material
rezistent preferabil acoperit cu un strat care sa prezinte o aderenta sporita. Intra in
discutie daca corpul sferic este gol sau plin in interior, deoarece fiecare prezinta
avantaje si dezavantaje.
7
Toate elementele de mai sus influenteaza problema principala a robotului;
controlul inertiei corpului robotului pentru a nu se dezechilibra. Modelul
dispozitivului cu care va fi citit unghiul de giratie si unghiul de rotatie. Acesta
trebuie sa fie capabil sa efectueze multe citiri ale acestor unghiuri intr-o perioada de
timp data de utilizator.
Microcontrolerul trebuie sa aiba o putere de procesare direct proportionala cu
algoritmul de reglare pe care se doreste a fi implementat.
Acumulatorul sau bateria utilizata trebuie sa fie adecvata pentru a rezista o
perioada minim necesara pentru utilizarea in mediul de utilizare.
3.2. Solutie propusa
Voi incepe cu solutia conceptuala a legaturilor dintre elementele hardware:
Microcontrolerul pe care il voi utiliza va fi Atmega 324p. Acesta v-a fi creierul
intregului sistem. El v-a citi prin intermediul MPU 6050 valorile furnizate de la
Accelerometru si Giroscop. In functie de gradul de inclinare acesta v-a cacula o
8Figura 3.1. Elemente hardware
comanda data catre motoare prin ajutorul unei valori a vitezei acestora.
Fiecare timer are desemnata cate o axa (OX sau OY) care sunt perpendiculare
unu peste alta. Acestea vor transforma aceasta comanda in PWM. Timerele vor avea
nevoie de o scurta initializare inainte de utilizare.
Driverele vor prelua PWM-ul direct proportional cu comanda si il vor
amplifica la tensiunea si vor furniza amperajul specific motoarelor.
Motoarele vor fi controlate in perechi de 2 cate 2. Acestea vor fi dispuse pe
fiecare axa cate o pereche. Ele vor fi dispuse diametral opuse pentru a lucra ca un
singur mijloc de actionare. Datorita dispunerii in orice directie ar fi setata comanda
motoarele vor fi comandate cate 1 in sens trigronometric, iar celalat in sens anti-
trigronometric.
In urmatoarea figura voi prezenta conceptul mecanic.
Cercul sau masa de deasupra v-a fi cel care v-a sustine toata electronica care v-
a fi dispusa astfel:
– acumulatorul fiind cea mai grea piesa v-a fi pus in centru
– pentru a necesita cat mai putine calcule accelerometrul v-a fi pus si acesta pe
centrul mesei
– accelerometrul va incorpora in placuta pe care va fi proiectat
9Figura 3.2. Suportul mecanic
microcontrolerul, deci microcontrolerul va fi plasat pe centrucu ajutorul unor
distantiere fata de acumuloator
– fiecare driver va fi plasat deasupra unui picior si se vor face legaturi intre
microcontroler si driver cu ajutor unor pamblici
Picioarele vor fi dispuse diametral dispuse si vor sustine motoarele care vor fi
conectate la drivere cu ajutorul unor fire.
10
4. Implementarea robotului de tip Ballbot
4.1. Module implementate
4.1.1. Implementarea placilor necesare
In implementare, am urmarit o serie de pasi:
a) Schemele au fost facute utilizand programul EagleCAD 6.3.0 Free care
permite desenarea schemei bloc cat si a layout-ului. Circuitul care urmeaza sa fie
imprimat este exporta in format pdf pentru a putea fi imprimat la scara de 1:1.
b) Metoda folosita fiind de tip UV circuitul se printeaza pe o folie
transparenta. Inainte de printare am dat contrastul la maxim si am setat o rezolutie
de 1200 dpi pentru a spori calitatea. Am folosit o imprimanta laser si am tiparit
filmul circuitului pe partea abraziva a foliei. Dupa printare am verificat continuitatea
traseelor si am corectat cu un marker de 0.5 mm in locurile unde nu au iesit perfect.
c) Pregatirea placutei pentru cablaj a fost destul de usoara datorita utilizarii
uneia direct acoperita cu photorezist. Taierea la dimensiunile necesare am realizat-o
cu ajutorul unei unelte de gaurit-frezat.
d) Am utilizat pentru transferul circuitului de pe folie pe placuta o masa de
expunere echipata cu cate 3 neoane sus si 3 neoane jos(toate fiind neoane UV de
10W) pentru a putea face simultan cele 2 parti ale placutei. Expunerea am realizat-o
aplicand foliile transparente aliniate direct pe placuta pe partea aplicata cu
photorezist, intre 2 geamuri.
e) Developarea s-a facut in soda caustica (NaOH-Hidroxid de Natriu). Am
utilizat manusi pentru a evita contactul cu solutia si am scufundat placuta. Am agitat
oaba cand photorezistul expus s-a dizolvat si traseele au ramas vizibile. Am incheiat
11
procesul de developare in momentul in care nu a mai existat photorezist decat pe
traseele circuitului.
f) Corodarea a fost realizata in clorura ferica lichida (FeCl 3). La fel ca si la
developare am folosit manusi pentru a nu intra in contact direct cu solutia. Am
folosit cutie si am plasat placuta in pozitie verticala. Am asteptat pana cand a ramas
doar circuitul imprimat din cupru, am spalat placuta sub un jet de apa curata.
Eliminarea photorezistului lasat pe trasee am facut-o cu ajutorul acetonei.
g) Gaurirea am realizat-o cu o masina de graurit-frezat sustinuta de un stand
in pozitie verticala pentru a avea o precizie sporita. Burghiele utilizate au fost de 0,8
mm si 1,2 mm.
4.1.2. Placa driver
Realizarea acestei placute s-a realizat cu ajutorul driverului dual de tip punte
HDRV 8833. Utilizand motoare de curent continuu, acest driver este una din solutiile
cele mai bune, deoarece nu ocupa spatiu foarte mare si este maleabil in privinta
acceptarii comenzilor la tensiuni diferite.
In figura 4.1 voi prezenta schema electrica in urma proiectarii electrice.
DRV 8833 este un circuit integrat care poate simultan sa actioneze 2 motoare
de curent continuu. Curentul maxim pe care poate sa il suporte pe timpul
functionarii este de 1,5A pe canal, iar curentul de varf suportat este de 2A pe canal.
Acesta mai are si o functie de legare paralela a intrarilor si iesirilor pentru a-si dubla
12Figura 4.1. Placa driver – schema electrica
performantele. Acesta are o iesire de racire, se poate vedea pe layout-ul rosu (Figura
3.4-stanga) o pata in mijlocul placii care serveste ca radiator.
Am folosit pachetul SMD, deoarece ocupa un spatiu restrans si rezista mult
mai bine in cazul socurilor si vibratiilor. Driverul suporta o alimentare destul de
variata de la 2,7 la 10,8V.
In figura 4.2 urmatoare voi prezenta layout-ul din urma proiectarii electrice.
Figura 4.2. Lay-out drivere
· Puntea H
Puntea H este probabil cel
mai utilizat mod de a comanda
motoarele de curent continuu,
oferind controlul bidirectional.
Acesta se comanda prin semnal de
tip PWM (Pulse Width
Modulation).
Logica din spate este simpla
cand tranzistorii A sunt deschisi si
tranzistorii B sunt inchisi motorul
va avea un sens generic pozitiv, iar
in cazul in care se inverseaza toti
tranzistorii motorul se va Figura 4.2
invarti in sens negativ.
13
Figura 4.3. Puntea H
· Semnalul de tip PWM
In semnalul de tip PWM se controleaza factorul de umplere al semnalului
digital. Se face o medie intre latimea semnalului fata de perioada si amplitudinea la
care ajunge semnalul. Tensiunea si curentul sunt controlate comutand rapid intre
logica 0 si logica 1 intr-un ritm alert. Frecventa trebuie sa fie in concordanta cu
driverul care va prelua sarcina de a alimenta un dispozitiv. Se pot comanda
echipamente inductive, cum ar fi motare de curent continuu sau servomotoare, dar si
led-uri pentru a creste sau scadea intensitatea luminoasa.
Figura 4.4. PWM
Dupa cum se poate observa si in figura de mai sus un factor de umplere mic ar
reprezenta o tensiune joasa si un factor de umplere mare ar reprezenta o tensiune
mare sau cea de alimentare.
· Diode protectie spike-uri
Toate drivere din ziua de azi vin cu diode de protectie impotriva spike-urilor
induse de motor inapoi in driver. Indicat este sa fie plasate pe circuit si aceste diode
suplimentare, deoarece cele interne se pot strica mult mai usor. Un alt motiv pentru
care sunt indicarte este pentru ca nu sunt de tip Schottky, care sa comute rapid.
In cazul de fata am folosit diode de tensiune dubla si 1A curentul de scurgere.
· Condensatorii C1 si C2
14
Dispozitivul permite utilizarea in paralel a iesirilor si intrarilor pentru
dublarea performantelor, dar trebuie plasati ulterior 2 condensatori de 0,01µF si
2,2µF la tensiunea de alimentare, repectiv la masa.
· Pinii dispozitivului
Tabelul 4.1 descrie principalii pini ai DRV 8833
VM Tensiunea de alimentare
GND Masa
AIN1,BIN1,AIN2,BIN2 Pinii de control ai PWM-ului
nSLEEP Pin de activare a driverului
nFAULT Pin de avarie
AISEN,BISEN Pin de feedback
AOUT1,BOUT1,AOUT2,BOUT2 Pini de iesire care motoare
Tabelul 4.1.Pinii DRV8833
Pinul de activare nSLEEP cand are tensiunea la logica 1 driverul este in starea
de activ, adica in functie de logica pinilor de comanda are iesirea adecvata. Cand are
logica 0, acesta reseteaza logica pinilor de comanda, iar DRV 8833 intra in starea de
consum redus.
Pinul de feedback nFAULT are 2 tipuri de iesiri logica 1 si logica 0 atata timp
cand driverul este activat. Acesta are logica 1 atat timp cat nu intra in nici un tip de
defect(curentul tras este prea mare sau temperatura depaseste parametrii de
utilizare).
Datorita faptului ca DRV 8833 se inchide singur in modul de avarie eu am
lasat acest pin neconectat.
Pinii de feedback AISEN, BISEN dau o tensiune direct proportionala cu
curentul tras pe fiecare canala(punte H). Acestia cand nu sunt utilizati se duc la masa
circuitului.
· Comandarea driverelor in urma schemei electrice
Comandare acestor drivere este extrem de simpla. Dupa cum se poate vedea
in Figura 4.1, blocul JP1 are intrarile in gruparile (AIN1,BIN1), respectiv (AIN2,BIN2)
si nSLEEP .
15
nSLEEPAIN1,BIN1AIN2,BIN2AOUT1,
BOUT1AOUT2,
BOUT2Rezultat
0XXXXMotor pasiv
3,3V0V0VZZIncetinirea rapida a
motorului
3,3V0VPWM(3,3V)0VPWM(7,4V)Motor inapoi
3,3VPWM(3,3V)0VPWM(7,4V)0VMotor inainte
3,3V3,3V3,3V0V0VFrana fortata a
motorului
Tabelul 4.2. Comanda motor
In figura 4.5 voi prezenta rezultatul driverului in urma tuturor proceselor de
proiectare, expunere, developare si lipire:
Figura 4.5. Implementare driver
16
4.1.3. Placa microcontroler
Placa are scopul de a citi unghiurile de inclinare, de a rula un algoritm de
reglare si de a da comenzile spre drivere. Realizarea acesteia a fost facut cu ajutorul
unui stabilizator de tensiune de 3,3V, un microcontroler Atmel si un circuit care
serverste ca accelerometru + giroscop.
In figura 4.6 voi prezenta schema electrica din urma proiectarii electrice.
Figura 4.6. Schema electrica
Legaturile dintre diferitele blocuri s-au facut cu ajutor diferitelor simboluri de
legatura cum ar fi alimentarea, sau in alte cazuri s-a facut prin redenumirea firului.
Aceasta este posibila, deoarece in EagleCAD fiecare legatura dintre 2 pini (fir electric)
are o denumire unica.
Componenta auxiliara a acestei placi este MPU 6050 care este reprezentata
printr-o bara de pinheader, urmand sa se execute legaturile adecvate de alimentare si
comunicare cu microcontrolerul.
In figura 4.7. voi prezenta schema electrica din urma proiectarii electrice.
17
Figura 4.7. Schema electrica
In continuare voi prezenta componentele folosite pentru aceasta placa.
· Microcontrolerul folosit: ATmega 324P
Unitatea centrala de programare (CPU) in cazul meu este microcontrolerul.
Acesta reprezinta un circuit integrat care cuprinde o unitate centrala de procesare, o
memorie (RAM si flash), si pini de I/O pentru
interactiona cu sistemele periferice care pot fi
programate prin intermediul ICSP(In Circuit Sistem
Programind). Cel mai des este intalnit in sisteme
embeded avand o singura sarcina de facut unde
utilizatorul nu interactioneaza direct cu el. In ziua de
azi se gaseste cam in toate dispozitivele utilizate de om
de la frigider, telecomanda, avand aplicatii in sisteme
importante cum ar fi la masini (ABS) si ducandu-se la
alicatii extrem de complexe si periculoase cum ar fi un
avion sau un reactor.
Deobicei un producator de microcontrolere se axeaza pe o anumita piata.
Atmel AVR produce in special cipuri folosite in sistemele embeded. ARM sunt
specializati pe domeniul telefoanelor mobile, iar Intel sunt axati pe procesoare cu
putere mare pentru calculatoare si laptopuri.
Am ales sa utilizez varianta SMD a acestui produs fata de varianta QFN
(quad-flat no-leads), deoarece sunt mult mai usor de observat pinii, se poate utiliza
un letcon petru lipirea pe placa, fata de QFN care necesita o pompa de aer cald
pentru a putea fixa circuitul integrat.
18Figura 4.8. ATmega
Principalele caracteristici ale acestui dispozitiv sunt:
CPU 8biti
Memorie RAM 2KB
Memorie Flash 32KB
Porturi analogice(I/O) 32
Oscilator Intern 4MHz
Extern 16MHz
Tabel 4.5 Caracteristici ATmega 324p
Din cei 44 de pini ai integratului 32 se pot folosi pentru a interactiona cu
sistemele periferice. Pinii acestia digitali pot fi setati dupa nevoie sa fie I/O. Pinii de
interactiune au si alte intrebuintari:
– 8 pini pot deveni analogici I/O (out-poate fi intre 0V-si tensiunea de
alimentare)
– 3 pini se utilizeaza de ICSP pentru programare
– 6 pini pot fi setati pentru PWM in functie de timer: Timer0-(PD6,PD7),
Timer1-(PD4,PD5) si Timer2-(PB3,PB4)
– 2 pini de comunicatie seriala: RX-PD0 si TX-PD1
– etc.
Pinii ramasi vor folosi la funtii diferite functii ale microcontrolerului dupa cum
urmeaza: 3+1 pini de alimentare 1 pin alimentand CAN (convertorul analog-
numeric), 4 pini pentru a pune masa circuitului, 1 pin pentru o tensiune de referinta
in cazul in care pinii analogici se folosesc pe post de comparatori si 2 pini dedicati
cuartului.
In lucrarea aceasta am utilizat Timerul 0 si Timerul 2 pentru ca acestia au o
rezolutie de 8 biti ceea ce ofera o posibilitate de 256 de valori [0-255] pentru a seta
PWM-ul, fata de Timerul 1 care poate ajunge la o rezolutie de 16 biti. Datorita
faptului ca in lucrarea prezenta nu am nevoie de fine ridicata din partea PWM-ului
am utilizat doar primii 2 timeri mentionati.
Fiecare driver are o frecventa pentru care trebuie dat PWM-ul. In cazul DRV
8833 acesta este 20KHz. Cu ajutorul timerelor trebuie sa ajung la o frecventa cat mai
apropiata de cea nominala. Formula dupa care se seteaza frecventa PWM-ului este:
fPWM=fOSC
2⋅N⋅1OCRnx(4.1)
unde :
19
– fPWM – frecventa PWM
– fOSC – frecventa Oscilatorului
– N – valoarea prescaler-ului
– OCRnx – un registru de 8 biti
Sunt 2 tipuri principale de generare a PWM-ului: faza corecta si PWM rapid.
Principala diferenta intre cele 2 tipuri de generare a PWM-ului este ca cel rapid are o
frecventa de 2 ori mai mare fata de cel cu faza corecta.
In lucrarea aceasta am folosit un oscilator extern, deoarece este mult mai
precis si confera putere de calcul mult mai mare decat cel intern. Oscilatorul folosit
este de 16MHz. Registrul OCR a fost folosit la valoarea sa maxima (0xFF), iar la
prescaler-ul l-am folosit de 8.
In urma calculelor frecventa PWM-ului este de aproximativ 4KHz. Folosind
PWM rapid am ajuns la o frecventa destul de buna de 8KHz.
Mufele destinate motoarelor au fost facute pentru a controla simultan pe o axa
cate 2 motoare in aceeasi directie. Astfel gruparile de pini M1 si M2 sunt destinate
contolului directiei motoarelor.
In cazul oscilatorului extern am folosit condensatorii C3 si C4 pentru a filtra
orice tip de zgomot, iar pe trasarea layout-ului am incercat pe cat posibil plasarea
oscilatorului mai aproape de pinii microcontrolerului, la fel si a condensatorilo de
oscilator.
Pinul de RESET avand o logica negata am pus o rezistenta de 10KΩ trage sus,
iar pentru resetare am adaugat un buton catre borna minus si un alt traseul care
RESET de la grupul de pini ISCP .
Programarea se face cu ajutorul unui Programator ICSP , in cazul acesta am
folosit un AVRISP mkII. Pinii necesari programarii sunt : MISO, MOSI si SCK la care
se alatura pinul de RESET, tensiunea de alimentare a microcontrolerului si masa.
Comunicatia seriala se face prin pinii RX si TX. In gruparea destinata
schimbului de date cu calculatorul am adaugat si masa pentru a avea aceeasi
referinta intre PC si placa cu microcontroler. Conectarea cu o mufa DB9 este simpla
fiind necesar conectarea pinuilui RX de la microcontroler in pinul TX de la mufa DB9
si viceversa. Aceasta confera cu ajutorul unui terminal o calibrare mult mai usoara.
Microcontrolerul trebuie alimentat pe toare cele 4 grupuri de alimentari, una
pe fiecare latura a sa. Gruparea de condensatori de 100nF (C14, C15, C19, C20) este
folosita pentru filtrarea acestor alimentari datorita diverselor surse de zgomot.
Acestia sunt plasati la fel ca in cazul oscilatorului la o distanta cat mai mica fata de
pinii microcontrolerului.
20
Am utilizat un intrerupator electric de tip DIP (dual in line package) in locul
unor blocuri cu jumperi, avantajul fiind schimbul starilor mult mai usor si lipsa
pieselor mici (jumperii propriu-zisi) care se pot pierde usor. Acesta are 4 switch-uri
independente fiecare avand cate o rezistenta de 10KOhmi, care imi permite 16 stari
diferite. Functia sa principala este de a selecta diferitii algoritmi de reglare.
●Stabilizatorul de tensiune LM 317
Stabilizatorul de tensiune LM 317 este un circuit integrat cu 3 terminale care se
poate tensiunea de iesire de la 1,2V pana la 37V. O alta caracteristica a acestui
dispozitiv este ca poate sa furnizese peste 1,5A. Diferenta de tensiune se face prin
eliminare de caldura. Circuitul are sistem de protectie integrat pentru diferite stari de
intrare in defect. Curentul este limitat intern la fel si dispozitivul se inchide singur in
cazul incalzii peste parametrii de functionare.
LM 317 vine intr-o capsula To220 fiind una din cele mai utilizate capsule.
Deschizatura din mijlocul lamelei de racire permite plasarea unui radiator pentru a
mari durata de viata a integratului. Pinii dupa cum se poate vedea si in figura de mai
sus sunt de la stanga la dreapta Adj, Out, In.
Reglarea stabilizatorului la o anumita tensiune se face fie cu 2 rezistente fie cu
o rezistenta si un potentiometru. Se face dupa urmatoarea formula:
VOUT=1,25∗(1+R1
R2)+IADJ∗R2 (4.2)
Rezistentele se vor plasa intre : R1 inte pinii Adj si Out, iar R2 intre Adj si
masa. In schema urmatoare o sa prezint modul de legare in curcuit a stabilizatorului
21Figura 4.9 Terminale LM 317
de tensiune:
In schema de proiectare se pot vedea cei 2 condensatori pe intrare si pe iesire
care sunt de filtrare si de decuplare. In plus se observa un led si o rezistenta pentru a
semnaliza alimentarea circuitelor si functionarea adecvata a integratului, rezistenta
este pusa pentru a limita curentul scurs prin led.
Am ales un circuit de stabilizare la 3,3V pentru alimentarea modulului de
accelerometru si giroscop. Datorita compatibilitatii microcontrolerului cu tensiunea
redusa, dar si a driverelor care au limita inferioara pe pinii de comanda este 2V, iar
pe pinul de enable nSLEEP este 2,5V am ales alimentarea tuturor componentelor,
deoarece simplifica schema placii de comanda si nu necesita trecerea de la un nivel
logic la altul in cazul comunicatiei cu modulul de accelerometru si giroscop.
●MPU 6050
MPU (Motion Processing Unit) este un modul al unui circuit integrat care
returneaza citirile de la un accelerometru pe 3 axe, la fel si la un giroscop pe 3 axe.
22Figura 4.10 Schema bloc LM 317
Figura 4.11 MPU 6050
Interfata in care un dispozitit este sensibil la miscare incepe din ce in sa
creasca in noile dispozitive electronice si electrocasnice. Acestea se gasesc in telefoane
mobile, console de jocuri si televizoare Smart, metoda intuitiva de utiliziare confera
utilizatorilor interactiunea cu dispozitivele electrice mult mai placuta datorita
miscarilor in aer liber care sunt vazut direct comenzi catre dispozitiv.
Cateva posibile aplicatii ale MPU 6050:
–controlere de jocuri bazare pe miscare
–stabilizarea imagini/video
–comenzi bazate pe gesturi
–senzori care se pot purta pentru fitnes/sporturi
–jucarii
MPU 6050 inglobeaza 3 axe pentru accelerometru care sunt citite cu ajutorul a
3 convertoare analog – numerice pe 16 biti si 3 axe pentru giroscop care sunt
deasemenea citite cu ajutorul a 3 concertoare analog – numerice tot pe 16 biti. Pentru
precizie ridicata se pot alege diferite trepte de finete pentru:
–accelerometru ±2g,±4g,±8g,±16g
–giroscop ±250,±500,±1000,±2000°/sec (dps).
Comunicarea cu alte dispozitive se face printermediul interfetei I2C (Inter
Integrated Circuit). MPU 6050 are un buffer de tip FIFO (First In First Out) de 1024
de octeti care ajuta la scaderea consumului de energie prin citirea rapida de la senzor
a valorilor si memorarealor la nivel de procesare.
Alimentarea acestui circuit se face la o tensiunea in intervalul 2,37V – 3,46V,
aceasta se face pe pinul VDD al circuitului integrat. Acesta mai dispune de inca un
pin de alimentare pentru interfata I2C numit generic VIO (V Input/Output).
Interfata I2C este un sistem de comunicatie seriala care utilizeaza doar 2 linii
bidirectionale, SDA (Serial Data Line) si SCL (Serial Clock) cu rezistente trage sus.
Cele mai intalnite logici de tensiune pentru utilizarea interfetei sunt +5V sau +3,3V
desi sisteme cu alte plaje de tensiune permit folosirea ei. Interfata I2C are un design
de referinta de cate 7biti sau 10 biti (depinde de dispozitivul utilizat) spatiu de
adresare. Cele mai comune viteze sunt la 100Kb/s modul standard si 10Kb/s model
de viteza mica de transmisie.
23
Cele mai recente imbunatatiri ale I2C-uluifunctioneaza la viteze cu mult mai
mari:
–fast mode – 400Kb/s
–fast mode plus – 1Mb/s
–high speed mode – 3,4Mb/s
Aceste viteze sunt utilizate deobicei utilizate pe sisteme embeded mai mult
decat pe PC. O alta imbunatatire este adresarea pe 16biti.
Comunicatia cu registrii dispozitivului se face prin intermediul protocolului
de comunicare I2C la o frecventa de 400 Khz.
Dispozitivul ofera performante inalte, zgomot redus cu ajutorul filtrelor si nu
este greu de folosit desi el datorita tehnitogiilor folosite are o dimensiune de numai
4x4x0.9 mm. Nici pretul acestui dispozitiv nu este ridicat, acesta fiind un motiv in
plus pentru achizitionarea sa.
Pinii cu care se conecteaza acest dispozitiv sunt:
–VDD – tensiunea de alimentare (3,3V)
–GND – masa (0V)
–INT – pin utilizat in intreruperi
24Figura 4.12 MPU 6050 configuratie pini
–SYNC – sincronizarea
–SCL – comunicatie I2C cu AT mega
–SDA – comunicatie I2C cu AT mega
–VIO – tensiunea de alimentare pentru comunicatia prin I2C
–CLK – ceasu
–ASCL – comunicatie I2C cu alte periferice
–ASDA – comunicatie I2C cu alte periferice
Conectarea acestui dispozitiv intr-oschema electrica este simpla. Se folosesc
doar 5 pini: alimentarea de 3,3V se leaga de pinii VDD si VIO, masa circuitului se
leaga de GND, iar pinii SCL si SDA se leaga direct la pinii SCL si SDA ai
microcontrolerului.
In diferite intrebuintari se utilizeaza si restul de pini cum ar fi: pinul de SYNC
se leaga de diferite dispozitive care fac procesare de imagini, video sau GPS; pinul
INT pentru utilizarea intreruperilor. In cazul in care se doreste utilizarea diferiteor
dispozitive periferi prin intermediul MPU 6050 se vor utiliza pinii ASDA si ASCL
pentru comunicatie.
Principalele avantaje ale MPU6050:
–iesiri digitale corespunzatoare celor 3 axe (X,Y,Z)
–convertoare analog – numerice pe 16 biti pentru citirea accelerometrului si a
giroscopului
–alegerea diferitelor trepte de finete in cazul accelerometrului dar si a
giroscopului
–reducerea zgomotelor prin utilizarea filtrelor
–curentul necesitat la operare mic
–curentul necesitat in stand by mic
–magistrala a doua I2C pentru utilizarea unui magnetometru
–dimensiune si greutate foarte mica
–buffter FIFO de 1024 de octeti
–comunicatie la 40 KHz prin interfata I2C
Functionarea dispozitivului in parametrii nominali se face respectand
urmatorele valori:
VDD(alimentare) 2,37V – 3,46V
VIO VDD ±0,5
Tensiune intrare pini VDD ±0,5
Temperaturi suportate -40°C pana la +105°C
Talbel 4.6 Vlori nominale MPU 6050
25
In figura 4.13 voi prezenta rezultatul driverului in urma tuturor proceselor de
proiectare, expunere, developare si lipire:
4.1.3. Suportul mecanic
Suportul mecanic a fost implementat in AutoCAD 2008. Acesta are sarcina de
a sustine toate componentele electrice dar si mecanice fiind scheletul din corpul
robotului. Acesta se contruieste din 5 bucati: etajul si cele 4 picioare.
Etajul sustine toate componentele de electronica: placile de driver si placa de
microcontroler. Acestea vor fi prinse cu ajutorul unor suruburi si piulite. Datorita
materialului utilizat (plexiglas de 3mm) nu v-a fi nevoita izolarea intre placi si etaj.
Gaurile pentru sustinerea picioarelor au proiectate decalate in sens anti-
trigonometric. Acest spatiu a fost necesar datorita axului de la motoare si rotii atasata
pe ax pentru a avea o suprafata cat mai mare de frictiune cu bila.
Gaurile pentru sustinerea placii cu microcontroler au fost date astfel incat
modulul MPU 6050 este plasat in centrul cercului si axele sale aliniate cu liniile
26Figura 4.13 Placa microcontroler
motoarelor care sunt diametral opuse 2 cate 2. Acesta plasare ma v-a scapa de calcule
in plus in timpul programarii de a compensa diferenta de unghi.
In figura4.14 voi prezenta etajul si piciorul in urma proiectarii:
Piciorul a fost taiat tot din plexiglas de 3mm va fi prins cu ajutorul unor
suruburi prin gaurile date in etaj si va sustine toata greutatea etajului cu acumulator
si cu placi. Se va prinde in partea inferioara motorul .
Dupa prima asamblarea am constatat ca picioarele nu erau stabile si nu
stateau la un unghi de 90 de grade fata de etajul robotului. Solutia a fost sa pun cate 4
intarituri in forma de L la fiecare picior cate 2 pe interior si cate 2 pe exterior. Acestea
au fost lipite cu un adeziv facut din rasina si intaritor.
O alta problema a mai aparut dupa ce am lipit inaritorii pentru picioare.
Suportul pentru motoare fiind din plexiglas de 3mm avea proprietati elestice si se
puteau indoi foarte usor; solutia a fost atasarea in partea de jos a etajului a unei bile
omnidirectionale pentru a putea mentine rotile robotului la mijlocul bilei.
Legaturile intre toate modulele electronice se fac cu ajutorul pamblicilor sau a
firelor. In implementarea placilor am folosit 2 tipuri de conectori: conectori cu surub
pentru alimentare si legarea motoarelor la drivere si conectori de tip pinhead de tip
tata pentru locurile unde erau semnale de 3,3V. Pamblicile au fost facute din bagete
de tip pinhead mama, iar pentru alimentare si pentru conectarea motoarelor am
folosit cabluri cu fire de cupru.
27
Figura 4.14 Etaj + picior AutoCAD
4.2. Alte module
4.2.1 Motoare
Este elementul care asigura deplasarea robotului, deci este probabil cea mai
vitala piesa din robot. Probabil cel mai utilizat tip de motoare in practica este cel de
curent continuu. Acestea se pot imparti in motoare de curent continuu fara perii si
motoare de curent continuu cu perii.
●Motoarele de curent continuu fara perii
Este un motor electric de curent continuu la care comutatia necesara invartirii
rotorului se realizeaza electronic. Mai este numit si motor fara colector deoarece
acestuia ii lipsesc periile si colectorul fata de omologul sau.
Controlul acestui motor se face cu un microcontroler numit ESC (Electronic
Speed Controll). Acest sistem de comanda trebuie ii trebuie 2 module principale:
senzori Hall si drivere. Microcontrolerul trebuie sa citeasca pozitia rotorului cu
ajutorul senzorilor si sa comute polaritatea magnetilor din stator simultan in functie
de pozitia acestui.
Avantajele acestui motor sunt :
28Figura 4.15 Motor de curent continuu fara perii
–randament mare
–se incalzeste greu
–nu necesita intretinere speciala
Controlul acestui tip de motor este mai dificil si un impediment ar fi costul de
fabricatie ridicat.
●Motoarele de curent continuu cu perii
Este un motor electric asemanator cu cel fara perii, dar pentru a comuta se va
schimba polaritatea rotorului.
Acest tip de motor dupa cum se vede in figura 4.16 nu necesita nici un fel de
sistem de control ar rotorului perii fac singuri controlul rotorului polarizand singuri
cand ajung in dreptul unei borne un alt electromagnet, iar electromagnetul care
ajunge in dreptul bornei ramane nepolarizat. Toata procedura se realizeaza cu
ajutorul comutatoarelor in forma de arce de cerc.
Problema intervine din cauza frecarii daca nu este controlat corespunzator
poate sa se incalzesca fie pana cand perii se lipesc de colector sau nu mai fac contact.
Motoarele de curent continuu sunt cel mai usor de controlat: pentru o directie
se polarizeaza bornele intr-un fel (exemplu: borna A – V+ si borna B – V- ), iar pentru
sensul celalat se schimba sennsul de circulare al curentului (exemplu: borna B – V+ si
borna A – V- ).
29Figura 4.16 Motor de curent continuu cu perii
In cazul ambelor motoare cel mai utilizat driver este cel in forma de punte H.
Am ales utilizarea motoarelor de curent continuu cu perii datorita controlului
extrem de usor, in sistemul in care le voi utiliza ele nu vor fi suprasolicitate sau
solitcitate pe o perioada de timp indelungata, deci nu se vor incalzi foarte mult si
datorita pretului care este relativ redus.
●Motorul Micro Metal Gearmotor 50:1 HP
Motoarele alese pentru executarea comenzilor sunt “Motorul Micro Metal
Gearmotor 50:1 HP”. Aceste motoare au dimensiuni mici dand impresia unei forme
lunguiete de 9.3mm.
Sunt facute pentru a functiona la tensiunea nominala de 6 V si consuma
100mA cand se lasa sa se invarta libere. In conditii de opunere la sensul de rotatie ele
ajung la un consum de 1600mA.
Motorul are un reguductor de metal format din roti dintate ce determina un
raport de reducere a turatiei de 50:1. Viteza rezultata pe axul care iese din cutia de la
reductor este de 625 RPM (Rotatii pe minut). Cuplul catigat este de 1.1 Kg – cm .
In general motoarele pot functiona maxim la o data si jumatatate din tensiunea
lor nominala si minim la jumatate din tensiunea nominala. In cazul de fata tensiunea
de utilizare va fi de [3 – 9]V . Inceperea rotirii axului se face in jur de 0.5V.
Axul care iese din cutia de reductie este de tip D si pe el se va atasa roata si are
lungimea de 3mm.
Roata utilizata va fi modelul “Solarbotics RW2i” care este din cauciuc. Are o
jeanta din aluminiu si un surub pentru fixare sub cauciuc. Aceasta fixare interna
economiseste spatiu atunci cand esti constrans.
30Figura 4.17 Microgear
Diametrul rotii este de 31.2mm si latimea de 13.2mm. Jeanta este facuta pentru
axuri de 3mm. Fixarea se face cu ajutorul unui imbus de 1.2mm.
Am ales aceste roti datorita coeficientului ridicat de frecare intre roata si bila;
bila fiind din acelasi material.
4.2.2. Acumulatorul
Voi incepe cu descrierea catorva tipuri de acumulatori:
●Bateriile alcaline
Depind de reactia dintre Zinc si Dioxid de Magneziu. Au o capacitate mare de
inmagazinare a energiei electrice, dar curentul pe care il pot suplini este direct
proportional cu marimea sa fizica. In general acumulatorii bateriile de tip AA pot
oferi 700mAh.
Au 1,5V pe celula, tensiunea oscileaza in timpul descarcarii. Depinde de
puritatea Dioxidului de Magneziu, o celula poate sa ajunga la o tensiune de 1,65V. In
timpul descarcarii celula oscileaza intre 1.1V si 1.3V . O celula complet descarcata are
temsiunea la borne de 0.8V.
Utilizare lor este in aparate foto, jucarii etc.
●Acumulatorii NiCd
Curentul maxim pe care il pot da variaza cu marimea acumulatorului. Pot
oferi pana la 3C (de 3 ori amperajul pe care il au).
Tensiunea pe celula este de 1.2V. Desi este mai joasa de 1.5V pe celula ca la
bateriile alcaline, care este tensiune cand sunt incarcate si nu tensiunea medie, la
acumulatorii de NiCd tensiunea scade foate putin in timpul descarcarii. Uneori se
pune problema de realizare cand este acumulatorul descarcat datorita diferentei
nesemnificative. Celula de NiCd cand este descarcata are o tensiune la borne de 1V.
Utilizare: iluniarea de urgenta, telefoane wireless si diferite modele de jucari.
●Acumulatorul de LiPo
Acumulatorii de LiPo au cea mai mare densitate de energie ~120Wh/kg.
Curentul oferit in timpul utilizarii poate sa fie 25C (cazul in care un acumulator are
1Ah acesta pote sa furnizeze 25A maxim).
31
Tensiunea pe o celula este de 3,7V. Tensiunea variaza direct proportional cu
procentul de incarcare al bateriei. Variatia incarcat – descarcat este de 0.5V pe celula.
Utilizarea lor este cel mai des intalnita in aparatele comandate prin unde
radio, dupa in proiectele facute in casa si in vehiculele electrice.
Am ales ultimul tip de acumulator, cel de LiPo, deoarece are densitatea de
energie cea mai mare si si datorita posibilitatii de descarcare foare mare.
Acumulatorul ales de mine este de la firma Kingmax. Are tensiunea de 7,4V
ceea ce faciliteaza motoare, deoarece este in plaja lor de utilizare de [3 – 9]V . Acesta
faciliteaza si controlul de tensiunea asupra stabilizatorului de tensiune la 3,3V,
aceasta rezultand intr-o degajare de caldura cat mai mica si largind viata LM 317.
Datorita tensiunii de 7,4V ne putem da seama ca este alcatuit din 2 celelule fiecare a
cate 3,7V.
Are capacitatea de a furniza 1Ah si puterea de a furniza pana la 25A, in ciuda
dimensiunilor reduse.
Cum am vorbit pana acum de toate partile bune ale acumulatorului de LiPo,
acum voi spune cateva riscuri si limitari ale acumulatorului de LiPo
–supraincarcarea poate duce la o explozie sau imflamarea acumulatorului
–nu trebuie incarcata pana la 100% din potential dar nici descarcata pana la 0%
din potential, deoarece ii scad performantele, trebuie lasata o marja de minim
32Figura 4.18 Acumulator
7% si in felul acesta i se dubleaza numarul de cicluri de viata
–se recomanda utilizare unor dispozitive specifice de incarcare pentru a evita
expozia sau imflamarea
–exploziile pot sa apara in urma unor socuri sau a unui scurt – circuit
4.3. Control
a
33
5. Concluzii
In urma implementarii si reglarii acestui robot am ajuns la urmatoarele
concluzii:
–am reusit constructia unui robot care trebuie sa isi mentina echilibrul pe o bila
–am studiat diverse modele de roboti si diverse componente harware pentru a
achizitiona componentele
–exista deja arhitecturi de roboti mobili dinamic, scopul meu a fost sa
implementez un algoritm de reglare bazat pe LBC (Logic Based Control)
–scopul meu a fost sa implementez un robot care sa aiba o interactiune cat mai
placuta cu utilizatorul
–in afara de componentele fizice codul de reglare are o importanta majora
Imbunatatiri pe viitor:
–schimbarea motoarelor in favoare unora cu cuplu mai mare
–schimbarea bilei cu una mai mare
–dupa reusirea mentinerii echilibrului metastabil conectarea la un dispozitiv
wireless si controlarea miscarilotr acestuia
34
6.Bibliografie
Oltean G., 2003. Dispozitive si circuite electronice , Risoprint, Cluj – Napoca
Lauwers T., Kantor G., Hollis R. 2005. One is Enough! 12th Int'l Symp. on
Robotics Research, San Francisco, October 12-15
Peter F., Corsin G. 2010 Modeling and Control of a Ballbot Teza de licenta
Atmel 2013 Datasheet Atmega 324P www.atmel.com, accesat august 2013
Texas Instruments 2013 Datasheet DRV 8833 www.ti.com, accesat august 2013
Fairchild Semiconductor 2013 Datasheet LM 317 www.fairchildsemi.com ,
accesat august 2013
IvenSense 2013 Datasheet MPU 6050 www.ivensense.com , accesat august 2013
35
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: Implementarea unui robot mobil. Aplicatie Ballbot Absolvent Dorin Petre Coordonator Sl.dr.ing. Monica Patrascu Bucuresti, 2013 CUPRINS 1. Introducere… [611225] (ID: 611225)
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.
