Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul presupune realizarea unui dispozitiv ce se va pune la o bicicleta. Dispozitivul va masura viteza , distanta parcursa si gradul de inclinare a bicicletei.
Am vrut sa fac un proiect ce va putea fi folosit in viata de zi cu zi. Ca bicilist sa iti stii viteza cu care mergi si distanta parcarsa e destul de interesant si folositor. Cat despre gradul de inclinare, stiu ca este folosit la motociclete mai ales, dar am vrut sa adaug si aceasta optiune, eventual poate fi calculata altitudinea urcata/coborata.
Magnetul se va monta pe spita bicicletei, iar senzorul hall va determina cand acesta trece prin dreptul lui, asadar cu ajutorul diametrului rotii se poate calcula distanta parcursa si apoi viteza.
Accelerometrul va calcula unghiurile fata de orizontala.
Outputul se va face pe un ecran LCD, diametrul rotii va fi setat prin 2 butoane.
Lista piese
Piese | Model | Cantitate | |
---|---|---|---|
Magnet neodim | 1 | ||
Modul cu Senzor Hall | YS-27 | 1 | |
Modul Accelerometru cu 3 axe | ADXL345 | 1 | |
Baterie 9V | 1 | ||
ecran LCD HITACHI | 16×2 | 1 | |
fire de legatura | |||
placa de baza PM2018 | |||
regulator tensiune 5V | 1 | ||
buton 6x6x6 | 2 | ||
Rezistenta | 10k Ohm | 2 | |
Conector Baterie | 1 | ||
Comutator | KCD1-11-2P | 1 |
Schema electrica
Medii de dezvoltare:
Am scris codul in vim pentru ca nu este o logica foarte complexa a programului.
Bibioteci utilizate:
Am folosit Makefileul si bibioteca de LCD din laboratorul 4 , unde am modificat pinii pe care este conectat LCDul (in LCD.h) din portul C in portulA (din ceva motiv nu mergea sa leg LCDul pe PORTC).
Descriere scurta a algoritmului:
Prin senzorul Hall o sa aflu cand se realizeaza o rotatie completa. Apoi prin minunata formula D*pi unde D este diametru o sa aflu distanta parcursa. La fiecare 10 rotatii calculez viteza ca fiind <distana parcursa / timp> , timp calculat printr-un timer ce incrementeaza un ceas local la fiecare milisecunda.
Am obtinut un proiect functional ce afiseaza pe ecranul LCD viteza in km/h a mijlocului de transport dotat cu roata, in cazul de fata o rola. Afiseaza si distana parcursa in metri, iar in partea de jos diametrul rotii, ce poate fi setat prin cele 2 butoane aflate pe “placuta de test”.
Sunt multumit de proiect. Cred ca putea sa arate mai bine, alegand niste fire mai scurte.
Arhiva cu codul sursa.
O sa incerc pana la PM-fair sa conectez si modulul ADXL345 de accelerometru. Trebuie sa comunic prin SPI sau I2C cu el, iar pana acum nu am reusit asta :( .
Accelerometru - https://www.optimusdigital.ro/ro/index.php?controller=attachment&id_attachment=57
Senzor Hall - https://www.optimusdigital.ro/ro/index.php?controller=attachment&id_attachment=172
Biblioteca LCD - http://cs.curs.pub.ro/wiki/pm/_media/lab/lab4/sol/lab4_sol.zip
ATmega324 - http://cs.curs.pub.ro/wiki/pm/_media/doc8272.pdf
* Documentația în format PDF