Bike PoV animation

Introducere

Proiectul isi propune sa foloseasca fenomenul de Persistence Of Vision pentru a afisa texte pe o roata de bicicleta. Textul poate fi selectat in cod si printat in viteza.

Hardware Design

Lista componente
Arduino UNO R3
3 x Bară de neopixeli WS2812 cu 8 LED-uri
Senzor magnetic (Hall) A3144
Restinta de 1k
Fire tata-tata
Baterie 5V si baterie 9V
Pregatirea LED-urilor

Pentru aceasta etapa m-am gandit de la inceput ca vreau sa fac un strip de LED-uri care sa incapa pe toata spita rotii. Am gasirt pe net stripuri cu cate 8 leduri programabile. Am conectat direct stripurile in serie. Partea buna a acestui lucru este ca ledurile au venit “la pachet” cu o bibleoteca de functii pentru usurarea controlului ledurilor. Partea proasta a ledurilor este ca 3 stripuri conectate in serie au nevoie de 1.5 A intensitate. Acest lucru nu poate fi oferit din arduino, deci a trebuit sa adaug o baterie separata pentru alimentarea stripurilor.

Senzorul Magnetic

Senzorul magnetic a venit cu o problema hardware de montare pe roata. Pentru asta am lipit (sudat) senzorul de rezistenta de 1k si de fire de conectare la arduino.

Sistemul final

Am conectat senzorul si stripurile si m-am asigurat ca acestea functioneaza la apropierea unui magnet de senzor. Partea aceasta nu a fost complicata, dar a contat la capitolul Software.

Punerea pieselor pe roata

Problemele pe care le-am avut de intampinat au fost:

  • Balansarea greutatilor componentelor pe roata. Aceasta problema am avut-o in special la baterii care sunt grele si in mod practic mai greu de carat. Am avut grija sa le lipesc cat mai aproape de centrul rotii si sa se contrabalanseze una pe asta (una pe o parte una pe cealalta).
  • Rezistenta componentelor. Acest pas a fost destul de complicat, deoarece a trebuit sa ma asigur ca piesele si firele vor sta intacte la momentul rotirii rotii la viteza mare. Am legat cu banda izolatoare toate componentele, am verificat la viteze mari si din fericire totul a fost bine.
  • Lipirea magnetului astfel incat senzorul sa il intercepteze la fiecare rotatie - Am lipit magnetul pe cadrul bicicletei.

Software Design

Folosind Arduino IDE am realizat un cod in care am implementat urmatoarele functii:

  • setup() - setam pinul de citire pt senzor si intreruperea acestuia si facem test de aprindere al ledurilor.
  • loop() - folosesc micros() intoarce timpul de cat a pornit placuta, apoi la o anumita pozitie pe roata se incepe printarea cuvintelor si pentru restul partii de roata in care nu am de printat nimic.
  • displayString(const char* s, float line_delay) - apelam functia de apelare a fiecarui char din string.
  • displayChar(char cr, float line_delay) - pentru fiecare litera printam 6 linii de leduri, in functie de vectorul de cod pentru fiecare litera.
  • draw_a_line(int this_line) - printam linia in functie de linia din litera si de litera.

  • sensorISR() - aceasta functie trateaza trigger-ul senzorului si calculam dimensiunea gradelor de delay intre luminarea ledurilor pt a forma cuvinte.

Rezultate Obtinute

Concluzii

Proiectul a fost mai usor decat ma asteptam dar si mult mai fun. As imbunatati proiectul cu mai multe stripuri si poate si cu animatii ceva mai complexe, dar per total sunt multumita cu felul in care arata.

Download

Am atasat mai jos codul sursa al acestui proiect. Proiectul este reglabil in functie de numarul de leduri pe strip.

Bike PoV Animation code

Bibliografie/Resurse

pm/prj2021/avaduva/bike_pov_animation.txt · Last modified: 2021/06/10 11:15 by maria.vidrasc
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