Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:sseverin:bogdan.prunescu [2024/05/18 09:44]
bogdan.prunescu [Hardware Design]
pm:prj2024:sseverin:bogdan.prunescu [2024/05/26 22:28] (current)
bogdan.prunescu [Software Design]
Line 22: Line 22:
   * un servomotor **SG90**   * un servomotor **SG90**
   * driver motor **L298N**   * driver motor **L298N**
-  * acumulator ​6V pentru driver+  * acumulator ​7V2 pentru driver
   * baterie 9V pentru arduino   * baterie 9V pentru arduino
-{{ :​pm:​prj2024:​sseverin:​schema_robot_sortare_resized1.png?nolink |}}+  * switch 
 +{{ :​pm:​prj2024:​sseverin:​schema_bobu.png?nolink |}} 
 <note tip> <note tip>
 Placuta de arduino de la pulsivo suporta tensiuni de pana la 40V, deci m-am decis sa folosesc o baterie de 9V. Placuta de arduino de la pulsivo suporta tensiuni de pana la 40V, deci m-am decis sa folosesc o baterie de 9V.
-Aici puneţi tot ce ţine de hardware design: 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) 
-  * diagrame de semnal ​ 
-  * rezultatele simulării 
- 
 </​note>​ </​note>​
  
 ===== Software Design ===== ===== Software Design =====
  
 +Pentru dezvoltarea proiectului am folosit arduino IDE, impreuna cu libraria pentru servomotare.
 +
 +Pentru o buna deplasare a robotul in timp ce urmareste o linie am folosit un controller PID, in care eroarea este cat de deplasat este robotul fata de linie (valoare obtinuta din senzorul pentru urmarirea liniei). Pentru deplasarea efectiva, am creat functia goForward(),​ care primeste ca parametrii viteze care vor fi trimise fiecarui motor in parte.
  
 <note tip> <note tip>
-Descrierea codului aplicaţiei (firmware):​ +Pentru a face codul mai lizibil am scris valorile senzorilor pe bitii unei singure variabilecare este testata intr-un switch cu scopul aclualizarii erorii.
-  * mediu de dezvoltare (if any) (e.g. AVR StudioCodeVisionAVR) +
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate+
 </​note>​ </​note>​
 +
 +<note important>​Dupa foarte mult debug din cauza ca robotul nu se misca la PWM cu duty cycle mic, am schimbat frecventa timerului de care se folosesc pinii 5 si 6 (cei montati la driver), pentru a putea da valori mai mari la output fara a avea o frecventa prea mare la PWM.</​note>​
 +
 +Pentru detectia culorii cuburilor senzorul primeste pe doi pini o comanda care ii schimba culoarea pe care el trebuie sa o setecteze (adica el, pe rand, va trebui sa transmita cat de "​rosu",​ "​verde"​ si "​albastru"​ vede in fata lui). Cu aceste date si cu niste valori gasite prin incercari, senzorul detecteaza cu usurinta si fara eroare coluarea cuburilor.
 +
 +Pentru deplasarea pe traseu, robotul functioneaza dupa un principiu simplu: numara prin cate "​intersectii"​ a umblat (atunci cand toti senzorii mai putin cel din mijloc vad linia neagra robotul considera ca se afla intr-o intersectie). In functie de numarul de intersectii prin care a trecut, robotul stie care va fi actiunea pe care trebuie sa o ia mai departe.
 +
 +In plus, am implementat si o intrerupere,​ al carui pin folosit a fost legat la un switch care, in momnetul cand ii este schimbata starea, intreruperea se va activa si va porti robotul.
 +
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+Update 26.05 
 +  - dupa multe lupte si incercari nenumarate (in care mi-am bubuit priza cand am incarcat acumulatorii -_-) am reusit sa finalizez proiectul.
 </​note>​ </​note>​
  
 +<​html>​
 +<iframe width="​315"​ height="​560"​ src="​https://​www.youtube.com/​embed/​BsnWkxoVZts"​ title=""​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ referrerpolicy="​strict-origin-when-cross-origin"​ allowfullscreen></​iframe>​
 +</​html>​
 ===== Concluzii ===== ===== Concluzii =====
  
 +A fost o experienta unica, plina de obstacole (dintre care credeam ca nu mai pot sa trec peste), dar cu un rezultat de care sunt foarte incantat si multumit.
 ===== Download ===== ===== Download =====
  
-<note warning>​ +{{:pm:​prj2024:​sseverin:​colorsorter_bogdanprunescu.zip|}}
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, 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**.+===== Jurnal ===== 
 + 
 +<note tip> 
 +Update 22.05  
 +  ​adaugat switch proiectului ​care va opri executia programului cand este pe ON (implementat cu intreruperi) 
 +  - schimbat schematicul pentru a adauga switch-ul si un modul nou de urmarie a liniei ​(acesta are senzorii mai apropiati) 
 +  ​incercat driver + senzor de urmarire a liniei impreuna cu un PID controller pentru a testa functionalitatea pieselor si pentru a intelege cum functioneaza modulele.
 </​note>​ </​note>​
  
-===== Jurnal =====+<​html>​ 
 +<iframe width="​315"​ height="​560"​ src="​https://​www.youtube.com/​embed/​RvuB_lE1t9Q"​ title=""​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ referrerpolicy="​strict-origin-when-cross-origin"​ allowfullscreen></​iframe>​ 
 +</​html>​
  
 <note tip> <note tip>
-Puteți avea și o secțiune ​de jurnal în care să poată urmări asistentul ​de proiect progresul proiectului.+Update 23.05  
 +  - ajustat pozitie modul urmarire linie (pentru ca mi-a fost foarte greu sa il fac sa fie foarte aproape ​de podea, dar am observat ca daca inclin putin de modul, senzorii detecteaza mai de departe negru, dar are nevoie de o suprafata neagra mai mare) 
 +  - dublat grosime traseu de test si traseu final pentru a detecta mai bine linia neagra 
 +  - calibrat PID pentru a stabiliza robotul
 </​note>​ </​note>​
  
-===== Bibliografie/Resurse =====+<​html>​ 
 +<iframe width="​315"​ height="​560"​ src="​https:​//​www.youtube.com/​embed/​6F3PD4ND8OA"​ title=""​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ referrerpolicy="​strict-origin-when-cross-origin"​ allowfullscreen></​iframe>​ 
 +</​html>​
  
-<​note>​ +<​note ​tip
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+Update 24.05 
 +  - am terminaat de scris restul codului dar are foarte multe buguri in zona de luat viraje si detectat intersectii (mai ales cand trebuie sa ia decizia de a vira in mijlocul intersectiei)
 </​note>​ </​note>​
 +
 +<​html>​
 +<iframe width="​885"​ height="​500"​ src="​https://​www.youtube.com/​embed/​NENNDwDy4jI"​ title=""​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ referrerpolicy="​strict-origin-when-cross-origin"​ allowfullscreen></​iframe>​
 +</​html>​
 +
 +
 +===== Bibliografie/​Resurse =====
 +
 +https://​www.youtube.com/​watch?​app=desktop&​v=5jh-5HGvC-I
 +
 +https://​projecthub.arduino.cc/​SurtrTech/​color-detection-using-tcs3200230-a1e463
 +
 +
  
 <​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>​
  
pm/prj2024/sseverin/bogdan.prunescu.1716014689.txt.gz · Last modified: 2024/05/18 09:44 by bogdan.prunescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0