Inhoudsopgave:

(POV) Persistentie van Vision Globe - Ajarnpa
(POV) Persistentie van Vision Globe - Ajarnpa

Video: (POV) Persistentie van Vision Globe - Ajarnpa

Video: (POV) Persistentie van Vision Globe - Ajarnpa
Video: Persistence of Vision Globe - 6.600 Pixel - based on a Raspberry Pi and Pico 2024, Juli-
Anonim
Image
Image
(POV) Persistentie van Vision Globe
(POV) Persistentie van Vision Globe
(POV) Persistentie van Vision Globe
(POV) Persistentie van Vision Globe

!Update! Ik heb een Excel-programma toegevoegd dat het veel gemakkelijker maakt om nieuwe afbeeldingen te tekenen en te coderen

Een eenvoudige persistentie van vision globe. VIDEO AFSPELEN

Dit is een project dat ik al geruime tijd in gedachten had en de "Make It Glow"-wedstrijd was precies de motivatie die ik nodig had om me te inspireren om een oud 5 LED POV-scherm tevoorschijn te halen en het naar een hoger niveau te tillen, met behulp van shift registreert. Als je deze instructable leuk vindt, overweeg dan om ervoor te stemmen.

Een snelle introductie tot POV of persistentie van het gezichtsvermogen: elk AC-spanningslampje knippert in feite aan en uit met een frequentie van 60 Hz of 60 keer per seconde. Onze hersenen nemen dit waar als constant licht. Van dit concept zullen we profiteren om een bolvormig beeld te creëren met een enkele rij LED's. Voor dit project besloot ik dat 24 LED's, gesequenced met behulp van drie 8-bits schuifregisters, de minimale resolutie zouden bieden die nodig is voor de wereld.

Stap 1: Materialen

