Differences

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

Link to this comparison view

pm:prj2021:avaduva:masina_bt_android [2021/06/03 14:46]
ionut.trisca [Descriere Generala]
pm:prj2021:avaduva:masina_bt_android [2021/06/03 22:56] (current)
ionut.trisca [Hardware Design]
Line 2: Line 2:
 Autor: Trisca Ionut Autor: Trisca Ionut
  
 +Grupa: 332CB
 ====Introducere==== ====Introducere====
 ---- ----
Line 11: Line 12:
  
 ===Schema Bloc=== ===Schema Bloc===
-{{:​pm:​prj2021:​avaduva:​schema_bloc_masina_bt_and.png?700}}+{{:​pm:​prj2021:​avaduva:​schema_bloc_masina_bt_and.jpg?700}}
  
  
Line 41: Line 42:
  
 ===Schema Electrica=== ===Schema Electrica===
-{{:​pm:​prj2021:​avaduva:​schema_electrica_m_bta.png?700}}+{{:​pm:​prj2021:​avaduva:​schema_electrica_masina.jpg?700}}
  
 ====Software Design==== ====Software Design====
 ---- ----
-Medii de dezvoltare:​ +===Android Studio===
-   ​- ​Android Studio +
-   - Arduino IDE+
  
 +Interfata aplicatiei am realizat-o complet in Android Studio cu primitivele de baza oferite (slidere, butoane, liste etc.).
 +
 +Aplicatia necesita asocierea telefonului Android cu dispozitivul bluetooth HC-05 in setarile telefonului. Dupa aceasta asociere la pornirea aplicatiei aceasta va cere pornirea bluetooth daca acesta este oprit si apoi va afisa o lista de dispozitive asociate din care utilizatorul va selecta HC-05.
 +
 +Prin apasarea numelui dispozitivului in lista afisata, va incepe conectarea catre dispozitiv, iar daca aceasta se realizeaza cu succes aplicatia va afisa interfata de control a masinii.
 +
 +Interfata de control dispune de doua slidere (steer si power) si doua butoane (headlights si reset).
 +
 +Ambele slidere functioneaza in acelasi mod. La fiecare modificare a pozitiei sliderului, daca a trecut un timp predefinit se va trimite noua pozitie catre masina, unde aceasta va procesa comanda primita si o va executa.
 +
 +Butonul de reset trimite catre masina o comanda formata din 8 litere "​R"​ iar masina cand primeste aceasta comanda isi va reseta bufferul de primire date. Am implementat aceasta functionalitate in cazul in care apar erori la trimiterea de comenzi.
 +
 +Butonul pentru headlights trimite catre o masina o comanda de a-si porni farurile sau de a le opri in functie de starea anterioara a acestora.
 +
 +
 +===Arduino IDE===
 +Pe partea de Arduino, placa va incepe prin initializarea pinilor pentru controlul motoarelor ca OUTPUT, apoi aceasta seteaza motoarele pentru a se misca inainte. Initializeaza comunicarea seriala prin USART cu modulul bluetooth HC-05 folosind biblioteca SoftwareSerial pe pinii 10 si 11. Am ales sa folosesc aceasta biblioteca pentru a putea comunica si prin USB si prin Bluetooth in acelasi timp. In final seteaza pinii farurilor ca OUTPUT.
 +
 +Fiecare comanda are lungimea de 4 caractere:
 +   * POWER: PAAA - cu AAA fiind un numar de la 0 la 100, prefixat cu 0 daca este nevoie
 +   * STEER: SAAA - cu AAA fiind un numar de la 0 la 100, prefixat cu 0 daca este nevoie
 +   * HEADLIGHTS ON: NHDL
 +   * HEADLIGHTS OFF: FHDL
 +   * RESET: RRRRRRRR - comanda de reset este singura exceptie, aceasta avand 8 caractere pentru a fi sigur ca este primita
 +
 +Arduino va astepta date de la modulul bluetooth si cand sunt primiti cel putin 4 bytes ii va citi intr-un buffer si in functie de comanda va reactiona ca atare.
 +Pentru a controla atat viteza cat si directia de deplasare a masinii le voi stoca pe ambele in doua variabile (power, steer) si cu ajutorul lor voi calcula viteza fiecarui motor. Cand steer este in directia motorului stang, ii voi scadea viteza acestuia pentru a initia un viraj la stanga, asemenea pentru directia dreapta. ​
 +
 +Directia inainte/​inapoi este data de valoarea lui power la primire, daca este sub 50 masina se va misca inapoi, iar daca este peste 50 se va misca inainte. Directia stanga/​dreapta este data de valoarea lui steer, sub 50 este stanga, iar peste 50 este dreapta.
 ====Rezultate Obtinute==== ====Rezultate Obtinute====
 ---- ----
 +
 +===Imagini Masina===
 +{{:​pm:​prj2021:​avaduva:​bluetooth_car_pic1.jpg?​700}}
 +
 +{{:​pm:​prj2021:​avaduva:​bluetooth_car_pic2.jpg?​700}}
 +
 +{{:​pm:​prj2021:​avaduva:​bluetooth_car_pic3.jpg?​700}}
 +
 +{{:​pm:​prj2021:​avaduva:​bluetooth_car_pic4.jpg?​700}}
 +
 +===Video Masina==
 +[[https://​youtu.be/​RCxaHPOKnQo|Link Video YouTube]]
 ====Concluzii==== ====Concluzii====
 ---- ----
 +
 +   * Am reusit sa realizez ce mi-am propus, masina functioneaza exact asa cum ma asteptam.
 +   * Una dintre problemele intalnite a fost puterea bateriilor, cand nu sunt la capacitate maxima, pornirea la viteza maxima de pe loc duce la resetarea arduinoului din cauza lipsei de putere.
 ====Download==== ====Download====
 ---- ----
 +   * {{:​pm:​prj2021:​avaduva:​masinacutelecomandaandroid.zip|Link Proiect Android Studio si Cod Arduino}}
 +
 ====Jurnal==== ====Jurnal====
 ---- ----
Line 96: Line 141:
 ====Bibliografie/​Resurse==== ====Bibliografie/​Resurse====
 ---- ----
 +  * [[https://​www.arduino.cc/​en/​Reference/​softwareSerial|Arduino SoftwareSerial Library]] 
 +  * [[https://​developer.android.com/​guide/​topics/​connectivity/​bluetooth|Bluetooth Connectivity in Android]] 
 +  * [[https://​lastminuteengineers.com/​l298n-dc-stepper-driver-arduino-tutorial/​|Conectarea Driver Motoare L298N]] 
 +  * [[https://​create.arduino.cc/​projecthub/​electropeak/​getting-started-with-hc-05-bluetooth-module-arduino-e0ca81|Conectare Modul Bluetooth HC-05]] 
 +  * [[https://​www.youtube.com/​watch?​v=fis26HvvDII| Tutorial Android Studio]]
pm/prj2021/avaduva/masina_bt_android.1622720817.txt.gz · Last modified: 2021/06/03 14:46 by ionut.trisca
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