Turinys:

„Digilog_Bike POV“ekranas: 14 žingsnių
„Digilog_Bike POV“ekranas: 14 žingsnių

Video: „Digilog_Bike POV“ekranas: 14 žingsnių

Video: „Digilog_Bike POV“ekranas: 14 žingsnių
Video: 2024 Alfa Romeo Giulia Quadrifoglio (520 л.с.) | 100th Anniversary Edition! 2024, Liepa
Anonim
Image
Image

„Digilog“

Skaitmeninis + analoginis

Skaitmeninis ir analoginis

POV

Vizualinis atkaklumas

Taip pat žinomas kaip „afterimage“ekranas, jei purtomas dideliu greičiu, „afterimage“išlieka.

Žmonės mano, kad žiūrėdami televizorių žiūri vaizdo įrašus. Tačiau iš tikrųjų jis žiūri keletą nuotraukų iš eilės. Tai klaidingai laikoma vaizdu dėl to, kad žiūrint iš eilės nuotraukas mūsų tinklainėje lieka pasekmių. Tokia iliuzija vadinama POV.

1 žingsnis: idėjos koncepcija

Idėjos koncepcija
Idėjos koncepcija

POV įgyvendinamas pritvirtinus LED dirželį prie dviračio rato.

2 žingsnis: medžiagų sąrašas

Medžiagų sąrašas
Medžiagų sąrašas
Medžiagų sąrašas
Medžiagų sąrašas

Kompiuterija ir I/O

1. Arduino Mega 2560 [arduino] x3

2. Salės jutiklio modulis V2 [YwRobot] x3

3. WS2812-5050 Lankstus neopikselis [Adafruit] x3

4. Magnetinis (skersmuo 15 mm, storis 50 mm) x3

5. „Arduino Mega“dėklas x3

Jėgos linija

5. 5000 mAh/3,7 V ličio baterija [TheHan] x3

6. AVR 5V reguliatorius, įkrovimo ir PCM modulis: JBATT-U5-LC [Jcnet] x3

7. 4Jamperio vielos komplektas 65PCS/SET [OR0012] x3

3 žingsnis: įrankiai

Įrankiai
Įrankiai

Įrankių nereikia per daug, tačiau jums reikės:

1. Litavimo mašina

2. Lituoklis

3. Klijų pistoletas

4. Žnyplės

4 žingsnis: rėmo gamyba

Image
Image
Rėmo gamyba
Rėmo gamyba

Dviračio pjovimas ir pagrindo tvirtinimas

Šlifuoklis buvo naudojamas dviračio ratams nupjauti nuo dviračio, o suvirintos plieninės plokštės - ratai.

5 žingsnis: galutinių vaizdų ir koncepcijų eskizas

Galutinių vaizdų ir koncepcijų eskizas
Galutinių vaizdų ir koncepcijų eskizas
Galutinių vaizdų ir koncepcijų eskizas
Galutinių vaizdų ir koncepcijų eskizas
Galutinių vaizdų ir koncepcijų eskizas
Galutinių vaizdų ir koncepcijų eskizas

Paskutinį vaizdą pasirinkome drakoną. Nes atrodė, kad drakono bangą geriausiai atspindi antrinio vaizdo efektas.

6 žingsnis: iškirpkite judantį vaizdą

Iškirpkite judantį vaizdą
Iškirpkite judantį vaizdą
Iškirpkite judantį vaizdą
Iškirpkite judantį vaizdą

Padalinkite vaizdą į tris dalis, kurios tilps ant kiekvieno dviračio, ir padalinkite iš viso 12 vaizdų pagal spalvą ir judesį.

7 žingsnis: Paruoškite programinę įrangą

Programinės įrangos paruošimas
Programinės įrangos paruošimas
Programinės įrangos paruošimas
Programinės įrangos paruošimas

1 dalis. Įdiekite „Arduino“

„Arduino“atsisiuntimas:

(Įdiekite, kad atitiktų jūsų OS versiją ir sistemą.)

-

2 dalis. Įdiekite biblioteką

