This shows you the differences between two versions of the page.
pm:prj2023:gpatru:line-follower-and-obstacle-avoiding-robot [2023/05/29 18:52] alexandru.maciuca [Concluzii] |
pm:prj2023:gpatru:line-follower-and-obstacle-avoiding-robot [2023/05/30 06:30] (current) alexandru.maciuca [Software Design] |
||
---|---|---|---|
Line 103: | Line 103: | ||
- Functiile: //go_stop//, //go_forward//, //go_left//, //go_right//, sunt foarte asemanatoare si indeplinesc acelasi scop: de a seta diferite viteze pe motoare si valori pe pinii corespunzatori. | - Functiile: //go_stop//, //go_forward//, //go_left//, //go_right//, sunt foarte asemanatoare si indeplinesc acelasi scop: de a seta diferite viteze pe motoare si valori pe pinii corespunzatori. | ||
- Functia //followLine// se ocupa cu calcularea unor sume partiale pentru a decide directia in care sa se indrepte robotelul. | - Functia //followLine// se ocupa cu calcularea unor sume partiale pentru a decide directia in care sa se indrepte robotelul. | ||
- | - Sumele provin din valorile analogice ale pinilor de *IR* aflati pe matrice QTRX-HD-06A. | + | - Sumele provin din valorile analogice ale pinilor de **IR** aflati pe matrice QTRX-HD-06A. |
- Functiile: //turnObstacleRight// si //turnObstacleLeft// se ocupa cu partea de ocolire a unui obstacol, folosindu-se la baza de functiile definite mai sus. | - Functiile: //turnObstacleRight// si //turnObstacleLeft// se ocupa cu partea de ocolire a unui obstacol, folosindu-se la baza de functiile definite mai sus. | ||
Line 113: | Line 113: | ||
**Etapa de evitare a unui obstacol** | **Etapa de evitare a unui obstacol** | ||
- | - Este actionat servomotorul sub trei unghiuri diferite menite sa acopere directiile: "fata", "spate", si "fata". | + | - Este actionat servomotorul sub trei unghiuri diferite menite sa acopere directiile: "stanga", "dreapta", si "fata". |
- Datorita cablului USB care poate sa agate, am decis in teste sa realizez ocolirea numai pe partea dreapta. | - Datorita cablului USB care poate sa agate, am decis in teste sa realizez ocolirea numai pe partea dreapta. | ||
**Etapa de loop** | **Etapa de loop** | ||
- Calculeaza distanta pana la obiect folosindu-se de functiile descrise mai sus. | - Calculeaza distanta pana la obiect folosindu-se de functiile descrise mai sus. | ||
- | - Daca distanta obtinuta este mai mica decat o valoare de *THRESHOLD*, atunci avem un obstacol in fata si va trebui sa il evitam. | + | - Daca distanta obtinuta este mai mica decat o valoare de **THRESHOLD**, atunci avem un obstacol in fata si va trebui sa il evitam. |
- In caz contrar, robotul trebuie doar sa urmareasca linia. | - In caz contrar, robotul trebuie doar sa urmareasca linia. | ||
Line 144: | Line 144: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | Acest proiect a reprezentat prima mea incursiune in lumea hardware si pot spune ca a fost o experienta cu suisuri si coborasuri. Am intampinat destul de multe probleme legate de alimentare. Dupa ce am reusit sa le rezolv pe acestea, au aparut altele noi, legate de senzorii IR, care s-au dovedit a fi montati intr-un spatiu mult mai restrans decat asteptarile mele. M-am stresat destul de tare cu acest proiect, insa sunt oarecum multumit de rezultatul final. | + | Acest proiect a reprezentat prima mea incursiune in lumea hardware si pot spune ca a fost o experienta cu suisuri si coborasuri. Am intampinat destul de multe probleme legate de alimentare. Dupa ce am reusit sa le rezolv pe acestea, au aparut altele noi, legate de senzorii **IR**, care s-au dovedit a fi montati intr-un spatiu mult mai restrans decat asteptarile mele. M-am stresat destul de tare cu acest proiect, insa sunt oarecum multumit de rezultatul final. |
===== Download ===== | ===== Download ===== | ||
+ | *Cod Sursa: {{:pm:prj2023:gpatru:maciuca_alexandru_petru_334ca_proiectpm.zip|}} | ||
- | <note warning> | ||
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-) LOL. | ||
- | |||
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | ||
- | </note> | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note tip> | + | |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | *21.04: Alegere tema |
- | </note> | + | *23.04: Crearea paginii de wiki |
+ | *30.04: Prima comanda de piese de pe OptimusDigital | ||
+ | *14.05: O prima incercare de asamblare a hardware-ului | ||
+ | *15.05: O a doua comanda de piese de pe OptimusDigital | ||
+ | *21.05: Implementarea unei parti a componentei software pentru testare | ||
+ | *28.05: Construire pista si rezolvare de bug-uri | ||
+ | *29.05: Finalizare pagina de wiki | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | *Conectarea motor driver-ului: https://lastminuteengineers.com/l298n-dc-stepper-driver-arduino-tutorial/ |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | *Conectarea senzorului ultrasonic HC-SR04 si a servomotorului SG90 impreuna: https://arduinogetstarted.com/tutorials/arduino-ultrasonic-sensor-servo-motor |
- | </note> | + | *Conectarea matricii de senzori **IR**: https://www.youtube.com/watch?v=KeXoS4568w0 |
+ | *Informatii generale despre //LineFollower//: https://edu.ieee.org/lk-uomras/blog/analog-line-following-robot/ | ||
<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> |