Table of Contents

Bluetooth Car

Autor

Laura-Gabriela Dumitrel

Introducere

Proiectul isi propune controlarea unei masinute folosind pozitia telefonului mobil.

Am ales acest proiect deoarece consider ca pot imbina cunostinte atat Hardware, cat si Software dobandite in cadrul materiei de PM in constructia acestei masinute. Proiectul are atat scop didactic, cat si unul distractiv pentru pasionatii de jocuri.

Descriere generala

Aplicatia de pe telefonul mobil va transmite date in timp real (de la accelerometer sensor prin intermediul unei aplicatii Android). Comenzile sunt interpretate de modul de Bluetooth si transmise mai departe catre microcontroller-ul ATMEGA324PA. In cele din urma, informatia se va transmite catre driver-ul de motoare (care va controla cele doua motoare).

Prin intermediul acesteia aplicatii, masinuta va raspunde la comenzi transmise prin Bluetooth precum:

Schemă bloc

 Schema bloc

Hardware Design

Listă componente:

Modulul Bluetooth HC-05 lucreaza la o tensiune de 3.3V, deci placuta a fost setata sa functioneze la 3.3V.

Schemă electrică:

Software Design

Proiectul contine urmatoarele fisiere:

Initial, aplicatia folosita pentru a trimite comenzi Bluetooth a fost BLE Terminal HC-05 (Bluetooth Terminal HC-05). Am definit butoane care trimit comenzi date de catre utilizator modulului Bluetooth si care sunt transmise apoi de acesta microcontrollerului.

Dupa ce am testat conectivitatea la Bluetooth, am folosit Android Studio pentru a face o aplicatie Android. Am implementat o functie care interpreteaza datele primite de la device-ul Android (de la accelerometer sensor) si controleaza motoarele in functie de acestea. Datele sunt receptionate prin Bluetooth - folosind protocolul USART pentru comunicare.

In fisierul sursa al proiectului am facut o bucla infinita in care se primesc permanent comenzi in functie de pozitia pe care utilizatorul o da telefonului.

Am setat viteza de deplasare a masinutei conectand ENABLE la un canal Fast PWM. Viteza masinutei va fi setata prin cresterea, respectiv scaderea factorului de umplere a semnalului. Cele doua motoare sunt conectate la timerul 0 si variez valoarea registrelor OCR0A si OCR0B pentru a seta factorul de umplere intre 0 si 255. Timerul 0 este setat cu prescaler de 1024. Comenzile pe care le-am dat din aplicatie in functie de axele X, Y returnate de pozitia telefonului prin intermediul aplicatiei Android sunt:

Am folosit 2 butoane prin care realizez rotatia:

Am folosit 3 butoane prin care setez viteza de deplasare, astfel:

Mers inainte: ambele motoare se deplaseaza pe directia fata

Mers inapoi: ambele motoare se deplaseaza pe directia spate

Viraj stanga: motorul stanga va avea un factor de umplere cu 50% mai mic decat cel din dreapta

Viraj dreapta: motorul dreapta va avea un factor de umplere cu 50% mai mic decat cel din stanga

Rotire stanga: motorul stanga se deplaseaza in fata, si motorul dreapta in spate

Rotire dreapta: motorul dreapta se deplaseaza in fata, si motorul stanga in spate

Oprire: opresc ambele motoare

Rezultate Obtinute

Masina este controlata de o aplicatie Android in functie de pozitia telefonului. Are urmatoarele functionalitati:

Am atasat imagini cu masinuta in starea finala si un filmulet cu functionalitatile acesteia: Mwe848w4GXQ

Concluzii

Am reusit sa realizez o masinuta functionala controlata dintr-o aplicatie Android. Proiectul a necesitat destul de mult efort deoarece pe parcurs am intalnit diverse bug-uri atat Software, cat si Hardware, insa in final a iesit functionalitatea dorita. Am invatat multe din acest proiect si consider ca petrecute in realizarea lui au adus in final entuziasmul de a vedea ca merge ceva care nu te asteptai ca va iesi vreodata.

Download

dumitrellaura_btcar.zip

laura-androidapp.zip

Jurnal

Bibliografie, resurse

doc8272.pdf

istd016A.pdf

Această pagină în format PDF