Proiectarea și realizarea unui sistem automat pentru echilibrarea unui vehicul electric cu două roți [302441]

Anexa 8

[anonimizat]: inginerie mecanică și electrică

DEPARTAMENTUL: AUTOMATICĂ, CALCULATOARE ȘI ELECTRONICĂ

PROGRAMUL DE STUDII: AUTOMATICĂ ȘI INFORMATICĂ APLICATĂ

FORMA DE ÎNVĂȚĂMÂNT: ZI

PROIECT DE DIPLOMĂ

TEMA:

Proiectarea și realizarea unui sistem automat pentru echilibrarea unui vehicul electric cu două roți

PLOIEȘTI

2016

Calificativele pot fi: nesatisfăcător/satisfăcător/bine /foarte bine /excelent.

Comentarii privind calitatea proiectului: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

CUPRINS

INTRODUCERE 6

CAPITOLUL 1 7

STADIUL ACTUAL PRIVIND REALIZAREA SI ECHILIBRAREA VEHICULELOR CU DOUĂ ROȚI

1.1. Pendulul inversat 7

1.2. Roboți mobil de tip pendul inversat 8

1.2.1. Roboți mobil de tip pendul inversat cu senzor de lumină 9

1.2.2. Roboți mobili de tip pendul inversat cu accelerometru și giroscop 12

1.2.3. Grade de libertate ale robotului de tip pendul inversat 14

1.2.4. Roboți mobili destinați transportului oamenilor 15

CAPITOLUL 2 17

PROIECTAREA SISTEMULUI AUTOMAT PENTRU ECHILIBRAREA UNUI VEHICUL ELECTRIC

CU DOUĂ ROȚI

2.1. Modelul matematic 17

2.2. IMU – Sistemul de masura (Inertial Measurement Unit) 21

2.3. Regulatorul PID 25

2.4. Microcontrolere 31

2.5. Principiul PWM (Pulese With Modulation) 33

2.6. Protocolul de comunicație I2C 35

CAPITOLUL 3 37

ELEMENTELE FIZICE NCESARE SISTEMULUI

3.1. Microcontroler ATmega 328P 37

3.2. Modulul Giroscop și Accelerometru MPU6050 41

3.2. Modulul bluetooth HC-05 43

3.4. Driver putere Pololu TB6612FNG 45

3.5. Motoare 47

3.6. Roți 47

3.7. Regulatorul de tensiune LM7805 48

3.8. Acumulatori 48

CAPITOLUL 4 49

MODELUL EXPERIMENTAL

4.1. Introducere 49

4.2. Schema bloc a robotului 50

4.3. Proictarea placi electronice a robotului 51

4.4. Structura mecanică a robotului 52

4.5. Proiectare și realizarea telecomenzii robotului 88

4.6. Programarea robotului 96

Concluzii 106

Anexe 106

[anonimizat] a devenit posobilă crearea de roboți si vehicule care își pot menține echilibrul pe două roți paralele. [anonimizat], pentru vehiculele ce trebuie să își mențină echilibru pe doua roți care sunt poziționate paralel una de cealaltă este dificil. [anonimizat], [anonimizat]. [anonimizat] a le putea ține în echilibru. În timp ce potențialul pentru vechicule pe două roți la care roțile sunt poziționate pe aceeași axă a [anonimizat]. Sunt multe posibilitați pentru aceste tipuri de vehicule și roboți. Până acum ele au existat doar pentru transportul uman și ca dovadă pentru conceptele propuse.

Roboții pe două roți au mai multe avantaje față de cei cu patru, care îi face mult mai potriviți pentru numeroase aplicații. Există mai multe potentiale aplicații posibile în care acești roboți pot avea performanțe mai bune ce așteaptă sa fie explorate.

Cercetarea unui pendul inversat pe două roți, este în mod obișnuit cunoscut sub numele de robot mobil cu auto-echilibrare, a luat amploare în ultimii zece ani în laboratoare de robotică din întreaga lume. Acest lucru este demonstrat printr-o creștere rapidă a numărului de lucrări de reviste, proiecte de cercetare și teze cu privire la acest subiect, care se ocupă cu proiecte similare.

Principiile de funcționare a unui astfel de robot sunt, de asemenea, utilizate într-un vehicul electric comercial de transport numit Segway. Robotul mobil cu auto-echilibrare pe două roți funcționează pe principiul unui pendul inversat. Robotul este în mod inerent instabil și fără control extern ar rula în jurul axei de rotație a roților și ar cadea în cele din urmă. Acționarea motoarelor în direcția corectă returnează robotului poziția de echilibru. Deși robotul pe două roți este în mod inerent instabil, are mai multe avantaje față de omologul său cu mai multe roți, din moment ce are doar două roți (două puncte care ating solul) necesită mai puțin spațiu. Deoarece se bazează pe stabilitatea dinamică (de care are nevoie în mod constant pentru a corecta unghiul de înclinare astfel încât robotul să rămână stabil) prezintă un comportament dinamic și o mobilitate îmbunătațită. Acest lucru permite o manevrabilitate suplimentară pentru o navigare ușoară pe diferite terenuri și parcurgând pași mici sau curbe.

Motivația temei nu este una întâmplătoare, ci provine din pasiunea mea pentru automatică cât și robotică și din dorința de a îmbina cele două domenii. De asemenea acest proiect de licență a reprezentat pentru mine o provocare deoarece deși la acel moment nu dețineam toate cunoștințele necesare realizării acestui proiect am dorit să îmi depășesc limitele. De asemenea proiectul privind roboții mobili cu auto-echilibrare pe două roți poate servi atât ca educație, cât și ca un instrument perfect pentru acest hobby cu scopul de a explora zona de electronică, automatică și programare.

În acest proiect, robotul mobil cu auto-echilibrare nu va rezolva numai problemă de echilibru ci și ceea de mișcare. Microcontrolerul ATmega328P reprezintă ”creierul” robotului. Intregul algoritm de reglare va fi programat în C++ și stocat în microcontroler. Fără un sistem de control activ, robotul nu ar putea să își mențină echilibrul. Prin urmare, regulatorul joacă un rol important în acest proiect.

CAPITOLUL 1

Stadiul actual privind realizarea SI ECHILIBRAREA vehiculELOR cu două roți

În acest capitol vor fi menționate diferitele tipuri de roboți mobili de tip pendul inversat și componentele utilizate în construcția lor. Vor fi examinate doar cele mai importante modele precum și asemănările, dar și diferențele dintre ele .

1.1. Pendulul inversat

Un pendul inversat este un pendul care are masa deasupra punctului său de pivotare. Întrucât un pendul obișnuit este stabil atunci când este agățat în jos, un pendul inversat este în mod inerent instabil, și trebuie să fie echilibrat în mod permanent în scopul de a rămâne în poziție verticală, fie prin aplicarea unui cuplu la punctul de pivotare sau prin deplasarea pe orizontal a punctului de pivotare [1].

Fig.1.1: Pendul, pendul inversat

1.2. Roboți mobil de tip pendul inversat

Problema pendulului inversat nu este neobijnuită în domeniul ingineriei de control. Unicitatea și gama largă de aplicații tehnologice ce derivă din acest sistem instabil a atras interes pentru cercetători și pasionații de robotică din întreaga lume. În ultimii ani, cercetătorii au aplicat ideea unui model de pendul inversat mobil la diverse probleme, cum ar fi proiectarea de scaune cu rotile robotizate și sisteme de transport personale.

Deoarece roboții mobili pe două roți cu auto-echilibrare prezintă un mare interes pentru ingineri și cercetători. Mulți roboți au fost dezvoltați independent unul de celălalt folosind același principii de bază [1].

Kazuo Yamafuji, profesor la Universitatea din Electro-Communicații în , a construit primul robotul pendul inversat pe două roți în 1986, potrivit unui articol în Japonia Times. (Times, 2001).Alți roboți cunoscuți sunt: Joe le pendule, LegWay, Nbot, Equibot, Segway mijloc de transport personal.

Fig.1.2: Robotul Kazuo Yamafuji

sursă: http://davidbuckley.net/DB/HistoryMakers.htm

Practic, indiferent de modul în care a fost construit robotul, ideea este aceeași, de a construit un robot care poate simula comportamentul unui pendul inversat. Acest lucru poate fi realizat în diferite forme cu diferite tipuri de senzorii de la senzorul de lumină la accelerometre, giroscoape și diferite tipuri de regulatoare [2].

1.2.1. Roboți mobil de tip pendul inversat cu senzor de lumină

Senzorii sunt o parte importantă a unui robot mobil de tip pendul inversat . Ei ne vor da unghiul pendulului .

Senzorii trebuie să fie poziționați în față sau în spatele robotului orientați în jos, astfel încât să se măsoare distanța de la sol. Cu această valoare se poate detecta în ce parte cade robotul [4].

Robotul LegWay a fost construit de Steve Hassenplug folosind piese de Lego si platforma Lego MindStorms în anul 2002. Au fost necesare și alte componente hardware datorita lipsei de rezoluție din senzorii MindStorm, s-a dovedit că roboții mobili complecși pe două roți cu auto-echilibrare pot fi construiți folosind componente din jucării. El funcționează folosind doi senzori electro-optici de proximitate ce asigură unghiul de înclinare al robotului transmis la controler, care este programat în BrickOS , un limbajul de programare C / C ++ specific pentru LEGO Mindstorms pentru a își menține echilibru și a detecta liniile.

Programul pentru LegWay EOPDs menține o distanță constantă față de sol . Pe măsură ce distanța scade, LegWay se mișcă înainte în timp ce distanța crește , LegWay se deplasează înapoi. La fiecare 50 ms , LegWay încearcă să recalculeze punctul de echilibru prin măsurarea distanței curente și viteza motorului.

Pentru a merge înainte ( pentru a urmarii linia) LegWay setează de fapt, motoarele pentru a rula înapoi, provocând o înclinare, care este corectată automat, prin deplasarea înainte. Atunci când un senzor depășește linia, se oprește și motorul de pe partea cu senzorul și LegWay se echilibrează folosind doar celălalt motor. În cazul în care motoarele sunt setate la putere totală (orice direcție), pentru mai mult de 1 secundă, LegWay presupune că a căzut peste și programul se încheie [3].

Fig.1.3: Robotul LegWay

sursă: http://www.teamhassenplug.org/robots/legway/

