This shows you the differences between two versions of the page.
pm:prj2021:avaduva:bike_pov_animation [2021/06/03 00:13] maria.vidrasc |
pm:prj2021:avaduva:bike_pov_animation [2021/06/10 11:15] (current) maria.vidrasc |
||
---|---|---|---|
Line 6: | Line 6: | ||
======Introducere====== | ======Introducere====== | ||
- | - Proiectul isi propune sa foloseasca fenomenul de Persistence Of Vision pentru a afisa texte sau imagini pe o roata de bicicleta. | + | 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. |
- | + | ||
- | + | ||
- | ======Descriere generala====== | + | |
======Hardware Design====== | ======Hardware Design====== | ||
Line 25: | Line 21: | ||
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" | 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. | 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. | ||
+ | |||
+ | {{:pm:prj2021:avaduva:Strip-fata.jpeg?550|}} | ||
+ | {{:pm:prj2021:avaduva:Strip-spate.jpeg?550|}} | ||
==Senzorul Magnetic== | ==Senzorul Magnetic== | ||
- | Senzorul magnetic a venit cu o problema hardware de ontare pe roata. Pentru asta am lipit (sudat) senzorul de rezistenta de 1k si de fire de conetare la arduino. | + | 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. |
+ | {{:pm:prj2021:avaduva:Hall1902.jpeg?550|}} | ||
==Sistemul final== | ==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. | 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. | ||
+ | {{:pm:prj2021:avaduva:Schema1902.png?550|}} | ||
==Punerea pieselor pe roata== | ==Punerea pieselor pe roata== | ||
Line 39: | Line 40: | ||
* 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. | * 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. | * Lipirea magnetului astfel incat senzorul sa il intercepteze la fiecare rotatie - Am lipit magnetul pe cadrul bicicletei. | ||
+ | |||
+ | {{:pm:prj2021:avaduva:Aranjament final1902.jpeg?550|}} | ||
+ | |||
======Software Design====== | ======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. | ||
+ | {{:pm:prj2021:avaduva:whatsapp_image_2021-06-03_at_12.14.28_4_.jpeg?550|}} | ||
+ | * sensorISR() - aceasta functie trateaza trigger-ul senzorului si calculam dimensiunea gradelor de delay intre luminarea ledurilor pt a forma cuvinte. | ||
+ | |||
======Rezultate Obtinute====== | ======Rezultate Obtinute====== | ||
+ | {{:pm:prj2021:avaduva:print31902.jpeg?550|}} | ||
+ | {{:pm:prj2021:avaduva:print11902.jpeg?550|}} | ||
+ | {{:pm:prj2021:avaduva:print21902.jpeg?550|}} | ||
+ | |||
+ | Prezentare finala: https://www.youtube.com/watch?v=WSo_QLChyOE&ab_channel=MariaVidrasc | ||
======Concluzii====== | ======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====== | ======Download====== | ||
+ | Am atasat mai jos codul sursa al acestui proiect. Proiectul este reglabil in functie de numarul de leduri pe strip. | ||
+ | |||
+ | {{:pm:prj2021:avaduva:mv.zip| Bike PoV Animation code}} | ||
======Bibliografie/Resurse====== | ======Bibliografie/Resurse====== | ||
- | [[ https://ocw.cs.pub.ro/courses/pm/prj2021/avaduva/bikepovanimation?do=export_pdf| Export PDF ]] | + | * [[ https://ocw.cs.pub.ro/courses/pm/prj2021/avaduva/bikepovanimation?do=export_pdf| Export PDF ]] |
+ | * Libraria Adafruit NeoPixel - https://github.com/adafruit/Adafruit_NeoPixel | ||
+ | * PoV inspiration project - http://electronoobs.com/eng_arduino_tut21.php |