Cuprins:

Creați-vă propriul afișaj POV: 3 pași
Creați-vă propriul afișaj POV: 3 pași

Video: Creați-vă propriul afișaj POV: 3 pași

Video: Creați-vă propriul afișaj POV: 3 pași
Video: Trucul pentru a face o persoana sa se îndragosteasca de tine 2024, Septembrie
Anonim
Creați-vă propriul afișaj POV
Creați-vă propriul afișaj POV

Percepția viziunii (POV) sau Persistența viziunii (are mai multe variații) este un fenomen interesant de vedere uman care apare atunci când percepția vizuală a unui obiect nu încetează în ciuda schimbării poziției obiectului. Ființele umane văd o imagine în intervale de fracțiuni de secunde; aceste imagini sunt salvate în creier pentru un timp foarte scurt (o clipă). Un exemplu al acestui fenomen este atunci când observați o sursă de iluminare, cum ar fi LED-uri sau becuri, pornită și rotită. Viziunea noastră este păcălită să creadă că lumina rotitoare este de fapt un cerc continuu, la fel ca cercul continuu format dintr-o elice rotativă pe un plan. POV a fost folosit de mulți ani, începând cu gifoscopul, pentru a face diferite tipuri de iluzii și animații viziunii noastre; este frecvent utilizat pentru a afișa mesaje și animații pe afișaje folosind LED-uri, rotindu-le în 2D sau 3D pentru diferite tipuri de mesaje. Obiectivul acestei note de aplicație este de a proiecta și demonstra modul în care funcționează Percepția viziunii, scriind cuvântul „SILEGO” pe ecranul care urmează să fie construit și să ofere idei care să vă ghideze prin procesul de realizare a unor designuri mai complexe în viitor. Pentru acest proiect, am folosit un Dialog GreenPAK ™ SLG46880, cu kitul său de soclu care permite conectarea ușoară a acestui prototip la toate componentele externe folosind cabluri. Utilizarea GreenPAK mai mare pentru a proiecta afișaje POV de uz general este foarte avantajoasă datorită componentelor sale robuste, cum ar fi subsistemele ASM, care vă vor permite să imprimați orice tip de model pe afișaj. Această aplicație va afișa un rezultat final folosind un SLG46880.

Mai jos am descris pașii necesari pentru a înțelege cum a fost programat cipul GreenPAK pentru a crea afișajul POV. Cu toate acestea, dacă doriți doar să obțineți rezultatul programării, descărcați software-ul GreenPAK pentru a vizualiza fișierul de proiectare GreenPAK deja finalizat. Conectați kitul de dezvoltare GreenPAK la computer și apăsați programul pentru a crea un IC personalizat pentru afișajul POV.

Pasul 1: Scheme

Scheme
Scheme

Acest exemplu de afișare POV vizează un tip 2D prezentat în Figura 1, care are o serie de unsprezece LED-uri (fiecare cu rezistențe pentru reglarea curentului) conectate direct la diferiți pini GPO de pe GreenPAK CMIC. Circuitul este prototipat și lipit în panouri PCB. Sursa de alimentare utilizată pentru afișaj este o baterie alcalină L1022 de 9 V 10 A, conectată la un circuit regulator de tensiune folosind LM7805V care produce 5 V. În plus față de afișarea rotirii, este nevoie de un motor DC cu suficientă putere pentru a mișca toate circuite de control atașate la suportul personalizat. În acest caz, a fost utilizat un motor de 12 V, conectat la un comutator principal și o sursă de alimentare reglementată de la raft, care transmite diferite niveluri de tensiune printr-un comutator rotativ, permițând motorului să se rotească la mai multe viteze.

Pasul 2: Proiectare GreenPAK

Proiectare GreenPAK
Proiectare GreenPAK
Proiectare GreenPAK
Proiectare GreenPAK
Proiectare GreenPAK
Proiectare GreenPAK
Proiectare GreenPAK
Proiectare GreenPAK

Când proiectăm diferite tipuri de mesaje și animații pentru un afișaj POV folosind GreenPAK, ar trebui să cunoaștem atât instrumentele, cât și limitările cipului. În acest fel putem crea un design competent, folosind cele mai puține componente electronice pentru a obține afișajul POV. Acest design folosește noile avantaje oferite de SLG46880 CMIC, cu accent pe componenta subsistemelor mașinii de stat asincrone. Instrumentul pentru subsistemul ASG SLG46880 poate fi mai avantajos decât instrumentele ASP GreenPAK anterioare datorită noilor sale caracteristici, care permit designuri mai complexe ale mașinilor de stat. Unele dintre componentele interne relevante ale subsistemelor ASM utilizate sunt:

● 12-State ASM Macrocell

● Macrocell cu memorie dinamică (DM)

● F (1) Macrocell de calcul

● Componente independente de stat

Cu cât cipul permite să creeze și să configureze mai multe macrocelule de mașină de stat, cu atât sunt mai numeroase posibilitățile de proiectare. Fiecare dintre cele douăsprezece stări au fost folosite pentru a scrie fracții diferite ale cuvântului care urmează să fie afișat, activând / dezactivând combinații distincte de LED-uri, dintre care unele au fost repetate de două ori sau de mai multe ori, iar în unele cazuri temporizarea stărilor repetate este modificată, deoarece același model ar putea fi folosit pentru litere diferite în momente diferite. Statele sunt structurate în Tabelul 1.

Tabelul 1 arată cum fiecare dintre stările existente în proiectare este legată de literele din cuvântul „SILEGO”. Acest lucru se corelează cu configurația LED-ului prezentată în Figura 2.

După cum puteți observa, toate stările executate împreună la un moment diferit realizează construirea completă a cuvântului, Figura 3 arată cum sunt conectate / legate stările. Toate tranzițiile de stare sunt în ordinea milisecundelor și fiecare dintre coloanele din diagrama din Figura 2 reprezintă o milisecundă (1 ms). Unele dintre stări durează 3 ms, 4 ms și altele, suficient de mult, cu viteza minimă a motorului utilizat pentru demonstrația video la aproximativ 460 RPM.

Este important să se ia în considerare și să se măsoare viteza motorului pentru a cunoaște și a calcula temporizarea pe un proiect general. În acest fel, mesajul poate fi sincronizat cu viteza motorului, astfel vizibilă pentru ochiul uman. O altă considerație pentru a face tranziția stărilor mai puțin imperceptibilă și mai clară pentru viziunea noastră, este creșterea vitezei motorului la peste 1000 RPM și sincronizarea stărilor setate în ordinea microsecundelor, astfel încât mesajul să poată fi văzut fără probleme. S-ar putea să vă întrebați, cum ați sincroniza viteza motorului cu viteza mesajului sau a animației? Acest lucru este realizat de câteva formule simple. Dacă aveți o viteză a motorului de 1000 RPM, pentru a ști cât durează motorul continuu pe rotație în secunde, atunci:

Frecvența = 1000 RPM / 60 = 16,67 Hz Perioada = 1 / 16,67 Hz = 59,99 ms

Cunoscând perioada, știți cât durează motorul într-un viraj. Dacă doriți să imprimați un mesaj precum „Hello World”, odată ce cunoașteți perioada fiecărei runde, este doar o chestiune de cât de mare doriți ca mesajul să fie afișat. Pentru a imprima mesajul dorit la dimensiunea dorită, urmați această regulă generală:

Dacă, de exemplu, doriți ca mesajul să acopere 40% din spațiul afișajului, atunci:

Dimensiunea mesajului = (Perioadă * 40%) / 100% = (59,99 ms * 40%) / 100% = 24 ms

Asta înseamnă că mesajul va fi afișat în 24 ms pentru fiecare tură, astfel încât spațiul gol sau restul spațiului dintr-o tură (dacă nu afișați ceva după mesaj), ar trebui să fie:

Spațiu gol = Perioadă - Dimensiune mesaj = 59,99 ms - 24 ms = 35,99 ms

În cele din urmă, dacă trebuie să afișați mesajul la acel 40% din perioadă, trebuie să știți câte stări și tranziții va avea nevoie mesajul pentru a scrie mesajul așteptat, de exemplu dacă mesajul are douăzeci (20) de tranziții, atunci:

Perioada unei singure stări = Dimensiunea mesajului / 20 = 24 ms / 20 = 1,2 ms.

Deci, fiecare stare ar trebui să dureze 1,2 ms pentru a afișa corect mesajul. Desigur, ați observa că majoritatea primelor modele nu sunt perfecte, deci este posibil să modificați unii parametri în timpul testării fizice pentru a îmbunătăți designul. Am folosit macrocelule cu memorie dinamică (DM) pentru a facilita tranzițiile de stare. Două dintre cele patru blocuri DM au conexiuni matriciale, astfel încât să poată interacționa cu blocurile din afara subsistemului ASM. Fiecare Macrocell DM poate avea până la 6 configurații diferite care pot fi utilizate în diferite stări. Blocurile DM sunt utilizate în acest design pentru a declanșa ASM să treacă de la o stare la alta. De exemplu, starea Silego [3] se repetă de două ori pe parcursul tranzițiilor; trebuie să scrie începutul și sfârșitul literei majuscule „I” care are același tipar, dar mai întâi trebuie să meargă la Silego [4] pentru a scrie modelul mijlocului majusculei „I”, apoi când Silego [3] este executat pentru a doua oară, trebuie să treacă la starea Fără mesaj, continuând restul tranzițiilor. Cum este posibil să se prevină că Silego [3] să cadă într-o buclă infinită cu Silego [4]? Este simplu, există câteva LUT-uri configurate ca flip-flops SR care îi spun lui Silego [3] să nu aleagă Silego [4] de mai multe ori, ci să aleagă starea Fără mesaj pentru a doua oară. Utilizarea SR Flip Flops pentru a preveni buclele infinite atunci când se repetă oricare dintre stări este o modalitate excelentă de a rezolva această problemă și necesită doar un LUT de 3 biți configurat așa cum se arată în Figura 4 și Figura 5. Acest proces are loc în același timp cu ieșirea ASM face ca Silego [3] să meargă la Silego [4], astfel încât data viitoare când mașina de stat execută Silego [3], va fi notificat să aleagă starea Fără mesaj pentru a continua procesul.

Un alt bloc ASM care a fost util pentru acest proiect este F (1) Macrocell de calcul. F (1) poate efectua o listă de comenzi specifice pentru a citi, stoca, procesa și scoate datele dorite. Este capabil să manipuleze 1 bit pe rând. În acest proiect, blocul F (1) a fost utilizat pentru citirea, întârzierea și ieșirea biților pentru a controla unele LUT-uri și pentru a activa stările (cum ar fi în Silego [1] pentru a activa Silego [2]).

Tabelul din Figura 1 explică modul în care fiecare dintre LED-uri este adresat pinilor GPO ai GreenPAK; pinii fizici asociați sunt abordați din memoria de ieșire ASM din matrice, așa cum se arată în Tabelul 2.

După cum puteți vedea în Tabelul 2, fiecare pin al cipului a fost adresat ieșirilor ASM distincte; ASMOUTPUT 1 are opt (8) ieșiri, toate utilizate direct conectate la GPO-uri externe, cu excepția OUT 4. ASM OUTPUT 0 are patru (4) ieșiri în care OUT 0 și OUT 1 sunt conectate direct la PIN 4 și respectiv PIN 16; OUT 2 este folosit pentru a reseta LUT5 și LUT6 la stările Silego [5] și Silego [9] și în cele din urmă OUT 3 este utilizat pentru a seta LUT6 la Silego [4] și Silego [7]. ASM nRESET nu este activat în acest design, așa că este doar forțat să se conecteze la HIGH la VDD. LED-urile superioare și inferioare au fost adăugate la acest proiect pentru a face animație suplimentară în timp ce este afișat „SILEGO”. Această animație este despre câteva linii care se învârt în timp cu mișcarea motorului. Aceste linii sunt LED-uri albe, în timp ce cele folosite pentru a scrie literele sunt roșii. Pentru a realiza această animație, am folosit PGEN și CNT0 de la GreenPAK. PGEN este un generator de modele care va emite următorul bit din matricea sa la fiecare margine de ceas. Am împărțit perioada de virare a motorului în 16 secțiuni, iar rezultatul a fost setat la perioada de ieșire a CNT0. Modelul programat în PGEN este prezentat în Figura 6.

Pasul 3: Rezultate

Rezultate
Rezultate

Pentru a testa designul, am conectat soclul SLG46880 la PCB cu un cablu cu bandă. Două plăci externe au fost conectate la circuit, dintre care una conținea regulatorul de tensiune și cealaltă care conținea LED-ul. Pentru a începe afișarea mesajului pentru demonstrație, am pornit circuitul logic controlat de GreenPAK și apoi am pornit motorul de curent continuu. Este posibil să fie necesară ajustarea vitezei pentru o sincronizare corectă. Rezultatul final este prezentat în Figura 7. Există, de asemenea, un videoclip asociat cu această notă de aplicație.

Concluzie Percepția vizuală afișată prezentată în acest proiect a fost proiectată folosind un Dialog GreenPAK SLG46880 ca controler principal. Am demonstrat că designul funcționează scriind cuvântul „SILEGO” folosind LED-uri. Unele îmbunătățiri care ar putea fi aduse designului includ:

● Folosirea mai multor GreenPAK-uri pentru a crește cantitatea de posibilități de stări pentru a imprima un mesaj mai lung sau o animație.

● Adăugați mai multe LED-uri la matrice. Poate fi util să utilizați LED-uri de montare la suprafață, mai degrabă decât LED-uri de gaură prin care să scadă masa brațului care se rotește.

● Includerea unui microcontroler vă poate permite să modificați mesajul afișat utilizând comenzile I2C pentru a reconfigura designul GreenPAK. Aceasta ar putea fi utilizată pentru a crea un afișaj digital de ceas care actualizează cifrele pentru a afișa ora cu precizie

Recomandat: