Bluetooth Car

Autor

Introducere

Proiectul consta in implementarea unei masini controlabila de pe telefon prin bluetooth. Scopul masinii este de a imita o masina reala, ea avand 4 motoare (tractiune integrala) si LED-uri pe post de faruri si stopuri.

Scopul proiectului este de a pune in aplicare cunostintele dobandite la laboratoarele de PM si cele de la electronica de anul trecut. De asemenea, imi doresc sa invat sa lucrez cu Bluetooth si Android.

Descriere generală

Masina se va controla prin 4 butoane: inainte, frana, stanga si dreapta. Voi adauga butoane/switch-uri pentru pornirea luminilor sau folosirea lor in modul auto (folosind un senzor de lumina), si voi adauga si semnalizari si avarii.

Motoarele sunt controlate prin module L298N iar comunicarea Bluetooth se face prin modulul HC-05.

Schema bloc a proiectului:

Hardware Design

Lista de piese:

Piesa Cantitate
ATmega 324P 1
Componentele de baza 1
Fire Fara numar
Sasiu masina (+ 4 motoare DC) 1
Driver motoare L298N 2
Modul Bluetooth HC-05 1
Senzor de lumina Adafruit ALS-PT19 1
LED-uri (albastre, galbene, rosii 8
Conector baterie 9V 1
Mini breadboard 1
Dublu adeziv 1
Rezistente 1K si 2K 10

Schema electrica

Software Design

Ca mediu de dezvoltare am folosit:

  • Android Studio pe Linux - Java
  • Atom Editor pe Linux - C

Masina este controlata prin intermediul unei aplicatii Android prin Bluetooth:

Functionalitati:

  • Acceleratie
  • Frana
  • Deplasare in stanga
  • Deplasare in dreapta
  • Mers inapoi
  • Semnalizare stanga
  • Semnalizare dreapta
  • Avarii
  • Aprinderea luminilor
  • Modul Auto pentru lumini: se vor aprinde cand lumina este slaba

Functii folosite:

// Intrerupere pentru USART, la receive
ISR(USART0_RX_vect);
 
// Initializari pentru LED-uri
void IO_init();
 
// Initializare convertor
void ADC_init();
 
// Obtine valoarea pentru canalul selectat
uint16_t ADC_get(uint8_t channel);
 
// Init timer 0
void timer0_init();
 
// Init timer 1
void timer1_init();
 
// Init timer 2
void timer2_init();
 
// Initializare module L298N
void l298n_init();
 
// Seteaza miscarea motoarelor inainte
void l298n_forward();
 
// Seteaza miscarea motoarelor inapoi
void l298n_reverse();
 
// Aprinde lumini
void lights_on();
 
// Stinge lumini
void lights_off();
 
// Semnalizare stanga
void blink_left();
 
// Semnalizare dreapta
void blink_right();
 
// Opreste semnalizarea stanga
void stop_blink_left(int lit);
 
// Opreste semnalizarea dreapta
void stop_blink_right(int lit);
 
// Avarii
// A se folosi cand esti "an fata pe avari"
void hazard();
 
// Opreste avarii
void stop_hazard(int lit);

Am folosit intreruperi pentru USART deoarece apelul receive este blocant si aveam nevoie de cod neintrerupt in bucla while (pentru semnalizari, de exemplu).

Rezultate Obţinute

Concluzii

Masina este complet functionala, desi motoarele consuma foarte mult iar bateriile se consuma rapid (10-15 minute). Pe viitor pot achizitiona un acumulator reincarcabil LiPo pentru a putea folosi masina pe perioade mai lungi de timp.

Mi-a facut placere sa lucrez la acest proiect deoarece am invatat cum sa fac o aplicatie Android si, de asemenea, cum sa programez un microcontroller pentru a controla o masina. Mi-am consolidat cunostintele dobandite la materia de PM si am invatat mult mai multe despre hardware si software embedded si cum se leaga acestea pentru a obtine ceva.

Download

Jurnal

  • 21.04 - Adaugare Introducere, Descriere Generala si Hardware Design
  • 23.04 - Placa de baza functionala
  • 01.05 - 05.05 - Achizitionare piese
  • 07.05 - Lipire placa de baza pe sasiu
  • 10.05 - Lipire module L298N si conectare cu fire
  • 12.05 - Lipire si conectare LED-uri
  • 14.05 - Lipire si conectare senzor de lumina
  • 15.05 - Aplicatie Android finalizata
  • 17.05 - Uploadare cod pe placuta
  • 18.05 - 20.05 - Testare si ajustare
  • 23.05 - Masina functionala

Bibliografie/Resurse

pm/prj2019/abirlica/65535.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