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:11]
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====
 +----
 In acest proiect vreau sa creez o masina cu telecomanda ce poate fi controlata prin bluetooth de pe un telefon android. In acest proiect vreau sa creez o masina cu telecomanda ce poate fi controlata prin bluetooth de pe un telefon android.
  
 ====Descriere Generala==== ====Descriere Generala====
 +----
 Aplicatia android va prezenta o interfata prin care utilizatorul va putea controla o masina. Conexiunea intre telefon si masina se va realiza prin bluetooth. Masina va avea un Arduino care va controla un motor pentru rotile din spate care vor propulsa masina si vor controla directia de deplasare. De asemenea vor fi prezente doua LED-uri pe post de faruri care vor putea fi operate din aplicatie. Aplicatia android va prezenta o interfata prin care utilizatorul va putea controla o masina. Conexiunea intre telefon si masina se va realiza prin bluetooth. Masina va avea un Arduino care va controla un motor pentru rotile din spate care vor propulsa masina si vor controla directia de deplasare. De asemenea vor fi prezente doua LED-uri pe post de faruri care vor putea fi operate din aplicatie.
  
 ===Schema Bloc=== ===Schema Bloc===
-{{:​pm:​prj2021:​avaduva:​schema_bloc_masina_bt_and.png?700}}+{{:​pm:​prj2021:​avaduva:​schema_bloc_masina_bt_and.jpg?700}}
  
  
 ===Interfata aplicatiei Android=== ===Interfata aplicatiei Android===
-Interfata aplicatiei Android este prezentata mai jos: 
  
 {{:​pm:​prj2021:​avaduva:​device_connection_interface.jpg?​700}} {{:​pm:​prj2021:​avaduva:​device_connection_interface.jpg?​700}}
Line 24: Line 26:
 In acest ecran se pot controla atat viteza cat si directia masinii cu cele doua slidere. De asemenea se pot porni sau opri farurile masinii si se poate reseta masina in caz ca a avut loc o eroare in transmisia datelor. In acest ecran se pot controla atat viteza cat si directia masinii cu cele doua slidere. De asemenea se pot porni sau opri farurile masinii si se poate reseta masina in caz ca a avut loc o eroare in transmisia datelor.
 ====Hardware Design==== ====Hardware Design====
-^ Nume componenta ^  Cantitate ​ ^ +---- 
-| Placa Arduino UNO | 1 |  +===Lista componente=== 
-| Modul Bluetooth HC-05 | 1 | +^ Nume componenta ^  Cantitate  ​^ Link componenta ​
-| Driver Dual Motor L289N | 1 | +| Placa Arduino UNO | 1 | [[https://​www.optimusdigital.ro/​en/​compatibile-with-arduino-uno/​1678-placa-de-dezvoltare-compatibila-cu-arduino-uno-atmega328p-i-ch340.html|Optimus Digital]] ​
-Motor DC | 2 +| Modul Bluetooth HC-05 | 1 | [[https://​www.optimusdigital.ro/​en/​wireless-bluetooth/​153-hc-05-master-slave-bluetooth-module-with-adapter-33v-and-5v-compatible.html|Optimus Digital]] ​
-| LED Albastru | 2 |+| Driver Dual Motor L289N | 1 | [[https://​www.optimusdigital.ro/​en/​brushed-motor-drivers/​145-l298n-dual-motor-driver.html?​search_query=driver+motor+l298n&​results=4|Optimus Digital]] ​
 +| LED Albastru | 2 | [[https://​www.optimusdigital.ro/​en/​leds/​483-rgb-led-common-cathode.html|Optimus Digital]] ​|
 | Telefon Android | 1 | | Telefon Android | 1 |
-| Rezistenta 1k | 2 |+| Rezistenta 1k | 2 | 
 | Baterie AA 1.5V | 4 | | Baterie AA 1.5V | 4 |
-| Roata | 3 | +| Motor DC | 2 | [[https://​www.optimusdigital.ro/​en/​robot-kits/​140-robot-chasis-2-motors.html|Optimus Digital]] | 
-| Sasiu Masina | 1 |+| Roata | 3 | [[https://​www.optimusdigital.ro/​en/​robot-kits/​140-robot-chasis-2-motors.html|Optimus Digital]] ​
 +| Sasiu Masina | 1 | [[https://​www.optimusdigital.ro/​en/​robot-kits/​140-robot-chasis-2-motors.html|Optimus Digital]] ​|
  
  
 ===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==== 
 +---- 
 + 
 +===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==== 
 +---- 
 + 
 +   * 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==== 
 +---- 
 +   * {{:​pm:​prj2021:​avaduva:​masinacutelecomandaandroid.zip|Link Proiect ​Android Studio ​si Cod Arduino}} 
 + 
 +====Jurnal==== 
 +---- 
 +**24.04.2020** 
 +  * Realizarea schemei bloc 
 +  * Redactare documentatie 
 +  * Alegerea temei proiectului 
 + 
 +---- 
 +**20.05.2020** 
 +  * Cercetare comunicare bluetooth Android 
 +  * Căutare piese necesare 
 + 
 +---- 
 +**21.05.2020** 
 +  * Comandare piese 
 +  * Incepere dezvoltare aplicatie Android 
 + 
 +---- 
 +**26.05.2020** 
 +  * Livrare piese 
 +  * Testare piese 
 + 
 +---- 
 +**27.05.2020** 
 +  * Scriere cod Arduino 
 +  * Testare comunicare aplicatie - modul bluetooth - arduino 
 + 
 +---- 
 +**28.05.2020** 
 +  * Asamblare piese masina 
 +  * Testare functionalitati 
 +  * Ajustari design hardware in functie de capabilitatile pieselor 
 + 
 +---- 
 +**03.06.2020** 
 +  * Finalizare documentatie  
 +  * Mici ajustari ale codului 
  
 +====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.1622718674.txt.gz · Last modified: 2021/06/03 14:11 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