Autorul poate fi contactat la adresa: Login pentru adresa
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.
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 |
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.
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.
Am obtinut o masina controlabila prin bluetooth, ce are faruri, claxon si poate sa evite accidente prin detectarea obstacolelor din fata masinii.
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.
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.
[1]Datasheet ATMega324 http://cs.curs.pub.ro/wiki/pm/_media/doc8272.pdf
[2]WINAvr https://sourceforge.net/projects/winavr/files/
[3]Driver motor How-to-use-the-HG7881-(L9110)-Dual-Channel-Motor-Driver-Module
[4]Modul bluetooth BlueTooth-HC05-HC06-Modules-How-To
[5]HC-SR04 watch, HC-SR04_Ultrasonic_sensor