Differences

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

Link to this comparison view

pm:prj2024:ccontasel:raluca.movileanu [2024/05/24 03:37]
raluca.movileanu [Jurnal]
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 136: Line 135:
 <note tip> <note tip>
   * Mediu de dezvoltare: Arduino IDE   * Mediu de dezvoltare: Arduino IDE
-  * Librării ​ÅŸi surse 3rd-party: SPI.h, nRF24L01.h, RF24.h+  * Librarii ​ÅŸi surse 3rd-party: SPI.h, nRF24L01.h, RF24.h
 </​note>​ </​note>​
-===== Rezultate Obţinute =====+ 
 +<note important>​LINK GITHUB: https://​github.com/​Raluck20/​Masina_cu_telecomanda</​note>​ 
 + 
 +**__Telecomanda:​__** 
 + 
 +Initializare:​ 
 +  * Biblioteca SPI este inclusa pentru a permite comunicarea prin protocolul SPI. 
 +  * Biblioteca nRF24L01 si RF24 sunt incluse pentru a gestiona modulul de comunicatie wireless RF24. 
 +  * Se defineste un obiect RF24 pentru modulul radio, specificand pinii 7 si 10 pentru conexiune. 
 +  * Se defineste adresa de scriere a datelor pentru modulul RF24. 
 +  * Se definesc pinii pentru citirea comenzilor (analogici si digitali) de la butoane. 
 + 
 +Setup: 
 +  * Se initializeaza comunicatia seriala pentru debugging la o viteza de 9600 bps. 
 +  * Se initializeaza modulul radio si se configureaza pentru scrierea datelor la adresa specificata. 
 +  * Se seteaza nivelul de putere al modulului radio si se opreste ascultarea (receptia) pentru a permite transmiterea datelor. 
 + 
 +Loop: 
 +  * In bucla principala, se citesc valorile analogice de la pinii definiti (A0-A7) care corespund directiilor de control: fata, spate, stanga, dreapta, fataStanga, fataDreapta,​ spateStanga,​ spateDreapta. 
 +  * Daca valorile citite depasesc un anumit prag (1015), se trimite o comanda specifica prin intermediul modulului radio. Comenzile posibile sunt: "​fata",​ "​spate",​ "​stanga",​ "​dreapta",​ "fata stanga",​ "fata dreapta",​ "spate stanga",​ "spate dreapta"​. 
 +  * In plus, se citesc valorile digitale de la pinii 2 si 3 pentru rotatia stanga si dreapta. Daca aceste butoane sunt apasate (valoare HIGH), se trimite comanda corespunzatoare. 
 +  * Dupa fiecare comanda trimisa, exista o intarziere de 500 ms pentru a preveni trimiterea continua de comenzi si pentru a oferi un timp de raspuns adecvat. 
 + 
 +Functia '​comanda':​ 
 +  * 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. 
  
 <note tip> <note tip>
-Care au fost rezultatele obÅ£inute în urma realizării proiectului vostru.+__**In codul pentru telecomanda am folosit urmatoarele concepte:​**__ 
 + 
 +  * **SPI**: Utilizat pentru comunicarea cu modulul RF24 pentru transmisie wireless. 
 + 
 +  * **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.). 
 + 
 +  * **UART**: Utilizat pentru comunicarea seriala pentru debug (comunicare cu monitorul serial). 
 </​note>​ </​note>​
  
-===== Concluzii ===== 
  
-===== Download =====+**__Masina:​__**
  
-<note warning> +Initializare:​ 
-O arhivă ​(sau mai multe dacă este cazulcu fiÅŸierele obÅ£inute în urma realizării proiectului:​ surseschemeetc. Un fiÅŸier READMEun ChangeLogun script de compilare ÅŸi copiere automată ​pe uC crează întotdeauna o impresie bună ;-).+  * 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 (fataspatestangadreaptaetc.). 
 +  * 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.
  
-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 Alin331CC -**:pm:prj2009:​cc:​dumitru_alin**.+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> 
 +__**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. motor1Inaintemotor1Inapoi,​ 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 =====
 +
 +Am reusit sa realizez o masina cu telecomanda conform planului propus initial.
 +
 +**Indicatori de performanta:​**
 +  * 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 o 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.
 +
 +**Optimizari pe care le-as putea adauga:**
 +  * 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 =====
  
Line 164: Line 254:
   * 16 mai - proiectare scheme electrice (telecomanda+masina)   * 16 mai - proiectare scheme electrice (telecomanda+masina)
   * 13-16 mai - am implementat si modificat codul in paralel cu realizarea componentelor fizice   * 13-16 mai - am implementat si modificat codul in paralel cu realizarea componentelor fizice
 +  * 23 mai - realizare caroserie masina
  
 </​note>​ </​note>​
pm/prj2024/ccontasel/raluca.movileanu.1716511064.txt.gz · Last modified: 2024/05/24 03:37 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