Alt robot similar lui Legway este Equibot (Piponi ,2006) de Dan Piponi, introdus în 2006. Acest robot este unic, deoarece flosește un senzor rază Sharp GP2D120 care măsoară dinstanța pana la sol. De la această distanță un microcontroller ATM32 calculează unghiul de înclinație al robotului, care este folosit ca și bază pentru ca robotul să își mențină echilibru [5].

Fig.1.4: Robotul Equibot

sursă: http://davidbuckley.net/DB/HistoryMakers.htm

Robotul lui Philippe Hurbain numit NXTWay își are inspirația tot din robotul LegWay, fiind aceeași idee, dar în loc să folosească RCX Lego folosește NXT Lego. Principiul de bază este același, folosind un senzor de lumina pentru a determina distanța pana la sol și pentru a menține echilibru. (Hurbain) [6].

Fig.1.5: Robotul NXTWay

sursă: http://www.philohome.com/nxtway/nxtway.htm

1.2.2. Roboți mobili de tip pendul inversat cu accelerometru și giroscop

Pentru a măsura unghiul de înclinație al robotului se poate folosi un accelerometru asociat cu un giroscop. Accelerometrul este responsabil pentru măsurarea accelerației corespunzătoare robotului, cu aceste date putem determina înclinația robotului iar giroscopul va măsura orientarea care este utilizată pentru a corecta unghiul de înclinație a accelerometrului. Acești senzori pot fi plasați în orice parte a robotului, cu condiția ca aceștia să fie aliniați în funcție de axa în care cade robotul [7].

Robotul Joe le pendule a fost proiectat în 2002 de Felix Grasser impreună cu echipa din Laboratorul de Electronică Industrială de la Institutul de Tehnologie Swiss Federal (EPFL) din Lausanne [9]. Robotul folosește un accelerometru si un giroscop pentru a sesiza unghiul de înclinație al corpului robotului și doua traductoare incrementale pentru a masura pozitia și viteza robotului. Mai are de asemnea mai are două sisteme de control, unul care menține in echilibru robotul și controlează mișcările de înainte/înapoi, iar celălalt permite ca robotul să se învârtă îm jurul axei verticale pentru virare. Acesta este controlat prin itermediul unei antene radio [7].

Fig.1.6: Robotul Joe le pendule

sursă: http://d1.amobbs.com/bbs_upload782111/files_10/ourdev_264005.pdf

The Nbot (Anderson, 2010) a fost priectat de David P.Anderson, directorul Laboratorului de Geofizica de la Universitatea din Dallas. Acest robot conține un microcontroller HC11, un accelerometru, un giroscop, un senzor de înclinație și traductoare optice la motoare. Giroscopu si accelerometrul sunt combinate cu filtrele complementare. Acest robot figurează ca fiind cel mai bun robot NASA al saptămânii din 19 May, 2003 [10].

Fig.1.7: Robotul Nbot

sursă: http://www.geology.smu.edu/~dpa-www/robo/nbot/

Bender este un alt robot ce utilizează ambii senzori pentru a măsura unghiul. Ted Larson si Bob Allen sunt dezvoltatorii robotului. Bender este un robot care este format din mai multe platforme pentru a sprijini diversele sale componente. "Creierul" robotului este un microcip PIC18F452 [14].

Fig.1.8: Robotul Bender

sursă: www.tedlarson.com

Robotul Roy Watanabes NXTWay – G poate fi descris ca fiind o versiune mai nouă a robotului NXTWay, dar în loc de senzorul NXT Light este folosit senzorul NXT Gyro . Ceea ce înseamnă că în loc de a detecta apropierea de sol pentru a menține echilibrul, echilibrarea se realizează utilizând rotația detectată de senzorul giroscop. Prin utilizarea acestui tip de senzor se elimină problema senzorului de lumină, acum folosindu-se unghiul de rotație al corpului [11].

Fig.1.9 Robotul Ryo Watanabe NXTWay-G

sursă: http://www.philohome.com/nxtway/nxtway.htm

1.2.3. Grade de libertate ale robotului de tip pendul inversat

Ballbot este un robot mobil, o încercare de a rezolva problema monociclului robotic și este proiectat pentru a se echilibra pe roata sferică unică în timp ce se mișcă. Platforma de Cercetare Ballbot, proiect realizat la Universitatea Carnegie Mellon, a făcut posibil prin subventii de la National Science Foundation. Robotul este dezvoltat de Ralph Hollis și George Kantor, cu ajutorul studenților absolvent Tom Lauwers, Anish Mampetta și Eric Shearer. Scopul proiectului Ballbot este de a descoperi câți roboți pot menține stabilitatea dinamică, pentru a permite proiectarea unor roboți cu baze mai înguste pentru îmbunătățirea navigabilității (cum ar fi într-o cameră aglomerată).. Proiectul este intitulat "Roboți Dinamici- Stabili Mobili în Medii Umane".

Robotul Ballbot își menține echilibrul cu ajutorul senzorilor și procesoarelor integrate în robot și utilizează un dispozitiv de acționare direcție-mecanism bazat pe o bilă de mouse [12, 13].

Fig.1.10: Robotul Ballbot

sursă: http://www.cs.virginia.edu/~robins/Ballbots.pdf

1.2.4. Roboți mobili destinați transportului oamenilor

De departe cel mai cunoscut robot mobil pe două roți este Segway creat de Dean Kamen în 2001. Față de ceilalți roboți, acesta este destinat transportului oamenilor. Acesta conține doi senzori de înclinație si cinci senzori de tip giroscop, trei dintre ei fiind folosiți pentru unghiului de înclinație de înainte și înapoi, rata corespunzătoare de modificare, iar ceilalți doi sunt redundanți [15].

Fig.1.11: Robotul Segway

sursă: http://robot.segway.com/

Placile de auto-echilibrare au fost inventate de către Shane Chen. Acestea au cadre care pivoteaza în centru. Motoarele electrice și senzori care detectează unghiul de viteză și de înclinare sunt de fapt în interiorul fiecărei roți. Giroscopul primește date de la senzorii de înclinare din roți și trimite informația la procesor, menținând placa în poziție verticală, în orice moment. Există întrerupătoare sub fiecare suport pentru picior care declanșează un LED cu infraroșu, care declanșează un senzor. Lumina rămâne aprinsă când conducătorul păstrează picioarele pe platforma, lăsând procesorul să câand să nu pornească motoarele. În cazul în care conducătorul se apleacă în față pe comutatorul se stinge lumina LED, atunci senzorul trimite informația la procesor pentru a învâri roțile. Din moment ce motoarele sunt independente unul de celălalt, un conducător poate face de fapt cercuri în loc [16].

Fig.1.12: Robotul Hoverboards

sursă: http://www.allaboutcircuits.com/news/hoverboards-how-do-they-work/

În acest capitol, au fost luate în vedere diferiți roboți mobili de tip pendul inversat și s-a constatat că se pot folosi mai multe tipuri de senzori, de la senzorul de lumină până la accelerometru combinat cu giroscop, fiecare dintre ele având propriul avantaj și dezavantaj. Condiția de lumină influențează senzorului de lumină, iar accelerometrul și giroscopul sunt afectate de zgomot .

CAPITOLUL 2

PROIECTAREA sistemULUI automat pentru echilibrarea unui vehicul electric

cu două roți

Înainte de a începe o cercetare este necesar cosultarea literaturii de spicialitate. Proiectul este vital în înțelegerea roboților cu auto-echilibrare și a tehnicilor de control, deoarece acest lucru va furniza cercetătorului multe informații necesare cu privire la metodologiile și tehnologiile disponibile și utilizate de către alți omologi de cercetare [9]. Acest capitol oferă un rezumat condensat al literaturii de specialitate, comentarii pe teme cheie legate de echilibrare unui robot cu două roți.

2.1. Modelul matematic

Descrierea matematică a robotului fost împărțită în două părți, una pentru pendulul inversat și una pentru roți. Pendulul și roata au trei ecuații fiecare, una pentru direcția de rotație și două pentru axa x și y. Axele sunt fixate în roți și prin urmare, acestea urmăresc roțile atunci când robotul se mișcă. Pendulul are notația ψ pentru unghi și ψ pentru viteza unghiulară.

Tabelul 2.1: Parametrii folosiți în modelul matematic

Fig. 2.1: Forțele care acționează asupra pendulului

Ecuațiile pendulului sunt după cum urmează. Ecuația (2.1) este ecuația de inerție invers acelor de ceasornic în jurul centrului de masă al pendulului. Ecuația (2.2) este forța care acționează în direcția x și ecuația (2.3) este forța care acționează în direcția y.

Tm + mpgLsinψ + mp w Lcosψ = Jp (2.1)

-Nx -mpw = mpp (2.2)

Ny – mpg = mpp (2.3)

Accelerațiile nonliniare p șip trebuie să fie transpuse din coordonatele X-Y ale sistemului la coordonatele sistemului de rotație. În primul rând ecuațiile pentru și sunt exprimate:
xp = -Lsinψ (2.4)

yp = Lcosψ (2.5)

Acestea se derivează pentru a obține expresiile pentru viteze:

xp = -Lcosψ (2.6)

yp = -Lsinψ (2.7)

Și apoi se mai derivează o dată pentru a obține expresiile accelerațiilor:

 xp = -Lcosψ + L2sin (2.8)

 yp = -L sinψ – L22cosψ (2.9)

Pentru a obține inerția pendulului, corpul este văzută ca un paralelipiped cu masa uniform distribuită. Și prin utilizarea mecanicii clasice inerția se calculează astfel:

Jp =mpW2+mpH2 (2.10)

Unde mp este masa, W si H reprezintă lățimea și înălțimea.

Unghiul θ al roților nu prezintă interes și ar putea fi eliminat din ecuațiile de stare ale regulatorului. Stările au fost definite astfel:

x= (2.11)

Unde modelul liniar este:

=Ax+Bu (2.12)

y=Cx

A =

B = C = D =

Modelul roților

Fig. 2.2: Forța ce acționează asupra roților

Pentru roți ecuațiile sunt următoarele: ecuația (2.13) este ecuația de inerție în

sensul acelor de ceasornic în jurul centrului de masă al roților. Ecuația (2.14) reprezintă forța care acționează în direcția x și ecuația () este forța care acționează în direcția y.

Tm + Fr = Jw (2.13)

Nx – mw w – F = 0 (2.14)

N – Ny – mwg = mww (2.15)

Transformarea de la sistemul de coordonate X-Y în sistemul de coordonate de rotație

este:

w=r (2.16)

w=0 (2.17)

Inerția se află în același mod ca și pendulul, dar folosind formula pentru un cerc:

Jw= (2.18)

Unde r este raza si α este unghiul care pentru cerc este 2π [1, 2, 3].

2.2. IMU – Sistemul de masura (Inertial Measurement Unit)

Inertial Measurement Unit (IMU) este un dispozitiv care utilizează sisteme de măsurare, cum ar fi giroscoape și accelerometre pentru a estima relativ poziția, viteza, și accelerația unui vehicul în mișcare. Sistemul de navigație rezultat este cunoscut sub numele de navigație inerțială sistem sau INS. Demonstrat pentru prima dată în 1949 de C. S. Draper, IMU a devenit o componetă comună de navigație pentru aeronave și nave maritime [4].

IMU prezentat în figura (2.3) are un giroscop și un accelerometru pentru a măsura un total de șase axe. Prin combinarea datelor citite de pe axa X de la accelerometru și acelor de pe axa X a giroscopului, se poate crea un unghi de masurare filtrat. Fiecare dintre cele două componente măsoară o parte diferită a unghiului.

Cu măsurarea unghiului de către IMU, microcontrolerul poate determina cât de repede și în ce direcție să rotească cele două motoare. Cea mai simpla aproximare a unghiului se face cu ajutorul unei game de la -90 Grade la +90 grade, unde 0 grade este considerat echilibru. Dacă unghiul măsurat de la IMU este de 0 grade, motoarele se opresc. Peste 0 grade motoarele merg înainte, iar sub 0 grade motoarele merg invers. Acest comportament menține robotul în echilibru și permite să controlarea vitezei și direcția prin înclinare în față sau în spate [6].

Fig. 2.3: Gamă IMU

Accelerometrul

Accelerometru din modulul MPU6050 poate măsura o înclinare de până la aproximativ 90 de grade în oricare direcție. Cu toate că accelerometru este capabil să măsoare o înclinare de până la 90 de grade în oricare direcție, pentru acest proiect unghiul maxim de înclinație este de 25-30 de grade în ambele direcții. O înclinație mai mare decât aceasta ar duce la o stare de dezechilibru periculoasă, astfel încât codul este setat să oprească motoarele, în cazul în care modulul măsoară un unghi deasupra limitei [6].

Fig. 2.3: IMU rotire de-a lungul axei X la -25 de grade

Giroscopul

Giroscopul este un senzor ce este utilizat pentru a detecta schimbările de viteză de rotație de-a lungul unei axei. Aceste dispozitivele sunt adesea folosite în combinație cu accelerometre pentru a produce un unghi stabil pentru echilibrarea roboților pe două roți. Ca și un accelerometru, giroscoapele sunt de asemenea legate de aceea axa ce este măsurată: X, Y sau Z.

Giroscoapele iau masuratori excelente pe termen scurt, dar suferă de o

eroare numită "drift", care îi duce departe de punctul lor de plecare, chiar și fără să se miște. Pentru a corecta acest lucru drift, avem nevoie de a utiliza un accelerometru cu un unghi stabil pe termen lung pentru a îl utiliza ca și punct de referință pentru giroscop [6].

Citire date accelerometru și giroscop:

int8_t mpu_getData(AngleGyroData* data);

uint8_t mpuIntStatus = mpu.getIntStatus();

Filtrul Complementar

Unele aplicații, cum ar fi roboții cu auto-echilibrare, stabilizatorul de imagine al au un accelerometru și un giroscop instalat în sistem. Accelerometru poate da măsurători precise ale unghiului de înclinare atunci când sistemul este în repaus. Atunci când sistemul este rotativ sau în mișcare, accelerometru nu poate urmări mișcarea rapidă. Giroscopul poate determina în mod dinamic valorile vitezei unghiulare. După integrarea acestor date, deplasarea unghiulară sau unghiul de înclinare poate fi calculat, dar acest unghi va deveni inexact pe termen lung, ca urmare a intrării în derivă a giroscopului.

Filtrul complementar este un mod simplu de a fuziona accelerometru și giroscop pentru a obține ieșiri corecte. Filtrul se compune dintr-un filtru low-pass pentru accelerometru și un filtru high-pass pentru giroscop, care este mai ușor de înțeles și de a pune în aplicare față de un filtru Kalman. Exemplul următor explică modul în care să pune în aplicare filtrul complementar pentru robotul cu auto-echilibrare.

Fig. 2.3: Robot cu auto-echilibrare

Așa cum arată și Fig 2.3, robotul are un accelerometru cu trei pentru a măsura unghiul de înclinare static, θa, și un giroscop cu două axe pentru a măsura viteza unghiulul de înclinare, θg. Filtrul complementar combină, apoi aceste măsurători pentru a obține unghiul de înclinare finală θ. Microprocesorul utilizează aceste informații și informațiile vitezei unghiulare primită de la giroscop pentru a comanda motorul pentru a echilibra robotul.

Fig. 2.4: Filtru Complementar

θa = arctang (2.17)

În cazul în care, ay și az sunt valori ale accelerației normalizate în intervalul [-1g + 1 g] după aplicarea de zero – g și a parametrilor de calibrare a factorului de scalare asupra datelor accelerometrului, θa este unghiul de înclinare în grade.

θg = θg + (ωx -ωx0) * S∆T (2.18)

În cazul în care, ωX este viteza unghiulară a giroscopului și ωX0 este nivelul zero, în unitatea LSBS, S este sensibilitatea în unitatea ° / s / LSB, AT care este intervalul de timp de prelevare a datelor, θg reprezintă deplasarea unghiulară în grade.

Acum unghiul de înclinare final rezultat din filtrul complementar va arăta în felul următor:

θ =g + a = β * θg + (1 – β) * θa (2.19)

Unde, β este o constantă între 0 și 1, β =0,98, atunci ecuația (3) devine,

θ = 0.98 * θg + 0.02 * θa (2.20)

Prima parte a Ecuației (2.20) funcționează ca un filtru high-pass (HPF), care permite ca miscarea dinamică a robotului să trecă prin giroscop. Cea de a doua parte funcționează ca un filtru low-pass (LPF), care permite ca mișcarea statică a robotului să treacă prin accelerometru.

Datele accelerometrului și giroscopului sunt eșantionate la 100Hz, atunci intervalul de timp ∆t este 0.01 secunde. Deci, constanta de timp a filtrului complementar este [4, 5]:

τ= = = 0.49 secunde (2.21)

angle = (0.98 * gyro_angle)+(0.02 * accel_angle) (2.22)

Ecuația (2.22) reprezintă algoritmul filtrului complementar prin calcularea valorii medie măsurată de la giroscop și accelerometru, iar implementare în program este următoarea:

angle= gain*(angle+angularRate) + (1-gain) * accAngle;

2.3. Regulatorul PID

Algoritmul de calcul al regulatorului PID implică trei parametrii constanți diferiți, în consecință fiind uneori numit regulatorul cu trei termeni: termenul proportional, integral, derivat, notate P, I și D. Mai exact, aceste valori pot fi interpretate în termeni de timp: P depinde de eroarea prezentă, I de acumularea de erori din trecut, iar D este o predicție a erorilor viitoare, în funcție de rata actuală de schimbare. Suma ponderată a acestor trei acțiuni este utilizată pentru a regla un proces prin intermediul unui element de control precum poziția unei vane de reglare, un amortizor sau puterea furnizată unui element de încălzire.

În absența cunoașterii procesului ce stă la baza sistemului, regulatorul PID a fost considerat încă din trecut fiind drep cel mai bun regulator. Prin ajustarea celor trei parametri în algoritmul regulatorului PID, algoritmul poate oferi control asupra acțiunii proiectate pentru cerințele specifice unui proces. Răspunsul regulatorului poate fi descris în funcție de capacitatea de reacție a regulatorului față de o eroare, gradul pentrul care regulatorul depășește valoarea de referință și gradul de oscilație a sistemului.

Anumite aplicații necesită utilizarea doar de una sau două acțiuni pentru a asigura controlul sistemului. Acest lucru se realizează prin setarea celeorlalți parametrii la zero. Un regulator PID se mai regăsește sub formele P, PI, PD, I. Regulatoarele PI sunt destul de frecvente, deoarece componeta derivativă este sensibilă la zgomotul de măsurare, în timp ce absența componentei integratoare împiedică sistemul să atingă valoarea de referință în funcție de procesul controlat.

Fig. 2.5: Schema bloc a regulatorului PID

Schema de control PID este denumită după cei trei termenii, a căror sumă constituie variabilă manipulate (MV). Termenul proporțional, integrator și derivativ sunt însumați pentru a calcula ieșirea regulatorului PID. Definind y(t) ca fiind ieșirea regulatorului, forma finală a algoritmului PID este:

y(t)=MV(t)=Kpe(t) + + Td(t) (2.23)

Kp – factor de proporționalitate;

Ti – timpul de integrare;

Td – timpul de derivare;

e – eroarea;

τ – variabila de integrare.

Fig.2.6: Raspunsuri ale sistemului la diferite valori ale lui Kp, Ti, Td

Pentru a menține robotul în echilibru s-a folosit un regulatorul PID și PI cu buclă închisă. Sistemul în buclă închisă prezintă feedback de la motor. Așa că dacă turația motoarelor începe să scadă datorită unei creșteri a incărcaturii, unitatea de control comandă driverului de motoare să crească puterea către motoare, menținând o viteză constantă. Controlul motorului de curent continuu se realizează prin intermediul PWM, adică prin simpla creștere sau descreștere a factorului de umplere ceea ce va crește sau descrește viteza motoarelor:

analogWrite(PWM_R, map(abs(speed), 0, 255, 0, 255)) ;

analogWrite(PWM_L, map(abs(speed), 0, 255, 0, 255));

Un regulator PID utilizează 3 parametrii, care sunt îmulțiți cu valoarea erorii. Rezultatul acestor multiplicări produce 3 valori suplimentare, fiind denumite în continuare P_term, I_term și D_term.

În cazul în care se utilizează un punct de referință semnal de feedback ar putea fi utilizat pentru a genera valoarea erorii, în modul următor:

ERROR_VALUE = SetPoint – New_Feedback_Value;

Într-un regulator PID valoarea erorii poate fi înmulțită cu constanta Kp, dar pentru constantele Ti și Td este necesară o abordare diferită. Pentru a calcula I_term și D_term valorile erorilor anterioare sunt necesare. I_term folosește integrarea care dă valoarea medie a erorii în timp, iar D_term utilizează diferențiere, care dă rata de schimbare a valorii erorii în timp. Odată ce toate condițiile PID sunt calculate, aceste noi valori sunt apoi adunate și utilizate în controlul final.

Termenii P, I, D au efecte diferite asupra performanței sistemului final, și trebuie să fie reglate în funcție de sistemul controlat. Scopul final pentru orice regulator este de a răspunde cât mai repede posibil, fără a da impulsuri și oscilații excesive față de valoarea de referință. Răspunsul sistemului trebuie să ajungă la o stare constantă cât mai repede posibil, starea constantă este foarte subiectivă și dependentă de aplicație.

Componenta P preia unghiul actual al robotului și face motoarele să se deplaseze în aceeași direcție în care robotul este în scădere. De aceea, cu cât robotul cade mai departe, cu atât mai repede motoarele se învârt. În cazul în care componentă P este utilizată ca atare, robotul s-ar putea stabiliza pentru un timp, dar sistemul va tinde să oscileze și în cele din urmă robotul va cădea.

Componenta I este folosită pentru a colecta orice eroare. De exemplu, în cazul în care robotul tinde să cadă într-o parte, se știe că trebuie să se deplaseze în direcția opusă, în scopul de a menține robotul în poziția de echilibru și pentru a preveni intrarea în derivă la stânga sau la dreapta.

Componenta D este responsabilă de a elimina orice oscilație și asigură faptul că robotul nu vibrează prea mult. Ea acționează pur și simplu împotriva oricărei mișcări.

Fig. 2.7: Schema bloc a regulatorului folosit

Valorile pentru regulatoarele PID sunt calculate și însumate pentru a se obține ieșire pentru motoare. Derivatul se scade din suma, deoarece este menit să atenueze orice mișcare. Ieșirea este apoi imobilizată la ± 255, deoarece aceasta este valoarea maximă a PWM care poate fi transmisă la motoare. Ieșirea este convertită într-un număr întreg și returnat.

Calibrarea regulatorului PID

Regulatorul a fost proiectat prin utilizarea sistemului liniar, un model de senzor și Filtru Complementar. Parametrul care ce este controlat de regulator este unghiul pendulului.

La implementarea numerică a regulatorului PID este foarte frecventă aproximarea acțiunilor integrale și derivative a algoritmului PID prin metoda diferenței inverse sau metoda Euler.

Diferența inversă: s (2.24)

Euler: s (2.25)

In aceste relații Te este perioada de eșantionare a semnalului care intră în regulator și este un parametru care trebuie stabilit de către utilizator alături de constantele Kp, Ti și Td.

Aceste aproximări pot fi aplicate la oricare din formele algoritmului PID. Cea mai frecventă variantă constă în folosirea metodei diferenței inverse la aproximarea acțiunii derivative și a metodei Euler la aproximarea acțiunii integrale pentru algoritmul PID ideal. Se obține algoritmul PID numeric de poziție.

PID de poziție: K(z)= (2.26)

Fig. 2.7: Modelul Simulink al Robotului

Intrarea regulatorului este reprezentată de eroarea sistemului. Sistemul de control în buclă închisă este de asemenea menționat ca un sistem cu feedback negativ. Ideea de bază a unui sistem cu feedback negativ este că acesta măsoară ieșirea procesului y de la un senzor. Ieșirea procesului se scade din valoarea de referință de referință valoare pentru a produce o eroare. Eroarea este apoi aplicată regulatorului PID, unde eroarea devine gestionat în trei moduri. Eroarea va fi utilizată de regulatorul PID pentru termenul proporțional, termenul integral pentru reducerea erorilor și termenul derivat pentru oscilațiile mari. După ce algoritmul PID procesează eroarea, acesta încearcă să aducă procesul la punctul de referință, în acest caz punctul de referință fiind poziția verticală, 0 grade.

Correction = Kp * error + Ki * * (error) (2.27)

Pentru determinarea experimentală a constantelor Kp, Ti, Td se setează termenul I și termenul D la 0 și se ajustează P, astfel încât robotul începe să oscileze (miscări înainte, înapoi) față de poziția de echilibru. P ar trebui să aibe o valoarea destul de mare pentru ca robotul să se miște, dar nu prea mare în caz contrar mișcarea nu ar fi lină.

Cu termenul P setat se va crește I astfel încât robotul accelerează mai rapid când își pierde echilibrul. Cu P și eu I setat în mod corespunzător, robotul este capabil să îți mențină echilibrul pentru câteva secunde câteva secunde.

La final se crește D, astfel încât robotul să se deplaseze către poziția de echilibru mai lin și fără sa aibă oscilații mari.

Regulatorul PID implementat este astfel:

int16_t speed = 150 * actualAngle + 1569 *integralErr – 1.5 * _angleData.gyro;

Fig. 2.9: Răspunsul sistemului pentru Kp=150 , Ti=1569 , Td=-1,5

2.4. Microcontrolere

Sistemele dedicate se regăsesc atât în componența diverselor aparate (automobile, telefoane mobile, televizoare etc.) cat si in sisteme de calcul obișnuit.

Pentru primele sisteme putem spune despre ele că includ un calculator (embedde system- sisteme cu logică de control încorporată). Celelalte sisteme pun în evidență realizarea de periferice ”inteligente”, care efectuează prelucrări primare ale datelor, astfel microprocesorul central este usurat de unele sacinile mari consumatoare de timp sau resurse de calcul (mouse-ul,controllerul USB, etc.).

Între microcontrollere și sistemele dedicate există atât asemănări cât și deosebiri, pe care le vom evidenția în cele ce urmează. Principala caracteristică a sistemelor dedicate este specializarea. Aceste sisteme execută o singură funcție sau un număr redus de funcții.

O deosebire între cele două o reprezintă realizarea unității centrale de prelucrare (CPU). Sistemele dedicate sunt realizate cu microcontroller (MCU –Micro Controller Unit) și sunt denumite sisteme cu microcontroller (embeddes systems).

Altă deosebire este aceea că realizarea unui sistem dedicat presupune implementarea unor funcții care in mod obișnuit se află în sarcina sistemului de operare sau a circuitelor suport.

Microcontrollerul reprezinta un sistem de calcul conținut întru-un singur chip care integrează procesorul, memoria, dispozitivele de intrare-ieșire, circuite suport. Prin intermediul microcontrollerul-lui se pot realiza sisteme de comandă și control cu un număr foarte mic de componente. Acest lucru duce la un cost de fabricație mic si fiabilitate crescută. Sistemele cu microcontroller permit, cu aceași structură hardware să se realizeze o mulțime de aplicații.

Deoarece există un număr foarte mare de tipuri de microcontrollere, fiecare având diferite tipuri de arhitecturi si moduri de funcționare, vor apărea dificultați în alegerea microcontrolerului potrivit pentru realizarea sistemului dedicat.

Primul circuit integrat a fost dezvoltat de Jack Kilbz din partea Texas Instruments si Robert Noyce din partea Fairchild Semiconductor în 1950 [2].

Concepte pentru microcontrolerle

Conceptul CISC (Complex Instruction Set Computer) asigura prelucrarea datelor pe baza unui set complex de instrucțiuni. Instrucțiunile pot fi foarte puternice, dar prețul acestei complexități îl constituie necesar pentru execuție, execuția acestei instrucțiuni se face în timp îndelungat.

Conceptul RISC( Reduced Instruction Set Computer) prezintă un set de instrucțiuni de dimensiuni reduse orientat special către creșterea vitezei de prelucrare. Ideea de bază a unui astfel de set redus de instrucțiuni este acela de a optimiza pe cele mai des instrcțiuni folosite în vederea asigurări celei mai rapide execuții posibile. [6]

Caracteristici și proprități

Scopul unui microcontroler este de a finaliza calculele și datele de proces prin executarea instrucțiunilor. Microcontrolerele conțin toate componentele necesare într-un singur Cip Integrat (CI). Acestea includ procesorul, RAM, ROM și intrări / ieșiri. Din moment ce acestea sunt de dimensiuni reduse, ele sunt de obicei implementate în sisteme integrate și pot fi găsite în numeroase aparate de uz casnic.

În mod ideal, un microcontroler va menține un răspuns rapid, cu un consum minim de energie. CI ar trebui să conțină toate dispozitivele necesare pentru cerințele operaționale, cum ar fi semnale de ceas, CAN, CNA și ieșiri PWM. Acest lucru reduce nevoia de periferice suplimentare sau hardware care trebuiesc să fie încorporate, ceea ce ar crește nu doar complexitatea necesară ci și cerințele de putere necesare. Microcontrolerul ar trebui să fie de asemenea reprogramabil pentru a permite operarea îmbunătățită și upgrade-uri.

Caracteristicile care sunt favorizate într-un microcontroler includ următoarele:

Consum mic de energie, caracteristici de economisire a energiei:

De încredere;

Reprogramabili;

Convertor analogic-numeric (CAN);

Semnale PWM (Puls With Modulation);

Cost scăzut;

Numărul necesar de pini de intrare / ieșire;

Semnal de ceas;

Comparator de tensiune [2].

Convertorul anlog-numeric (CAN)

Pentru a citi senzori analogici, cum ar fi senzorul aceelerometru și giroscop se utilizează un convertor analog-numeric pe 10 biți. Acest convertor citește o tensiune este proporțională cu citirea senzorului și după cum sugerează și numele, îl convertește în o reprezentare numerică, un număr care este proporțional cu amplitudinea tensiunii. Rezoluția, adică numărul de puncte N care pot fi reprezentate numeric, este determinată de numărul de biți n, utilizați în CAN astfel:

N = 2n – 1 (2.28)

Relatia (2.28) indică faptul că valoarea citită de senzor va fi reprezentată de un număr între 0 și 1023 [2, 3].

UART (Universal Asynchronous Receiver Transmitter)

UART (Universal Asynchronous Receiver Transmitter) este cea mai simplă interfață serială asincronă. UART este asinconă pentru că nu se transmite semnal de ceas prin linia seriala de date. UART furnizezază și informații de stare, cum ar fi: “receptorul este plin (datele au ajuns) sau transmițătorul este gol (o transmisie în curs s-a terminat)”.

Interfața UART constă din două părți:

un receptor (receiver – Rx) care convertește un flux serial de biți în date paralele (cuvinte) pentru microprocesor;

un transmițător (transmitter – Tx) care convertește date paralele de la microprocesor într-un flux serial de biți, pentru transmisie.

Transferul serial de I/O se face pe un singur fir pentru fiecare direcție. Toate interfețele transmițător seriale convertesc datele paralele într-un flux binar serial, iar receptoarele fac conversia inversă.

O asemenea comunicație serială se poate face de exemplu între:

calculator și imprimantă;

calculator și un control la distanță;

calculator și terminal pentru rețea Ethernet [1, 8].

2.5. Principiul PWM (Pulese With Modulation)

PWM este o tehnică folosită pentru a varia în mod controlat tensiunea dată unui dispozitiv electronic. Această metodă schimbă foarte rapid tensiunea oferită dispozitivului respectiv din ON în OFF și invers. Perioada de timp corespunzătoare valorii ON din raportul ON-OFF se numește factor de umplere (duty cycle) și reprezintă, in medie, ce tensiune va primi dispozitivul electronic. Astfel, se pot controla circuitele analogice din domeniul digital. Practic, asta înseamnă că un LED acționat astfel se va putea aprinde / stinge gradual, iar în cazul unui motor acesta se va învârti mai repede sau mai încet [7].

Factorul de umplere se exprimă în procente și reprezintă cât la sută din perioada unui semnal acesta va fi pe nivelul ON. În Figura 1 se pot observa semnale PWM cu factori de umplere diferiți. Astfel, se poate deduce foarte ușor formula pentru a obține valoarea factorului de umplere (D). Astfel, tensiunea medie care ajunge la dispozitiv este dată de relația: D * Vcc.

Fig. 2.10: Semnal PWM cu diferiți factori de umplere

sursă: http://cs.curs.pub.ro/wiki/pm/lab/lab3

Modularea folosește variația factorului de umplere a unei forme de undă dreptunghiulară pentru a genera la ieșire o tensiune analogică. Considerând o formă de undă dreptunghiulară f(t) cu o valoare minimă ymin și o valoare maximă ymax și factorul de umplere D (ca în fig. 2.10) valoarea medie a formei de undă este dată de relația:

(2.29)

Cum f(t) este o formă de undă dreptunghiulară valoarea sa maximă se atinge pentru 0<t<D*T. Din punct de vedere al microcontrolerului ATmega328P există 3 tipuri de PWM:

Fast PWM – numărarea se face doar pe frontul crescător;

Phase Correct PWM – numărarea se face pe ambele fronturi. Pentru aceleasi configurații Phase Corrent PWM este de 2 ori mai lent;

Phase and Frequency Correct PWM – principala diferență între acest mod și cel de Phase Correct este momentul când este actualizat registrul OCRnx.

Fig. 2.11: Formă PWM

sursă: http://cs.curs.pub.ro/wiki/pm/lab/lab3

Multe circuite digitale pot genera semnale PWM. Majoritatea microcontrollerelor oferă această facilitate, pe care o implementează folosind un numărător care este incrementat periodic (conectat direct sau indirect la o unitate de ceas) și care 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 HIGH în starea LOW (sau invers) [7].

2.6. Protocolul de comunicație I2C

I2C (Inter-Integrated Circuit numit și I2C) este o magistrală ieftină și eficientă. Aceasta este o magistrală multi-master, sinconă, bidirectională și de viteză mică. Conectarea / deconectarea unor dispozitive la I2C nu afectează alte dispozitive, având viteza datelor în mod standard de 100 kbps, iar în mod extins de 400 kbps.

Fiecare dispozitiv conectat la I2C are o adresă unică și poate lucra ca transmițător sau receptor.

Magistrala conține o linie serială de date (SDA) și o linie de ceas serial (SCL) care sunt activate de circuite open-drain. Liniile sunt conectate la tensiunea pozitivă prin rezistoare de pull-up, astfel că în repaus sunt la nivel HIGH [2, 8].

Fig. 2.12: Liniile SCL și SDA

Transferul de date pe I2C

Când nu se face nicio tranzacție linia este liberă SDA cât și SCL sunt la nivel SUS. La acest protocol doar un master poate genera semnal de ceas pe SCL.

O tranzacție pe I2C începe cu SDA tras JOS, urmat de semnal pe SCL, dacă SCL este JOS, iar pe SDA se face o tranziție SUS-JOS urmează o transmisie ("START condition“). Pentru fiecare bit de date transmis (SDA) valoarea logică trebuie să se păstreze neschimbată pe durata SCL în stare SUS, valoarea binară de date fiind eșantionată pe frontul crescător al SCL.Tranzacția se încheie cu SCL SUS și o tranziție jos-sus pe SDA ("STOP condition“)

Fig. 2.13: Transferul de date pe I2C

Sclavul poate prelungii perioada JOS a ceasului (nu și pe cea SUS) atât cât este necesar. Oricare receptor poate trage, dacă este nevoie, SCL jos (bit/eveniment de WAIT) pentru a întârzia un octet de date care urmează unui octet ce a sosit la aceeași adresă.

Dacă două dispozitive încearcă să controleze aceeași linie (SDL sau SCL) circuitele cu colector în gol previn erorile fizice, iar fiecare din cei doi masteri trebuie să asculte magistrala în timpul transmisiei pentru a fi sigur că nu interferează cu alt mesaj.

După fiecare 8 biți transmiși pe SDL urmează un semnal (eveniment) de ACKNOWLEDGE (confirmare). Pentru a confirma recepția corectă, prin ACK, receptorul trage SDL jos pe timpul celui de-al nouălea impuls de ceas [2, 8].

Semnaul de confirmare (ACK) este generat întotdeauna de receptor (stăpân sau sclav)

Fig. 2.14 Stăpân –Sclav

Master transmițător Sclav

•după recepția corectă a adresei

•după recepția corectă a unui octet de date

Master receptor Sclav

•după recepția corectă a unui octet de date

CAPITOLUL 3

ELEMENTELE FIZICE NCESARE SISTEMULUI

3.1. Microcontroler ATmega 328P

Fig. 3.1: Microcontroler Atmega 328P

sursă: http://www.tronicsbd.com/product/atmega328/

Micocontrollerul ATmega 328P este un microcontroller pe 8 biți bazat pe arhitectura îmbunătațită RISC a familiei AVR. Acesta poate executa instrucțiuni mari într-un singur semnal de ceas, având puterea de calcul de aproximativ o instrucțiune pe secundă. Astfel programatorul poate optimiza atât comsumul de curent cât și puterea de procesare in funcție de modul în care se dorește folosirea acestuia.

Comparație dintre Atmega48PA, Atmega88PA, Atmega168PA și Atmega 328P

Microcontrolerele Atmega48PA, Atmega88PA, Atmega168PA și Atmega 328P diferă prin mărimea memoriei, programul de încărcare, RAM [1,10].

Tabel 3.1: Microcontrolere familia AVR

Carcateristici

Tabel 3.2: Carcteristici microcontrolere Atmega328P

Diagrama pinilor

Fig. 3.2: Diagramă pini microcontroler Atmega 328

sursă: http://www.tronicsbd.com/product/atmega328/

Descrierea pinilor [1, 2, 12]:

VCC

sursa de alimentare digitală

GND

masă

Portul B (PB7,6) XTAL1/XTAL2/OSC1/OSC2

Portul B este un port de intrări și ieșiri bidirecțional pe 8 biți cu un rezistor intern (selectabil pentru fiecare bit). Bufferul ieșirii portului B are aceleași caracteristici atât din punct de vedere al conectivității cât și a capacității de emisie. Pinii portului B au trei stări când condiția de reset devine activă, chiar dacă semnalul de ceas nu este activ. În funcție de setările semnalului de selecție, PB6 poate fi folosit ca intrare pentru oscilatorului de amplificare inversor cât și ca intrare a semnalului de ceas, dar mai poate fi folosit ca ieșire a oscilatorului de amplificare inversor. Dacă Oscilatorul RC Calibrat intern este folosit ca sursă a semnalului de ceas atunci PB7..6 este folosit ca OSC2..1, intrare pentru semnal de ceas asincron/Numarator2 daca AS2 bit din ASSR este setat.

Portul C(PC5:0)

Portul C este un port de intrări și ieșiri bidirectional pe 7 biți cu rezistor intern (pentru fiecare bit). Bufferul ieșirii PC5..0 are aceleași caracteristici atât din punct de vederea al conectivității cât și a capacității de emisie. Pinii portului B au trei stări cand condiția de reset devine activă, chiar dacă semnalul de ceas nu este activ.

PC6/RESET

Dacă RSTDISBL este programat, PC6 este folosit ca și pini de intrare-ieșire. Caracteristicile electrice alea lui PC6 diferă de cele ai pinilor portului C. Dacă RSTDISBL este neprogramat, PC6 este folosit ca și intrare de Reset. Nivelul 0 logic pe acest pin este menținut mai mult decât este normal, astfel generand funcția de Resetare, chiar dacă semnalul de ceas nu funcționează.

Portul D(PD7:0)

Portul D

Portul D este un port de intrări și ieșiri bidirectional pe 8 biți cu rezistor intern (pentru fiecare bit). Bufferul ieșirii portului D are aceleași caracteristicii atât din punct de vederea al conectivității cât și a capacității de emisie. Pinii portului B au trei stări cand condiția de reset devine activă, chiar dacă semnalul de ceas nu este activ.

AVCC

AVCC este pinul ce conține tensiune de alimentare pentru Convertorul analog-numeric (CAN), PC3:0 si ADC7:6. Ar trebui să fie conectat extern cu VCC , chiar dacă CAN nu este folosit. Dacă CAN este folosit, ar trebui să fie conectat la VCC prin intermediul unui filtru trece-jos. PC6..4 folosește sursa digitală de alimentare, VCC.

AREF

AREF este pinul analogic pentru convertorul A/D.

ADC7:6( TQFP si QFN/MLF)

În pachetele TQFP și QFN/MLF, ADC7:6 este intrare analogică pentru convertorul A/D. Acești pini sunt alimentați de sursa de alimentare analogică si servește ca și canal ADC pe 10 biți

XTAL1

Intrare pentru amplificatorul oscilator sau intrare pentru semnalul de ceas.

XTAL2

Ieșire pentru amplificatorul oscilator.

RXD

Pin citire date

TXD

Pin transmisie date

3.2. Modulul Giroscop și Accelerometru MPU6050

Fig. 3.3: Modulul MPU6050

sursă: https://www.invensense.com/products/motion-tracking/6-axis/mpu-6050/

MPU-6050 este primul dispozitiv cu 6 axe de urmărire a mișcării integrate din lume care combină un giroscop cu 3 axe, un accelerometru cu 3 axe și un Procesor de Mișcare Digital (PMD), toate într-un pachet 4x4x0.9mm. Cu senzorul dedicat I2C, acesta acceptă în mod direct intrările de la o busolă externă cu 3 axe pentru a oferi o ieșire completă cu 9 axe. Dispozitivul MPU-6050 de urmărire a mișcării, cu cele 6 axe de integrare și run-time firmware-ul de calibrare, permite producătorilor să elimine selecția costisitoare și complexă, calificarea și integrarea la nivel de sistem de discrete, care garantează o performanță optimă de mișcare pentru consumatori. .

Comunicarea cu toate registrele dispozitivului se realizează utilizând fie I2C la 400kHz sau SPI la 1MHz (numai MPU-6000). Pentru aplicațiile care necesită comunicații mai rapide, senzorul și întreruperile pot fi citite cu ajutorul SPI la 20MHz (MPU-6000 numai). Caracteristici suplimentare includ un senzor de temperatură și un oscilator cu variație de ± 1% față de intervalul de temperatură de funcționare.

InvenSense a redus dimensiunea modulului MPU-60X0 până la o mărime revolutionara de 4x4x0.9mm (QFN), oferind ce cea mai înaltă performanță, cel mai mic zgomot, iar cel mai mic ambalaj de cost din materiale semiconductoare necesare pentru dispozitivele portabile electronice de larg consum. Are o toleranță de șoc de 10,000g și are filtre trece-jos programabile pentru giroscoape, accelerometre, și senzorul de temperatură integrat.

Pentru o flexibilitate de alimentare mai bună, MPU-6050 funcționează în gama de tensiuni de alimentare VDD de 2.375V-3.46V. In plus, MPU-6050 oferă o referință VLOGIC (în conformitate cu pinul analogic de alimentare: VDD), care stabilește nivelurile logice ale interfetei I2C. Tensiunea VLOGIC poate fi 1.8V ± 5% sau VDD [3,9,11].

Caracteristici giroscop

Iesire digitala, axele X, Y-, Z-, senzori de viteză unghiulară (giroscoape) care pot fi programate cu gama-scală totală de ± 250, ± 500, ± 1000, și ± 2000 ° / sec

Semnal de sincronizare extern conectat la pinul Fsync PIN-ul care suportă sincronizare de imagine, video și GPS;

Convertor analogic digital (CAN) pe 16 biți ce permit prelevarea de probe simultane de către giroscoape;

Sensibilitatea și stabilitatea temperaturii reduc nevoia de calibrare de către utilizator;

Îmbunătățește performanța zgomotului de joasă frecvență;

Filtru trece jos programabil digital;

Sensibilitatea factor de scalare calibrată din fabrică;

Caracteristici accelerometru

Ieșire digitală cu 3 axe pentru accelerometru cu o gamă completă cu scală programabilă de ± 2 g, ± 4g , ± 8g și ± 16g 16;

Convertor analogic numeric (CAN) pe 16 biți ce permite prelevarea de probe simultane de către accelerometre în timp ce nu necesită multiplexor extern;

Detecție și semnalizare a orientării;

Detecție atingere;

Intreruperi High- G;

Auto test [3].

3.3. Modulul bluetooth HC-05

Fig. 3.5: Modulul bluetooth HC-05

sursă: http://www.robotshop.com/media/files/pdf/rb-ite-12-bluetooth_hc05.pdf

Modulul HC – 05 este un modul Bluetooth SPP ( Serial Port Protocol ), conceput pentru configurarea conexiunii seriale fără fir.

Modulul Bluetooth serial este un Bluetooth V2.0 + EDR ( Enhanced Data Rate ) 3Mbps modulare cu un emițător de 2.4GHz. Acesta folosește CSR Bluecore 04 – Extern cu un singur cip Bluetooth cu tehnologia CMOS și cu AFH ( Adaptive Feature Frequency Hopping Feature ). Modulul are dimensiunile de 12.7mmx27mm [5].

Caracteristici

Sensibilitate -80dBm;

Până la + 4dBm RF putere de transmisie;

Regim funcționare: 1.8 până la 3,6V

Interfață UART cu rata de transfer programabilă;

Cu antenă integrată;

Cu conector lateral;

Rate de transfer suportate: 9600,19200,38400,57600,115200,230400,460800;

Conectare automată la ultimul dispozitiv la pornire;

Permite împerechere cu ultimul dispozitiv;

Împerechere automata, cod acces: " 0000 ";

Reconectare automată în 30 de minute când este deconectat ca urmare a depașirii razei de acțiune [5].

Diagrama pinilor

Fig. 3.6: Diagramă pini bluetooth HC-05

sursă: arduino-info.wikispaces.com

Submodulul HC-05 este lipit pe partea din față a plăci bluetooth;

Modulul HC-05 include radio, chipuri de memorie, cristal de 26 MHz, antenă și rețea de potrivire RF;

Secțiunea din dreapta a placi bluetooth are pini de conectare pentru alimentare 3.3V – 5V și LED-uri;

EN: În cazul în care este adus semnal 1 logic înainte de a se aplica tensiunea de alimentare, forțează AT Setup Mode comandă. LED-ul clipește lent (2 secunde);

VCC: Alimentare 3.3V – 5V;

GND: Masă;

TXD: Transmisia de date seriale de la HC-05 la microcontroler;

RXD: Primire de date seriale de la microcontroler;

STATE: Spune dacă este conectat sau nu [6].

3.4. Driver putere Pololu TB6612FNG

Fig. 3.7: Driver putere Pololu TB6612FNG

sursă: https://www.pololu.com/product/713

TB6612FNG este un driver de putere care este perfect pentru controlul a două motoare de curent continuu mici, cum ar fi motoarele de metal micro prin intermediul uni microcontroler , și poate fi de asemenea utilizat pentru a controla un singur motor pas cu pas. Are la bază tranzistoarele MOSFET implmentate in circuitul punte – H care sunt mult mai eficiente decât driverele mai vechi , cum ar fi L298N și LB1836M Sanyo , care permite mai mult curent să fie livrat motoarelor și mai puțin să fie extrase din sursa de alimentare [7].

Caracteristici și specificații

Punte H dubla : poate controla două motoare de curent continuu sau de un motor pas cu pas;

Tensiunea recomandată a motorului ( VMOT ) : 4,5 V la 13,5 V ( poate funcționa până la 2,5 V, cu putere redusă );

Tensiunea logică ( VCC ) : 2,7 V la 5,5 V;

Curentul maxim de ieșire : 3 A per canal;

Curent de ieșire continuu : 1 A pe canal ( poate fi paralel pentru a furniza 2 A continuu);

Frecvența maximă PWM : 100 kHz;

Încorporat în circuitul de închidere termică;

Condensatori de filtrare pe ambele linii de alimentare;

Protecție tensiune alimentare motor [7].

. Schema electrică

Fig. 3.8: Schemă electrică Pololu TB6612FGN

sursă: https://www.pololu.com/file/0J86/TB6612FNG.pdf

Tabel 3.3: Pini Plolu TB6612FGN

Mod de funcționare

Driverul de putere Pololu TB6612FNG poate controla până la două motoare de curent continuu, la un curent constant de 1.2A (vârf 3.2A). Cele două semnale de intrare (IN1 și IN2) pot fi utilizate pentru a controla motorul într-unul dintre cele patru moduri de funcționare în sens normal, sens invers, schimbare de senes și stop.

Cele două ieșiri pentru motoare (A și B) pot fi controlate separat, viteza fiecărui motor este controlată printr-un semnal de intrare PWM cu o frecvență de până la 100kHz. PIN-ul STBY trebuie tras la 1 logic pentru a pentru a scoate driverul din modul stand-by [8].

3.5. Motoare

Fig. 3.9: Micro Metal HPCB 1:150

sursă: https://www.pololu.com/product/997

Motoarele alese au fost Micro Metal HPCB cu reductor 1 la 150. Fiind motoare de curent continuu cu perii din carbon, practice, de dimensiuni mici.

Specificații:

Dimensiuni : 10 × 12 × 26 mm;

Ax: 3 mm diametru in D, 9.27 mm lungime + ax extins pentru encoder;

Tensiunea de alimentare 6.5V;

Curent : 120 mA ( fara sarcina ) 1.6A (blocat);

Cuplu : 2.6 Kg cm;

Viteza: 200 RPM [7].

3.6. Roți

Fig. 3.10: Roți

sursă: https://www.pololu.com/product/1435

Aceste roți sunt proiectate să se îmbine corect cu ieșirea arborlui motorului metal micro cu reductor. Roțile au anvelope din silicon care masoara 80 mm în diametru [7].

3.7. Regulatorul de tensiune LM7805

Regulatorul de tensiune este un circuit care furnizează o tensiune constantă de +5V, indiferent de schimbările în curentului de sarcină. LM7805 este un circuit integrat regulator de tensiune. Sursa de tensiune dintr-un circuit poate avea fluctuații și nu ar da o tensiune constantă de ieșire. Regulatorul de tensiune menține tensiunea de ieșire la o valoare constantă [13].

Descrierea pinilor

Tabel 3.4: Pini LM7805

Fig. 3.11: LM7805

3.8 Acumulatori

Ca și sursă de alimentarea a robotului au fost folosiți doi acumulatori de 3.7V, 4800mAh fiecare. Acești acumulatori au fost aleși deoarece aceștia alimentează circuitul de 5V al robotului căt și motoarele care funcționează cu o tensiune de alimentare de 6.5V, astfel acumulatorii sunt suficienți de puternici, avănd un amperaj mare pentru o funcționare corecta și de îndelungată a robotului.

Fig. 3.12: Acumulatori

CAPITOLUL 4

MODELUL EXPERIMENTAL

În urma cercetării fenomenelor ce stau la baza robotului cu auto-echilibrare s-a trecut la realizarea fizică a unui astfel de sistem si testarea teoriilor de reglare descrise anterior. Astfel s-au dedus două faze de realizare:

Faza de construcție ce presupune realizarea șasiului și a prinderi motoarelor, care sunt apoi asamblate.

Faza de realizare a circuitului electric si a programării robotului, fază care va cuprinde, de asemenea un proces de simulare care vizează îmbunătățirea eficacității și eficiența programării înainte de punerea în aplicare a acestuia, dar și un proces de reglare a robotului după punerea în funcțiune.

4.1. Introducere

Considerațiile de proiectare și de dezvoltare ale capitolelor precedente au fost aprofundate și investigate numeroase aspecte ale roboților existenți. În urma acestor studii s-au definit resursele și dispozitivele necesare în construcția robotului. Construcția a fost împărțită în următoarele etape:

1. Cumpărarea materialelor și pieselor necesare;

2. Fabricarea și asamblarea șasiului robotului;

3. Realizarea plăci electronice;

4. Montare de baterii, motoare și componente rămase;

5. Fabricarea și instalarea tuturor cablurilor.

În timpul fiecărei etape a construcției, testarea dispozitivelor, plăci electronice și a

componentelor a fost realizată, pentru a reduce numărul de erori din cadrul proiectului.

4.2. Schema bloc a robotului

Pentru realizarea robotului s-a proiectat urmatoarea schemă bloc:

Fig.4.1: Schema bloc a robotului

Schema bloc a acestui sistem poate fi împărțită în patru componente principale:

Microcontrolerul;

Subsistemul de măsurare;

Subsistemul comandă motoare;

Subsitemul de control.

Pentru acest proiect, s-a folosit microcontrolerul ATmega328P, care citește datele de la subsistemul de măsurare de mai multe ori pe secundă și trimite semnale PWM către driverul de putere care urmează să fie convertită în mișcare mecanică.

Subsistemul de măsurare este format dintr-un IMU MPU 6050. Datele de la subistemul de măsurare sunt trimise la microcontroler pentru a fi procesate. La recepționarea datelor, microcontrolerul filtrează zgomotul introdus de senzori prin intermediul filtrului complementare, iar apoi leagă datele de la cei doi senzori pentru a determina unghiul de înclinare. Odată ce înclinarea curentă este cunoscută, microcontrolerul calculează eroarea de înclinarea dorită, în acest caz verticală, iar apoi se utilizează PID pentru a controla ieșirea PWM pentru subsistemul comandă motoare.

Subsistemul comadă motoare este alcătuit dintr-un driver de putere care comandă două motoare de curent continuu. Circuitul pentru motoarele este alimentat de la doi acumulatori de 3.7V fiecare. În timp ce microcontrolereul și celelalte module sunt alimentate la 5V prin regulatorul de

Subsistemul de control este reprezentat de telecomanda care comunică prin bluetooth cu robotul astfel se poate controla poziția acestuia.

4.3. Proiectarea plăci electronice a robotului

Microcontrolerul ATmega328P reprezintă creierul robotului la care este conectat un quartz de 16 MHz, suficient pentru a procesa toate datele necesare menținerii în echilibru a robotului. Microcontrolerul citește datele de la senzori, le filtrează, le îmbină pentru obținerea unghiului de înclinație. Acesta rulează regulatorul PID și controlează comenzile motoarelor. Condul pentru microcontroler a fost scris in programul Atmel Studio 6.0, iar programarea s-a făcut prin programatorul AVR USBasp.

Pentru ca robotul să fie capabil să își păstreze echilibrul, este nevoie de senzori care îi permit să se măsoare cu precizie înclinarea și la o rată ridicată de măsurare. Pentru aceasta, s-a ales MPU 6050, un IMU (Inertial Measurement Unit) care combină un giroscopcu trei axe și un accelerometru cu trei axe. Acesta are o interfață digitală și comunică cu microcontrolerul prin magistrala I2C.

Partea de comanda a celor două motoare micro metal folosite este realizată de către driverul de putere Plolu TB6612FGN, carea are două canale de PWM pentru fiecare motor. Driverul de putere poate inversa sensul de rotație al motoare și poate pune frâna.

Pentru controlul robotului este folosit modulul bluetoooth prin intermediul căruia robotul poate merge înainte, înapoi și roti în stănga sau dreapta.

Fig.4.2:Placa electronică a robotului

4.4 Structura mecanică a robotului

Scopul proiectării șasiului a fost de a construi un cadru rigid, care este ieftin, relativ ușor și suficient de adjustible pentru a satisface nevoile noastre pe tot parcursul dezvoltării proiectului. Pentru a îndeplini aceste cerințe, s-a decis folosirea unor plăci de textolit.

Structura mecanică a robotului este compusă din două placi de textolit și placă cablaj de dimensiunea XX filetate și conectate prin piulițe și șuruburi. Motoarele sunt fixate pe plaform. Platforma de sus este izolată, pentru a amortiza robotul împotriva unor căderi inevitabile.

Fig.4.3: Dimensiunile robotului

Fig.4.4: Șasiu robot

Motoarele sunt fixate pe plaform de jos cu ajutorul a două suporturi pentru motoarele micro metal prinse cu două suruburi.

Fig.4.5: Prinderi motoare

După ce ambele motoare și roțile au fost conectate s-a trecut la construcția structurii principale care va sprijini motoarele, accelerometru, giroscopul, bateria și firele necesare.

Fig.4.6: Motoarele și roțile

Se începe prin conectarea tijelor metalice la platforma de jos, iar apoi vom repeta același procedeu pentru celelate platforme.

Fig.4.7: Prindere tije metalice

După ce toate cele patru tije metalice sunt prinse platforma de jos ar trebui să fie similară cu următoarea imagine. Trebuie să ne asigurăm că toate piulițele utilizate în proces sunt bine strânse pentru a evita clatinandu robotului în timp ce funcționează.

Procedeul este același pentru următoarele două platforme. În cele din urmă structura artă ca în figura 4.8. Pe șasiu se va amplasa bateria și circuitul electronic.

După realizarea structurii mecanice se atașează circuitul electronic. Senzorii au fost plasați în partea centrală a robotului, astfel încât să se poată detecta unghiul pe cât mai repede pe cat posibil, iar bateriile au fost amplasate în partea de jos pentru a menține un echilibru cât mai bun al robotului.

Figură (4.10) reprezintă versiunea finală a robotului, cu toate componentele atașate.

Fig.4.10: Partea din față a robotului

4.5 Controlul robotului

Controlul robotului se face prin intermediul unei telecomenzi proiectată și realizată pentru acest robot.

Telecomanda si robotul comunică prin intermediul unor module bluetooth. Modul bluetooth de pe telecomanda este setat ca și master deoarece acesta transmite comenzi, iar modulul de pe robot este setat ca și sclav deoarece primeste comenzi. Aceste semnale sunt transferate la microcontroler care realizează comenzile cerute de către utilizator.

Telecomanda conține un microcontroler Atmega 328P conectat la un quartz de 16 MHz, un joystick pentru mișcarea robotul înainte, înapoi și pentru rotirea acestuia. Aceasta mai conține butoane pentru modificarea parametrilor regulatorului PID în mod activ în funcție de suprafața de rulare pentru un control cât mai bun al stabilității.

Fig.4.11: Telecomada robotului

4.6 Programarea robotului

Programul folosit pentru programarea microcontrolerului a fost Atmel Studio 6.0. Acesta este folosit de programatori pentru programarea și depanarea microprocesoarelor Atmel, cum ar fi ATmega328, Atmega168 etc Acesta are suport pentru programare în limbaj de asamblare pentru cei care preferă să utilizeze limbaje superioare. Începând cu versiunea 4 AVR Studio folosește o interfață grafică care este ușor de utilizat față de compilatorul open source GCC WinAVR.

Toate microcontrolere Atmel AVR necesită anuit software pentru a fi utilizate. Pentru a scrie și a depana acest software se poate utiliza un mediu de dezvoltare integrat (IDE), cum ar fi Atmel Studio care conține tot ce este nevoie pentru a crea, compila și depana codul.

Programatorul USBasp a folosit pentru încărcarea programului în microcontroler.

.

Fig.4.13:Testarea microcontrolerului

Pendulul inversat este un sistem instabil, se poate ajunge la o poziție de echilibru în cazul în care toate componentele sale acționează conform unui plan bine stabilit. Pentru a ne asigura că acestea acționează în ordine, timpul de preluare a datelor și efectuarea calculului filtrului complementar precum și a regulatorului PID este realizată la 100Hz.

Fig.4.14:Procesul robotului

Într-un sistem instabil trebuie să avem un mecanism care să ne poată ajuta să măsurăm acea instabilitate, în acest caz avem nevoie de o modalitate de a măsura înclinarea robotului pentru care am folosit un accelerometru și un giroscop.

Pentru citirea datelor de la modul MPU6050, acesta se conectează la microcontroler prin SCL, SDA și INT. Prima dată s-a testat comunicați prin I2C folosind o librărie I2C, dupa care au fost preluate datele de la senzori folosind librăria MPU6050.

Fig.4.15: Date senzor MPU6050

Dupa determinarea unghiului s-a observat că acesta prezenta zgomot, lucru nedorit și a fost necesar reducerea zgomotului. Pentru a estima unghiul real s-a folosit unghiul filtrat determinat de accelerometru și viteza unghiulară dată de giroscop. Pentru filtrarea unghiului s-a folosit filtrul complementar.

Funcția pentru filtru complementar este utilizată într-o buclă infinită. La fiecare iterație valorile unghiul sunt actualizate cu noile valori ale giroscopului prin integrare în timp.

În figura (4.16) că filtrul (roșu) urmează giroscopului (albastru) la schimbări rapide, dar păstrează ca urmare valoarea medie a accelerometrului (verde) pentru schimbări mai lente nu se simt datele zgomotoase ale accelerometrului.

Fig.4.16:Filtrului complementar

După ce obținerea unghiul final pentru a face robotul să îșî mențină echilibrul este necesar ca roțile se deplaseze în funcție de unghi, pentru acest lucru și s-a folosit un regulator PID pentru echilibrarea robotului.

Regulatorul PID încearcă să corecteze eroarea dintre o variabilă de proces măsurată, care în acest caz este unghiul robotului și o valoare de referință dorită. Valoarea de referință setată este unghiul de echilibru, adică unghiul când robotul este într-o poziție de echilibru. Prin calcularea și apoi determinarea de acțiuni corective care poate regla procesul rapid, pentru a menține eroarea la minim, acțiunea corectivă se referă la viteza de rotație a motoarelor. Valorile regulatorului PID au fost determinate manual prin încercare.

Fig.4.17: Funțiile programului implementat

Definire și setare pini motoare:

#define PWM_L 10

#define PWM_R 9

#define DIR_L1 7

#define DIR_L2 6

#define DIR_R1 4

#define DIR_R2 5

#define STBY 3

pinMode(PWM_L, OUTPUT);

pinMode(PWM_R, OUTPUT);

pinMode(DIR_L1, OUTPUT);

pinMode(DIR_L2, OUTPUT);

pinMode(DIR_R1, OUTPUT);

pinMode(DIR_R2, OUTPUT);

pinMode(STBY,OUTPUT);

Bibliografie

[1] Arduino Robotics John-David Warren , Josh Adams , Harald Molle 17 July 2011.

[2] Arduino Robotics Projects, Richard Grimmett, Packt Publishing Ltd, August 2004.

[3] Benet G., Blanes F., Simó J. E., Pérez P., “Using infrared senzors for distance”.

measurement in mobile robots.” Robotics and Autonomous Systems, vol. 40.

[4] Curs Sisteme cu Microprocesoare, Șef lucrări mat. Dr. Ing. Marinescu Cornel.

[5] Curs Arhitectura Calculatoarelor, Conf.Dr.Ing. G. Rădulescu.

[6] DE LA POARTA TTL LA MICROPROCESOR, Ing. Tomescu Niculae.

[7] Echipamente Numerice pentru Conducerea Proceselor, Nicolae Paraschiv.

[8] Grasser, F., D'Arrigo, A., Colombi, S., & Rufer, A. C. (February 2002). JOE: A Mobile, Inverted Pendulum. IEEE Transactions On Industrial Electronics, Vol.49.

[9] International Journal of Mechanics and Control Published by Levrotto&Bella, Editor Kazy Yamafuji Vol.09 2008.

[10] Li, Z., Yang, C., and Fan, L., 2013, Advanced Control of Wheeled Inverted Pendulum

Systems, Springer-Verlag, London.

[11] Mastering the I2C Bus, Vincent Himpe, Elektor Electronics Publishing 2011.

[12] MODEL-BASED DESIGN OF BRUSHLESS DC MOTOR CONTROL AND MOTION CONTROL MODELLING FOR ROBOCUP SSL ROBOTS, Xiaotian Li

[13] Nawawi, S., Ahmad, M., & Osman, J. (Dec 2007). Development of Two-wheeled

Inveter Pendulum Mobile Robot. Malaysia, Malaysia.

[14] Practical MEMS: Design of Microsystems, Accelerometers, Gyroscopes, RF MEMS, Optical MEMS, and Microfluidic Systems Author: Ville Kaajakari.

[15] Springer Handbook of Robotics, Michael Jenkin Prof, Gregory Dudek Prof, 2008.

[16] http://cs.curs.pub.ro/wiki/pm/lab/lab3

[17] http://vega.unitbv.ro/~romanca/psci/4-PSCI-Interf-Comm-MC-4spp.pdf

[18] http://ro.mouser.com/applications/sensor_solutions_mems/

[19] http://ee-classes.usc.edu/ee459/library/documents/ATmega328.pdf

[20] http://www.atmel.com/images/atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa- 88a-88pa-168a-168pa-328-328p_datasheet_summary.pdf

[21] https://www.cdiweb.com/datasheets/invensense/MPU-6050_DataSheet_V3%204.pdf

[22] https://www.invensense.com/products/motion-tracking/6-axis/mpu-6050/

[23] http://www.robotshop.com/media/files/pdf/rb-ite-12-bluetooth_hc05.pdf

[24] https://arduino-info.wikispaces.com/BlueTooth-HC05-HC06-Modules-How-To

[25] https://www.pololu.com/

[26] https://www.sparkfun.com/products/9457

Concluzii

În ingineria de control regăsim sisteme dinamice, un exemplu este sistemul pendul inversat, în acest proiect am modelat și construit un robot mobil de tipul pendul inversat.

Pendulul inversat reprezintă un exemplu al unui sistem instabil, este utilizat în laboratoarele de cercetare pentru a demonstra capacitățile sistemelor de feedback. Este considerat o reprezentare simplificată a unei rachete care zboară în spațiu.

In cadrul proiectului am realizat o variantă funcțională a robotului cu auto-echilibrare pe două roți, i-am studiat performanțele pentru diverse configurații alegand varianta optimă.

Pentru realizarea practică a robotului am acordat o atenție deosbita elementelor de

execuție, alegand motoare cu demultiplicatoare de turație foarte precise. In vederea asigurării unui feedback rapid al întregului sistem am optat pentru utilizarea unei uități inerțiale de masurare (IMU) pentru parametrii ansamblului. Performanțele exceptionale ale acestui IMU împreuna cu algoritmii de filtrare utilizați au determinat ca influența factorilor perturbatori să fie minimizată.

A fost folosită o singură axă a giroscopului pentru a corecta unghiul dat de accelerometru, a necesitat numai o singură axă a giroscopului, deoarece a fost măsurată viteza unghiulară în direcție verticală, adică direcția unde robotul își menține echilibrul.

Prototipul dezvoltat se poate echilibra folosind regulatorul PID implementat. Valorile pentru termenii regulatorului PID au fost găsiți prin încercare și eroare. Din cauza faptului că motoarele nu au un PID integrat robotul se poate echilibra numai pe anumite suprafețe.

Prin urmare, activitatea viitoare pentru aceast proiect ar trebui să implice îmbunătățirea procesului de echilibru al robotului, astfel încât să poată fi mai stabil, acest lucru s-ar putea face prin implementarea unui algoritm PID pentru motoare sau eventual schimbarea roților sau a motoarelor.

Pentru acest proiect a fost nevoie de multă muncă, multe provocări, probleme întâmpinate, dar în final a fost atins obiectivul. După construirea șasiului, proiectarea și testarea circuitelor, scrierea software-ul și ajustarea coeficienților PID, a fost posibilă echilibrarea robotul pe două roțivchiar și de a transporta o greutate.

Cheia pentru finalizarea acestui proiect a fost de planificare în avans a fiecare pas înconstrucția robotului și a materialelor necesare.

Rezumat

Coordonator: Prof. Dr. Ing. Mihaela Oprea Absolvent: Marin Florin Adrian

Acest proiect cuprinde proiectarea și realizarea unui sistem automat pentru echilibrarea unui vehicul electric cu două roți, adică un robot care fie capabil să își mențină singur echilibrul. Microcontrolerul ATmega328P reprezintă ”creierul” robotului. Intregul algoritm de reglare va fi programat în C++ și stocat în microcontroler. Fără un sistem de control activ, robotul nu ar putea să își mențină echilibrul. Prin urmare, regulatorul joacă un rol important în acest proiect.

În capitolul 1 intitulat STADIUL ACTUAL PRIVIND REALIZAREA SI ECHILIBRAREA VEHICULELOR CU DOUĂ ROȚI se prezintă o scurtă introducere privind modul de evoluție a roboților mobili de tipul pendul inversat, precum și tipurile de senzori care se folosesc plecând de la senzorul de lumină până la accelerometru combinat cu giroscop, fiecare dintre ele având propriul avantaj și dezavantaj.

În capitolul 2 intitulat PROIECTAREA SISTEMULUI AUTOMAT PENTRU ECHILIBRAREA UNUI VEHICUL ELECTRIC CU DOUĂ ROȚI se prezintă principiul de funcționare a roboților cu auto-echilibrare. În acest capitol se regăsește modelul matematic al robotului, implementarea senzorilor accelerometru și giroscop precum și regulatorul folosit pentru menținerea în echilibru a robotului.

În capitolul 3 intitulat ELEMENTELE FIZICE NCESARE SISTEMULUI se regăsesc componentele alese pentru realizarea robotului, caracteristicile acestora precum și modul de conectare.

În capitolul 4 intitulat MODELUL EXPERIMENTAL se prezintă pași efectuați pentru realizarea fizică a robotului și programarea acestuia. În acest capitol se regăsește faza de construcție ce presupune realizarea șasiului și a prinderi motoarelor, care sunt apoi asamblate și faza de realizare a circuitului electric si a programării robotului , fază care va cuprinde, de asemenea un proces de simulare care vizează îmbunătățirea eficacitatății și eficiența programării înainte de punerea în aplicare a acestuia, dar și un proces de reglare a robotului după punerea în funcțiune.

Summary

Supervizor: Graduate student:

Prof. Dr. Eng. Mihaela Oprea Marin Florin Adrian

This project includes the design and implementation of an automated system for balancing two-wheeled electric vehicle. The ATmega328P microcontroller is the "brain" of the robot. The entire control algorithm will be programmed in C ++ and stored in the microcontroller. Without an active control system, the robot would not be able to maintain its balance. Therefore, the controller plays a major role in this project.

In Chapter 1 entitled CURRENT STATUS ON IMPLEMENTATION AND BALANCING TWO WHEELED VEHICLES provides a short introduction on how inverted pendulum robots evolved and the types of sensors that are used based on light sensor to accelerometer combined with gyroscope, each with its own advantage and disadvantage.

Chapter 2 entitled AUTOMATED SYSTEM DESIGN FOR BALANCING A ELECTRICAL TWO WHEEL VEHICLE presents the operating principle of self-balancing robot. This chapter contains a mathematical model of the robot, accelerometer and gyro sensor implementation and the controller used to preserve the balance of the robot.

In Chapter 3, entitled PHYSICAL ELEMENTS FOR THE SYSTEM presents the necessary components chosen for the robot along with their characteristics and how to connect them.

In Chapter 4, entitled EXPERIMENTAL MODEL presents steps to perform physical realization of the robot and its programming. This chapter contains the construction phase which involves making the chassis and insert the engines and phase of the electric circuit and programming robot phase will also include a simulation process to improve the efficiency of programming before its implementation, but also a process of adjusting the robot controller.

Similar Posts