Proiectul consta in realizarea unei masinute teleghidate prin intermediul conexiunii bluetooth cu un smartphone Android.
Scopul acestui proiect este acela de a imi dezvolta cunostintele dobandite la materia Proiectarea cu Microprocesoare si aptitudinile ingineresti generale prin realizarea tuturor etapelor unei lucrari ce imbina hardware-ul si software-ul. Cred ca aceasta masinuta poate fi utila pentru altii ca forma de relaxare si entertainment.
Am decis sa lucrez la acest proiect deoarece de cand eram copil mi-au placut masinutele teleghidate, iar ideea de a construi una de unul singur mi se pare o provocare, insa faptul ca alti studenti au reusit sa duca la bun sfarsit proiecte asemanatoare in anii trecuti imi da incredere ca se poate.
Un smartphone Android va putea trimite prin intermediul unei conexiuni Bluetooth comenzi catre microprocesorul ATmega324 de pe masinuta care va controla motoarele de tractiune prin intermediul unui driver si servomotorul pentru virare.
Lista de piese:
Placuta este alimentata printr-o baterie externa de telefon. Servomotorul este alimentat printr-un fir tras direct de la mufa de alimentare USB. Driver-ul de motoare este alimentat de la o baterie de 9V, iar cele doua motoare sunt alimentate prin driver.
Servomotorul este controlat direct de placuta prin PWM. Motoarele sunt controloate prin intermediul Driverului L298N care primeste informatiile despre viteza prin intermediul Duty Cycle-ului semnalului PWM venit de la placuta, iar despre sensul vitezei prin cate doi pini separati.
Buzzer-ul este controlat tot printr-un semnal PWM care pastreaza mereu Duty Cycle-ul 50% si care are o frecventa de 830Hz.
Update In loc de divizorul de tensiune pentru modulul HC-05, am folosit un level shifter de la 5V la 3.3V.
Codul de pe microcontroller este bazat pe intreruperi. Practic, in functia main doar se fac diferite configurari (pentru GPIO, USART si timere) si se intra intr-o bucla infinita fara cod in corpul ei.
De asemenea, toate semnalele generate cu ajutorul timerelor sunt transmise prin pinii OC, astfel incat microprocesorul nu este intrerupt decat atunci cand primeste o noua comanda, moment in care o decodifica si modifica parametrii necesari (iesirile pinilor, registrele de compare pentru timere etc).
Atunci cand se primeste un mesaj pe Bluetooth, modulul HC-05 trimite pe USART microcontroller-ului datele primite si are loc o intrerupere de USART receive pe care acesta o trateaza prin ISR-ul definit in cod.
Formatul unui mesaj este de 2 octeti: unul pentru tipul comenzii si unul pentru un potential argument al comenzii (unghiul de virare, viteza de tractiune).
Am construit o aplicatie Android simpla care consta dintr-o singura activitate care se conecteaza prin Bluetooth la modulul HC-05 ce prezinta userului posibilitate sa aprinda luminile printr-un switch, sa claxoneze, sa aleaga viteza, directia si sensul de deplasare.
Videoclip prezentare: gTPRdP5J_Cc
Realizarea proiectului a fost foarte interesanta, mai ales ca a fost prima data cand m-am atins cu adevarat de hardware, dar si de Android.
Acum am inceput sa-i inteleg pe oamenii care fac asta ca hobby: este foarte placut sa construiesti si sa programezi ceva ce continua sa existe si sa se miste si in afara computerului tau.