Differences

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

Link to this comparison view

pm:prj2022:sgherman:propeller_car [2022/05/27 18:39]
alexandra.cune [Software Design]
pm:prj2022:sgherman:propeller_car [2022/06/02 23:52] (current)
alexandra.cune [Rezultate obtinute]
Line 30: Line 30:
   - Pentru masina:   - Pentru masina:
      ​*Arduino UNO      ​*Arduino UNO
-     ​*Motor Driver+     ​*Motor Driver ​L298N
      ​*Servomotor      ​*Servomotor
      ​*Breadboard      ​*Breadboard
      ​*Motor cu elice X2      ​*Motor cu elice X2
      ​*Roata X3      ​*Roata X3
-     ​*Modul radio+     ​*Modul radio nRF24L01 
 +     ​*Condensator 47μF
      *Fire de legatura/ mama-tata      *Fire de legatura/ mama-tata
-     ​*Releu 
   - Pentru telecomanda:​   - Pentru telecomanda:​
      ​*Arduino UNO      ​*Arduino UNO
      ​*Joystick      ​*Joystick
      ​*Potentiometru      ​*Potentiometru
-     ​*Modul radio+     ​*Modul radio nRF24L01 
 +     ​*Condensator 47μF
      *Fire de legatura/ mama-tata      *Fire de legatura/ mama-tata
  
  
 ===== Schema electrica ===== ===== Schema electrica =====
-{{:​pm:​prj2022:​sgherman:​schema_electrica_propeller_car.png?800|}} +{{:​pm:​prj2022:​sgherman:​car2.png?800|}}
- +
  
 ===== Software Design ===== ===== Software Design =====
Line 58: Line 57:
   * mediu de dezvoltare Arduino IDE   * mediu de dezvoltare Arduino IDE
   * librării şi surse 3rd-party : SPI.h, nRF24L01.h, RF24.h, Servo.h.   * librării şi surse 3rd-party : SPI.h, nRF24L01.h, RF24.h, Servo.h.
 +  * github: [[https://​github.com/​AlexandraCune/​Propeller-Car]]
 </​note>​ </​note>​
-  ​Algoritmul ce sta la baza implementarii acestui proiect este urmatorul:+Algoritmul ce sta la baza implementarii acestui proiect este urmatorul: 
 In transmitter se citesc date de la joystick si potentiometru utilizand functia **__//''​analogRead()''//​__** . Aceste date sunt stocate intr-o structura '​Data_Package' ​ In transmitter se citesc date de la joystick si potentiometru utilizand functia **__//''​analogRead()''//​__** . Aceste date sunt stocate intr-o structura '​Data_Package' ​
 <​code>​ <​code>​
Line 68: Line 69:
 </​code>​ </​code>​
 care va fi transmisa prin modulul radio, receiver-ului. care va fi transmisa prin modulul radio, receiver-ului.
-  ​Utilizand biblioteca RF24.h, am dispus de numeroase functii de manipulare a semnalelor radio. Astfel, transmitter-ul l-am setat pe modul: **__//''​stopListening''//​__**,​ folosind functia corespunzatoare. In loop() acesta are rolul de a citi datele mentionate mai sus si de a le transmite mai departe prin comanda :+Utilizand biblioteca RF24.h, am dispus de numeroase functii de manipulare a semnalelor radio. Astfel, transmitter-ul l-am setat pe modul: **__//''​stopListening''//​__**,​ folosind functia corespunzatoare. In loop() acesta are rolul de a citi datele mentionate mai sus si de a le transmite mai departe prin comanda :
 <​code>​ <​code>​
   radio.write(&​data,​ sizeof(Data_Package));​   radio.write(&​data,​ sizeof(Data_Package));​
 </​code>​ </​code>​
  
-  ​In receiver se seteaza la inceput, in functia de setup, pinul pe care functioneaza servo-ul, starea modululi radio: **__//''​startListening''//​__** , dar si pinii prin care sunt controlate cele 2 motoare si vitezele lor.+In receiver se seteaza la inceput, in functia de setup, pinul pe care functioneaza servo-ul, starea modululi radio: **__//''​startListening''//​__** , dar si pinii prin care sunt controlate cele 2 motoare si vitezele lor.
  
 In loop se verifica conectivitatea cu celalalt modul radio  **__//''​if (radio.available())''//​__** , iar daca acestea pot comunica, receiverul citeste datele trimise si le stocheaza intr-o structura ca cea mentionata mai sus. In loop se verifica conectivitatea cu celalalt modul radio  **__//''​if (radio.available())''//​__** , iar daca acestea pot comunica, receiverul citeste datele trimise si le stocheaza intr-o structura ca cea mentionata mai sus.
Line 79: Line 80:
   radio.read(&​data,​ sizeof(Data_Package));​   radio.read(&​data,​ sizeof(Data_Package));​
 </​code>​ </​code>​
- Cu datele obtinte se modifica prin "data.dir" ​directia servo motorului, si prin "data.power" ​viteaza de rotatie a motoarelor. Tot aici sunt pornite motoarele si li se atribuie un sens setand cate un pin pe HIGH si celalalt pe LOW.+Cu datele obtinte, se modifica prin //data.dir// directia servo motorului, si prin //data.power// viteaza de rotatie a motoarelor. Tot aici sunt pornite motoarele si li se atribuie un sens setand cate un pin pe HIGH si celalalt pe LOW.
  
  
-===== Download ​=====+===== Rezultate obtinute ​=====
  
-<note warning>​ +[[https://youtube.com/​shorts/​CA2O0F1du7U?​feature=share|Link Demo]]
-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**.+**Proiectul neamplasat pe macheta:** 
 + 
 +''​Telecomanda:''​ 
 + 
 +{{:pm:prj2022:​sgherman:​telecomanda.jpeg?400|}} 
 + 
 +''​Masina:''​ 
 + 
 +{{:​pm:​prj2022:​sgherman:​masina.jpeg?400|}} 
 + 
 +**Macheta proiect:** 
 + 
 +''​Telecomanda:''​ 
 + 
 +{{:pm:prj2022:sgherman:telecomanda_cutie.jpeg?​400|}} 
 + 
 +''​Masina:''​ 
 + 
 +{{:​pm:​prj2022:​sgherman:​masina_cutie.jpeg?​400|}} 
 + 
 + 
 + 
 +===== Download ===== 
 + 
 +<note tip> 
 +{{:pm:prj2022:sgherman:propeller_car1.zip|Arhiva proiect}}
 </​note>​ </​note>​
 +
  
  
pm/prj2022/sgherman/propeller_car.1653665987.txt.gz · Last modified: 2022/05/27 18:39 by alexandra.cune
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