Differences

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

Link to this comparison view

pm:prj2022:ncaroi:masinuta_bluetooth [2022/05/21 12:58]
sebastian.pitur
pm:prj2022:ncaroi:masinuta_bluetooth [2022/05/27 19:55] (current)
sebastian.pitur
Line 1: Line 1:
-====== Masinuță teleghidată ​bluetooth ​======+====== Masinuță teleghidată ​Bluetooth ​======
 ===== Introducere ===== ===== Introducere =====
  
Line 33: Line 33:
  
 == Schema electrica == == Schema electrica ==
-{{:​pm:​prj2022:​ncaroi:​bth_car_schema_electrica.png?​800|}}+{{:​pm:​prj2022:​ncaroi:​bth_car_schema_electrica.png?​600|}}
  
 ===== Software Design ===== ===== Software Design =====
Line 39: Line 39:
 == Mediu de dezvoltare == == Mediu de dezvoltare ==
 <note tip> <note tip>
-* Arduino IDE [1](https://​downloads.arduino.cc/​arduino-nightly-windows.zip) +  ​* Arduino IDE [1](https://​downloads.arduino.cc/​arduino-nightly-windows.zip) 
-* Vim (external editor) [2] (https://​github.com/​vim/​vim-win32-installer/​releases) +  * Vim (external editor) [2] (https://​github.com/​vim/​vim-win32-installer/​releases)
-* Librarii folosite in EAGLE: "​Bluetooth HC-05.lbr"​ [3]+
 </​note>​ </​note>​
 +== Librării şi surse 3rd-party ==
 <note tip> <note tip>
-Descrierea codului aplicaţiei (firmware):​ +  ​Librarie EAGLE "​Bluetooth HC-05.lbr" [3] 
-  ​mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) +  * Librarie EAGLE "sgs-thom.lbr" [4] 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +  * Aplicatie Android "​Circuits Ninja Robot Remote",​ aplicatie folosita pentru comunicarea dintre modulul bluetooth si telefonul Android [5] 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +</​note>​ 
-  * (etapa 3) surse şi funcţii implementate +== Surse şi funcţii implementate ​== 
-Pentru a trimite comenzi modulului Bluetooth HC-05, am folosit aplicatia ​de android “Bluetooth RC Controller”. Astfelsunt setate urmatoarele comenzi ​(definite in fisierul utils.h): +<note tip> 
- +  * "​bth_car.ino" ​sursa unde sunt implementate functiile urmatoare 
-'​F'​ - fata +  * setup(): ​ se seteaza modul pinilor folositi la comandarea driverului ​de motoarese porneste comunicarea seriala cu un baud rate (9600)  
-'​B'​ - spate +  * loop(): se interpreteaza informatiile primite ​de la modulul ​bluetoothapelandu-se in functie de caracterele primite una din functiile: stpfwdrevlftrghtsau se seteaza puterea controlata prin pwm motoarelor 
-'​L'​ - stanga +  * stp() - masina sta pe loc, se trimite 0 prin pwm la motoare 
-'​R'​ - dreapta +  * fwd() - masina merge inainteambele motoare sunt polarizate pozitiv 
-'​V'​ - activare mod “anti-coliziuni” +  * rev() - masina sta pe locambele motoare sunt polarizate negativ 
-'​v'​ - dezactivare mod “anti-coliziuni” +  * lft() - masina sta pe locmotoarele au putere de rotatie diferitevirand stânga 
-Comunicarea dintre HC-05 si placuta este facuta prin UART. In acest sens, am folosit implementarea pentru comunicate USART din laborator. In bucla while infinita din main, astept receptionarea datelor ​de la modulul ​HC-05 (aplicatia android trimite date la fiecare 50ms)controlarea motoarelor si a senzorilor ultrasonici fiind bazata pe aceste date. +  * rght() - masina sta pe loc, motoarele au putere ​de rotatie diferitevirand dreapta
- +
-Tot in fisierul utils.h este definit si macro-ul STOP_DISTANCE,​ ce reprezinta distanta ​in cm (dintre masinuta si cel mai apropiat obiect ​din fata) la care masinuta isi va opri motoarele pentru a evita o posibila coliziune. +
- +
-Sunt folositi 2 senzori ultrasonici HC-SR04fiind folositi pe randunul dupa altul (cand unul masoara distantacelalalt asteaptaiar cand unul termina de masuratcelalalt preia task-ul de masurare). Motivul pentru utilizarea ​2 senzori HC-SR04 este unghiul mic de detectare a obiectelor ​(15 grade). Folosirea ​pe rand a celor 2 senzori este motivata de folosirea aceluiasi timer pe 16 biti. +
- +
-Modul de lucru al senzorului HC-SR04 este urmatorul ​(hc_sr04.h si hc_sr04.c)+
- +
-Setarea pinului conectat la trigger pe HIGH, asteptarea a 7-15ussetarea pinului conectat la trigger pe LOW. +
-Resetarea timerului. +
-Primirea unei intreruperi ​(echo pe INT0 sau INT1) si calcularea timpului scurs intre trigger si echo. +
-Calcularea distanteifolosind timpul de la pasul 3 si viteza sunetului. +
-Pasul 1 ii spune senzorului sa trimita un semnal ultrasunet ​(trigger), asteptand sa receptioneze acelasi semnaldar reflectat de obiectele din directia trimiterii ​(echo). Timpul scurs de la trimitere pana la receptionare este calculat folosind TCNT1. +
- +
-Motoarele masinutei sunt controlate prin driverul L298Ninterfatat in l298n.h si l298n.c. Virajul masinutei este bazat pe conceptul de “differential steering”.+
 </​note>​ </​note>​
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
 +{{:​pm:​prj2022:​ncaroi:​bth_car_4660.png?​300|}} 
 +{{:​pm:​prj2022:​ncaroi:​bth_car_4661.png?​300|}} 
 +{{:​pm:​prj2022:​ncaroi:​bth_car_4662.png?​300|}}
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+Masina poate fi controlata remote, in una din directiile spate, fata, stanga, dreapta, la diferite intensitati de putere.
 </​note>​ </​note>​
  
 ===== Concluzii ===== ===== Concluzii =====
 +A fost un proiect prin care mi-am consolidat cunostintele asimilate in timpul laboratoarelor de PM, pe care l-am implementat cu placere.
  
 +Link demo: https://​www.youtube.com/​watch?​v=eSyHG1FWbEw
 ===== Download ===== ===== Download =====
  
 <note warning> <note warning>
-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ă ;-). +{{:pm:prj2022:ncaroi:proiect_pm_sebastianpitur.zip|}}
- +
-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 ===== +
- +
-<note tip> +
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.+
 </​note>​ </​note>​
  
