Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:avaduva:bike_pov_animation [2021/06/03 00:08]
maria.vidrasc [Hardware Design]
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======
 ==Lista componente== ==Lista componente==
-  * 3 x Bară de neopixeli WS2812 cu 8 LED-uri   +| Arduino UNO R3 | 
-  ​* ​Senzor magnetic (Hall) A3144   +3 x Bară de neopixeli WS2812 cu 8 LED-uri ​| 
-  * Magnet +Senzor magnetic (Hall) A3144  
-  * Arduino UNO R3 (ATmega328p + ATmega16u2) +Restinta de 1k | 
-  * Restinta de 1k  +Fire tata-tata | 
-  ​* ​Fire +Baterie 5V si baterie 9V  |
-  ​* ​Baterie 5V si baterie 9V+
  
 ==Pregatirea LED-urilor== ==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" ​+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==
-     Problemele pe care le-am avut de intampinat au fost:+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).      * 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.      * 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
pm/prj2021/avaduva/bike_pov_animation.1622668099.txt.gz · Last modified: 2021/06/03 00:08 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