Table of Contents

Masina cu Telecomanda Android

Autor: Trisca Ionut

Grupa: 332CB

Introducere


In acest proiect vreau sa creez o masina cu telecomanda ce poate fi controlata prin bluetooth de pe un telefon android.

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.

Schema Bloc

schema_bloc_masina_bt_and.jpg

Interfata aplicatiei Android

device_connection_interface.jpg

Mai sus este afisat ecranul de selectie a dispozitivului bluetooth al masinii. Conectarea se face prin apasarea pe numele dispozitivului. Dupa ce conectarea s-a efectuat aplicatia va trece la ecranul de control al masinii afisat mai jos.

remote_control_interface.jpg

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


Lista componente

Nume componenta Cantitate Link componenta
Placa Arduino UNO 1 Optimus Digital
Modul Bluetooth HC-05 1 Optimus Digital
Driver Dual Motor L289N 1 Optimus Digital
LED Albastru 2 Optimus Digital
Telefon Android 1
Rezistenta 1k 2
Baterie AA 1.5V 4
Motor DC 2 Optimus Digital
Roata 3 Optimus Digital
Sasiu Masina 1 Optimus Digital

Schema Electrica

schema_electrica_masina.jpg

Software Design


Android Studio

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:

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

bluetooth_car_pic4.jpg

Video Masina

Link Video YouTube

Concluzii


Download


Jurnal


24.04.2020


20.05.2020


21.05.2020


26.05.2020


27.05.2020


28.05.2020


03.06.2020

Bibliografie/Resurse