INHOUDSOPGAWE:

Digilog_Bike POV -skerm: 14 stappe
Digilog_Bike POV -skerm: 14 stappe

Video: Digilog_Bike POV -skerm: 14 stappe

Video: Digilog_Bike POV -skerm: 14 stappe
Video: age doesn't matter 2024, November
Anonim
Image
Image

Digilog

Digitaal + analoog

Digitaal ontmoet analoog

POV

Volharding van visuele

Dit staan ook bekend as 'n na -beeld -vertoning, as dit met hoë spoed geskud word, bly die na -beeld oor.

Mense dink dat hulle na video kyk as hulle TV kyk. Maar eintlik kyk hy na verskeie opeenvolgende foto's. Dit word verkeerdelik beskou as 'n beeld vanweë die effek van na -beelde wat op ons netvlies oorbly wanneer ons opeenvolgende foto's kyk. Hierdie soort illusie word 'n POV genoem.

Stap 1: idee -konsep

Idee konsep
Idee konsep

POV word geïmplementeer deur 'n LED -band aan die wiel van 'n fiets vas te maak.

Stap 2: Materiaallys

Materiaallys
Materiaallys
Materiaallys
Materiaallys

Rekenaars en I/O

1. Arduino Mega 2560 [arduino] x3

2. Hallsensormodule V2 [YwRobot] x3

3. WS2812-5050 Buigsame Neopixel [Adafruit] x3

4. Magneties (deursnee van 15 mm, dikte van 50 mm) x3

5. Arduino Mega Case x3

Kraglyn

5. 5000mAh/3.7V litiumbattery [TheHan] x3

6. AVR 5V-reguleerder en laai en PCM-module: JBATT-U5-LC [Jcnet] x3

7. 4Jumper draadstel 65PCS/SET [OR0012] x3

Stap 3: gereedskap

Gereedskap
Gereedskap

Nie te veel gereedskap nodig nie, maar u benodig:

1. Soldeermasjien

2. 'n Soldeerbout

3. Plak pistool

4. Nipper

Stap 4: Maak raam

Image
Image
Maak raam
Maak raam

Sny die fiets en maak die voetstuk vas

Die slypmasjien is gebruik om die fietswiele van die fiets af te sny en gelaste staalplate om die wiele vas te maak.

Stap 5: Skets finale beelde en konsepte

Skets finale beelde en konsepte
Skets finale beelde en konsepte
Skets finale beelde en konsepte
Skets finale beelde en konsepte
Skets finale beelde en konsepte
Skets finale beelde en konsepte

Ons het 'n draak gekies as die laaste beeld. Omdat die golf van die draak die beste blyk te wees deur die na -beeld -effek.

Stap 6: Maak bewegende prentjies sny

Maak bewegende beeld sny
Maak bewegende beeld sny
Maak bewegende beeld sny
Maak bewegende beeld sny

Verdeel die prent in drie dele wat op elke fiets pas en deel die totaal van 12 beelde volgens kleur en beweging.

Stap 7: Berei sagteware voor

Berei sagteware voor
Berei sagteware voor
Berei sagteware voor
Berei sagteware voor

Onderdeel 1. Installeer Arduino

Arduino -aflaai:

(Installeer om by u bedryfstelselweergawe en -stelsel te pas.)

-

Onderdeel 2. Installeer biblioteek

*(As u deur Github wil installeer, besoek die skakel hierbo Github Arduino -biblioteek:

1. Begin die Arduino -program

2. Laat die skakel toe Top menu - skets - sluit biblioteek in - voeg. Zip biblioteek by

3. U moet die. Zip -lêer kies wat reeds github library4 geïnstalleer het

*(As u die Arduino -programdienste wil gebruik)

1. Begin Arduino -programme

2. Laat die skakel toe Top menu - skets - sluit biblioteek in - bestuur biblioteek - soek 'Adafruit neopixel' - u kan 'Adafruit Neopixel by Adafruit' sien

3. Installeer en werk biblioteek op

-

Onderdeel 3. Installeer omskakelingsprogram

1. Installeer Rotation Circle Program (R. C. P):

2. U moet 'n README -lêer lees

Stap 8: Maak hardeware -kragtoevoer

Maak hardeware -kragtoevoer
Maak hardeware -kragtoevoer
Maak hardeware -kragtoevoer
Maak hardeware -kragtoevoer
Maak hardeware kragbron
Maak hardeware kragbron

*So kan u Arduino 5V -spanning deur die battery verskaf. Volg die onderstaande stappe.

1. Koppel die litiumbattery en die JBATT -laaimodule aan. (Ter verwysing het die JBATT-module 'n ingeboude kragskakelaar.)

2. Koppel die uitgangsklem van JBATT aan die Vin -terminaal van die Arduino- en die grondterminale.

3. Koppel die Micro 5pin usb -poort aan die laaipoort om te kyk of die produk behoorlik werk.

4. Skakel vervolgens die ingeboude skakelaar na AAN.

5. As die rooi led brand en die groen LED in Arduino, word die konfigurasie van die produksiestadium normaalweg voltooi.

Stap 9: Maak hardeware -I/O en kyk na UITPUT (NeoPixel werk)

I/O -hardeware maak en OUTPUT kontroleer (NeoPixel werk)
I/O -hardeware maak en OUTPUT kontroleer (NeoPixel werk)
I/O -hardeware maak en OUTPUT kontroleer (NeoPixel werk)
I/O -hardeware maak en OUTPUT kontroleer (NeoPixel werk)
I/O -hardeware maak en OUTPUT kontroleer (NeoPixel werk)
I/O -hardeware maak en OUTPUT kontroleer (NeoPixel werk)

*Hierdie deel bestaan uit sensor en uitsetstadium

1. Koppel die Arduino- en Hall -sensors. Die gegewenspen word verbind met Arduino -pen 2.

2. As die Arduino aangeskakel word en die magneet in noue kontak met die Hall -sensor is, brand die rooi led.

3. Koppel Arduino en Neopixel. Slegs 30 Neopixels word gebruik.

4. Koppel die gegewenspen met Arduino -pen 6.

5. Koppel die Arduino en laai die kabel af na die USB -poort van u rekenaar en voer Arduino op u rekenaar uit.

6. Kies Gereedskapbord - “Arduino / Genuino Mega of Mega 2560” in die boonste menubalk van die Arduino -program.

7. Kyk of daar 'n lys produkte is wat direk aan die poort gekoppel kan word. As dit nie gemerk is nie, klik om dit te kies.

8. Plak die onderstaande kode en klik op Upload links bo. (Daarna volg alle programoplaaie stappe 5-8.)

9. Konfigurasie is voltooi wanneer al 30 neoled pixels aangeskakel word.

#1. insluitend koplêer en voorafverwerking

Eerstens moet ons die biblioteek Adafruit_NeoPixel saambring wat Neopixels kan verwerk.

Biblioteek kan gebruik word deur voorwerpe te verklaar.

Adafruit_NeoPixel -klas kan 3 parameters in die openbaar invoer.

Die eerste parameter is die aantal LED's.

sekondes parameter is die speldnommer wat gekoppel is aan die digitale invoer van Neopixel.

Die derde parameter is om opsies in te voer volgens die produkeienskappe. drie-kleur WS2812b-produk gebruik die 'NEO_GRB'-invoer

#insluit

#define PIN 6 Adafruit_NeoPixel strip = Adafruit_Neopixel (30, PIN, NEO_GRB+NEO_KHZ800);

#2. stel op

In die opsetgedeelte, initialiseer die voorwerp en berei dit voor vir gebruik.

'Adafruit_Neopixle_Object.begin ()' stel alle LED's aan om uit te skakel.

'Adafruit_Neopixle_Object.show ()' uitsette met die helderheid in die LED.

ongeldige opstelling () {

strip.begin (); strip.show (); }

#3. hooflus

Die werking van die hooflus gebruik 'n for -lus om die LED's in wit opeenvolgend uit te voer (0.1 sekondes)

leemte -lus () {

vir (uint16_t i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, 255, 255, 255); strip.show (); vertraging (100); }}

Stap 10: Monteer en bevestig aan die wiel

Monteer en bevestig aan die wiel
Monteer en bevestig aan die wiel
Monteer en bevestig aan die wiel
Monteer en bevestig aan die wiel

1. Koppel Neopixels. (Gee aandag aan pin -tjek)

2. Koppel die Hall Sensor. (Verwys na Stap 9)

3. Heg die raam tussen die fietse aan die Arduino vas. (Bevestig die Arduino -omhulsel parallel met die fietsraam).

4. Plaas die Arduino wat op Neopixel gekoppel is. (Wees versigtig, want die gomgeweer is warm).

5. Steek die gekoppelde Hall -sensor in die Arduino (bevestig die kabelbinder sodat die Hall -sensor nie val nie).

6. Soldeer om battery aan te sluit. (Wees versigtig as u soldeer).

7. Maak dit reg met 'n gomgeweer. (Bevestig die laai -module op die battery om ruimte te beveilig).

8. Koppel elke lyn aan voordat u met Arduino aansluit, 9. Koppel volgens elke speldnommer aan. (Koppel die springlyne vir die laai -module sonder om dit te verwar).

10. Sluit een keer met 'n gomgeweer af (wees versigtig om nie te val nie).

Stap 11: Gaan INPUT (HALL Sensor Data) na

Gaan INPUT (HALL Sensor Data) na
Gaan INPUT (HALL Sensor Data) na
Gaan INPUT (HALL Sensor Data) na
Gaan INPUT (HALL Sensor Data) na
Gaan INPUT (HALL Sensor Data) na
Gaan INPUT (HALL Sensor Data) na

*Gaan die sagtewarekode na om te sien of die sensor werk.

1. Plak en laai die onderstaande kode op.

2. Klik op die Serial Monitor -knoppie regs bo in die Arduino.

3. As die magneet meer as 1 sekonde in aanraking is met die Hall -sensor, word die opstelling voltooi wanneer die woord "kontakmagneties" op die seriële monitor verskyn.

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- #1. Definieer speldnommer en opstelling

Die eerste konfigurasie-speldnommer om die Hall-sensor te gebruik en die speldnommer in te stel as slegs 'n invoerpoort.

Stel die kommunikasie in om die data van die Hall -sensor op die seriële monitor na te gaan.

#definieer HALL 2

ongeldige opstelling () {pinMode (HALL, INPUT); Serial.begin (9600); }

#2. hooflus

Kontroleer die Hall sensor data met tussenposes van 0.1 sekondes.

As die magneet waargeneem word en die data verander word, word 'kontakmagneet' na die seriële monitor gestuur.

leemte -lus () {

if (digitalRead (HALL)) {Serial.println ("kontak magneties"); } vertraging (100); }

Stap 12: Koderingsalgoritme

*Skep logika en kodering om Neopixels te beheer op grond van sensorwaardes.

1. Plak en laai die onderstaande kode op.

2. Dit is normaal dat die beeld nie behoorlik vertoon word nie, omdat daar geen raam gemaak word nie. Maar jy kan sien dat dit ongeveer werk.

3. Raak die hall sensor en magneet vinnig binne 1 sekonde los. Herhaal hierdie operasie ongeveer 10 keer.

4. Die opset is voltooi wanneer die kleure van die Neopixels gereeld verander.

#1. Insluitend koptekstlêers en voorafverwerking

Eerstens moet ons verstaan dat die geheue van die Arduino Mega nie groot genoeg is om 'n beeldlêer te hou nie.

Daarom word die 'avr/pgmspace' -koplêer gebruik om verskillende geheue ruimte te benut.

Om Neopixels te gebruik, verklaar u 'n voorwerp en konfigurasie as 'n I/O -speldnommer.

Die beeldreeks is te groot om te kodeer, dus laai die aangehegte lêers af en plak dit.

#insluit

#include #define PIN 6 #define NUMPIXELS 30 #define HALL 2 Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800); // plak skikking in 'image_array_1.txt' // "'image_array_2.txt' //" 'image_array_3.txt' // "'image_array_4.txt'

#2. Globale veranderlike en opstelling

Stel 'n globale veranderlike op.

Die belangrikste ding is om die helderheid in te stel, dit bepaal die lewensiklus van die produk.

int telling = 0;

dubbel v = 0; dubbel laaste_v = 0; dubbele timer = mikros (); dubbel ex_timer = micros (); dubbel laaste_timer = mikros (); int deg = 36; int pix = 35; int rgb = 3; dubbel q_arr [2] = {0, 0}; int HALL_COUNT = 0; dubbel VELO; dubbele verwerkingstyd = mikros (); ongeldige opstelling () {strip.setBrightness (255); strip.begin (); strip.show (); Serial.begin (230400); }

#3. hooflus - beelduitdrukkingsuitsetdeel

Hierdie kode is 'n voorwaardelike verklaring oor hoe om die tyd wat die wiel draai deur resolusie te lewer.

Hierdie deel gebruik die siklus om die fietswiel een keer te draai as 'n baie belangrike parameter.

Dit is ook belangrik om beeldreeksdata uit die geheue te lees.

leemte -lus () {

if ((count (ex_timer / 120.0) - (micros () - processing_timer))) {timer = micros (); if (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 (); } anders as (VELO 264000) {vir (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 (); } anders as (VELO 204000) {vir (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 (); } anders as (VELO <= 204000) {vir (int i = 0 + 5; i = 120)) {vir (int i = 0 + 5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Color (0, 0, 0)); } strip.show (); }

#4. hooflus - verwerking en siklustydkontrole en -waarneming

Dit is die belangrikste deel van die hele stelsel.

Kontroleer eers die tyd wat dit neem om die hele kode uit te voer en pas die LED -uitsetyd per siklus aan.

Die tyd wat waargeneem word elke keer as die wiel draai, voorspel die tyd van die volgende siklus.

Versnelling kan beraam word deur die laaste gemete siklustyd af te trek van die tydsgemete siklustyd.

Die stelsel bereken die verwerkingstyd en versnelling om te bereken hoe lank die LED's aanhoudend aanskakel.

verwerkingstyd = mikros ();

as ((digitalRead (HALL) == HOOG) && (HALL_COUNT == 1)) {VELO = v; v = micros () - last_timer; ex_timer = q_arr [0] - q_arr [1] + v; laaste_timer = mikros (); q_arr [0] = q_arr [1]; q_arr [1] = v; telling = 0; HALL_COUNT = 0; } anders as (digitalRead (HALL) == LOW) {HALL_COUNT = 1; }}

Stap 13: Gebruik sagteware

Gebruik sagteware
Gebruik sagteware
Gebruik sagteware
Gebruik sagteware
Gebruik sagteware
Gebruik sagteware

*Gebruik sagteware om die prentjie te transformeer en prosessiedata in die kode in te voeg

1. Voeg die prent van die bogenoemde stap in die prentemap in die R. C. P -gids wat in die voorbereidingsstap geïnstalleer is.

- Hoe om die prentjie te plaas, is soos volg.- Hernoem 4 geanimeerde beelde van produk # 1 in volgorde van 1.png, 2.png, 3-p.webp

2. Begin die Ver.5.exe -lêer.

3. Verifieer dat 12 lêers pro_1_code_1.txt na pro_3_code_4.txt in die R. C. P -lêergids geskep word.

4. As dit nie geskep is nie, verander die inhoud van config.txt as die volgende konfigurasielêer.

5. Sodra die lêer geskep is, kopieer die hele inhoud van die lêer pro_1_code_1.txt en plak dit in die deel wat in die onderstaande kode verskyn.

6. Voeg die pro_1_code_2.txt, pro_1_code_3.txt en pro_1_code_4.txt inhoud by die gemerkte deel in die 5de orde.

7. Met verwysing na 5 en 6, voltooi die pro_2_code…, pro_3_code die kode op dieselfde manier.

Stap 14: Voltooi

Voltooi
Voltooi
Voltooi
Voltooi
Voltooi
Voltooi

Die vervaardiging van 'n POV is voltooi wat een beeld met drie wiele skep.

Aanbeveel: