Indholdsfortegnelse:

(POV) Persistence of Vision Globe: 8 trin (med billeder)
(POV) Persistence of Vision Globe: 8 trin (med billeder)

Video: (POV) Persistence of Vision Globe: 8 trin (med billeder)

Video: (POV) Persistence of Vision Globe: 8 trin (med billeder)
Video: Part 6 - The Last of the Mohicans Audiobook by James Fenimore Cooper (Chs 23-26) 2024, Juli
Anonim
Image
Image
(POV) Persistence of Vision Globe
(POV) Persistence of Vision Globe
(POV) Persistence of Vision Globe
(POV) Persistence of Vision Globe

! Opdater! Jeg har tilføjet et excel -program, der gør det meget lettere at tegne og kode nye billeder

En simpel vedholdenhed af vision globus. SPIL VIDEO

Dette er et projekt, jeg har haft i tankerne i et stykke tid, og "Make It Glow" -konkurrencen var bare den motivation, jeg havde brug for for at inspirere mig til at trække et gammelt 5 LED POV -display frem og tage det til det næste niveau ved hjælp af skift registre. Hvis du nyder dette instruerbare, kan du overveje at stemme på det.

En hurtig introduktion til POV eller vedholdende syn: Enhver AC -spændingslampe blinker faktisk til og fra med en frekvens på 60 Hz eller 60 gange i sekundet. Vores hjerner opfatter dette som konstant lys. Det er dette koncept, som vi vil drage fordel af for at skabe et sfærisk billede ved hjælp af en enkelt række LED'er. Til dette projekt besluttede jeg, at 24 lysdioder i rækkefølge ved hjælp af tre 8-bit skiftregistre ville give den mindste opløsning, der er nødvendig for kloden.

Trin 1: Materialer

Her er hvad jeg brugte.

  • (1) Arduino Uno (til prototyper)
  • (1) Bareduino (til permanent bord valgfrit) VIRTUABOTIX LINK
  • (3) HC595N Skiftregistre
  • (24) Blå lysdioder
  • (24) 220 ohm modstandere
  • (1) brødbræt
  • (1) batteriholder og batteri
  • (1) 10 "diameterring (bred nok til at holde lysdioder og jo lettere jo bedre)
  • (1) stykke gevindstang (jeg brugte 5/16 ")
  • (1) Motor (jeg brugte en fra en gammel Dirt Devil)
  • (1) Motorkobling
  • (1) 120V frakobling (lyskontakt)
  • (1) Ventilatorhastighedsregulator

Trin 2: Opbygning af ringen

Bygger ringen
Bygger ringen
Bygger ringen
Bygger ringen

Jeg brugte et stykke 1/8 "tyk x 1/2" bred aluminium flad stang til min ring og 5/16 "alt gevind til midtermasten, fordi jeg havde dem liggende, men jeg tror, at dette kunne laves på en 3D -printer komplet med PCB -beslag og være meget lettere. Jeg byggede denne ring til en tidligere build ved hjælp af 5 lysdioder, hver slukket for en separat DO af Arduino.

Der er ikke noget særligt ved ringens diameter. Min er ca. 10 runde, bare fordi den flade stang, jeg havde, var 3 'lang til at begynde med. Jeg rullede den på en 3 i 1 forskydning/bremse/rulle fra Harbor Freight, men du kunne også danne ringen omkring en disk skåret af krydsfiner og har gode resultater. For den sags skyld ser jeg ingen grund til, at ringen ikke kunne være lavet af træ. Jeg foretrækker bare metlarbejde.

Jeg borede huller til lysdioderne på ca. 5/16 "på midten. Denne afstand udfyldte alle undtagen 1" på toppen og bunden på den ene side af ringen. Du bliver nødt til at bolt en beslag i midten af ringen for at give en monteringsoverflade til brødbrædderne.

Trin 3: Lav kredsløbet

Gør kredsløbet
Gør kredsløbet
Gør kredsløbet
Gør kredsløbet
Gør kredsløbet
Gør kredsløbet

Dette var mit første forsøg på at bruge skifteregistre, så jeg begyndte at undersøge Arduinos websted og fandt et ekstremt nyttigt eksempel, som jeg ændrede for at passe til mine behov. Du kan finde selvstudiet på Arduino ShiftOut Jeg slog mig til med "Kodeeksempel 2.3 - Dual Defined Arrays" som min basiskode, mere om det senere.

Hvis du følger vejledningen, lærer du, hvordan du sender bit informationer en efter en i serie fra din Arduino til skifteregistrene. Dette arrangement giver dig mulighed for at styre alle 24 lysdioder på dette projekt med kun 3 ben på Arduino. Vi vil bruge den serielle ind, parallelle ud -mulighed for 74HC595 til at indlæse 24 bits information eller 3 Bytes i skifteregistrene og derefter flytte dataene ud parallelt med lysdioderne.

Da den første bit data, vi indlæser, vil ende på det sidste registerpunkt, vil vi vedhæfte LED1 eller den sydligste LED til QO i det første skiftregister. Følg skematisk fra ShiftOut -eksemplet og vedhæft det tredje skiftregister til det andet på samme måde som det andet er knyttet til det første.

Jeg anbefaler at køre prøvekoden undervejs, først med kun et register og derefter med to. Prøvekoden sekventerer lysene, så det er let at se, om noget er ledningsfrit. Jeg var i stand til blot at tilføje en Byte3 til "Kodeeksempel 2.3 - Dual Defined Arrays" og et tredje array, som jeg kaldte Blue. Du kan se dette i ShiftOutArrayByte3R1 -koden, der er uploadet til dette trin.

Trin 4: Sæt det hele sammen

Samler det hele
Samler det hele
Samler det hele
Samler det hele

Nu hvor vi var sikre på, at kredsløbet fungerer, er vi nødt til at få alt monteret på ringen. Jeg foreslår, at du monterer din Arduino/Bareduino på den ene side og dit Shift Register Board overfor Arduino. Dette vil hjælpe med at afveje vægten, men du bliver sandsynligvis nødt til at flytte nogle ting rundt, indtil du får en stabil rotation. Jeg brugte 9 Volt batteri på den side, jeg havde brug for at tilføre vægt til. Jeg brugte lynlåse til at fastgøre brædderne og batteriet til midten af masten. På denne måde kunne jeg foretage justeringer for at få ringen afbalanceret.

Nu til at lodde alle lysdioderne. Da vi styrer den positive spænding fra LED'erne, kan vi forbinde alle katodeledningerne sammen med en enkelt uisoleret ledning og tilslutte den til vores jord. Derefter skal vi lodde en modstand til anodeledningen på hver LED og derefter fastgøre en ledning fra modstanden til den tilsvarende skiftregisterudgangsstift. Jeg forlod funktionen Blink alle i opsætningssløjfen som en nem måde at se, om du har en LED ude.

Trin 5: Tegning af kloden

Tegning af kloden
Tegning af kloden
Tegning af kloden
Tegning af kloden
Tegning af kloden
Tegning af kloden

!! Opdatering !! Nu kan du tegne ved hjælp af excel -programmet, som konverterer billedet til hexidecimalt for dig. Koden til dine røde, blå og grønne arrays kan kopieres og indsættes i Arduino -skitsen. Du skal blot udfylde en 1, hvor du vil have LED'en til at være tændt, og cellen skifter automatisk til blåt! Excel -programmet uploades til dette trin. Tak til Rave Shades, der kan instrueres i udstationering af Rave Shades Animator, som blev ændret til dette projekt

Okay. Nu for at blive kunstnerisk. Jeg valgte en globus, fordi jeg tænkte, at det ville være en sej måde at lave et 360 graders sfærisk display ved hjælp af POV, men jeg vil prøve at vise i dette og det næste trin, hvordan du kan oprette ethvert billede, du kan tegne i en opløsning på 24x70 prikker.

Først fandt jeg et passende verdenskortbillede til brug som vejledning. Så fandt jeg en app på Google Play kaldet "Mosaic Builder", der var perfekt til mine behov. Som du kan se på det sidste billede på dette trin, var jeg i stand til at oprette en lavopløselig version af verdenskortet på min 24x70 skabelon. FYI 24 kommer fra de 3 Bytes data og derfor 24 lysdioder høje, og de 70 kommer fra at dividere omkredsen af min ring med 5/16 "for at få den vandrette afstand til at matche tæt med lysdiodernes lodrette afstand. De 70 punkter brede vil variere baseret på størrelsen på din ring, men er ikke kritisk. Det er især ikke kritisk, da vi ikke bruger nogen form for sensor, f.eks. en infrarød LED til at registrere en fuldstændig rotation og nulstille sløjfen. Dette er noget, jeg kan overveje i fremtiden, men for nu, så længe vi har hastighedskontrol på motoren, er sensoren unødvendig.

Når du har en tegning, du er tilfreds med, kan du konvertere billedet til hexadecimal kode ved Byte i det næste trin.

Trin 6: Koden

Koden
Koden
Koden
Koden
Koden
Koden

! Opdater! Tegn bare dit billede med 1s til at repræsentere ON, som automatisk farver pixlen blå. Når dit billede er klart, skal du trykke på knappen "Kopier alle arrays" og indsætte de eksisterende arrays i Arduino -skitsen! Jeg har uploadet en ny skitse til dette trin

Som tidligere nævnt brugte jeg "Kodeeksempel 2.3 - Dual Defined Arrays" fra Arduino ShiftOut -eksemplet som min base. Som du vil bemærke i denne kode, kommenterer forfatteren, at han ikke er sikker på, om Arduino kan håndtere direkte binære værdier, så Hexidecimalværdier blev brugt i stedet. Bemærk: Jeg har aldrig ændret de binære kommentarer ud for Hex -værdierne, jeg har kun ændret Hex -værdierne, så de passer til mit verdenskortbillede.

Nu var det kun anden gang, jeg så Hex, og jeg var ret uvidende. Jeg fandt det vedhæftede Hexidecimal-Binære konverteringsdiagram, som hjalp enormt. Dette diagram kan bruges til at konvertere den binære værdi for hver kolonne eller (Byte) til en hex -værdi. Hvis du f.eks. Ser på det sidste billede på dette trin, kan du se, hvordan verdenskortbilledet blev delt i tredjedele fra top til bund, og hver kolonne består af 3 Bytes, hvor hvid eller off = 0 og Blue eller On = 1. Kl. bunden af hver kolonne er Byte blevet konverteret til en hexadecimal værdi, der spænder mellem 00 & FF, hvilket svarer til et decimalværdiinterval på 0-255 eller et binært område på 00000000 til 11111111.

Den vedhæftede kode har Globe -billedet indlæst, men kan ændres til et eget billede.

Trin 7: Test

Image
Image
Test
Test

Inden jeg gik videre med at bygge en base og et motorophæng, tænkte jeg, at jeg ville teste og justere kredsløbet. Jeg smed simpelthen riggen ind i en akku -boremaskine, tændte alt og trak i aftrækkeren. Jeg var nødt til at justere forsinkelsen til 1 ms, og mit første forsøg satte Rusland syd for Australien. Jeg lærte også, at billedet vises med forsiden nedad, fra det jeg havde forventet, hvilket var en let løsning at bare vende hele ringen om. Den vedhæftede video er af min sidste vellykkede test. Nu er det tid til en base med en permanent motor og hastighedsregulator.

SPIL LEAD GLOBE TEST

Trin 8: Afslut

Afslutter!
Afslutter!
Afslutter!
Afslutter!
Afslutter!
Afslutter!

Jeg tilsluttede lyskontakten som en afbrydelse til min motor og derefter tilsluttede ventilatorhastighedsregulatoren mellem afbryderen og motoren. Dette giver mig en måde at slukke for strømmen hurtigt og have rimelig god kontrol over motorhastigheden. Nu havde jeg brug for en måde at forbinde motoren til kloden. Akslen på motoren var 17/64 ", og alt gevind, jeg brugte til kloden, er 5/16". En 5/16 "kobling kunne have været bare tricket, men desværre havde jeg kun 3/8" koblinger, som var ubrugelige. I stedet fandt jeg et stykke 1/2 "aluminium rundmasse og skar et 2" langt stykke og borede et 17/64 "hul gennem midten. Denne hulstørrelse var velegnet til at tappe en 5/16-18 tråd halvvejs gennem Jeg borede og bankede også på et lille hul gennem siden for at gevind i en skrue til motorakslen, derefter trådte jeg i kloden og brugte en møtrik til at fastgøre. Dirt Devil -motoren snurrer hurtigt nok til at blæse hullet fra hinanden montering, så jeg var nødt til at justere hastigheden så langt ned som muligt. Ved denne hastighed vil motoren faktisk ikke begynde at snurre, hvilket gør at køre riggen lidt vanskelig. Det jeg skal gøre er at holde kloden fra at snurre og langsomt hæve hastighed, indtil motoren starter, så kan jeg skrue ned for hastigheden og slippe kloden. Endelig kan jeg med en delikat fin finjustering få en stor langsom spindingseffekt.

SPIL VIDEO

Anbefalede: