Differences

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

Link to this comparison view

pm:prj2024:ccontasel:raluca.movileanu [2024/05/25 16:55]
raluca.movileanu [Software Design]
pm:prj2024:ccontasel:raluca.movileanu [2024/05/26 23:22] (current)
raluca.movileanu [Download]
Line 129: Line 129:
  
  
-Masina si telecomanda sunt complet functionale(se pot observa si ledurile aprinse in imagine). 
  
 ===== Software Design ===== ===== Software Design =====
Line 139: Line 138:
 </​note>​ </​note>​
  
-__Telecomanda:​__+<note important>​LINK GITHUB: https://​github.com/​Raluck20/​Masina_cu_telecomanda</​note>​ 
 + 
 +**__Telecomanda:​__**
  
 Initializare:​ Initializare:​
Line 160: Line 161:
  
 Functia '​comanda':​ Functia '​comanda':​
-  * Aceasta functie construieste un mesaj de 32 de caractere, care contine comanda de transmisie. +  * Aceasta functie construieste un mesaj de 32 de caractere, care contine comanda de transmisie. Mesajul este transmis folosind functia radio.write prin intermediul modulului RF24.
-Mesajul este transmis folosind functia radio.write prin intermediul modulului RF24.+
  
 +
 +<note tip>
 __**In codul pentru telecomanda am folosit urmatoarele concepte:​**__ __**In codul pentru telecomanda am folosit urmatoarele concepte:​**__
  
-  * SPI: Utilizat pentru comunicarea cu modulul RF24 pentru transmisie wireless.+  ​* **SPI**: Utilizat pentru comunicarea cu modulul RF24 pentru transmisie wireless.
  
-  * GPIO: Utilizat pentru citirea starii pinilor digitali (rotireStanga si rotireDreapta).+  ​* **GPIO**: Utilizat pentru citirea starii pinilor digitali (rotireStanga si rotireDreapta).
  
-  * ADC: Utilizat pentru citirea valorilor analogice de la pinii A0-A7 (fata, spate, stanga, dreapta, etc.).+  ​* **ADC**: Utilizat pentru citirea valorilor analogice de la pinii A0-A7 (fata, spate, stanga, dreapta, etc.).
  
-  * UART: Utilizat pentru comunicarea seriala pentru debug (comunicare cu monitorul serial).+  ​* **UART**: Utilizat pentru comunicarea seriala pentru debug (comunicare cu monitorul serial).
  
 +</​note>​
  
-===== Rezultate Obţinute =====+ 
 +**__Masina:​__** 
 + 
 +Initializare:​ 
 +  * SPI.h, nRF24L01.h, RF24.h sunt incluse pentru a permite comunicarea SPI si utilizarea modulului RF24. 
 +  * Se definesc pinii de control pentru motoare (inainte si inapoi pentru fiecare din cele 4 motoare). 
 +  * Se definesc comenzile posibile (fata, spate, stanga, dreapta, etc.). 
 +  * Se definesc pinii pentru buzzer si LED-uri. 
 +  * Se initializeaza modulul RF24 pe pinii 2 si 53 si se seteaza adresa de citire. 
 +  * Pinii motoarelor, buzzer-ului si LED-urilor sunt setati ca iesiri. 
 + 
 +Setup: 
 +  * Se initializeaza comunicatia seriala. 
 +  * Se initializeaza modulul RF24. 
 +  * Se configureaza pinii de control ai celor 4 motoare ca iesiri. 
 +  * Se configureaza pinii pentru controlul vitezei motoarelor si al buzzer-ului si LED-urilor ca iesiri. 
 + 
 + 
 +Loop: 
 +  * Seteaza viteza motoarelor prin iesirile PWM la un nivel constant (150 din 255). 
 +  * Schimba starea buzzer-ului si a LED-urilor la fiecare interval de milisecunde (3000 ms), creând un efect de intermitenta (1.5 secunde pornite, 1.5 secunde oprite). 
 +  * Verifica daca exista date disponibile pe modulul radio. 
 +  * Citeste mesajul primit si Il afiseaza pe monitorul serial. 
 +  * In functie de mesajul primit (text), codul controleaza directia de miscare a motoarelor. Pentru fiecare comanda, se schimba starea pinilor corespunzatori motoarelor pentru a executa miscarea dorita (fata, spate, stanga, dreapta, etc.). 
 +  * Daca nu exista comenzi disponibile,​ toate motoarele sunt oprite pentru a preveni miscarea accidentala.
  
 <note tip> <note tip>
-Care au fost rezultatele obÅ£inute în urma realizării proiectului vostru.+__**In codul pentru masina am folosit urmatoarele concepte:​**__ 
 + 
 +  * **SPI** (Serial Peripheral Interface): Utilizat pentru comunicarea cu modulul RF24 pentru receptia comenzilor wireless. 
 + 
 +  * **GPIO** (General Purpose Input/​Output):​ Utilizat pentru controlul motoarelor si a LED-urilor. Pinii motoarelor (ex. motor1Inainte,​ motor1Inapoi,​ etc.) si LED-urilor (led1, led2) sunt setati ca iesiri. 
 + 
 +  * **UART** (Universal Asynchronous Receiver-Transmitter):​ Utilizat pentru comunicarea seriala pentru debugging (comunicare cu monitorul serial). 
 + 
 +  * **Timere**: Utilizat pentru a alterna starea buzzer-ului si a LED-urilor la fiecare 3 secunde. 
 + 
 +  * **PWM** (Pulse Width Modulation):​ Utilizat pentru a seta o valoare PWM pentru anumiti pinii (pentru controlul vitezei).
 </​note>​ </​note>​
 +
 +===== Rezultate ObÅ£inute =====
 +
 +{{:​pm:​prj2024:​ccontasel:​masina_finala-removebg-preview.png?​500|}}
 +
 +{{:​pm:​prj2024:​ccontasel:​telecomanda_finala-removebg-preview_1_.png?​500|}}
 +
 +
 +<​html>​ <iframe width="​414"​ height="​896"​ src="​https://​www.youtube.com/​embed/​cTtHTLTAKH0"​ title="​Masina cu Telecomanda"​ 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 =====
  
-===== Download =====+Am reusit sa realizez o masina cu telecomanda conform planului propus initial.
  
-<note warning> +**Indicatori de performanta:​** 
-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 ​impresie bună ;-).+  * Timpul dintre trimiterea unei comenzi de la telecomanda si executia acesteia de catre masina ​0.5 secunde. 
 +  * Rata de succes a transmiterii si receptiei comenzilor prin modulul RF24 este de 100%. 
 +  * Motoarele functioneaza la viteza dorita si mentin ​performanta consistenta in timp. 
 +  * Nu exista miscare accidentala sau nedorita a masinii cand aceasta nu primeste comenzi. 
 +  * Corectitudinea si consistenta functionarii buzzer-ului si LED-urilor.
  
-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**. +**Optimizari pe care le-as putea adauga:** 
-</​note>​+  ​Atasarea motoarelor in alt mod pe masina. 
 +  ​Folosirea a mai putinor baterii ​(eu am ales sa folosesc mai multe si pentru a adauga greutate masinii pentru aderenta). 
 + 
 +===== Download =====
  
 +{{:​pm:​prj2024:​ccontasel:​pm_project.zip|}}
 ===== Jurnal ===== ===== Jurnal =====
  
pm/prj2024/ccontasel/raluca.movileanu.1716645317.txt.gz · Last modified: 2024/05/25 16:55 by raluca.movileanu
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