This is an old revision of the document!
Semnalizator pentru biciclisti
Introducere
Biciclistii sunt foarte vulnerabili in trafic. Cel mai intalnit moment in care sunt in cel mai mare risc este atunci cand incearca sa isi schimbe directia de mers. De aceea, m-am gandit la un semnalizator pe spatele acestora care sa indice dinamic directia de mers, printr-o animatie a sagetii care arata directia.
Descriere generală
Piese folosite:
placuta arduino
3 butoane pentru semnalizarea directiei
matrice 8×8 de leduri
cabluri de legatura
potentiometru pentru schimbarea vitezei animatiei
cablu de alimentare
lcd pentru a arata biciclistului direcita
Biciclistul se foloseste de cele 3 butoane sa selecteze directia in care se va deplasa. Cu ajutorul potentiometrului variaza viteza animatiei sagetii. Sageata va arata directia de deplasare, iar pe ecranul LCD se va afisa in cuvinte.
Schema Bloc
Hardware Design
Piese folosite:
placuta arduino
3 butoane pentru semnalizarea directiei
matrice 8×8 de leduri
cabluri de legatura
potentiometru pentru schimbarea vitezei animatiei
cablu de alimentare
lcd pentru a arata biciclistului direcita
Schema in Eagle
Software Design
Biblioteci folosite
LedControl.h
LiquidCrystal_I2C.h
Cod
Setup + initializari de variabile
am facut cateva initializari, cum ar fi setarea pinilor pentru butoane, LCD, matrice leduri, potentiometru.
initializarea mesajelor care urmau sa fie afisate pe LCD.
initializarea matricelor afisate pe matricea de leduri ( variabila arrows ).
initializarea LCD-ului si a LedControl-ului.
in setup am facut setez pinii si valorile initiale ale lcd-ului si a ledControl-ului.
setez variabilele pentru timer si prescaler.
Functia printByte
Functia printMessage
Timerul
aici se afla logica jocului.
in variabila offset retin starea la care se afla sageata acum, pentru a putea genera animatia.
aceasta poate lua valori doar de la 0 la 7 ( inclusiv ), deoarece sunt 8 randuri de leduri.
afisez matricea cu functia printByte cu parametrul arrows[directionToMove][offset]. offset pentru starea curenta si directionToMove pentru directia de miscare a biciclistului.
iau valoarea potentiometrului pentru a regla viteza animatiei matricei.
am considerat valorile sa fie intre 5 si 1000.
pentru modificarea vitezei, schimb valoarea lui OCR1A.
acesta va lua valori intre 3000 si 10000 - 11000.
Functia readButtonInput()
Functia loop()
se citeste valoarea butoanelor.
daca s-a schimbat optiunea de ultima data, atunci fac update la mesajul care se afiseaza pe lcd.
Rezultate Obţinute
Concluzii
A fost un proiect interesant. Cu ajutorul laboratoarelor am reusit sa ma misc foarte repede, fara a fi nevoie de multe tutoriale pe youtube. Proiectul nu este greu de implementat, insa am incercat sa cuprind cat mai multe dintre laboratoare.
Download
Jurnal
28 aprilie - Alegerea Proiectului si scrierea paginii wiki
3 mai - Finalizarea proiectului
8 mai - Finalizarea paginii Wiki
10 mai - Scriere Readme
19 mai - Prezentare si rectificare erori
27 mai - Finalizare
Bibliografie/Resurse