Taula de continguts:

(POV) Persistència del globus visual: 8 passos (amb imatges)
(POV) Persistència del globus visual: 8 passos (amb imatges)

Vídeo: (POV) Persistència del globus visual: 8 passos (amb imatges)

Vídeo: (POV) Persistència del globus visual: 8 passos (amb imatges)
Vídeo: Persistance Of Vision - POV GLOBE PART 2 2024, Desembre
Anonim
Image
Image
(POV) Persistència del Vision Globe
(POV) Persistència del Vision Globe
(POV) Persistència del Vision Globe
(POV) Persistència del Vision Globe

Actualització He afegit un programa Excel que fa molt més fàcil dibuixar i codificar imatges noves

Una simple persistència del globus visual. PLAY VIDEO

Aquest és un projecte que tinc present des de fa força temps i el concurs "Make It Glow" va ser només la motivació que necessitava per inspirar-me a treure una vella pantalla POV de 5 LED i portar-la al següent nivell, mitjançant el canvi registres. Si us agrada aquest instructiu, penseu en votar-hi.

Una introducció ràpida a POV o persistència de la visió: qualsevol llum de voltatge de corrent altern parpelleja a una freqüència de 60 Hz o 60 vegades per segon. El nostre cervell ho percep com una llum constant. És aquest concepte que aprofitarem per tal de crear una imatge esfèrica mitjançant una sola fila de LEDs. Per a aquest projecte, vaig decidir que 24 LED seqüenciats mitjançant tres registres de desplaçament de 8 bits proporcionarien la resolució mínima necessària per al món.

Pas 1: materials

Això és el que he utilitzat.

  • (1) Arduino Uno (per prototipatge)
  • (1) Bareduino (per a tauler permanent opcional) VIRTUABOTIX LINK
  • (3) Registres de canvis HC595N
  • (24) LEDs blaus
  • (24) resistències de 220 ohm
  • (1) tauler de suport
  • (1) suport i bateria de la bateria
  • (1) Anell de 10 "de diàmetre (prou ample per contenir els LED i, com més lleuger millor)
  • (1) tros de vareta roscada (he utilitzat 5/16 ")
  • (1) Motor (he utilitzat un d'un vell Dirt Devil)
  • (1) Acoblament del motor
  • (1) Desconnexió de 120 V (interruptor de llum)
  • (1) Controlador de velocitat del ventilador

Pas 2: Construir l'anell

Construint l’anell
Construint l’anell
Construint l’anell
Construint l’anell

He utilitzat un tros de barra plana d'alumini d'1 / 8 "de gruix x 1/2" d'ample per al meu anell i tot el fil de 5/16 "per al pal central, perquè els tenia posats al voltant, però crec que es podria fer en un Impressora 3D completa amb suports de PCB i molt més lleugera. Vaig construir aquest anell per a una versió anterior amb 5 LED cadascun apagat per un DO independent de l'Arduino.

El diàmetre de l’anell no té res d’especial. El meu és d'aprox. Rodona de 10 polzades, només perquè la barra plana que tenia tenia 3 minuts de longitud. La vaig rodar sobre una cisalla / fre / rotlle 3 en 1 de Harbor Freight, però també podríeu formar l'anell al voltant d'un disc tallat de fusta contraxapada i Tinc bons resultats. De totes maneres, no veig cap motiu perquè l'anell no es pugui fer de fusta. Prefereixo treballar amb metl.

He forat els LEDs a aproximadament 5/16 "al centre. Aquest espai va omplir tots menys 1" a la part superior i inferior d'un costat de l'anell. Haureu de fixar un suport al centre de l’anell per proporcionar una superfície de muntatge per a les taules de suport.

Pas 3: Creació del circuit

Fent el circuit
Fent el circuit
Fent el circuit
Fent el circuit
Fent el circuit
Fent el circuit

Aquest va ser el meu primer intent d’utilitzar registres de desplaçament, així que vaig començar a investigar al lloc d’Arduino i vaig trobar un exemple molt útil, que vaig modificar per adaptar-me a les meves necessitats. Podeu trobar el tutorial a Arduino ShiftOut. Em vaig fixar en el "Code Sample 2.3 - Dual Defined Arrays" com a codi base, més sobre això més endavant.

Si seguiu el tutorial, aprendreu a enviar bits d'informació, un per un, en sèrie des del vostre Arduino als registres de desplaçament. Aquesta disposició permet controlar els 24 LED d’aquest projecte amb només 3 pins a l’Arduino. Utilitzarem la capacitat d’entrada en paral·lel de sèrie del 74HC595 per carregar 24 bits d’informació o 3 bytes als registres de desplaçament i, a continuació, transferirem les dades en paral·lel als LED.

Com que el primer bit de dades que carreguem acabarà al darrer lloc del registre, adjuntarem el LED1 o el LED més meridional a QO del primer registre de desplaçament. Seguiu l'esquema de l'exemple ShiftOut i adjunteu el tercer registre de torns al segon, de la mateixa manera que el segon s'adjunta al primer.

Recomano executar el codi de mostra al llarg del camí, primer amb només un registre i després amb dos. El codi de mostra seqüencia els llums de manera que és fàcil veure si hi ha alguna cosa que no està connectada. He pogut afegir simplement un Byte3 al "Code Sample 2.3 - Dual Defined Arrays" i un tercer array que he anomenat Blau. Ho podeu veure al codi ShiftOutArrayByte3R1 carregat a aquest pas.

Pas 4: ajuntar-ho tot

Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt

Ara que teníem confiança en que el circuit funciona, necessitem que tot estigui muntat al ring. Us suggereixo muntar el vostre Arduino / Bareduino per un costat i el tauler de registre Shift enfront de l’Arduino. Això us ajudarà a eliminar el pes, però és probable que hàgiu de moure alguna cosa fins aconseguir una rotació estable. Vaig fer servir la bateria de 9 volts del costat que necessitava per afegir pes. He utilitzat tirants per fixar les taules i la bateria al pal central. D’aquesta manera, podria fer ajustaments per equilibrar l’anell.

Ara per soldar tots els LED. Com que estem controlant el voltatge positiu dels LED, podem connectar tots els cables del càtode junts amb un sol cable sense aïllar i connectar-lo a la nostra terra. Després, hem de soldar una resistència al cable de l’ànode de cada LED i, a continuació, connectar un cable de la resistència al pin de sortida del registre de desplaçament corresponent. Vaig deixar a la funció Parpellejar tot del bucle de configuració com una manera fàcil de saber si teniu un LED apagat.

Pas 5: Dibuixar el globus

Dibuixar el globus
Dibuixar el globus
Dibuixar el globus
Dibuixar el globus
Dibuixar el globus
Dibuixar el globus

!! Actualització !! Ara podeu dibuixar amb el programa Excel, que us converteix la imatge en hexidecimal. El codi de les vostres matrius vermella, blava i verda es pot copiar i enganxar a l'esbós d'Arduino. Simplement empleneu un 1 on vulgueu que el LED estigui engegat i la cel·la canviarà automàticament a blava. El programa Excel es carrega a aquest pas. Gràcies a l’informable Rave Shades per publicar Rave Shades Animator, que es va modificar per a aquest projecte

Bé. Ara per fer-se artístic. Vaig escollir un globus terrestre perquè vaig pensar que seria una manera divertida de fer una visualització esfèrica de 360 graus mitjançant POV, però intentaré mostrar en aquest i en el següent pas com podeu crear qualsevol imatge que pugueu dibuixar amb una resolució de 24x70 punts..

Primer vaig trobar una imatge del mapa del món adequada per utilitzar-la com a guia. Després vaig trobar una aplicació a Google Play anomenada "Mosaic Builder" que era perfecta per a les meves necessitats. Com podeu veure a la darrera imatge d’aquest pas, vaig poder crear una versió de baixa resolució de la foto del mapa del món a la meva plantilla 24x70. FYI, el 24 prové dels 3 bytes de dades i, per tant, té 24 LED d'alçada i el 70 prové de dividir la circumferència del meu anell per 5/16 "per fer que l'espai horitzontal coincideixi estretament amb l'espaiat vertical dels LED. Els 70 punts d'amplada variarà en funció de la mida de l'anell, però no és crític. No és especialment important, ja que no estem utilitzant cap tipus de sensor, com ara un LED d'infrarojos per detectar una rotació completa i restablir el bucle. tingueu en compte en el futur, però per ara, sempre que tinguem control de velocitat al motor, el sensor no és necessari.

Un cop tingueu un dibuix amb què estigueu contents, podeu convertir la imatge en codi hexidecimal per bytes, al següent pas.

Pas 6: el codi

El codi
El codi
El codi
El codi
El codi
El codi

Actualització Només cal que dibuixeu la vostra imatge amb 1s per representar ON, que automàticament acolorirà el píxel de blau. Quan la imatge estigui a punt, premeu el botó "Copia totes les matrius" i enganxeu-hi les matrius existents a l'esbós d'Arduino. He penjat un nou esbós a aquest pas

Com he esmentat anteriorment, he utilitzat el "Code Sample 2.3 - Dual Defined Arrays" de l'exemple Arduino ShiftOut com a base. Com observareu en aquest codi, l'autor comenta que no està segur de si Arduino pot gestionar valors binaris directes, de manera que es van utilitzar valors hexadecimals. Nota: mai no he canviat els comentaris binaris al costat dels valors hexadecimals, només he canviat els valors hexadecimals per ajustar-los a la imatge del mapa del món.

Ara només era la meva segona vegada que veia Hex i era bastant despistat. Vaig trobar el gràfic de conversió hexadecimal-binari adjunt, que va ajudar enormement. Aquest gràfic es pot utilitzar per convertir el valor binari de cada columna o (Byte) a un valor hexadecimal. Per exemple, si mireu la darrera imatge d’aquest pas, podeu veure com la imatge del mapa del món es va trencar en terços de dalt a baix i cada columna consta de 3 bytes, on blanc o apagat = 0 i Blau o Activat = 1. A a la part inferior de cada columna, el byte s'ha convertit en un valor hexadecimal que oscil·la entre 00 i FF, que és l'equivalent a un interval de valors decimals de 0-255 o un interval binari de 00000000 a 11111111.

El codi adjunt té la imatge Globe carregada, però es pot modificar per obtenir una imatge pròpia.

Pas 7: proves

Image
Image
Proves
Proves

Abans de continuar construint una base i un muntatge de motor, pensava que provaria i modificaria el circuit. Simplement vaig llançar la plataforma en un trepant sense fil, vaig encendre tot i vaig prémer el gallet. Vaig haver d’ajustar el retard a 1 ms i el meu primer intent va posar Rússia al sud d’Austràlia. També vaig aprendre que la imatge es mostra cap per avall, pel que esperava, que va ser una solució senzilla per capgirar tot l'anell. El vídeo adjunt és de la meva prova final amb èxit. Ara és el moment d’una base amb un motor permanent i un controlador de velocitat.

JUGA LA PROVA DE GLOBUS DE PLOM

Pas 8: Acabeu

Acabant!
Acabant!
Acabant!
Acabant!
Acabant!
Acabant!

Vaig connectar l'interruptor de la llum com a desconnexió per al motor i després vaig connectar el controlador de velocitat del ventilador entre la desconnexió i el motor. Això em dóna una manera d’apagar l’alimentació ràpidament i tenir un control raonablement bo de la velocitat del motor. Ara necessitava una manera de connectar el motor al món. L'eix del motor tenia una mida de 17/64 "i el fil que he utilitzat per al globus és de 5/16". Un acoblador de 5/16 "podria haver estat només el truc, però per desgràcia només tenia acobladors de 3/8" que eren inútils. En lloc d’això, he trobat un tros de brou rodó d’alumini de 1/2 ", he tallat un tros de 2" de llarg i he perforat un forat de 17/64 "pel centre. Aquesta mida de forat era adequada per tocar un fil de 5 / 16-18 a la meitat del També he foradat i he fet un petit forat pel lateral per enfilar un cargol fix per a l’eix del motor, després he enfilat el globus terrestre i he fet servir una femella de fixació per assegurar-lo. El motor de Dirt Devil gira prou ràpid de muntatge, de manera que calia ajustar la velocitat el més avall possible. A aquesta velocitat, el motor no començarà a girar, cosa que fa que la plataforma sigui una mica complicada. El que he de fer és evitar que giri el globus terraqüi fins que el motor engegui, després puc reduir la velocitat i deixar anar el globus. Finalment, amb una delicada afinació fina, puc obtenir un gran efecte de gir lent.

PLAY VIDEO

Recomanat: