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> |