Indholdsfortegnelse:
- Trin 1: Idékoncept
- Trin 2: Materialeliste
- Trin 3: Værktøjer
- Trin 4: Lav ramme
- Trin 5: Skitsering af sidste billeder og koncepter
- Trin 6: Gør Moving Image Cut
- Trin 7: Forbered software
- Trin 8: Lav hardware strømforsyning
- Trin 9: Fremstilling af hardware -I/O og kontrol af OUTPUT (NeoPixel Working)
- Trin 10: Montering og fastgørelse til hjulet
- Trin 11: Kontrol af INPUT (HALL Sensordata)
- Trin 12: Kodningsalgoritme
- Trin 13: Brug af software
- Trin 14: Fuldfør
Video: Digilog_Bike POV Display: 14 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Digilog
Digital + analog
Digital møder analog
POV
Visuel vedholdenhed
Også kendt som efterbilledvisning, hvis den rystes ved høj hastighed, forbliver efterbilledet.
Folk tror, de ser video, når de ser tv. Men faktisk ser han på flere billeder i træk. Dette forveksles med et billede på grund af effekten af efterbilleder, der forbliver på vores nethinder, når man ser på hinanden følgende billeder. Denne form for illusion kaldes en POV.
Trin 1: Idékoncept
POV implementeres ved at fastgøre en LED -rem til hjulet på en cykel.
Trin 2: Materialeliste
Computing & I/O
1. Arduino Mega 2560 [arduino] x3
2. Hallsensormodul V2 [YwRobot] x3
3. WS2812-5050 Fleksibel Neopixel [Adafruit] x3
4. Magnetisk (diameter på 15 mm, tykkelse på 50 mm) x3
5. Arduino Mega Case x3
Strømkabel
5. 5000mAh/3,7V litiumbatteri [TheHan] x3
6. AVR 5V regulator & opladning & PCM-modul: JBATT-U5-LC [Jcnet] x3
7. 4Jumper wire kit 65PCS/SET [OR0012] x3
Trin 3: Værktøjer
Der kræves ikke for mange værktøjer, men du skal bruge:
1. Loddemaskine
2. Et loddejern
3. Lim pistol
4. Nipper
Trin 4: Lav ramme
Klipning af cyklen og fastgørelse af basen
Kværnen blev brugt til at skære cykelhjulene af cyklen og svejsede stålplader for at sikre hjulene.
Trin 5: Skitsering af sidste billeder og koncepter
Vi valgte en drage som det sidste billede. Fordi dragen af bølgen syntes at være bedst repræsenteret af efterbilledeffekten.
Trin 6: Gør Moving Image Cut
Opdel billedet i tre dele, der passer på hver cykel, og del de i alt 12 billeder efter farve og bevægelse.
Trin 7: Forbered software
Underdel 1. Installer Arduino
Arduino download:
(Installer for at passe til din OS -version og system.)
-
Del del 2. Installer bibliotek
*(Hvis du gerne vil installere via Github, skal du besøge linket ovenfor Github Arduino Library:
1. Kør Arduino -program
2. Tillad linket Topmenu - skitse - inkluder bibliotek - tilføj. Zip -bibliotek
3. Du skal vælge. Zip -filen, der allerede har installeret github -bibliotek4
*(Hvis du vil bruge Arduino -programtjenester)
1. Kør Arduino -programmer
2. Tillad linket Topmenu - skitse - inkluder bibliotek - ledelsesbibliotek - søger efter 'Adafruit neopixel' - du kan se 'Adafruit Neopixel by Adafruit'
3. Installer og opdater bibliotek
-
Underdel 3. Installer konverteringsprogram
1. Installer Rotation Circle Program (R. C. P):
2. Du skal læse en README -fil
Trin 8: Lav hardware strømforsyning
*Sådan leverer du Arduino 5V spænding gennem batteriet. Følg venligst trinene herunder.
1. Tilslut litiumbatteri og JBATT -opladningsmodul. (Til reference har JBATT-modulet en indbygget afbryder.)
2. Tilslut udgangsterminalen på JBATT til Vin -terminalen på Arduino og jordterminalen.
3. Tilslut Micro 5pin usb -porten til opladningsporten for at kontrollere, om produktet har fungeret korrekt.
4. Drej derefter den indbyggede kontakt til ON.
5. Hvis den røde lysdiode lyser, og den grønne lysdiode lyser i Arduino, afsluttes produktets effektfasekonfiguration normalt.
Trin 9: Fremstilling af hardware -I/O og kontrol af OUTPUT (NeoPixel Working)
*Denne del består af sensor og udgangstrin
1. Tilslut Arduino- og Hall -sensorerne. Datapinden forbindes til Arduino pin 2.
2. Når Arduino tændes, og magneten er i tæt kontakt med Hall -sensoren, lyser den røde LED.
3. Tilslut Arduino og Neopixel. Der bruges kun 30 Neopixels.
4. Tilslut datapinden med Arduino pin 6.
5. Tilslut Arduino og download kablet til din computers usb -port, og kør Arduino på din computer.
6. Vælg Tool - board - “Arduino / Genuino Mega eller Mega 2560” fra den øverste menulinje i Arduino -programmet.
7. Kontroller, om der er en liste over produkter, der kan tilsluttes direkte til porten. Hvis det ikke er markeret, skal du klikke for at vælge det.
8. Indsæt koden herunder, og klik på Upload øverst til venstre. (Bagefter følger alle programuploads trin 5-8.)
9. Konfigurationen er fuldført, når alle 30 neoled -pixels tændes.
#1. herunder headerfil og forbehandling
Først skal vi bringe biblioteket Adafruit_NeoPixel, der er i stand til at handle Neopixels.
Bibliotek kan bruges ved at deklarere objekter.
Adafruit_NeoPixel -klassen kan indtaste 3 parametre offentligt.
Den første parameter er antallet af lysdioder.
sekunder parameter er pin -nummeret forbundet til Neopixel digital input.
Tredje parameter er at indtaste muligheder i henhold til produktets egenskaber. trefarvet WS2812b-produkt bruger 'NEO_GRB'-input
#omfatte
#define PIN 6 Adafruit_NeoPixel strip = Adafruit_Neopixel (30, PIN, NEO_GRB+NEO_KHZ800);
#2. Opsætning
I installationsdelen skal du initialisere objektet og forberede det til brug.
'Adafruit_Neopixle_Object.begin ()' sætter alle lysdioder til at slukke.
'Adafruit_Neopixle_Object.show ()' output med lysstyrken indstillet i LED'en.
ugyldig opsætning () {
strip.begin (); strip.show (); }
#3. hovedsløjfe
Handlingen med hovedsløjfe bruger en for loop til sekventielt at sende (0,1 sekunder) lysdioderne i hvidt
void loop () {
for (uint16_t i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, 255, 255, 255); strip.show (); forsinkelse (100); }}
Trin 10: Montering og fastgørelse til hjulet
1. Tilslut Neopixels. (Vær opmærksom på pinkodekontrol)
2. Tilslut hallsensoren. (Se trin 9)
3. Fastgør rammen til Arduino mellem cyklerne. (Sæt Arduino -kassen parallelt med cykelrammen).
4. Indsæt Arduino forbundet til Neopixel. (Vær forsigtig, fordi limpistolen er varm).
5. Indsæt den tilsluttede Hall -sensor i Arduino, (Fastgør kabelbinderen, så Hall -sensoren ikke falder af).
6. Lodning til tilslutning af batteri. (Vær forsigtig, når du lodder).
7. Fix det med en limpistol. (Sæt opladningsmodulet på batteriet for at sikre plads).
8. Tilslut hver linje, før du slutter til Arduino, 9. Tilslut i henhold til hvert pinkode. (Tilslut springlinjerne til opladningsmodulet uden at forvirre dem).
10. Afslut med en limpistol en gang, (pas på ikke at falde).
Trin 11: Kontrol af INPUT (HALL Sensordata)
*Kontroller softwarekoden for at se, om sensoren fungerer.
1. Indsæt og upload koden herunder.
2. Klik på knappen Serial Monitor øverst til højre på Arduino.
3. Når magneten er i kontakt med Hall -sensoren i mere end 1 sekund, afsluttes konfigurationen, når ordet "kontaktmagnet" vises på den serielle skærm.
---------------------------------------------------------- ---------------------------------------------------------- -------------------------------------------------- #1. Definer pinkode og opsætning
Det første konfigurations-pin-nummer, der bruger Hall-sensoren og indstiller pin-nummeret som en port kun til input.
Indstil kommunikationen til at kontrollere data fra Hall -sensor på den serielle skærm.
#define HALL 2
void setup () {pinMode (HALL, INPUT); Serial.begin (9600); }
#2. hovedsløjfe
Kontroller hallsensordataene med 0,1 sekunders mellemrum.
Hvis magneten registreres og data ændres, udsendes "kontaktmagnet" til den serielle skærm.
void loop () {
hvis (digitalRead (HALL)) {Serial.println ("kontaktmagnet"); } forsinkelse (100); }
Trin 12: Kodningsalgoritme
*Opret logik og kodning for at styre Neopixels baseret på sensorværdier.
1. Indsæt og upload koden herunder.
2. Det er normalt, at billedet ikke vises korrekt, fordi der ikke produceres en ramme. Men du kan se, at det virker nogenlunde.
3. Berør og slip hurtigt Hall -sensoren og magneten inden for 1 sekund. Gentag denne handling cirka 10 gange.
4. Konfigurationen er fuldført, når farverne på Neopixels ændres regelmæssigt.
#1. Inklusive header -filer og forbehandling
Først skal vi forstå, at Arduino Megas hukommelse ikke er stor nok til at indeholde en billedfil.
Derfor bruges headerfilen 'avr/pgmspace' til at udnytte forskellig hukommelsesplads.
For at bruge Neopixels erklærer du et objekt og en konfiguration for et I/O -pinnummer.
Billedmatrixen er for stor til at kode, så download og indsæt de vedhæftede filer.
#omfatte
#include #define PIN 6 #define NUMPIXELS 30 #define HALL 2 Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800); // indsæt array i 'image_array_1.txt' // "'image_array_2.txt' //" 'image_array_3.txt' // "'image_array_4.txt'
#2. Global variabel og opsætning
Angiv en global variabel.
Det vigtigste er at indstille lysstyrken, det var bestemmer produktets livscyklus.
int tæller = 0;
dobbelt v = 0; dobbelt sidste_v = 0; dobbelt timer = micros (); dobbelt ex_timer = micros (); dobbelt sidste_timer = micros (); int deg = 36; int pix = 35; int rgb = 3; dobbelt q_arr [2] = {0, 0}; int HALL_COUNT = 0; dobbelt VELO; dobbelt behandlingstimer = micros (); void setup () {strip.setBrightness (255); strip.begin (); strip.show (); Serial.begin (230400); }
#3. hovedsløjfe - billedudtryksoutputdel
Denne kode er en betinget erklæring om, hvordan man udsender den tid, hjulet drejer ved opløsning.
Denne del bruger cyklen med at dreje cykelhjulet en gang som en meget vigtig parameter.
Det er også vigtigt at læse billedarraydata fra hukommelsen.
void loop () {
if ((count (ex_timer / 120.0) - (micros () - processing_timer))) {timer = micros (); hvis (VELO> 360000) {for (int i = 0+5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Color (pgm_read_byte (& (image_1 [count] [1])), pgm_read_byte (& (image_1 [count] [2])), pgm_read_byte (& (image_1 [count] [0])))); } strip.show (); } ellers hvis (VELO 264000) {for (int i = 0+5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Color (pgm_read_byte (& (image_2 [count] [1])), pgm_read_byte (& (image_2 [count] [2])), pgm_read_byte (& (image_2 [count] [0])))); } strip.show (); } ellers hvis (VELO 204000) {for (int i = 0+5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Color (pgm_read_byte (& (image_3 [count] [1])), pgm_read_byte (& (image_3 [count] [2])), pgm_read_byte (& (image_3 [count] [0])))); } strip.show (); } ellers hvis (VELO <= 204000) {for (int i = 0 + 5; i = 120)) {for (int i = 0 + 5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Farve (0, 0, 0)); } strip.show (); }
#4. hovedsløjfe - behandling og cyklustidskontrol og -føling
Dette er den vigtigste del af hele systemet.
Kontroller først den tid, det tager at udføre hele koden, og juster LED -udgangstiden pr. Cyklus.
Tiden registreres hver gang hjulet drejer, forudsiger tidspunktet for den næste cyklus.
Acceleration kan estimeres ved at trække den sidste målte cyklustid fra den målte cyklustid til tiden.
Systemet beregner behandlingstiden og accelerationen for at beregne, hvor længe lysdioderne tændes kontinuerligt.
processing_timer = micros ();
hvis ((digitalRead (HALL) == HIGH) && (HALL_COUNT == 1)) {VELO = v; v = micros () - sidste_timer; ex_timer = q_arr [0] - q_arr [1] + v; sidste_timer = micros (); q_arr [0] = q_arr [1]; q_arr [1] = v; count = 0; HALL_COUNT = 0; } ellers hvis (digitalRead (HALL) == LOW) {HALL_COUNT = 1; }}
Trin 13: Brug af software
*Brug software til at transformere billedet og indsætte processionsdata i koden
1. Indsæt billedet fra ovenstående trin i billedmappen i R. C. P -mappen installeret i forberedelsestrinnet.
- Sådan placeres billedet er som følger.- Omdøb 4 animerede billeder af produkt nr. 1 i rækkefølge af 1.png, 2.png, 3-p.webp
2. Kør filen Ver.5.exe.
3. Kontroller, at 12 filer pro_1_code_1.txt til pro_3_code_4.txt er oprettet i mappen R. C. P.
4. Hvis det ikke er oprettet, skal du ændre indholdet af config.txt som følgende konfigurationsfil.
5. Når filen er oprettet, skal du kopiere hele indholdet fra filen pro_1_code_1.txt og indsætte den i den del, der er vist i koden herunder.
6. Tilføj pro_1_code_2.txt, pro_1_code_3.txt og pro_1_code_4.txt indhold til den markerede del i 5. rækkefølge.
7. Med henvisning til 5 og 6 fuldender pro_2_code…, pro_3_code koden på samme måde.
Trin 14: Fuldfør
Gennemførte produktionen af en POV, der skaber et billede med tre hjul.
Anbefalede:
Usare Un Display Grande a 4 Cifre 8886 Display Con Wemos ESP8266 Arduino NodeMCU: 6 trin
Usare Un Display Grande a 4 Cifre 8886 Display Con Wemos ESP8266 Arduino NodeMCU: Questo progetto is one semplice esempio che mostra come collegare and display del tipo 8886 -Display e, per comodità nostra, and Wemos D1 - ma potrebbe essere un Arduino o un NodeMCU o qualsiasi altro microcontrollore che state usando per un progetto.Esi
Ét POV -display til at styre dem alle !: 10 trin (med billeder)
Én POV -skærm til at styre dem alle !: Motivation Jeg kan virkelig godt lide POV -skærme (vedholdenhed i synet)! De er ikke kun interessante at se på, men også en stor udfordring at udvikle dem. Det er en virkelig tværfaglig opgave. Du har brug for mange færdigheder: mekanisk, elektronisk, programmering og
Arduino Horisontal POV Display: 3 trin
Arduino Horisontal POV Display: Simplest POV display med 5LED-s og Arduino Nano
PropHelix - 3D POV Display: 8 trin (med billeder)
PropHelix - 3D POV Display: Folk har altid været fascineret af holografiske fremstillinger. Der er flere måder at gøre dette på. I mit projekt bruger jeg en roterende helix af LED -strimler. Der er i alt 144 lysdioder, der kan vise 17280 voxels med 16 farver. Voxelerne er arra
Arduino Wireless Power POV Display: 6 trin (med billeder)
Arduino Wireless Power POV Display: Da jeg første gang mødte denne lille enhed, kunne jeg lide den med det samme. Jeg besluttede at lave min egen POV. Jeg så mange videoer og genkendte nogle hovedproblemer. Strømforsyningen til mikro-controlleren var den største. Roterende batteri eller glidende kommutat