Turinys:
- 1 žingsnis: idėjos koncepcija
- 2 žingsnis: medžiagų sąrašas
- 3 žingsnis: įrankiai
- 4 žingsnis: rėmo gamyba
- 5 žingsnis: galutinių vaizdų ir koncepcijų eskizas
- 6 žingsnis: iškirpkite judantį vaizdą
- 7 žingsnis: Paruoškite programinę įrangą
- 8 žingsnis: gaminkite aparatūros maitinimo šaltinį
- 9 veiksmas: aparatinės įrangos įvesties/išvesties atlikimas ir išvesties tikrinimas (veikiantis „NeoPixel“)
- 10 žingsnis: Surinkite ir pritvirtinkite prie rato
- 11 veiksmas: ĮVADO (HALL jutiklio duomenų) tikrinimas
- 12 žingsnis: kodavimo algoritmas
- 13 veiksmas: programinės įrangos naudojimas
- 14 žingsnis: Užbaikite
Video: „Digilog_Bike POV“ekranas: 14 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
„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
POV įgyvendinamas pritvirtinus LED dirželį prie dviračio rato.
2 žingsnis: 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
Į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
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
Paskutinį vaizdą pasirinkome drakoną. Nes atrodė, kad drakono bangą geriausiai atspindi antrinio vaizdo efektas.
6 žingsnis: 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ą
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į
*Š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“)
*Š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
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
*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
*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
Baigta gaminti POV, kuri sukuria vieną vaizdą su trimis ratais.
Rekomenduojamas:
„Bluetooth“valdomas „Messenger“skystųjų kristalų ekranas -- 16x2 skystųjų kristalų ekranas -- Hc05 -- Paprasta -- Belaidžio ryšio skelbimų lenta: 8 žingsniai
„Bluetooth“valdomas „Messenger“skystųjų kristalų ekranas || 16x2 skystųjų kristalų ekranas || Hc05 || Paprasta || Belaidžio ryšio skelbimų lenta: …………………………. Prenumeruokite mano „YouTube“kanalą, kad gautumėte daugiau vaizdo įrašų …… ………………………………… Skelbimų lenta naudojama žmonėms atnaujinti nauja informacija arba jei norite išsiųsti pranešimą kambaryje arba po
TTGO (spalvotas) ekranas su mikropitonu (TTGO T-ekranas): 6 žingsniai
TTGO (spalvotas) ekranas su „Micropython“(TTGO T-ekranas): „TTGO T-Display“yra plokštė, pagrįsta ESP32, kurioje yra 1,14 colio spalvotas ekranas. Lentą galima nusipirkti už mažesnį nei 7 USD prizą (įskaitant pristatymą, prizas matomas „banggood“). Tai neįtikėtinas prizas už ESP32, įskaitant ekraną. T
Vienas POV ekranas valdo juos visus!: 10 žingsnių (su nuotraukomis)
Vienas POV ekranas, skirtas visiems taisyklėms!: Motyvacija Man labai patinka POV (regėjimo atkaklumo) ekranai! Juos ne tik įdomu pažvelgti, bet ir didelis iššūkis juos plėtoti. Tai tikrai tarpdisciplininė užduotis. Jums reikia daug įgūdžių: mechaninio, elektroninio, programavimo ir
Arduino horizontalus POV ekranas: 3 žingsniai
„Arduino“horizontalus POV ekranas: paprasčiausias POV ekranas su 5LED ir „Arduino Nano“
„PropHelix“- 3D POV ekranas: 8 žingsniai (su nuotraukomis)
„PropHelix“- 3D POV ekranas: žmones visada žavėjo holografiniai vaizdai. Yra keletas būdų tai padaryti. Savo projekte naudoju besisukančią LED juostų spiralę. Iš viso yra 144 šviesos diodai, kurie gali parodyti 17280 vokselių su 16 spalvų. Vokseliai yra masyvai