Differences

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

Link to this comparison view

pm:prj2022:sgherman:racing-car [2022/05/06 18:16]
vlad_cristian.matei
pm:prj2022:sgherman:racing-car [2022/05/27 03:28] (current)
vlad_cristian.matei
Line 21: Line 21:
 **Lista de componente:​** **Lista de componente:​**
    * Arduino Uno    * Arduino Uno
-   ​* ​Breadboard +   ​* ​Baterie externa 5V 
-   * Acumulator 9V +   * Acumulator 9V - 2 buc 
-   * Leduri+   * Fire de conexiune 
 +   * Rezistente 1ohm - 8 buc 
 +   * Leduri ​- 10 buc
    * Modul Bluetooth HC-05    * Modul Bluetooth HC-05
    * Driver Motor L298N    * Driver Motor L298N
-   * DC Motor small 3-6V+   * DC Motor small 3-6V - 2 buc
    * Speaker 36mm 0.5W 0.8ohm    * Speaker 36mm 0.5W 0.8ohm
 +   * Conector baterie 9V
 </​note>​ </​note>​
 +
 +==== Schema electrica ====
 +{{ :​pm:​prj2022:​sgherman:​racing_car_schema_best_sigur.png |}}
  
 ===== Software Design ===== ===== Software Design =====
-<note tip+Mediu de dezvoltare: Arduino IDE 1.8.20. 
-Descrierea codului aplicaţiei ​(firmware): + 
-  mediu de dezvoltare ​(if any) (e.gAVR Studio, CodeVisionAVR+== Aplicatie Android == 
-  librării şi surse 3rd-party (e.gProcyon AVRlib+Aplicatia mobila android a fost dezvoltata in intregime de mine. In implementarea ei am folosit  
-  algoritmi şi structuri pe care plănuiţi ​să le implementaţi +o biblioteca care a oferit o interfata de conectare la comunicarea seriala prin bluetooth. Cu ajutorul aplicatiei,  
-  * (etapa 3surse şi funcţii implementate +utilizatorul se poate conecta la orice dispozitiv bluetooth din apropiere cu care a reusit sa faca pair pana in acel moment. Daca conectarea a reusit, atunci se pot trimite informatii catre placuta arduino, ce detine modulul de bluetooth, in functie de o codificare ale carei reguli le voi explica in continuare. Pentru a putea obtine raspunsuri in timp real, a fost nevoie sa incerc sa reduc informatia trimisa astfel incat am  
-</​note>​+compactat datele in char-uri pe care le voi trimite mai departe. 
 +   * Semnal stanga ON/OFF - codificare -(0/6) 
 +   * Semnal dreapta ON/OFF - codificare -> (1/7)  
 +   ​Semnal avarii ON/OFF - codificare -> (2/8) 
 +   * Semnal muzica ON/OFF - codificare -> (3/9) 
 +   * Semnal pozitii si faruri ON/OFF - codificare -> (4/10) 
 +   * Semnal lumini ​de noapte ​NEON ON/OFF - codificare -> (5/11) 
 +   * Semnal frana / mers cu spatele ON/OFF ( viteza fixa ) - codificare -> (12/13) 
 +   * Acceleratie - dinamica/​adaptabila - semnal trimis de catre pedala de acceleratie in functie de unghiul apasariiPoate lua valori de la 0 la 10 - codificarea -> (20 -> 30
 +   ​Volan se poate roti 90 de grade la stanga, respectiv 90 de grade la dreapta. Cele 180 de grade sunt mapate in 18 unitati ​10 grade = 1 unitate ) care sunt codificate rezervand valorile (40 -> 58) 
 +== Cod Arduino ==  
 +   * Definesc notele muzicale, melodia si intializez variabile precum ( tempo, divider, noteDuration,​ key .. ). 
 +   ​Definesc cod-urile corespunzatoare fiecarui semnal, precum si capetele intervalelor din codificarea Acceleratiei si a Miscarii Volanului pentru a putea interpreta informatia primita de la bluetooth. 
 +   * Definesc pinii : am folosit, pentru a ajusta viteza motoraselor,​ pinii 9,10 cu functia PWM; pentru comunicarea prin bluetooth am folosit chiar pinii 0-1 RX,TX. De asemenea, am configurat modulul de bluetooth sa transmita informatia printr-un baud rate = 115200. 
 +   * Functia loop() : verifica daca poate citi un char, daca un char a fost citit, atunci interpreteaza informatia. Daca s-a stabilit pornirea difuzorului,​ atunci se va apela functia playSong(), altfel se va executa actiunea ( celelalte sunt actiuni scurte ) si se va iesi din functia loop. 
 +   ​Functia playSong() face ca functia loop() sa nu se mai apeleze, astfel incat, la fiecare nota cantata, voi verifica daca s-a primit ceva de la bluetooth, in caz afirmativ, interpretarea informatiei primite va avea prioritate. 
 +   * Un mic algoritm dezvoltat este cel al stabilirii tensiunii primite de motorasul responsabil de directie, prin PWM, pentru a simula cat mai bine miscarea naturala a volanului. Masinuta avea ceva mici probleme, era putin dezechilibrata in ce priveste directia, de asemenea sistemul de tip "​puzzle"​ dispune de un arc care face ca rotile sa doreasca sa revina intotdeauna in pozitia normala. Astfel, motorasul de directie trebuie sa reziste fortei elastice a arcului. Am incercat sa ofer niste impulsuri mai puternice la inceputul schimbarii directiei si apoi sa revin la o viteza mai redusa doar pentru a-si mentine traiectoria. ​  
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
 +=== Aplicatia Android ===
 +{{ :​pm:​prj2022:​sgherman:​home_android.png |}}
 +{{ :​pm:​prj2022:​sgherman:​activity_main_bun.png |}}
 +{{ :​pm:​prj2022:​sgherman:​connect_bluetooth_bun.png |}}
  
-<note tip> +=== Masinuta === 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+{{ :​pm:​prj2022:​sgherman:​carcasa.png |}} 
-</​note>​+{{ :​pm:​prj2022:​sgherman:​inceput1.png |}} 
 +{{ :​pm:​prj2022:​sgherman:​lipire1.png |}} 
 +{{ :​pm:​prj2022:​sgherman:​night1.png |}}
  
 ===== Concluzii ===== ===== Concluzii =====
 +Desi a fost o mica provocare sa pot duce la bun sfarsit proiectul, in cele din urma s-a dovedit a fi o experienta frumoasa si utila. De-a lungul rezolvarii temei am intampinat cateva probleme: configurarea aplicatiei mobile pentru a permite conectarea la bluetooth si imposibilitatea configurarii unui modul de bluetooth care s-a dovedit a fi problematic,​ fiind nevoit sa il inlocuiesc cu unul care a functionat, in schimb, din prima. Partea de hardware s-a mai evidentiat prin: alegerea bateriilor si a modului de incarcare, lipirea tuturor firelor si repararea sistemului de tractiune al masinutei. In cele din urma, sunt mandru de rezultatul obtinut : o masinuta controlata cu ajutorul telefonului prin bluetooth, care dispune de o baterie externa reincarcabila,​ putand astfel fi folosita oricand.  ​
  
 ===== Download ===== ===== Download =====
 +https://​github.com/​VladuTzZ-sudo/​RacingCarArduino
  
-<note warning>​ +https://github.com/​VladuTzZ-sudo/​RacingCarAndroid 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etcUn fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+ 
 +{{:​pm:​prj2022:​sgherman:​song.rar|}}
  
-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 ===== ===== Jurnal =====
 +**10.04.2022 - 1.05.2022**
 +  * Finalizare aplicatie Android
 +  * Cumparare piese
  
-<note tip> +**25.05.2022** 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului+  * Finalizare software arduino 
-</​note>​+ 
 +**26.05.2022** 
 +  * Finalizare parte hardware 
 + 
 +**27.05.2022** 
 +  * Documentatie
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 +https://​github.com/​harry1453/​android-bluetooth-serial
 +
 +https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab3-2022
 +
 +https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab1-2022
 +
 +https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab2-2022
 +
 +https://​create.arduino.cc/​projecthub/​ryanchan/​how-to-use-the-l298n-motor-driver-b124c5
 +
 +https://​forum.arduino.cc/​t/​problem-using-l298n-board-to-control-motor-speed/​545272/​3
 +
 +https://​pdf1.alldatasheet.com/​datasheet-pdf/​view/​22440/​STMICROELECTRONICS/​L298N.html
 +
 +https://​microcontrollerslab.com/​l298n-dc-motor-driver-module-arduino-tutorial/​
 +
 +https://​lastminuteengineers.com/​l298n-dc-stepper-driver-arduino-tutorial/​
 +
 +https://​www.instructables.com/​How-to-Configure-HC-05-Bluetooth-Module-As-Master-/​
  
 <​note>​ <​note>​
pm/prj2022/sgherman/racing-car.1651850187.txt.gz · Last modified: 2022/05/06 18:16 by vlad_cristian.matei
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