This shows you the differences between two versions of the page.
pm:prj2022:fstancu:linefollower [2022/05/06 17:08] elena.pavel1312 |
pm:prj2022:fstancu:linefollower [2022/06/02 07:47] (current) elena.pavel1312 [Jurnal] |
||
---|---|---|---|
Line 9: | Line 9: | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | Mașină cu 3 roți, una fiind mobilă, și 2 motoare care va urmări path-ul unei linii negre. (curbele si direcția) Scopul acestui proiect este de a realiza o comunicarea eficientă între plăcuța Arduino și cele 2 motoare pe baza inputului de la senzor. | + | Mașină cu 3 roți, una fiind mobilă, și 2 motoare care vor urmări path-ul unei linii negre. (curbele si direcția) Scopul acestui proiect este de a realiza o comunicarea eficientă între plăcuța Arduino și cele 2 motoare pe baza inputului de la senzor. |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
Line 17: | Line 17: | ||
{{:pm:prj2022:fstancu:line_follower_schema_bloc.png?700|}} | {{:pm:prj2022:fstancu:line_follower_schema_bloc.png?700|}} | ||
+ | * Utilizatorul va avea posibilitatea de a porni printr-un switch mașinuța. | ||
+ | * Mișcarea mașinii va fi controlată de către driver-ul de motor pe baza informației provenite din partea un bări de senzori infraroșu reflectivi. Cele 2 motoare conectate la driver vor fi primi semnale potrivite pentru a acționa mașina în direcția dorită. | ||
Line 35: | Line 37: | ||
* 1 x switch | * 1 x switch | ||
* Led-uri | * Led-uri | ||
+ | |||
+ | Schemă electrică: | ||
+ | |||
+ | {{:pm:prj2022:fstancu:schema_electrica.png?500|}} | ||
+ | |||
===== Software Design ===== | ===== Software Design ===== | ||
- | TBA | + | Acest proiect este împărțit în 3 părți: |
+ | * Citirea și calibrarea celor 8 senzori infraroșu. | ||
+ | * Algoritmul PID pentru calcularea vitezei și interpretarea datelor de la senzori. | ||
+ | * Setarea vitezei motoarelor. | ||
+ | |||
+ | Am folosit biblioteca QTRSensors.h pentru a citi senzorii și am setat manual motoarele cu digitalWrite. | ||
+ | |||
+ | În timpul dezvoltării software, am abordat multe modalități de calcul al vitezelor pentru cele 2 motoare. De la cea mai complicată abordare care mergea doar pe o linie dreaptă, am atins și un comportament funcțional doar pentru curbe. Între timp am descoperit cu ajutorul laborantului că ar trebui să folosesc algoritmul PID. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | TBA | + | Pentru a vedea exact ce face robotul pe care l-am realizat: https://youtu.be/ACG9y0rzLEM. |
+ | |||
+ | În urma acestui proiect am obținut un prototip funcțional, în ciuda unui motor DC care nu mai merge la capacitate maximă si a unui driver care face destul de des probleme cu conexiunea dintre placa Arduino și motoare. | ||
+ | |||
+ | Galerie cu mașinuța: | ||
+ | |||
+ | {{:pm:prj2022:fstancu:pavel_masina3.jpg?direct&200|}} | ||
+ | {{:pm:prj2022:fstancu:pavel_masina2.jpg?direct&200|}} | ||
+ | {{:pm:prj2022:fstancu:pavel_masina1.jpg?direct&200|}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | ===== Download ===== | + | * Uzura și supraîncălzirea unui motor DC reprezintă o amenințare mare pentru proiectul Line Follower. |
+ | * Pinii digitali de pe plăcuța Arduino UNO ar putea suferi probleme și ar trebui să nu îi suprasolicităm. | ||
+ | * Componentele de plastic/lemn pot suferi accidente datorită folosirii excesive. | ||
+ | * Constantele folosite în algoritmul PID pentru urmărirea unei linii negre depind foarte mult de sezorii pe care îi foloșesti (anul de fabricație, specificațiile lor) și, de asemenea, depind de designul mașinuței, pe lângă toate calculele pe care le realizezi. | ||
+ | * Am încercat să folosesc 3 baterii legate în serie pentru am alimenta motor driver-ul, dar fără succes. | ||
+ | * În ultima clipă a trebuit să schimb pinii pe care îi folosește senzorul cu infraroșu deoarece nu aveam destuli pini digitali și se stricase unul între timp. | ||
- | TBA | ||
+ | ===== Download ===== | ||
+ | |||
+ | {{:pm:prj2022:fstancu:pavel_elenaalexandra_332cc.zip|}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | TBA | ||
+ | 24.04 - Achiziționarea unui procent mare de componente. | ||
+ | |||
+ | 6.05 - Lipirea unor componete. | ||
+ | |||
+ | 16.05 - Realizare design și reseach pentru partea de hardware, dar și software a proiectului. | ||
+ | |||
+ | 20.05 - Realizare legarea tuturor componentelor și scrierea unui cod de verificare a motoarelor și a senzorului infraroșu. | ||
+ | |||
+ | 22.05 - Realizare cod fără Algoritmul PID. | ||
+ | |||
+ | 28.05 - Calculare constante și viteze pentru Algoritmul PID. | ||
+ | |||
+ | 28-1.06 - Debbuging proiect realizat cu succes. | ||
+ | |||
+ | 1.06 - Finalizare mașină | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | TBA | + | Algoritm PID: https://en.m.wikipedia.org/wiki/PID_controller |
+ | |||
+ | Documentație Driver DRV8833 Motor Dual:https://www.pololu.com/product/2130 | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||