This shows you the differences between two versions of the page.
pm:prj2024:aungureanu:codrut.ciulacu [2024/05/26 22:25] codrut.ciulacu [Rezultate Obţinute] |
pm:prj2024:aungureanu:codrut.ciulacu [2024/05/27 00:44] (current) codrut.ciulacu [Jurnal] |
||
---|---|---|---|
Line 52: | Line 52: | ||
* **IRremote**: pentru controlul robotului prin telecomanda | * **IRremote**: pentru controlul robotului prin telecomanda | ||
* Aceste componente sunt unite in **main.c** | * Aceste componente sunt unite in **main.c** | ||
+ | * Motoarele folosesc in spate PWM, folosesc Timer-ul 0 ambele canale pentru asta, in modul Fast PWM fara prescaler, asta insemnand ca valoarea maxima e intre cea setata in registrii OCR0A/OCR0B si 255 | ||
+ | * Senzorul de ultrasonice functioneaza pe un principiu simplu: eu dau un trigger, in spate se trimite o unda ultrasonica care se va intoarce inapoi si va fi detectata de senzor, noi calculam timpul parcurs si folosind formula (0.000004 * time / 2 * 34300) putem afla distanta parcursa de unda. | ||
+ | * Aceste valori au fost aflate part experimental si part cautand pe net in dorinta de a gasi un punct de plecare | ||
+ | * Pentru a calibra timpul dintre 2 citiri am folosit tot metoda experimentala incercand sa gasesc un interval astfel incat sa nu se calce in picioare senzorii | ||
+ | |||
** Detectarea obstacolelor ** | ** Detectarea obstacolelor ** | ||
* pentru detectarea distantelor folosesc 4 senzori de distanta cu ultrasonice | * pentru detectarea distantelor folosesc 4 senzori de distanta cu ultrasonice | ||
Line 71: | Line 76: | ||
[[https://youtube.com/shorts/6XWtDga2NS0?feature=share|Rezultat final]] | [[https://youtube.com/shorts/6XWtDga2NS0?feature=share|Rezultat final]] | ||
- | ===== Concluzii ===== | ||
+ | * Rezultatul principal de care sunt cel mai mandru este ca am obtinut ceva care merge, folosind o buna parte din ce am invatat la laborator. Asta a fost si motivul pentru care am implementat folosind avr-c ca sa pot sa pun in aplicare si sa inteleg mai bine ce am folosit la laboratoare semestrul asta. | ||
+ | |||
+ | * Rezultatele sunt multumitoare, sure it's far from perfect si probabil o sa mai lucrez la acest proiect ca un mini proiect personal, dar in opinia mea e mult mai importanta calatoria si faptul ca am fost pus intr-un context pe care nu il stiam suuuper bine(partea de hardware) | ||
+ | ===== Concluzii ===== | ||
+ | * M-am confruntat cu destule dificultati pe parcurs, cateva dintre ele fiind: | ||
+ | * Am purtat lupta vietii mele cu driverele de motor, am schimbat 3 drivere: unul a venit ars si imi scotea pe un pin de input 5V, unul avea 4 pini de in care cereau pwm si am ramas rapid fara timere pe care sa calculez pwm-ul pentru ca aveam nevoie de timere si la receiver-ul de ir si la senzori cu ultrasonice si ultimul care a fost un succes(al 3-lea e mereu cu noroc) | ||
+ | * Si senzorii cu ultrasonice mi-au dat batai de cap si in special faptul ca eu aveam nevoie de 4 | ||
+ | * Partea de lucru cu infrarosu a fost cam crancena si pana la urma am ajuns sa folosesc o librarie pentru ca era mai usor | ||
+ | * Dupa ce am trecut peste aceste probleme implementarea a fost straight-forward(aveam componentele separat testate si implementate si a trebuit sa le pun cap la cap) | ||
+ | * Implementarea curenta nu include toate incercarile si aproach-urile la care m-am gandit si care nu au mers(sa folosesc un singur pin de echo pt senzori de distanta, sa conectez 2 arduino-uri unul pentru senzori si unul pentru motoare, sa implementez algoritmul NEC pentru infrarosu, lipiturile facute, incercarea de a adauga un buzzer si led-uri pentru semnalizare) pe care le-am scos pentru ca nu functionau corect impreuna cu codul deja scris | ||
+ | * Experienta a fost fun si as mai repeta-o, dar ce as face mai bine ar fi: | ||
+ | * organizare mai buna ca timp | ||
+ | * scris de teste | ||
+ | * sa incerc sa vin prima data cu un PoC inainte sa fac restul implementarii | ||
+ | * sa imi setez asteptari la joase | ||
===== Download ===== | ===== Download ===== | ||
+ | Arhiva cu schemele si codul: Ciulacu Codrut-Cristian, 333CC → {{:pm:prj2024:aungureanu:self_parking_robot_codrut_ciulacu.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ă ;-). | ||
- | |||
- | 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 ===== | ||
- | |||
- | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | ||
- | </note> | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | + | * [[https://www.avrfreaks.net | Forum AVR]] | |
- | <note> | + | * laboratoare |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * [[https://ocw.cs.pub.ro/courses/_media/pm/doc8272.pdf | Datasheet 328p]] |
- | </note> | + | * [[https://images.prismic.io/circuito/8e3a980f0f964cc539b4cbbba2654bb660db6f52_arduino-uno-pinout-diagram.png?auto=compress,format | Pinout Arduino]] |
+ | * [[https://www.arduino.cc/reference/en/ | Docs arduino pentru Serial printing]] | ||
+ | * [[https://stackoverflow.com/search?q=avr&s=0b270fdb-6b38-4594-8098-63e4dc3f4498| Forum programare in general]] | ||
+ | * [[https://www.electrosoftcloud.com/en/pcint-interrupts-on-arduino/ | paralela pini PCINT_vect]] | ||
+ | * [[https://wiki.dfrobot.com/Arduino_Motor_Shield__L298N___SKU_DRI0009_ | Docs shield]] | ||
<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> |