*(Jei norite įdiegti naudodami „Github“, apsilankykite virš „Github Arduino“bibliotekos esančioje nuorodoje:

1. Paleiskite „Arduino“programą

2. Leisti nuorodą Viršutinis meniu - eskizas - įtraukti biblioteką - pridėti. Zip biblioteką

3. Turėtumėte pasirinkti. Zip failą, kuriame jau įdiegta „github“biblioteka4

*(Jei norite naudotis „Arduino“programos paslaugomis)

1. Paleiskite „Arduino“programas

2. Leiskite nuorodą Viršutinis meniu - eskizas - įtraukite biblioteką - valdymo biblioteka - ieškodami „Adafruit neopixel“- galite pamatyti „Adafruit Neopixel by Adafruit“

3. Įdiekite ir atnaujinkite biblioteką

-

3 dalis. Įdiekite keitiklio programą

1. Įdiekite „Rotation Circle“programą (R. C. P):

2. Turite perskaityti README failą

8 žingsnis: gaminkite aparatūros maitinimo šaltinį

Techninės įrangos maitinimo šaltinio gamyba
Techninės įrangos maitinimo šaltinio gamyba
Techninės įrangos maitinimo šaltinio gamyba
Techninės įrangos maitinimo šaltinio gamyba
Techninės įrangos maitinimo šaltinio gamyba
Techninės įrangos maitinimo šaltinio gamyba

*Štai kaip tiekti „Arduino“5 V įtampą per akumuliatorių. Atlikite toliau nurodytus veiksmus.

1. Prijunkite ličio bateriją ir JBATT įkrovimo modulį. (Pavyzdžiui, JBATT modulyje yra įmontuotas maitinimo jungiklis.)

2. Prijunkite JBATT išvesties terminalą prie „Arduino“ir „Ground“terminalo „Vin“terminalo.

3. Prijunkite „Micro 5pin“USB prievadą prie įkrovimo prievado, kad patikrintumėte, ar gaminys tinkamai veikia.

4. Tada pasukite įmontuotą jungiklį į ON.

5. Jei raudona lemputė užsidega, o žalia lemputė užsidega „Arduino“, gaminio maitinimo pakopos konfigūracija užbaigiama įprastai.

9 veiksmas: aparatinės įrangos įvesties/išvesties atlikimas ir išvesties tikrinimas (veikiantis „NeoPixel“)

Aparatūros įvesties/išvesties kūrimas ir išvesties tikrinimas (veikiantis „NeoPixel“)
Aparatūros įvesties/išvesties kūrimas ir išvesties tikrinimas (veikiantis „NeoPixel“)
Aparatūros įvesties/išvesties kūrimas ir išvesties tikrinimas (veikiantis „NeoPixel“)
Aparatūros įvesties/išvesties kūrimas ir išvesties tikrinimas (veikiantis „NeoPixel“)
Aparatūros įvesties/išvesties kūrimas ir išvesties tikrinimas (veikiantis „NeoPixel“)
Aparatūros įvesties/išvesties kūrimas ir išvesties tikrinimas (veikiantis „NeoPixel“)

*Šią dalį sudaro jutiklis ir išėjimo pakopa

1. Prijunkite „Arduino“ir „Hall“jutiklius. Duomenų kaištis jungiasi prie „Arduino“kaiščio 2.

2. Kai „Arduino“įjungiamas ir magnetas artimai liečiasi su „Hall“jutikliu, užsidegs raudona lemputė.

3. Prijunkite „Arduino“ir „Neopixel“. Naudojama tik 30 neopikselių.

4. Prijunkite duomenų kaištį prie „Arduino“kaiščio 6.

5. Prijunkite „Arduino“ir atsisiųskite kabelį prie kompiuterio USB prievado ir paleiskite „Arduino“savo kompiuteryje.

6. Pasirinkite įrankį - lentą - „Arduino / Genuino Mega arba Mega 2560“iš viršutinės „Arduino“programos meniu juostos.

7. Patikrinkite, ar yra produktų, kuriuos galima tiesiogiai prijungti prie uosto, sąrašas. Jei jis nepažymėtas, spustelėkite jį pasirinkti.

8. Įklijuokite žemiau esantį kodą ir viršuje kairėje spustelėkite Įkelti. (Vėliau visi programų įkėlimai atliekami 5–8 veiksmais.)

9. Konfigūracija baigta, kai įjungiami visi 30 priartintų taškų.

#1. įskaitant antraštės failą ir išankstinį apdorojimą

Pirmiausia turime atsinešti biblioteką „Adafruit_NeoPixel“, galinčią veikti neopikselius.

Biblioteka gali būti naudojama deklaruojant objektus.

„Adafruit_NeoPixel“klasė gali viešai įvesti 3 parametrus.

Pirmasis parametras yra šviesos diodų skaičius.

sekundžių parametras yra kaiščio numeris, prijungtas prie „Neopixel“skaitmeninės įvesties.

Trečias parametras yra įvesties parinktys pagal produkto savybes. trijų spalvų WS2812b gaminys naudoja „NEO_GRB“įvestį

#įtraukti

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

#2. sąranka

Sąrankos dalyje inicijuokite objektą ir paruoškite jį naudoti.

„Adafruit_Neopixle_Object.begin ()“nustato, kad visi šviesos diodai išsijungtų.

„Adafruit_Neopixle_Object.show ()“išvestis su šviesos diodo nustatytu ryškumu.

void setup () {

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

#3. pagrindinė kilpa

Pagrindinės kilpos veiksmas naudoja ciklą, kad nuosekliai (0,1 sekundės) išvestų baltos spalvos šviesos diodus

void loop () {

for (uint16_t i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, 255, 255, 255); strip.show (); vėlavimas (100); }}

10 žingsnis: Surinkite ir pritvirtinkite prie rato

Surinkimas ir tvirtinimas prie rato
Surinkimas ir tvirtinimas prie rato
Surinkimas ir tvirtinimas prie rato
Surinkimas ir tvirtinimas prie rato

1. Prijunkite neopikselius. (Atkreipkite dėmesį į PIN kodo tikrinimą)

2. Prijunkite „Hall“jutiklį. (Žr. 9 veiksmą)

3. Pritvirtinkite rėmą prie „Arduino“tarp dviračių. (Pritvirtinkite „Arduino“dėklą lygiagrečiai prie dviračio rėmo).

4. Įdėkite „Arduino“, prijungtą prie „Neopixel“. (Būkite atsargūs, nes klijų pistoletas yra karštas).

5. Įkiškite prijungtą „Hall“jutiklį į „Arduino“, (pritvirtinkite laido kaklaraištį, kad „Hall“jutiklis nenukristų).

6. Lituoklis akumuliatoriui prijungti. (Lituodami būkite atsargūs).

7. Pritvirtinkite jį klijų pistoletu. (Norėdami pritvirtinti vietą, pritvirtinkite įkrovimo modulį prie akumuliatoriaus).

8. Prijunkite kiekvieną liniją prieš prisijungdami prie „Arduino“, 9. Prijunkite kištuką pagal kiekvieną kaiščio numerį. (Prijunkite įkrovimo modulio šuolio linijas, jų nepainiodami).

10. Vieną kartą užbaikite klijų pistoletu, (būkite atsargūs, kad nenukristumėte).

11 veiksmas: ĮVADO (HALL jutiklio duomenų) tikrinimas

ĮVADO (HALL jutiklio duomenų) tikrinimas
ĮVADO (HALL jutiklio duomenų) tikrinimas
ĮVADO (HALL jutiklio duomenų) tikrinimas
ĮVADO (HALL jutiklio duomenų) tikrinimas
ĮVADO (HALL jutiklio duomenų) tikrinimas
ĮVADO (HALL jutiklio duomenų) tikrinimas

*Patikrinkite programinės įrangos kodą, ar jutiklis veikia.

1. Įklijuokite ir įkelkite žemiau esantį kodą.

2. Spustelėkite serijos monitoriaus mygtuką, esantį „Arduino“viršuje, dešinėje.

3. Kai magnetas ilgiau nei 1 sekundę liečiasi su Hall jutikliu, konfigūracija baigiama, kai serijiniame monitoriuje atsiranda žodis „contact magnet“.

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- #1. Nustatykite PIN kodą ir sąranką

Pirmasis konfigūracijos kaiščio numeris, skirtas naudoti Hall jutiklį ir nustatyti PIN kodą kaip tik įvesties prievadą.

Nustatykite ryšį, kad serijiniame monitoriuje būtų patikrinti Hall jutiklio duomenys.

#define HALL 2

void setup () {pinMode (HALL, INPUT); Serial.begin (9600); }

#2. pagrindinė kilpa

Patikrinkite „Hall“jutiklio duomenis 0,1 sekundės intervalu.

Jei magnetas aptinkamas ir duomenys keičiami, „kontaktinis magnetas“išvedamas į nuoseklųjį monitorių.

void loop () {

if (digitalRead (HALL)) {Serial.println ("contact magnet"); } uždelsimas (100); }

12 žingsnis: kodavimo algoritmas

*Sukurkite logiką ir kodavimą, kad galėtumėte valdyti neopikselius pagal jutiklio vertes.

1. Įklijuokite ir įkelkite žemiau esantį kodą.

2. Normalu, kad vaizdas nerodomas tinkamai, nes nesukuriamas rėmelis. Bet jūs galite pamatyti, kad tai veikia maždaug.

3. Greitai palieskite ir atleiskite Hall jutiklį ir magnetą per 1 sekundę. Pakartokite šią operaciją maždaug 10 kartų.

4. Konfigūracija baigta, kai neopikselių spalvos reguliariai keičiasi.

#1. Įskaitant antraštės failus ir išankstinį apdorojimą

Pirma, turime suprasti, kad „Arduino Mega“atmintis nėra pakankamai didelė, kad būtų galima laikyti vaizdo failą.

Todėl antraštės failas „avr/pgmspace“naudojamas skirtingai atminties vietai išnaudoti.

Norėdami naudoti neopikselius, objektą ir konfigūraciją paskelbiate įvesties/išvesties kaiščio numeriu.

Vaizdų masyvas yra per didelis kodavimui, todėl atsisiųskite ir įklijuokite pridėtus failus.

#įtraukti

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

#2. Visuotinis kintamasis ir sąranka

Nustatykite visuotinį kintamąjį.

Svarbiausia yra nustatyti ryškumą, tai lemia produkto gyvavimo ciklą.

int skaičius = 0;

dvigubas v = 0; dvigubas paskutinis_v = 0; dvigubas laikmatis = micros (); dvigubas ex_timer = micros (); dvigubas paskutinis_laikmatis = micros (); int deg = 36; int pix = 35; int rgb = 3; dvigubas q_arr [2] = {0, 0}; int HALL_COUNT = 0; dvigubas VELO; dvigubas apdorojimo laikmatis = micros (); void setup () {strip.setBrightness (255); strip.begin (); strip.show (); Serial.begin (230400); }

#3. pagrindinė kilpa - vaizdo išraiškos išvesties dalis

Šis kodas yra sąlyginis teiginys apie tai, kaip rato sukimosi laiką išmatuoti pagal skiriamąją gebą.

Šioje dalyje dviračio rato sukimo ciklas naudojamas kaip labai svarbus parametras.

Be to, svarbu skaityti vaizdų masyvo duomenis iš atminties.

void loop () {

if ((skaičius (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 [skaičius] [1])), pgm_read_byte (& (image_1 [count] [2])), pgm_read_byte (& (image_1 [count] [0])))); } strip.show (); } else if (VELO 264000) {for (int i = 0+5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Color (pgm_read_byte (& (image_2 [skaičius] [1])), pgm_read_byte (& (image_2 [skaičius] [2])), pgm_read_byte (& (image_2 [skaičius] [0])))); } strip.show (); } else if (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 (); } else if (VELO <= 204000) {for (int i = 0 + 5; i = 120)) {for (int i = 0 + 5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Spalva (0, 0, 0)); } strip.show (); }

#4. pagrindinė kilpa - apdorojimas ir ciklo laiko tikrinimas bei jutimas

Tai yra svarbiausia visos sistemos dalis.

Pirmiausia patikrinkite viso kodo vykdymo laiką ir sureguliuokite šviesos diodų išėjimo laiką per ciklą.

Laikas, nustatytas kiekvieną kartą, kai ratas sukasi, numato kito ciklo laiką.

Pagreitį galima įvertinti atėmus paskutinį išmatuotą ciklo laiką iš laiku išmatuoto ciklo laiko.

Sistema apskaičiuoja apdorojimo laiką ir pagreitį, kad apskaičiuotų, kiek laiko šviesos diodai nuolat įsijungia.

processing_timer = micros ();

if ((digitalRead (HALL) == HIGH) && (HALL_COUNT == 1)) {VELO = v; v = micros () - paskutinis laikmatis; ex_timer = q_arr [0] - q_arr [1] + v; last_timer = micros (); q_arr [0] = q_arr [1]; q_arr [1] = v; skaičius = 0; HALL_COUNT = 0; } else if (digitalRead (HALL) == LOW) {HALL_COUNT = 1; }}

13 veiksmas: programinės įrangos naudojimas

Programinės įrangos naudojimas
Programinės įrangos naudojimas
Programinės įrangos naudojimas
Programinės įrangos naudojimas
Programinės įrangos naudojimas
Programinės įrangos naudojimas

*Naudokite programinę įrangą, kad pakeistumėte vaizdą ir įterptumėte procesijos duomenis į kodą

1. Įdėkite vaizdą iš aukščiau aprašyto veiksmo į vaizdų aplanką aplanke R. C. P, įdiegtame paruošimo etape.

- Kaip įdėti vaizdą, yra taip.- Pervardykite 4 animuotus 1 produkto vaizdus eilės tvarka 1.png, 2.png, 3-p.webp

2. Paleiskite „Ver.5.exe“failą.

3. Patikrinkite, ar aplanke R. C. P sukurta 12 failų pro_1_code_1.txt - pro_3_code_4.txt.

4. Jei jis nesukurtas, pakeiskite config.txt turinį kaip šį konfigūracijos failą.

5. Kai failas bus sukurtas, nukopijuokite visą turinį iš failo pro_1_code_1.txt ir įklijuokite jį į toliau pateiktame kode nurodytą dalį.

6. Į pažymėtą dalį įtraukite 5 eilės eilutę pro_1_code_2.txt, pro_1_code_3.txt ir pro_1_code_4.txt.

7. Remiantis 5 ir 6, pro_2_code…, pro_3_code užbaigia kodą taip pat.

14 žingsnis: Užbaikite

Užbaigtas
Užbaigtas
Užbaigtas
Užbaigtas
Užbaigtas
Užbaigtas

Baigta gaminti POV, kuri sukuria vieną vaizdą su trimis ratais.

Rekomenduojamas: