Turinys:

Sukurkite savo POV ekraną: 3 žingsniai
Sukurkite savo POV ekraną: 3 žingsniai

Video: Sukurkite savo POV ekraną: 3 žingsniai

Video: Sukurkite savo POV ekraną: 3 žingsniai
Video: Высокая плотность 2022 2024, Liepa
Anonim
Sukurkite savo POV ekraną
Sukurkite savo POV ekraną

Vizijos suvokimas (POV) arba regėjimo atkaklumas (jis turi keletą variantų) yra įdomus žmogaus regėjimo reiškinys, atsirandantis, kai vizualinis objekto suvokimas nenustoja, nepaisant to, kad keičiasi objekto padėtis. Žmonės mato vaizdą sekundžių dalimis; šie vaizdai išsaugomi smegenyse labai trumpą laiką (akimirksniu). Šio reiškinio pavyzdys yra stebint apšvietimo šaltinį, pvz., Šviesos diodus ar lemputes, įjungtas ir sukamas. Mūsų vizija yra apgaulinga manant, kad besisukanti šviesa iš tikrųjų yra tęstinis apskritimas, panašiai kaip ištisinis apskritimas, suformuotas iš plokštumoje besisukančio sraigto. POV buvo naudojamas daugelį metų, pradedant gifoskopu, siekiant sukurti įvairias iliuzijas ir animaciją mūsų regėjimui; jis dažnai naudojamas rodyti pranešimus ir animacijas ekranuose, naudojant šviesos diodus, sukant juos 2D arba 3D formatu, kad būtų galima gauti įvairių rūšių pranešimus. Šios programos pastabos tikslas yra suprojektuoti ir pademonstruoti, kaip veikia „Vision Perception“, parašant žodį „SILEGO“statomame ekrane ir pateikti idėjų, padėsiančių ateityje kurti sudėtingesnius dizainus. Šiam projektui naudojome „Dialog GreenPAK ™ SLG46880“su lizdų komplektu, kuris leidžia šį prototipą lengvai prijungti prie visų išorinių komponentų naudojant kabelius. Didesnio „GreenPAK“naudojimas bendros paskirties POV ekranams kurti yra labai naudingas dėl tvirtų komponentų, tokių kaip ASM posistemiai, kurie leis ekrane spausdinti bet kokį modelį. Ši programa parodys galutinį rezultatą naudojant SLG46880.

Žemiau aprašėme veiksmus, kurių reikia norint suprasti, kaip „GreenPAK“lustas buvo užprogramuotas sukurti POV ekraną. Tačiau, jei norite gauti programavimo rezultatą, atsisiųskite „GreenPAK“programinę įrangą, kad peržiūrėtumėte jau užpildytą „GreenPAK“dizaino failą. Prijunkite „GreenPAK Development Kit“prie kompiuterio ir paspauskite programą, kad sukurtumėte pasirinktinį POV ekrano IC.

1 žingsnis: schemos

Schemos
Schemos

Šis POV ekrano pavyzdys skirtas 2D tipui, parodytam 1 paveiksle, kuriame yra vienuolika šviesos diodų (kiekvienas su rezistoriais srovei reguliuoti), kurie yra tiesiogiai prijungti prie skirtingų „GreenPAK CMIC“GPO kaiščių. Grandinė yra prototipinė ir lituojama į PCB plokštes. Ekranui naudojamas maitinimo šaltinis yra 9 V 10 A L1022 šarminė baterija, prijungta prie įtampos reguliatoriaus grandinės naudojant LM7805V, kurios išvestis yra 5 V. valdymo schema, pritvirtinta prie pritaikyto stovo. Šiuo atveju buvo naudojamas 12 V variklis, prijungtas prie pagrindinio jungiklio ir reguliuojamas maitinimo šaltinis, kuris per sukamąjį jungiklį išleidžia skirtingus įtampos lygius ir leidžia varikliui suktis keliais greičiais.

2 žingsnis: „GreenPAK“dizainas

„GreenPAK“dizainas
„GreenPAK“dizainas
„GreenPAK“dizainas
„GreenPAK“dizainas
„GreenPAK“dizainas
„GreenPAK“dizainas
„GreenPAK“dizainas
„GreenPAK“dizainas

Kurdami skirtingus pranešimus ir animacijas POV ekranui naudodami „GreenPAK“, turėtume žinoti ir lusto įrankius, ir apribojimus. Tokiu būdu mes galime sukurti profesionalų dizainą, naudojant mažiausiai elektronikos komponentų, kad būtų pasiektas POV ekranas. Šis dizainas naudoja naujus SLG46880 CMIC teikiamus pranašumus, daugiausia dėmesio skiriant asinchroninės būsenos mašinų posistemių komponentui. SLG46880 ASM posistemio įrankis gali būti pranašesnis už ankstesnius „GreenPAK“ASM įrankius dėl naujų funkcijų, kurios leidžia sudėtingesnius būsenos mašinų dizainus. Kai kurie atitinkami ASM posistemių vidiniai komponentai yra šie:

● 12 valstybių ASM Macrocell

● Dinaminės atminties (DM) „Macrocell“

● F (1) „Macrocell“skaičiavimas

● Nepriklausomi valstybės komponentai

Kuo daugiau būsenos mašinos makroelementų mikroschema leidžia kurti ir konfigūruoti, tuo daugiau dizaino galimybių. Kiekviena iš dvylikos būsenų buvo naudojama rašyti skirtingas rodomo žodžio dalis, įjungiant/išjungiant skirtingus šviesos diodų derinius, kai kurie buvo kartojami du ar daugiau kartų, o kai kuriais atvejais pasikartojančių būsenų laikas keičiamas, nes tas pats modelis gali būti naudojamas skirtingoms raidėms skirtingu metu. Būsenos išdėstytos 1 lentelėje.

1 lentelėje parodyta, kaip kiekviena esama dizaino būsena yra susijusi su raidėmis žodyje „SILEGO“. Tai atitinka 2 paveiksle pavaizduotą šviesos diodų konfigūraciją.

Kaip galite pastebėti, visos būsenos, įvykdytos skirtingu laiku, pasiekia visą žodžio struktūrą, 3 paveiksle parodyta, kaip būsenos yra sujungtos/susijusios. Visi būsenos perėjimai yra milisekundžių tvarka, o kiekvienas 2 paveikslo diagramos stulpelis reiškia vieną milisekundę (1 ms). Kai kurios būsenos trunka 3 ms, 4 ms ir kitos, pakankamai ilgai su mažiausiu variklio, naudojamo vaizdo demonstravimui, greičiu, esant maždaug 460 aps./min.

Svarbu atsižvelgti ir išmatuoti variklio greitį, kad žinotumėte ir apskaičiuotumėte laiką pagal bendrą paskirtį. Tokiu būdu pranešimas gali būti sinchronizuojamas su variklio greičiu ir taip matomas žmogaus akims. Kitas svarstymas, kaip būsenų perėjimą padaryti mažiau pastebimą ir aiškesnį mūsų vizijai, yra padidinti variklio greitį iki daugiau nei 1000 aps./min., O būsenos laikas nustatytas mikrosekundžių tvarka, kad pranešimas būtų matomas sklandžiai. Galbūt klausiate savęs, kaip sinchronizuoti variklio greitį su pranešimo ar animacijos greičiu? Tai pasiekiama keliomis paprastomis formulėmis. Jei jūsų variklio apsisukimų dažnis yra 1000 aps./min., Norėdami sužinoti, kiek laiko DC variklis užima vieną apsisukimą per kelias sekundes, tada:

Dažnis = 1000 aps / min / 60 = 16,67 Hz Periodas = 1 / 16,67 Hz = 59,99 ms

Žinodami laikotarpį, jūs žinote, kiek laiko variklis užima posūkį. Jei norite išspausdinti tokį pranešimą kaip „Labas pasaulis“, kai žinote kiekvieno posūkio laikotarpį, svarbu tik tai, kokio dydžio norite, kad pranešimas būtų rodomas ekrane. Norėdami išspausdinti norimą pranešimą norimo dydžio, laikykitės šios nykščio taisyklės:

Jei, pavyzdžiui, norite, kad pranešimas užimtų 40 % ekrano vietos, tada:

Pranešimo dydis = (laikotarpis * 40 %) / 100 % = (59,99 ms * 40 %) / 100 % = 24 ms

Tai reiškia, kad pranešimas apie kiekvieną posūkį bus rodomas 24 ms, todėl tuščia arba likusi posūkio dalis (jei po pranešimo nieko nerodote) turėtų būti:

Tuščia erdvė = periodas - pranešimo dydis = 59,99 ms - 24 ms = 35,99 ms

Galiausiai, jei jums reikia parodyti pranešimą tuo 40% laikotarpio, turite žinoti, kiek būsenų ir perėjimų pranešime reikės parašyti laukiamą pranešimą, pavyzdžiui, jei pranešime yra dvidešimt (20) perėjimų, tada:

Vienos būsenos laikotarpis = pranešimo dydis / 20 = 24 ms / 20 = 1,2 ms.

Taigi kiekviena būsena turėtų trukti 1,2 ms, kad pranešimas būtų rodomas teisingai. Žinoma, pastebėsite, kad dauguma pirmųjų dizainų nėra tobuli, todėl fizinio bandymo metu galite pakeisti kai kuriuos parametrus, kad pagerintumėte dizainą. Norėdami palengvinti būsenos perėjimą, naudojome dinaminės atminties (DM) makroelementus. Du iš keturių DM blokų turi matricines jungtis, kad galėtų sąveikauti su blokais, esančiais už ASM posistemio ribų. Kiekvienas „DM Macrocell“gali turėti iki 6 skirtingų konfigūracijų, kurias galima naudoti skirtingose būsenose. Šioje konstrukcijoje naudojami DM blokai, kurie skatina ASM pereiti iš vienos būsenos į kitą. Pavyzdžiui, Silego [3] būsena perėjimuose kartojama du kartus; reikia parašyti didžiosios „I“raidės, kuri turi tą patį raštą, pradžią ir pabaigą, bet pirmiausia ji turi eiti į „Silego“[4], kad parašytų didžiosios raidės „I“vidurio modelį, o tada, kai „Silego“[3] vykdomas antrą kartą, jis turi pereiti į būseną „Nėra pranešimo“, tęsiant likusius perėjimus. Kaip galima išvengti „Silego“[3] patekimo į begalinę kilpą naudojant „Silego“[4]? Tai paprasta, yra keletas LUT, sukonfigūruotų kaip „SR Flip Flops“, kurie nurodo „Silego“[3] nesirinkti „Silego“[4] vėl ir vėl, bet antrą kartą pasirinkti būseną „Nėra pranešimo“. Naudojant „SR Flip Flops“, kad būtų išvengta begalinių kilpų, kai pasikartoja bet kuri būsena, yra puikus būdas išspręsti šią problemą ir reikalingas tik 3 bitų LUT, sukonfigūruotas, kaip parodyta 4 paveiksle ir 5 paveiksle. Šis procesas vyksta tuo pačiu metu, kai ASM išvestis priverčia „Silego“[3] pereiti prie „Silego“[4], todėl kitą kartą, kai būsenos mašina vykdys „Silego“[3], ji bus informuota, kad tęstų procesą pasirinkti „Nėra pranešimo“.

Kitas ASM blokas, kuris buvo naudingas šiam projektui, yra „F (1) Computational Macrocell“. F (1) gali atlikti tam tikrų komandų, skirtų skaityti, saugoti, apdoroti ir išvesti norimus duomenis, sąrašą. Jis vienu metu gali manipuliuoti 1 bitu. Šiame projekte F (1) blokas buvo naudojamas skaityti, atidėti ir išvesti bitus, kad būtų galima valdyti kai kuriuos LUT ir įgalinti būsenas (pvz., „Silego“[1], kad įjungtų „Silego“[2]).

1 paveikslo lentelėje paaiškinta, kaip kiekvienas šviesos diodas nukreipiamas į „GreenPAK“GPO kaiščius; susiję fiziniai kaiščiai adresuojami iš matricos ASM išvesties RAM, kaip parodyta 2 lentelėje.

Kaip matote 2 lentelėje, kiekvienas lusto kaištis buvo skirtas skirtingiems ASM išėjimams; ASMOUTPUT 1 turi aštuonis (8) išėjimus, kurie visi yra tiesiogiai prijungti prie išorinių GPO, išskyrus OUT 4. ASM OUTPUT 0 turi keturis (4) išėjimus, kuriuose OUT 0 ir OUT 1 yra tiesiogiai prijungti prie atitinkamai PIN 4 ir PIN 16; OUT 2 naudojamas iš naujo nustatyti LUT5 ir LUT6 Silego [5] ir Silego [9] būsenose, o galiausiai OUT 3 naudojamas nustatyti LUT6 Silego [4] ir Silego [7]. Šiame modelyje „ASM nRESET“nėra perjungtas, todėl jis tiesiog priverstas HIGH būti prijungtas prie VDD. Prie šio projekto buvo pridėti viršutiniai ir apatiniai šviesos diodai, kad būtų rodoma papildoma animacija, kol rodomas „SILEGO“. Ši animacija yra apie kelias eilutes, kurios laikui bėgant sukasi variklio judesiu. Šios linijos yra balti šviesos diodai, o raidėms rašyti naudojamos raudonos spalvos. Norėdami pasiekti šią animaciją, mes naudojome „GreenPAK“PGEN ir CNT0. PGEN yra modelio generatorius, kuris kiekviename laikrodžio krašte išves kitą bitą savo masyve. Mes padalijome variklio apsisukimo laikotarpį į 16 sekcijų, o rezultatas buvo nustatytas pagal CNT0 išėjimo laikotarpį. PGEN užprogramuotas modelis parodytas 6 paveiksle.

3 žingsnis: Rezultatai

Rezultatai
Rezultatai

Norėdami išbandyti dizainą, juostiniu kabeliu prijungėme SLG46880 lizdą prie PCB. Prie grandinės buvo prijungtos dvi išorinės plokštės, iš kurių vienoje buvo įtampos reguliatorius, o kitoje - LED matrica. Norėdami pradėti rodyti demonstracinį pranešimą, mes įjungėme loginę grandinę, kurią valdo „GreenPAK“, ir tada įjungėme nuolatinės srovės variklį. Norint tinkamai sinchronizuoti, gali tekti koreguoti greitį. Galutinis rezultatas parodytas 7 paveiksle. Taip pat yra susijęs vaizdo įrašas su šia programos pastaba.

Šiame projekte pateiktas „Vision Display“suvokimas buvo sukurtas naudojant „Dialog GreenPAK SLG46880“kaip pagrindinį valdiklį. Mes parodėme, kad dizainas veikia rašant žodį „SILEGO“naudojant šviesos diodus. Kai kurie dizaino patobulinimai gali būti:

● Naudojant kelis „GreenPAK“, norint padidinti būsenų galimybes spausdinti ilgesnį pranešimą ar animaciją.

● Prie masyvo pridėkite daugiau šviesos diodų. Gali būti naudinga naudoti ant paviršiaus montuojamus šviesos diodus, o ne per skylutes, kad sumažėtų besisukančios rankos masė.

● Įtraukus mikrovaldiklį, galite pakeisti rodomą pranešimą naudodami I2C komandas, norėdami iš naujo sukonfigūruoti „GreenPAK“dizainą. Tai gali būti naudojama kuriant skaitmeninį laikrodžio ekraną, kuris atnaujina skaitmenis, kad būtų tiksliai rodomas laikas

Rekomenduojamas: