Masinuta controlata prin bluetooth de pe telefon

Introducere

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.

Descriere generală

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.

Hardware Design

Lista de piese:

  • ATmega 324
  • Modul Bluetooth HC-05
  • Level Shifter 5V - 3.3V
  • Modul Driver motoare L298N
  • Motoare tractiune
  • Servomotor virare
  • LED-uri
  • Buzzer
  • Sasiu plexiglass si roti
  • Baterie externa de telefon
  • Baterie 9V

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.

Schema electrica

Update In loc de divizorul de tensiune pentru modulul HC-05, am folosit un level shifter de la 5V la 3.3V.

Software Design

Microcontroller

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).

Android

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.

Rezultate Obţinute

Videoclip prezentare: gTPRdP5J_Cc

Concluzii

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.

Download

Jurnal

  • 15.04.2019 - Primele piese si unelte pentru proiect au fost cumparate
  • 18.04.2019 - Upload descrierea si schema bloc
  • 21.04.2019 - Am terminat de lipit componentele cu exceptia solder jumper-ului, m-am panicat, am aflat de el, a fost ok
  • 03.05.2019 - Schema electrica a proiectului in Eagle e gata
  • 10.05.2019 - Versiunea initiala a codului de pe microcontroller
  • 11.05.2019 - Am reusit sa comunic cu placuta prin Bluetooth
  • 17.05.2019 - Rezolvat majoritatea bug-urilor din codul microcontroller-ului si am inceput lucrul la aplicatia Android
  • 18.05.2019 - Versiunea completa a codului de pe microcontroller si a aplicatiei Android sunt gata

Bibliografie/Resurse

pm/prj2019/abirlica/mac-bt-car.txt · Last modified: 2021/04/14 17:07 (external edit)
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