Taula de continguts:
Vídeo: Feu la vostra pròpia pantalla POV: 3 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
La percepció de la visió (POV) o persistència de la visió (té diverses variacions) és un fenomen interessant de la vista humana que es produeix quan la percepció visual d’un objecte no cessa malgrat que l’objecte canvia de posició. L’ésser humà veu una imatge en intervals de fraccions de segons; aquestes imatges es guarden al cervell durant molt poc temps (un instant). Un exemple d’aquest fenomen és quan observeu una font d’il·luminació, com ara LEDs o bombetes, encesa i girada. La nostra visió es fa enganyar per creure que la llum giratòria és en realitat un cercle continu, de manera similar al cercle continu format a partir d’una hèlix giratòria en un pla. El POV s’ha utilitzat durant molts anys, començant pel gifoscopi, per fer diferents tipus d’il·lusions i animacions a la nostra visió; s'utilitza freqüentment per mostrar missatges i animacions en pantalles mitjançant LED, fent-los girar en 2D o 3D per a diferents tipus de missatges. L'objectiu d'aquesta nota de l'aplicació és dissenyar i demostrar el funcionament de Perception of Vision escrivint la paraula "SILEGO" a la pantalla que es construirà i donar idees per guiar-vos durant el procés de creació de dissenys més complexos en el futur. Per a aquest projecte, hem utilitzat un Dialog GreenPAK ™ SLG46880, amb el seu kit de sòcol que permet connectar fàcilment aquest prototip a tots els components externs mitjançant cables. Utilitzar el GreenPAK més gran per dissenyar pantalles POV d’ús general és molt avantatjós a causa dels seus components robustos, com ara els subsistemes ASM, que us permetran imprimir qualsevol tipus de patró a la pantalla. Aquesta aplicació mostrarà un resultat final mitjançant un SLG46880.
A continuació, es descriuen els passos necessaris per entendre com s'ha programat el xip GreenPAK per crear la pantalla POV. Tot i això, si només voleu obtenir el resultat de la programació, descarregueu-vos el programari GreenPAK per veure el fitxer de disseny GreenPAK ja completat. Connecteu el kit de desenvolupament GreenPAK a l'ordinador i premeu el programa per crear l'IC personalitzat per a la pantalla POV.
Pas 1: esquemes
Aquest exemple de visualització POV es dirigeix a un tipus 2D que es mostra a la figura 1, que té una matriu d’onze LED (cadascun amb resistències per regular el corrent) connectats directament a diferents pins GPO del GreenPAK CMIC. El circuit està prototipat i soldat en taulers de PCB. La font d’alimentació que s’utilitza per a la pantalla és una bateria alcalina L1022 de 9 V 10 A, connectada a un circuit regulador de voltatge mitjançant LM7805V que produeix 5 V. A més de fer girar la pantalla, es necessita un motor de corrent continu amb força suficient per moure circuits de control connectats al suport personalitzat. En aquest cas, es va utilitzar un motor de 12 V, connectat a un interruptor principal, i una font d’alimentació regulada a la venda que genera diferents nivells de voltatge a través d’un interruptor rotatiu, cosa que permet que el motor giri a diverses velocitats.
Pas 2: disseny de GreenPAK
Quan dissenyem diferents tipus de missatges i animacions per a una pantalla POV mitjançant GreenPAK, hauríem de conèixer les eines i les limitacions del xip. D’aquesta manera, podem crear un disseny competent, utilitzant el mínim de components electrònics per aconseguir la visualització POV. Aquest disseny utilitza els nous avantatges que ofereix el SLG46880 CMIC, amb un enfocament en el component de subsistemes de màquines d’estats asíncrons. L'eina del subsistema ASG SLG46880 pot ser més avantatjosa que les anteriors eines GreenPAK ASM a causa de les seves noves característiques, que permeten dissenys de màquines d'estat més complexes. Alguns dels components interns relatius als subsistemes ASM utilitzats són:
● Macrocell ASM de 12 estats
● Macrocèl·lula de memòria dinàmica (DM)
● F (1) Macrocèl·lula de càlcul
● Components independents de l'estat
Com més estats permeti crear i configurar les macrocèl·lules de la màquina, més nombroses són les possibilitats de disseny. Cadascun dels dotze estats es va utilitzar per escriure diferents fraccions de la paraula que es mostrarà, activant / desactivant diferents combinacions de LED, algunes de les quals es van repetir dues vegades o més vegades, i en alguns casos es canvia el temps d'estats repetits, perquè es podria utilitzar el mateix patró per a diferents lletres en diferents moments. Els estats s’estructuren a la taula 1.
La taula 1 mostra com es relacionen cadascun dels estats existents al disseny amb les lletres de la paraula "SILEGO". Això es correlaciona amb la configuració del LED que es mostra a la figura 2.
Com podeu observar, tots els estats junts executats en diferents moments aconsegueixen la compilació completa de la paraula, la figura 3 mostra com els estats estan connectats / relacionats. Totes les transicions d’estat tenen un ordre de mil·lisegons i cadascuna de les columnes del diagrama de la figura 2 representa un mil·lisegon (1 ms). Alguns dels estats tenen una durada de 3 ms, 4 ms i d’altres, prou llargs amb la velocitat mínima del motor que s’utilitza per a la demostració de vídeo a aproximadament 460 RPM.
És important tenir en compte i mesurar la velocitat del motor per conèixer i calcular el temps en un disseny per a usos generals. D'aquesta manera, el missatge es pot sincronitzar amb la velocitat del motor, per tant visible a l'ull humà. Una altra consideració per fer que la transició d’estats sigui menys imperceptible i sigui més clara per a la nostra visió és augmentar la velocitat del motor a més de 1000 RPM i la sincronització d’estats establerts en l’ordre dels microsegons perquè el missatge es pugui veure sense problemes. És possible que us pregunteu a vosaltres mateixos, com sincronitzaria la velocitat del motor amb la velocitat del missatge o l’animació? Això s’aconsegueix amb algunes fórmules senzilles. Si teniu una velocitat del motor de 1000 RPM, per saber quant triga el motor de CC per revolució en segons, feu el següent:
Freqüència = 1000 RPM / 60 = 16,67 Hz Període = 1 / 16,67 Hz = 59,99 ms
Si coneixeu el període, sabreu quant de temps triga el motor en un gir. Si voleu imprimir un missatge com "Hello World", un cop conegut el període de cada torn, només és important quant vulgueu que aparegui el missatge a la pantalla. Per imprimir el missatge desitjat a la mida desitjada, seguiu aquesta regla general:
Si, per exemple, voleu que el missatge cobreixi el 40% de l’espai de la pantalla, feu el següent:
Mida del missatge = (Període * 40%) / 100% = (59,99 ms * 40%) / 100% = 24 ms
Això vol dir que el missatge es mostrarà en 24 ms per cada torn, de manera que l'espai en blanc o la resta de l'espai en un torn (si no mostreu alguna cosa després del missatge) hauria de ser:
Espai en blanc = Període: mida del missatge = 59,99 ms - 24 ms = 35,99 ms
Finalment, si heu de mostrar el missatge en aquest 40% del període, heu de saber quants estats i transicions necessitarà el missatge per escriure el missatge esperat, per exemple, si el missatge té vint (20) transicions, llavors:
Període d’un estat únic = Mida del missatge / 20 = 24 ms / 20 = 1,2 ms.
Per tant, cada estat ha de durar 1,2 ms per mostrar el missatge correctament. Per descomptat, notareu que la majoria dels primers dissenys no són perfectes, de manera que és possible que estigueu canviant alguns paràmetres durant les proves físiques per millorar el disseny. Hem utilitzat macrocèl·lules de memòria dinàmica (DM) per facilitar les transicions d’estat. Dos dels quatre blocs DM tenen connexions matricials perquè puguin interactuar amb blocs fora del subsistema ASM. Cada DM Macrocell pot tenir fins a 6 configuracions diferents que es poden utilitzar en diferents estats. Els blocs DM s’utilitzen en aquest disseny per activar l’ASM a la transició d’un estat a un altre. Per exemple, l'estat de Silego [3] es repeteix dues vegades durant les transicions; ha d’escriure el principi i el final de la lletra “I” en majúscules que té el mateix patró, però primer ha d’anar a Silego [4] per escriure el patró de la meitat en majúscula “I”, i després quan Silego [3] s'executa per segona vegada, ha d'anar a l'estat Sense missatge, continuant la resta de transicions. Com és possible evitar que Silego [3] caigui en un bucle infinit amb Silego [4]? És senzill, hi ha alguns LUT configurats com a xancletes SR que diuen a Silego [3] que no triï Silego [4] una vegada i una altra, sinó que triï l’estat de No missatge la segona vegada. L’ús de xancletes SR per evitar bucles infinits quan es repeteix algun dels estats és una manera excel·lent de solucionar aquest problema i només requereix un LUT de 3 bits configurat tal com es mostra a la figura 4 i a la figura 5. Aquest procés es produeix al mateix temps que la sortida ASM fa que Silego [3] vagi a Silego [4], de manera que la propera vegada que la màquina d'estats executi Silego [3], se li notificarà que escolliu l'estat Sense missatge per continuar el procés.
Un altre bloc ASM que va ser útil per a aquest projecte és el F (1) Macrocell computacional. El F (1) pot realitzar una llista d’ordres específiques per llegir, emmagatzemar, processar i enviar les dades desitjades. És capaç de manipular 1 bit alhora. En aquest projecte es va utilitzar el bloc F (1) per llegir, retardar i sortir bits per controlar alguns LUT i habilitar estats (com en Silego [1] per habilitar Silego [2]).
La taula de la figura 1 explica com s’adreça cadascun dels LED als pins GPO del GreenPAK; els pins físics associats s'adrecen des de la memòria RAM de sortida ASM de la matriu, tal com es mostra a la taula 2.
Com podeu veure a la taula 2, cada pin del xip es dirigia a diferents sortides ASM; ASMOUTPUT 1 té vuit (8) sortides totes utilitzades directament connectades a GPO externs excepte OUT 4. ASM OUTPUT 0 té quatre (4) sortides on OUT 0 i OUT 1 estan connectades directament al PIN 4 i al PIN 16 respectivament; OUT 2 s’utilitza per restablir LUT5 i LUT6 als estats Silego [5] i Silego [9] i finalment OUT 3 s’utilitza per configurar LUT6 a Silego [4] i Silego [7]. ASM nRESET no es commuta en aquest disseny, de manera que només es veu obligat a que HIGH estigui connectat a VDD. Es van afegir LED superiors i inferiors a aquest projecte per fer una animació addicional mentre es mostra "SILEGO". Aquesta animació tracta d'unes poques línies que donen voltes al llarg del temps amb el moviment del motor. Aquestes línies són LEDs blancs, mentre que les que s’utilitzen per escriure les lletres són de color vermell. Per aconseguir aquesta animació, hem utilitzat PGEN i CNT0 de GreenPAK. El PGEN és un generador de patrons que generarà el següent bit de la seva matriu a cada vora del rellotge. Hem dividit el període de gir del motor en 16 seccions i el resultat s’ha definit al període de sortida de CNT0. El patró programat al PGEN es mostra a la Figura 6.
Pas 3: Resultats
Per provar el disseny, hem connectat la presa del SLG46880 al PCB amb un cable de cinta. Es van connectar dues plaques externes al circuit, una de les quals contenia el regulador de tensió i l'altra que contenia la matriu de LED. Per començar a mostrar el missatge de demostració, hem activat el circuit lògic que controla GreenPAK i, a continuació, hem encès el motor de corrent continu. És possible que s’hagi d’ajustar la velocitat per a una sincronització adequada. El resultat final es mostra a la figura 7. També hi ha un vídeo associat amb aquesta nota de l'aplicació.
Conclusió La visualització de la percepció de la visió presentada en aquest projecte es va dissenyar utilitzant un Dialog GreenPAK SLG46880 com a controlador principal. Hem demostrat que el disseny funciona escrivint la paraula "SILEGO" mitjançant LEDs. Algunes millores que es podrien fer en el disseny inclouen:
● Ús de diversos GreenPAK per augmentar la quantitat d'estats possibles per imprimir un missatge o animació més llarg.
● Afegiu més LED a la matriu. Pot ser útil utilitzar LED de muntatge superficial en lloc de LED de forat per disminuir la massa del braç giratori.
● Incloure un microcontrolador us pot permetre canviar el missatge que es mostra mitjançant ordres I2C per reconfigurar el disseny de GreenPAK. Es podria utilitzar per crear una pantalla de rellotge digital que actualitzi els dígits per mostrar l’hora amb precisió
Recomanat:
Feu la vostra pròpia consola de jocs portàtil! que també és una tauleta Win10 !: 6 passos (amb imatges)
Feu la vostra pròpia consola de jocs portàtils! …… que també és una tauleta Win10 !: En aquest projecte us mostraré com crear una consola de jocs portàtils retro que també es pugui utilitzar com a tauleta Windows 10. Constarà d’un 7 " Pantalla LCD HDMI amb pantalla tàctil, LattePanda SBC, PCB d'alimentació USB tipus C PD i alguns més
Feu la vostra pròpia màquina de còctel cru: 5 passos (amb imatges)
Feu la vostra pròpia màquina de còctel cru: en aquest projecte us mostraré com vaig combinar un Arduino Nano, un LCD, un codificador rotatiu, tres bombes peristàltiques amb motors de control, una cel·la de càrrega i un parell de trossos de fusta per crear un cru, però màquina de còctel funcional. Al llarg del camí vaig a
Feu la vostra pròpia il·luminació ambiental amb el Raspberry Pi Zero: 5 passos (amb imatges)
Feu la vostra pròpia il·luminació ambiental amb el Raspberry Pi Zero: en aquest projecte us mostraré com combinar un Raspberry Pi Zero amb un parell de peces complementàries per afegir un efecte d’il·luminació ambiental al vostre televisor que millori l’experiència de visualització. Comencem
Feu la vostra pròpia (mena de) pantalla transparent: 7 passos
Feu la vostra pròpia (mena de) pantalla transparent: les pantalles transparents són una tecnologia extremadament fresca que fa que tot sembli futur. No obstant això, hi ha alguns inconvenients. En primer lloc, no hi ha tantes opcions disponibles. I en segon lloc, perquè normalment són pantalles OLED, poden
Feu la vostra pròpia pantalla MQTT EInk per obtenir dades de temps, notícies i medi ambient: 7 passos
Feu la vostra pròpia pantalla MQTT EInk per a dades de temps, notícies i medi ambient: "THE" és una mini pantalla d'informació MQTT per a informació de temps, notícies i medi ambient. Utilitzant una pantalla eInk de 4,2 polzades, el seu concepte és senzill: mostrar informació rotatòria, actualitzant-se cada dos minuts. Les dades poden ser qualsevol feed - f