Alexandru-Ionuţ PANDELEA (66890) - Bluetooth Car

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Scopul acestui proiect este implementarea unei masini controlate prin bluetooth. Aceasta va avea si claxon, faruri si senzor de distanta.
Masina va primi comenzi prin bluetooth pentru controlul vitezei, a directiei, a claxonului si a farurilor.
Vor exista 2 motoare. Unul va controla viteza, iar celalalt directia, iar acestea vor fi controlate cu ajutorul unui driver de motor. De asemenea, are si un senzor care daca detecteaza un obstacol la o distanta mai mica de 30cm nu va permite inaintarea masinii, pentru a preveni un accident. Proiectul este gandit sa functioneze impreuna cu proiectul acesta, intrucat ne-am gandit ca daca proiectele noastre ar lucra impreuna am obtine un rezultat mai interesant.

Descriere generală

Hardware Design

Piese folosite:

Nume Componenta Pret (RON)
Cablaj imprimat 2017 8
Componente placa de baza 32
Masina cu motoare DC 40
Driver motoare L9110S 10
Modul bluetooth HC-05 27
Buzzer 5
2 Leduri 0
Senzor distanta HC-SR04 5
Fire mama-mama/mama-tata 15
Baterie 9V 7.5
4 Acumulatori 0

Schema electrica:

Schema initiala

Schema finala

Fata de schema initiala, am adaugat un senzor de distanta, am schimbat timer-ul pentru motor (deoarece imi trebuia un timer mai precis pentru senzorul de distanta) si am mai modificat anumite porturi

Software Design

Pentru dezvoltare am folosit WinAVR si un editor text.
Pentru comunicarea bluetooth folosesc intreruperi. Comenzile se primesc intr-o anumita ordine, adica pentru o transmisie se trimit 5 caractere si se dau in modul urmator:
- directia de mers: fata/spate/stat pe loc
- directia de mers: stanga/dreapta/stat pe loc
- viteza cu care se merge inainte/inapoi, o valoare intre 0-255
- stare claxon: ON/OFF
- stare faruri: ON/OFF
Pentru ca masina sa poata merge inainte se verifica si o variabila care este setata pe 1 atunci cand se afla un obstacol la mai putin de 30cm. Pentru motorul de viteza folosesc PWM cu duty cicle variabil pentru a obtine diferite viteze, insa pentru motorul ce vireaza nu este nevoie de PWM deoarece nu este necesara de o viteza variabila, iar pentru pwm folosesc timer-ul 1. Pentru senzorul HC-SR04 pun TRIG pe HIGH pentru 10us apoi il pun pe low. Dupa, astept ca ECHO sa devina HIGH si contorizez cat timp sta pe HIGH, obtinand astfel distanta la care se afla obstacolul. Pentru alimentarea placutei am folosite acumulatori astfel incat sa obtin aproximativ 5V, iar driver-ul l-am alimentat separat de la 9V pentru a obtine o putere mai mare pentru motoare.

Probleme intampinate

Am avut probleme la conectarea celor 2 module HC-05 intre ele, deoarece unul din module trebuia configurat ca master.
Alta problema a fost cu senzorul de distanta. Deoarece senzorul avea nevoie de 5V ca sa functioneze corect (Am incercat la 3.3V si nu functiona) si modulul de bluetooth avea nevoie de 3.3V pentru transmisie, mi-a fost destul de greu sa fac debug, pentru ca nu am gasit o modalitate prin care sa vad cat timp a stat ECHO pe 1.

Rezultate Obţinute

Am obtinut o masina controlabila prin bluetooth, ce are faruri, claxon si poate sa evite accidente prin detectarea obstacolelor din fata masinii.

Concluzii

Mi s-a parut un proiect interesant, mai ales pentru ca pana acum nu am mai avut ocazia sa fac ceva asemanator. Mi-a placut si faptul ca a trebuit sa ne lipim noi componentele, ca a trebuit sa cautam piese potrivite si sa intelegem cum sa le combinam.

Download

cod_bluetooth_car.zip
Pentru folosirea codului se ruleaza comanda 'make' in directorul in care s-a downloadat sursa, iar apoi este suficient sa se uploadeze codul pe placuta.

Bibliografie/Resurse

pm/prj2017/tvisan/bluetooth_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