Ioana MORARU (87513) - Semnalizare pentru bicicletă

Autorul poate fi contactat la adresa: ioanamoraru14@gmail.com

Introducere

Proiectul presupune realizarea unei semnalizări pentru bicicletă sau trotinetă. Voi folosi un accelerometru pentru a detecta mișcările ghidonului bicicletei într-o anumită direcție și în acel moment matricea de LED-uri va semnaliza direcția de mișcare detectată. În plus, se va aprinde o lumină pentru frână atunci când ghidonul se înclină în față.

Această idee a pornit de la cațiva prieteni care merg des pe bicicletă și au simțit necesitatea unei astfel de semnalizări similară cu cea a autoturismelor pentru a le crește siguranța în trafic.

Descriere generală

Accelerometrul va trimite date cu privire la poziție către microcontroller, iar apoi acesta va acționa matricea cu LED-uri. În plus, tot microcontroller-ul va trimite ecranului LCD informații despre direcția de deplasare astfel încât cel care conduce să fie informat asupra a ce se semnalizează. Ecranul va avea rol informativ pentru a ști dacă se semnalizează ceva la acel moment și în caz afirmativ, ce anume.

Hardware Design

Lista piese:

  • PCB
  • Pachetul cu componente de bază
  • Modul Accelerometru și Giroscop MPU6050
  • Matrice de LED-uri 8 * 8 MAX7219
  • Header de Pini Mamă
  • Modul LCD 1602
  • Fire mamă-mamă și mamă-tată
  • Baterie extrenă

Schema electrica

Software Design

Mediu de dezvoltare: Am scris cod C în editorul de text Visual Studio Code și am creat un Makefile cu care compilez codul pentru placuță.

Bootloader: HID Boot Flash

Biblioteci: biblioteca pentru MAX7219, transcrisa pentru AVR (era pentu Arduino), biblioteca pentru accelerometru MPU6050 și biblioteca pentru LCD din laborator cu mici modificări la conectarea pinilor și aprinderea luminii de background a LCD-ului. Ecranul de la laborator nu avea aceasta lumină.

Modificări Header LCD

// Portul pe care conectam pinii de date ai LCD-ului
#define LcdDATA_DDR DDRC
#define LcdDATA_PORT PORTC
#define LcdDATA_PIN PINC
 
// Pinii de date ai LCD-ului
#define LcdD4 PC6
#define LcdD5 PC5
#define LcdD6 PC4
#define LcdD7 PC3
 
// Portul pe care conectam pinii de control ai LCD-ului
#define LcdCTRL_DDR DDRA
#define LcdCTRL_PORT PORTA
#define LcdCTRL_PIN PINA
 
// Pinii de control ai LCD-ului
#define LcdRS PA5
#define LcdRW PA6
#define LcdE PA7

Cu ajutorul bibliotecii pentru accelerometrul MPU6050, microcontrollerul preia datele de la acesta și le încadrează pentru o anumită direcție de mișcare. Această direcție este redată pe ecranul LCD folosind funcțiile din fișierele de la laborator și pe matricea de LED-uri sub forma de săgeți animate. În plus față de biblioteca pentru modulul cu matrice de LED-uri MAX7219, am creat niste funcții care resetează matricea și crează animații pentru săgețile de semnalizare.

Rezultate Obţinute

Video demonstrativ al proiectului: https://youtu.be/7wavvEmD7z4

Concluzii

Cea mai dificilă parte a proiectului a fost realizarea animației luminoase. Mai întai am încercat să realizez acest lucru folosind un inel de LED-uri RGB WS2812, dar nu am reușit să adaptez biblioteca Arduino FastLED.h pentru a putea fi folosită cu microconrollerul Atmega324A pe care îl are plăcuța mea. Astfel, am înlocuit inelul de LED-uri cu un modul cu matrice de LED-uri MAX7219 cu care mi-a fost mai ușor să realizez partea software.

În final, proiectul a ieșit aproape cum mi-am dorit. Cu siguranță ar putea fi îmbunătățite multe aspecte, dar eu sunt mulțumită de rezultat.

Download

Bibliografie/Resurse

pm/prj2019/apredescu/semnalizare.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