Line 99: Line 81:
  
 <​note>​ <​note>​
-DataSheet:​ +DataSheet:\\ 
-[0] https://ww1.microchip.com/downloads/​en/​DeviceDoc/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf +[0] DataSheet: ​https://tinyurl.com/mzn796f4 \\ 
-[1] https://downloads.arduino.cc/arduino-nightly-windows.zip +[1] Arduino IDE: https://tinyurl.com/4js4t6mv \\ 
-[2] https://github.com/vim/​vim-win32-installer/​releases +[2] Vim https://tinyurl.com/43x3nj2e \\ 
-[3] https://github.com/ErichStyger/​mcuoneclipse/​blob/​master/​Eagle/​Library/​Bluetooth%20HC-05.lbr +[3] "​Bluetooth HC-05.lbr": ​https://tinyurl.com/2xfuzfdc \\ 
-[4] https://github.com/chiengineer/Eagle-Libraries/blob/master/​lbr-depricated/​sgs-thom.lbr+[4] "​sgs-thom.lbr": ​https://tinyurl.com/jr8dpnea \\ 
 +[5] "​Circuits Ninja Robot Remote":​ https://tinyurl.com/yc4zsjc7 \\
 </​note>​ </​note>​
  
 <​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/prj2022/ncaroi/masinuta_bluetooth.1653127090.txt.gz · Last modified: 2022/05/21 12:58 by sebastian.pitur
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