Cuprins:

(POV) Persistența globului vizual: 8 pași (cu imagini)
(POV) Persistența globului vizual: 8 pași (cu imagini)

Video: (POV) Persistența globului vizual: 8 pași (cu imagini)

Video: (POV) Persistența globului vizual: 8 pași (cu imagini)
Video: ✨The King's Avatar S2 Full Version [MULTI SUB] 2024, Noiembrie
Anonim
Image
Image
(POV) Persistența globului vizual
(POV) Persistența globului vizual
(POV) Persistența globului vizual
(POV) Persistența globului vizual

!Actualizați! Am adăugat un program Excel care face mult mai ușor desenarea și codificarea imaginilor noi

O simplă persistență a globului vizual. RULEAZĂ VIDEO

Acesta este un proiect pe care l-am avut în minte de ceva vreme, iar concursul „Make It Glow” a fost doar motivația de care aveam nevoie pentru a mă inspira să scot un vechi afișaj POV cu 5 LED-uri și să îl duc la nivelul următor, folosind shift registre. Dacă vă place acest instructable, vă rugăm să luați în considerare votul pentru acesta.

O introducere rapidă în POV sau persistența vederii: orice lumină de tensiune alternativă clipește de fapt cu o frecvență de 60 Hz sau de 60 de ori pe secundă. Creierul nostru percepe aceasta ca lumină constantă. De acest concept vom profita, pentru a crea o imagine sferică folosind un singur rând de LED-uri. Pentru acest proiect, am decis că 24 de LED-uri secvențiate folosind trei registre de schimbare pe 8 biți ar oferi rezoluția minimă necesară pentru glob.

Pasul 1: Materiale

Iată ce am folosit.

  • (1) Arduino Uno (pentru prototipare)
  • (1) Bareduino (pentru tablă permanentă opțională) VIRTUABOTIX LINK
  • (3) Registre de schimbare HC595N
  • (24) LED-uri albastre
  • (24) Rezistențe de 220 ohmi
  • (1) panou de verificare
  • (1) suportul bateriei și bateria
  • (1) Inel de 10 "diametru (suficient de lat pentru a ține LED-uri și cu cât este mai ușor cu atât mai bine)
  • (1) bucată de tijă filetată (am folosit 5/16 ")
  • (1) Motor (am folosit unul de la un vechi Dirt Devil)
  • (1) Cuplaj motor
  • (1) Deconectare 120V (comutator luminos)
  • (1) Controler viteză ventilator

Pasul 2: Construirea inelului

Construind inelul
Construind inelul
Construind inelul
Construind inelul

Am folosit o bucată de bară plată de aluminiu de 1/8 "grosime x 1/2" lată pentru inelul meu și filet de 5/16 "pentru catargul central, pentru că le aveam așezate în jur, dar cred că acest lucru ar putea fi făcut pe un Imprimantă 3D completă cu suporturi PCB și să fie mult mai ușoară. Am construit acest inel pentru o construcție anterioară folosind 5 LED-uri, fiecare oprit dintr-un DO separat al Arduino.

Nu este nimic special la diametrul inelului. Al meu este de aprox. Rundă de 10 , doar pentru că bara plată pe care o aveam avea 3 'lungime pentru început. Am rulat-o pe o forfecare / frână / rolă 3 în 1 de la Harbor Freight, dar ai putea forma și inelul în jurul unui disc tăiat din placaj și au rezultate bune. De altfel, nu văd niciun motiv pentru care inelul să nu poată fi făcut din lemn. Prefer doar să lucreze cu metl.

Am făcut găuri pentru LED-uri la aproximativ 5/16 "pe centru. Această distanță a completat toate, cu excepția 1", în partea de sus și de jos pe o parte a inelului. Va trebui să înșurubați o consolă în centrul inelului pentru a oferi o suprafață de montare a panourilor.

Pasul 3: Realizarea circuitului

Realizarea circuitului
Realizarea circuitului
Realizarea circuitului
Realizarea circuitului
Realizarea circuitului
Realizarea circuitului

Aceasta a fost prima mea încercare de a utiliza registre de schimb, așa că am început să cercetez pe site-ul Arduino și am găsit un exemplu extrem de util, pe care l-am modificat pentru a-mi satisface nevoile. Puteți găsi tutorialul la Arduino ShiftOut. M-am bazat pe „Exemplul de cod 2.3 - Matrice dual definite” ca cod de bază, mai multe despre asta mai târziu.

Dacă urmați tutorialul, veți învăța cum să trimiteți bucăți de informații, unul câte unul, în serie de la Arduino la registrele de schimbare. Acest aranjament vă permite să controlați toate cele 24 de LED-uri din acest proiect cu doar 3 pini pe Arduino. Vom folosi capacitatea serial in, parallel out a 74HC595 pentru a încărca 24 de biți de informații sau 3 octeți în registrele de schimbare și apoi vom transfera datele în paralel cu LED-urile.

Deoarece primul bit de date pe care îl încărcăm se va termina în ultimul loc al registrului, vom atașa LED1 sau cel mai sudic LED la QO din primul registru Shift. Urmați schema din exemplul ShiftOut și atașați al treilea registru de schimbare la al doilea, în același mod în care al doilea este atașat la primul.

Vă recomand să rulați exemplul de cod pe parcurs, mai întâi cu un singur registru, apoi cu două. Exemplul de cod secvențează luminile astfel încât să fie ușor de văzut dacă ceva nu este cablat. Am reușit să adaug pur și simplu un Byte3 la „Code Sample 2.3 - Dual Defined Arrays” și un al treilea array pe care l-am numit Blue. Puteți vedea acest lucru în codul ShiftOutArrayByte3R1 încărcat la acest pas.

Pasul 4: Puneți totul împreună

Punând totul împreună
Punând totul împreună
Punând totul împreună
Punând totul împreună

Acum, având încredere că circuitul funcționează, trebuie să montăm totul pe inel. Vă sugerez să montați Arduino / Bareduino pe o parte și Shift Register Board vizavi de Arduino. Acest lucru va ajuta la diminuarea greutății, dar cel mai probabil va trebui să mutați ceva până când veți obține o rotație stabilă. Am folosit bateria de 9 volți pe partea la care aveam nevoie pentru a adăuga greutate. Am folosit cravate cu fermoar pentru a atașa plăcile și bateria la catargul central. Astfel aș putea face ajustări pentru a echilibra inelul.

Acum, pentru a lipi toate LED-urile. Deoarece controlăm tensiunea pozitivă a LED-urilor, putem conecta toate cablurile catodice împreună cu un singur fir neizolat și le putem conecta la pământ. Apoi, trebuie să lipim un rezistor la cablul anodic al fiecărui LED și apoi să atașăm un fir de la rezistor la pinul de ieșire al registrului de schimbare corespunzător. Am lăsat în funcția Blink All din bucla de configurare ca o modalitate ușoară de a afla dacă aveți un LED stins.

Pasul 5: Desenarea globului

Desenând Globul
Desenând Globul
Desenând Globul
Desenând Globul
Desenând Globul
Desenând Globul

!!Actualizați!! Acum puteți desena folosind programul excel, care convertește imaginea în hexidecimal pentru dvs. Codul pentru matricile roșii, albastre și verzi poate fi copiat și lipit în schița Arduino. Pur și simplu completați un 1 în care doriți ca LED-ul să fie aprins și celula se va schimba automat în albastru! Programul Excel este încărcat la acest pas. Mulțumim Rave Shades instructabile pentru postarea Rave Shades Animator, care a fost modificat pentru acest proiect

Bine. Acum, pentru a deveni artistic. Am ales un glob pentru că m-am gândit că ar fi o modalitate interesantă de a realiza un afișaj sferic la 360 de grade folosind POV, dar voi încerca să arăt în acest pas și în următorul fel cum puteți crea orice imagine pe care o puteți desena într-o rezoluție de 24x70 puncte.

Mai întâi am găsit o imagine adecvată a hărții lumii pentru a o folosi ca ghid. Apoi am găsit o aplicație pe Google Play numită „Mosaic Builder” care îmi era perfectă pentru nevoile mele. După cum puteți vedea în ultima imagine a acestui pas, am reușit să creez o versiune redusă a imaginii hărții lumii pe șablonul meu 24x70. FYI 24 provine de la cei 3 octeți de date și, prin urmare, are 24 de LED-uri înălțime, iar 70 provine din împărțirea circumferinței inelului meu cu 5/16 pentru a face distanța orizontală să se potrivească strâns cu distanța verticală a LED-urilor. Lățimea de 70 de puncte va varia în funcție de dimensiunea inelului dvs., dar nu este critic. În special nu este critic, deoarece nu utilizăm niciun tip de senzor, cum ar fi un LED cu infraroșu pentru a detecta o rotație completă și a reseta bucla. ia în considerare în viitor, dar pentru moment, atâta timp cât avem controlul vitezei pe motor, senzorul nu este necesar.

Odată ce ați făcut un desen, sunteți mulțumit de acesta, puteți converti imaginea în cod hexidecimal de Byte, în pasul următor.

Pasul 6: Codul

Codul
Codul
Codul
Codul
Codul
Codul

!Actualizați! Trageți doar imaginea folosind 1s pentru a reprezenta ON, care va colora automat pixelul în albastru. Când imaginea dvs. este gata apăsați butonul „Copiați toate matricele” și lipiți peste matricele existente în schița Arduino! Am încărcat o nouă schiță la acest pas

Așa cum am menționat anterior, am folosit ca bază „Exemplul de cod 2.3 - Matrice definite dublu” din exemplul Arduino ShiftOut. După cum veți observa în acest cod, autorul comentează că nu este sigur dacă Arduino poate gestiona valorile binare directe, așa că au fost folosite valori hexazecimale. Notă: Nu am schimbat niciodată comentariile binare lângă valorile Hex, am schimbat doar valorile Hex pentru a se potrivi cu imaginea mea de hartă mondială.

Acum era abia a doua oară când vedeam Hex și eram destul de lipsit de idei. Am găsit graficul de conversie Hexidecimal-Binary atașat, care a ajutat enorm. Această diagramă poate fi utilizată pentru a converti valoarea binară a fiecărei coloane sau (Octet) într-o valoare hexagonală. De exemplu, dacă vă uitați la ultima imagine din acest pas, puteți vedea cum imaginea hărții lumii a fost spartă în treimi de sus în jos și fiecare coloană este formată din 3 octeți, unde alb sau oprit = 0 și Albastru sau Pornit = 1. La partea de jos a fiecărei coloane, octetul a fost convertit într-o valoare hexazecimală cuprinsă între 00 și FF, care este echivalentul unui interval de valori zecimale de 0-255 sau un interval binar de 00000000 la 11111111.

Codul atașat are imaginea Globe încărcată, dar poate fi modificată pentru o imagine proprie.

Pasul 7: Testare

Image
Image
Testarea
Testarea

Înainte de a continua cu construirea unei baze și a unui motor, m-am gândit să testez și să modific circuitul. Pur și simplu am aruncat platforma într-un burghiu fără fir, am pornit totul și am apăsat pe trăgaci. A trebuit să ajustez întârzierea la 1 ms și prima mea încercare a pus Rusia la sud de Australia. De asemenea, am aflat că imaginea se afișează cu fața în jos, din ceea ce mă așteptam, ceea ce a fost o soluție ușoară pentru a răsturna pur și simplu întregul inel. Videoclipul atașat este al testului meu final de succes. Acum este timpul pentru o bază cu un motor permanent și un controler de viteză.

JOACĂ TESTUL GLOBULUI DE PLOMB

Pasul 8: Terminarea

Terminand!
Terminand!
Terminand!
Terminand!
Terminand!
Terminand!

Am conectat întrerupătorul de lumină ca o deconectare pentru motorul meu și apoi am conectat regulatorul de viteză al ventilatorului între deconectare și motor. Acest lucru îmi oferă o modalitate de a opri rapid alimentarea și de a controla destul de bine viteza motorului. Acum aveam nevoie de o modalitate de a conecta motorul la glob. Arborele de pe motor avea 17/64 "și tot filetul pe care l-am folosit pentru glob este de 5/16". Un cuplaj de 5/16 "ar fi putut fi doar trucul, dar, din păcate, am avut doar cuplaje de 3/8" care erau inutile. În schimb, am găsit o bucată de material rotund de aluminiu de 1/2 "și am tăiat o piesă lungă de 2" și am forat o gaură de 17/64 "prin centru. Această dimensiune a orificiului era potrivită pentru a atinge un fir de 5 / 16-18 la jumătatea De asemenea, am forat și am bătut o mică gaură prin lateral pentru a fileta într-un șurub de fixare pentru arborele motorului, apoi am filetat în glob și am folosit o piuliță de blocare pentru a fixa. Asamblarea, așa că a trebuit să reglez viteza cât mai jos posibil. La această viteză, motorul nu va începe să se rotească, ceea ce face ca rularea să fie puțin dificilă. viteza până când motorul pornește, apoi pot reduce viteza și pot elibera globul.

RULEAZĂ VIDEO

Recomandat: