This shows you the differences between two versions of the page.
pm:prj2021:amocanu:linefollower [2021/06/02 20:30] andrei.florescu2904 [Hardware design] |
pm:prj2021:amocanu:linefollower [2021/06/03 10:56] (current) andrei.florescu2904 [Algoritmul de reglare PID] |
||
---|---|---|---|
Line 28: | Line 28: | ||
Algoritmul PID (Proportional Integral Derivativ) este unul din cei mai folositi algoritmi pentru regulatoare industriale, de exemplu pentru controlarea motoarelor, asigurand o performanta de reglare excelenta.\\ | Algoritmul PID (Proportional Integral Derivativ) este unul din cei mai folositi algoritmi pentru regulatoare industriale, de exemplu pentru controlarea motoarelor, asigurand o performanta de reglare excelenta.\\ | ||
\\ | \\ | ||
- | Un regulator PID calculeaza constant o anumita eroare intre strea actuala si starea dorita si aplica o corectie pe baza unei proportii, unei integrale si a unei derivate. Cu alte cuvinte, algoritmul raspunde automat cu o solutie pentru a reveni in starea dorita. De exemplu, regulatorul de viteza al masinilor foloseste acest algoritm; factorii externi, cum ar fi panta soselei influenteaza viteza masinii, dar algoritmul PID raspunde in cel mai optim mod pentru a reveni la viteza dorita. \\ | + | Un regulator PID calculeaza constant o anumita eroare intre starea actuala si starea dorita si aplica o corectie pe baza unei proportii, unei integrale si a unei derivate. Cu alte cuvinte, algoritmul raspunde automat cu o solutie pentru a reveni in starea dorita. De exemplu, regulatorul de viteza al masinilor foloseste acest algoritm; factorii externi, cum ar fi panta soselei influenteaza viteza masinii, dar algoritmul PID raspunde in cel mai optim mod pentru a reveni la viteza dorita. \\ |
\\ | \\ | ||
In cazul robotului, acest algoritm analizeaza eroare de pozitie a centrului barei de senzori (pozitia oprima) si pozitia actuala a linei negre si gaseste cel mai efficient mod de a atribui viteze celor 2 motoare astfel incat sa revina la pozitia dorita. \\ | In cazul robotului, acest algoritm analizeaza eroare de pozitie a centrului barei de senzori (pozitia oprima) si pozitia actuala a linei negre si gaseste cel mai efficient mod de a atribui viteze celor 2 motoare astfel incat sa revina la pozitia dorita. \\ | ||
Line 49: | Line 49: | ||
=== Design === | === Design === | ||
- | {{ :pm:prj2021:amocanu:topvieweltoro2.png?400 |}} | + | {{ :pm:prj2021:amocanu:topvieweltoro2.png?500 |}} |
+ | \\ | ||
+ | {{ :pm:prj2021:amocanu:sidevieweltoro.png?500 |}} | ||
=== Schema electrica === | === Schema electrica === | ||
- | * insert schema * | + | {{ :pm:prj2021:amocanu:eltoroschemaelectrica.png?600 |}} |
Line 86: | Line 88: | ||
**go()**\\ | **go()**\\ | ||
Primeste ca argument viteza celor 2 motoare si o atribuie acestora.\\ | Primeste ca argument viteza celor 2 motoare si o atribuie acestora.\\ | ||
+ | |||
+ | **Biblioteci**\\ | ||
+ | Pentru a putea interactiona cu bara de senzori am folosit biblioteca [[https://github.com/pololu/zumo-shield|Zumo Shield]], iar pentru buton am folosit biblioteca [[https://github.com/pololu/pushbutton-arduino|Push Button]]. | ||
Codul a fost dezvoltat pe platforma Arduino 1.8.15 (IDE). | Codul a fost dezvoltat pe platforma Arduino 1.8.15 (IDE). | ||
Line 91: | Line 96: | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | * Insert Video + poze * | + | {{ :pm:prj2021:amocanu:traseueltoro.png?500 |}} |
+ | \\ | ||
+ | [[https://www.youtube.com/watch?v=FccvBLZhaPQ|Link Demo YouTube]]\\ | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | {{ :pm:prj2021:amocanu:eltoro.png?600 |}} | ||
+ | |||
Prin acest proiect am invatat mult mai multe despre ce inseamna sa proiectezi, construiesti si programezi un robot. | Prin acest proiect am invatat mult mai multe despre ce inseamna sa proiectezi, construiesti si programezi un robot. | ||
Consider ca "El Toro" cum imi place sa il numesc (datorita coarnelor care tin senzorul de proximitate) isi atinge scopurile, dar recunosc ca ar putea fi imbunatatit. | Consider ca "El Toro" cum imi place sa il numesc (datorita coarnelor care tin senzorul de proximitate) isi atinge scopurile, dar recunosc ca ar putea fi imbunatatit. | ||
Line 105: | Line 115: | ||
===== Arhiva ===== | ===== Arhiva ===== | ||
- | * Insert arhiva * | + | {{:pm:prj2021:amocanu:line_follower_archive.zip|Cod sursa}} |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
[[https://www.arduino.cc/en/software|Arduino IDE]]\\ | [[https://www.arduino.cc/en/software|Arduino IDE]]\\ | ||
Line 111: | Line 121: | ||
[[https://www.academia.edu/22900396/How_To_Write_PID_control_algorithm_using_C_language_TipsWell_1_|Implementare PID]]\\ | [[https://www.academia.edu/22900396/How_To_Write_PID_control_algorithm_using_C_language_TipsWell_1_|Implementare PID]]\\ | ||
[[https://www.pololu.com/docs/0J57/2.c|Documentatie Zumo Reflectance Sensor Array]]\\ | [[https://www.pololu.com/docs/0J57/2.c|Documentatie Zumo Reflectance Sensor Array]]\\ | ||
+ | [[https://www.pololu.com/product/136|Senzorul de distanta]] \\ | ||
+ | [[https://www.robofun.ro/mecanice/driver-motoare-l298-versiunea-2-tip-shield.html|Driver de motoare]] \\ | ||
[[https://github.com/pololu/zumo-shield|Github Biblioteca ZumoShield]] \\ | [[https://github.com/pololu/zumo-shield|Github Biblioteca ZumoShield]] \\ | ||
[[https://github.com/pololu/pushbutton-arduino|Github Biblioteca PushButton]] | [[https://github.com/pololu/pushbutton-arduino|Github Biblioteca PushButton]] |