Dit is wat ik heb gebruikt.

  • (1) Arduino Uno (voor prototyping)
  • (1) Bareduino (voor permanent bord optioneel) VIRTUABOTIX LINK
  • (3) HC595N-schuifregisters
  • (24) Blauwe LED's
  • (24) 220 ohm weerstanden
  • (1) broodplank
  • (1) batterijhouder en batterij
  • (1) Ring met een diameter van 10 "(breed genoeg om LED's vast te houden en hoe lichter hoe beter)
  • (1) stuk draadstang (ik gebruikte 5/16 ")
  • (1) Motor (ik gebruikte er een van een oude Dirt Devil)
  • (1) Motorkoppeling
  • (1) 120V loskoppelen (lichtschakelaar)
  • (1) Ventilatorsnelheidsregelaar

Stap 2: De ring bouwen

De ring bouwen
De ring bouwen
De ring bouwen
De ring bouwen

Ik gebruikte een stuk van 1/8" dik x 1/2" brede aluminium platte staaf voor mijn ring en 5/16" alle draad voor de middelste mast, omdat ik ze had liggen, maar ik denk dat dit op een 3D-printer, compleet met PCB-bevestigingen en veel lichter. Ik bouwde deze ring voor een eerdere build met 5 LED's die elk een afzonderlijke DO van de Arduino uitschakelden.

Er is niets bijzonders aan de diameter van de ring. De mijne is ca. 10 rond, alleen omdat de platte staaf die ik had om te beginnen 3' lang was. Ik rolde het op een 3 in 1 schaar/rem/rol van Harbor Freight, maar je zou ook de ring rond een schijf kunnen vormen die uit multiplex is gesneden en heb goede resultaten. Trouwens, ik zie geen reden waarom de ring niet van hout zou kunnen zijn. Ik geef gewoon de voorkeur aan metaalbewerking.

Ik boorde gaten voor de LED's op ongeveer 5/16 "in het midden. Deze afstand vulde alles behalve 1" aan de boven- en onderkant aan één kant van de ring in. U moet een beugel in het midden van de ring vastschroeven om een montageoppervlak voor de breadboards te creëren.

Stap 3: Het circuit maken

Het circuit maken
Het circuit maken
Het circuit maken
Het circuit maken
Het circuit maken
Het circuit maken

Dit was mijn eerste poging om shift-registers te gebruiken, dus ik begon onderzoek te doen op de Arduino-site en vond een uiterst nuttig voorbeeld, dat ik aanpaste aan mijn behoeften. Je kunt de tutorial vinden op Arduino ShiftOut. Ik heb gekozen voor de "Code Sample 2.3 - Dual Defined Arrays" als mijn basiscode, daarover later meer.

Als je de tutorial doorloopt, leer je hoe je stukjes informatie één voor één serieel van je Arduino naar de schuifregisters kunt sturen. Met deze opstelling kunt u alle 24 LED's op dit project bedienen met slechts 3 pinnen op de Arduino. We zullen de seriële in, parallel uit-mogelijkheid van de 74HC595 gebruiken om 24 bits informatie of 3 bytes in de schuifregisters te laden en vervolgens de gegevens parallel naar de LED's te schuiven.

Aangezien het eerste stukje gegevens dat we laden op de laatste registerplaats terechtkomt, zullen we LED1 of de meest zuidelijke LED aan QO van het eerste Shift Register bevestigen. Volg het schema van het ShiftOut-voorbeeld en bevestig het derde schuifregister aan het tweede, op dezelfde manier als het tweede aan het eerste.

Ik raad aan om de voorbeeldcode onderweg uit te voeren, eerst met slechts één register en vervolgens met twee. De voorbeeldcode rangschikt de lichten zodanig dat het gemakkelijk is om te zien of er iets is bedraad. Ik kon eenvoudig een Byte3 toevoegen aan de "Code Sample 2.3 - Dual Defined Arrays" en een derde array die ik Blue noemde. U kunt dit zien in de ShiftOutArrayByte3R1-code die naar deze stap is geüpload.

Stap 4: Alles samenbrengen

Alles bij elkaar zetten
Alles bij elkaar zetten
Alles bij elkaar zetten
Alles bij elkaar zetten

Nu we er zeker van waren dat het circuit werkt, moeten we alles op de ring monteren. Ik stel voor om je Arduino/Bareduino aan de ene kant te monteren en je Shift Register Board tegenover de Arduino. Dit zal helpen om het gewicht te egaliseren, maar je zult hoogstwaarschijnlijk iets moeten verplaatsen totdat je een stabiele rotatie krijgt. Ik gebruikte de 9 Volt-batterij aan de kant waar ik gewicht aan moest toevoegen. Ik heb kabelbinders gebruikt om de planken en de batterij aan de middelste mast te bevestigen. Op deze manier kon ik aanpassingen maken om de ring in balans te krijgen.

Nu alle LED's solderen. Omdat we de positieve spanning van de LED's regelen, kunnen we alle kathodedraden verbinden met een enkele niet-geïsoleerde draad en die in onze aarde steken. Vervolgens moeten we een weerstand solderen aan de anode-draad van elke LED en vervolgens een draad van de weerstand aan de overeenkomstige schuifregisteruitgangspen bevestigen. Ik heb de functie Blink All in de setup-lus achtergelaten als een gemakkelijke manier om te zien of je een LED hebt uit.

Stap 5: De wereldbol tekenen

De wereld tekenen
De wereld tekenen
De wereld tekenen
De wereld tekenen
De wereld tekenen
De wereld tekenen

!!Update!! Nu kunt u tekenen met het Excel-programma, dat de afbeelding voor u naar hexadecimaal converteert. De code voor uw rode, blauwe en groene arrays kan worden gekopieerd en in de Arduino-schets worden geplakt. Vul gewoon een 1 in waar u wilt dat de LED AAN is en de cel verandert automatisch in blauw! Het Excel-programma wordt naar deze stap geüpload. Dankzij de Rave Shades instructable voor het plaatsen van de Rave Shades Animator, die is aangepast voor dit project

Oke. Nu artistiek worden. Ik koos een wereldbol omdat ik dacht dat het een coole manier zou zijn om een 360 graden bolvormig scherm te maken met POV, maar ik zal in deze en de volgende stap proberen te laten zien hoe je elke afbeelding kunt maken die je kunt tekenen in een resolutie van 24x70 dots.

Eerst vond ik een geschikte afbeelding van de wereldkaart om als richtlijn te gebruiken. Toen vond ik een app op Google Play genaamd "Mosaic Builder" die perfect was voor mijn behoeften. Zoals je kunt zien in de laatste afbeelding van deze stap, kon ik een low-res-versie van de wereldkaartfoto maken op mijn 24x70-sjabloon. Ter informatie: de 24 komt van de 3 bytes aan gegevens en daarom zijn 24 LED's lang en de 70 komt van het delen van de omtrek van mijn ring door 5/16 "om de horizontale afstand nauw aan te laten sluiten bij de verticale afstand van de LED's. De 70 stippen breed zal variëren op basis van de grootte van je ring, maar is niet kritisch. Het is vooral niet kritisch omdat we geen enkele sensor gebruiken, zoals een infrarood LED om een volledige rotatie te detecteren en de lus te resetten. Dit is iets wat ik kan overweeg in de toekomst, maar zolang we snelheidsregeling op de motor hebben, is de sensor niet nodig.

Als je eenmaal een tekening hebt waar je tevreden mee bent, kun je de afbeelding in de volgende stap omzetten in hexadecimale code door Byte.

Stap 6: De code

De code
De code
De code
De code
De code
De code

!Update! Teken gewoon uw afbeelding in met 1s om AAN weer te geven, waardoor de pixel automatisch blauw wordt. Wanneer je afbeelding klaar is, druk je op de knop "Alle arrays kopiëren" en plak je over de bestaande arrays in de Arduino-schets! Ik heb een nieuwe schets geüpload naar deze stap

Zoals eerder vermeld, gebruikte ik de "Code Sample 2.3 - Dual Defined Arrays" uit het Arduino ShiftOut-voorbeeld als mijn basis. Zoals je in deze code zult opmerken, merkt de auteur op dat hij niet zeker weet of Arduino directe binaire waarden aankan, dus werden in plaats daarvan hexadecimale waarden gebruikt. Opmerking: ik heb nooit de binaire opmerkingen naast de Hex-waarden gewijzigd, ik heb alleen de Hex-waarden gewijzigd om in mijn wereldkaartafbeelding te passen.

Dit was pas de tweede keer dat ik Hex zag en ik had geen idee. Ik vond de bijgevoegde Hexidecimaal-Binaire conversietabel, die enorm hielp. Deze grafiek kan worden gebruikt om de binaire waarde van elke kolom of (byte) om te zetten in een hexadecimale waarde. Als u bijvoorbeeld naar de laatste afbeelding van deze stap kijkt, kunt u zien hoe de afbeelding van de wereldkaart van boven naar beneden in drieën is verdeeld en elke kolom bestaat uit 3 bytes, waarbij wit of uit = 0 en blauw of aan = 1. Bij onderaan elke kolom is de byte geconverteerd naar een hexadecimale waarde tussen 00 & FF, wat overeenkomt met een decimaal waardebereik van 0-255 of een binair bereik van 00000000 tot 11111111.

De bijgevoegde code heeft de Globe-afbeelding geladen, maar kan worden aangepast voor een eigen afbeelding.

Stap 7: Testen

Image
Image
Testen
Testen

Voordat ik verder ging met het bouwen van een basis en motorsteun, dacht ik dat ik het circuit zou testen en aanpassen. Ik gooide het tuig eenvoudig in een accuboormachine, zette alles aan en haalde de trekker over. Ik moest de vertraging aanpassen naar 1 ms en mijn eerste poging bracht Rusland ten zuiden van Australië. Ik heb ook geleerd dat de afbeelding ondersteboven wordt weergegeven, van wat ik had verwacht, wat een gemakkelijke oplossing was om gewoon de hele ring om te draaien. De bijgevoegde video is van mijn laatste succesvolle test. Nu is het tijd voor een basis met een permanente motor en snelheidsregelaar.

SPEEL LEAD GLOBE TEST

Stap 8: Afwerking

Afronden!
Afronden!
Afronden!
Afronden!
Afronden!
Afronden!

Ik heb de lichtschakelaar aangesloten als een ontkoppeling voor mijn motor en vervolgens de ventilatorsnelheidsregelaar bedraad tussen de ontkoppeling en de motor. Dit geeft me een manier om de stroom snel uit te schakelen en redelijk goede controle over de motorsnelheid te hebben. Nu had ik een manier nodig om de motor met de wereldbol te verbinden. De as op de motor was 17/64 "en de draad die ik voor de globe heb gebruikt is 5/16". Een 5/16"-koppeling was misschien precies de truc, maar helaas had ik alleen 3/8"-koppelingen die nutteloos waren. In plaats daarvan vond ik een stuk 1/2 "aluminium ronde kolf en sneed een 2" lang stuk en boorde een 17/64" gat door het midden. Deze gatmaat was geschikt voor het tappen van een 5/16-18 draad halverwege de ronde kolf. Ik heb ook een klein gaatje door de zijkant geboord en getikt om een stelschroef voor de motoras in te draaien, daarna heb ik de bol erin geschroefd en een contramoer gebruikt om het vast te zetten. De Dirt Devil-motor draait snel genoeg om het gat uit elkaar te blazen montage, dus ik moest de snelheid zo ver mogelijk naar beneden aanpassen. Op deze snelheid begint de motor niet echt te draaien, waardoor het een beetje lastig is om de rig te besturen. Wat ik moet doen is de wereldbol van het draaien houden en langzaam de snelheid totdat de motor aanslaat, dan kan ik de snelheid terugdraaien en de wereldbol loslaten. Ten slotte kan ik met wat delicate finetuning een geweldig langzaam draaiend effect krijgen.

VIDEO AFSPELEN

Aanbevolen: