Indholdsfortegnelse:

Lav din egen POV -skærm: 3 trin
Lav din egen POV -skærm: 3 trin

Video: Lav din egen POV -skærm: 3 trin

Video: Lav din egen POV -skærm: 3 trin
Video: MAKEUP ELLER EJ | Klassen | Ultra 2024, Juli
Anonim
Lav din egen POV -skærm
Lav din egen POV -skærm

Visionsopfattelsen (POV) eller Visionens vedholdenhed (den har flere variationer) er et interessant menneskeligt synfænomen, der opstår, når visuel opfattelse af et objekt ikke ophører på trods af, at objektet ændrer position. Mennesker ser et billede i intervaller på brøkdele af sekunder; disse billeder gemmes i hjernen i meget kort tid (et øjeblik). Et eksempel på dette fænomen er, når du observerer en lyskilde som f.eks. Lysdioder eller pærer, tændt og snurret rundt. Vores vision bliver narret til at tro, at det roterende lys faktisk er en kontinuerlig cirkel, ligesom den kontinuerlige cirkel dannet af en roterende propel på et plan. POV har været brugt i mange år, begyndende med giphoscope, til at lave forskellige former for illusioner og animationer til vores vision; det bruges ofte til at vise meddelelser og animationer på skærme ved hjælp af lysdioder, spinde dem i 2D eller 3D for forskellige slags meddelelser. Formålet med denne appnotat er at designe og demonstrere, hvordan Perception of Vision fungerer ved at skrive ordet "SILEGO" på displayet, der skal bygges, og give ideer til at guide dig gennem processen med at lave mere komplekse designs i fremtiden. Til dette projekt brugte vi en Dialog GreenPAK ™ SLG46880 med sit stiksæt, der gør det muligt let at tilslutte denne prototype til alle eksterne komponenter ved hjælp af kabler. Det er meget fordelagtigt at bruge den større GreenPAK til at designe POV -skærme til generelle formål på grund af dets robuste komponenter, f.eks. ASM -undersystemer, som giver dig mulighed for at udskrive enhver form for mønster på displayet. Denne applikation viser et endeligt resultat ved hjælp af en SLG46880.

Nedenfor beskrev vi de nødvendige trin for at forstå, hvordan GreenPAK -chippen er programmeret til at oprette POV -skærmen. Men hvis du bare vil få resultatet af programmeringen, skal du downloade GreenPAK -software for at se den allerede gennemførte GreenPAK -designfil. Tilslut GreenPAK Development Kit til din computer, og tryk på programmet for at oprette den brugerdefinerede IC til POV -skærmen.

Trin 1: Skemaer

Skemaer
Skemaer

Dette POV -displayeksempel er målrettet mod en 2D -type vist i figur 1, som har en række elleve lysdioder (hver med modstande til regulering af strøm), der er forbundet direkte til forskellige GPO -ben på GreenPAK CMIC. Kredsløbet er prototypet og loddet i PCB -brødbrætter. Strømforsyningen, der bruges til displayet, er et 9 V 10 A L1022 alkalisk batteri, der er forbundet til et spændingsregulator kredsløb ved hjælp af LM7805V, der afgiver 5 V. Ud over at få displayet til at rotere, er der brug for en DC -motor med nok styrke til at flytte alle styrekredsløb fastgjort til det tilpassede stativ. I dette tilfælde blev der brugt en 12 V-motor, forbundet til en hovedafbryder og en reguleret strømforsyning på hylden, der udsender forskellige spændingsniveauer gennem en drejekontakt, så motoren kan rotere ved flere hastigheder.

Trin 2: GreenPAK Design

GreenPAK Design
GreenPAK Design
GreenPAK Design
GreenPAK Design
GreenPAK Design
GreenPAK Design
GreenPAK Design
GreenPAK Design

Når vi designer forskellige slags meddelelser og animationer til en POV -skærm ved hjælp af GreenPAK, bør vi kende både værktøjerne og begrænsningerne for chippen. På denne måde kan vi skabe et dygtigt design ved hjælp af de færreste elektronikkomponenter til at opnå POV -displayet. Dette design anvender de nye fordele, der tilbydes af SLG46880 CMIC, med fokus på komponenten Asynchronous State Machine Subsystems. SLG46880 ASM -delsystemværktøjet kan være mere fordelagtigt end tidligere GreenPAK ASM -værktøjer på grund af dets nye funktioner, som tillader mere komplekse State Machine -designs. Nogle af de relevante ASM -delsystemers interne komponenter, der bruges, er:

● 12-stater ASM Macrocell

● Dynamisk hukommelse (DM) Macrocell

● F (1) Beregning Macrocell

● Statens uafhængige komponenter

Jo mere statsmaskine makroceller chippen tillader at oprette og konfigurere, jo flere talrige designmuligheder. Hver af de tolv tilstande blev brugt til at skrive forskellige brøkdele af det ord, der skulle vises, og tænde/slukke for forskellige kombinationer af lysdioderne, hvoraf nogle blev gentaget to eller flere gange, og i nogle tilfælde ændres timingen for gentagne tilstande, fordi det samme mønster kunne bruges til forskellige bogstaver på forskellige tidspunkter. Stater er struktureret i tabel 1.

Tabel 1 viser, hvordan hver af de eksisterende tilstande i designet er relateret til bogstaverne i ordet "SILEGO". Dette korrelerer med LED -konfigurationen vist i figur 2.

Som du kan observere, opnår alle tilstande, der udføres sammen på forskellige tidspunkter, hele ordets opbygning, figur 3 viser, hvordan tilstande er forbundet/relateret. Alle statens overgange er i størrelsesordenen millisekunder, og hver af kolonnerne i diagrammet i figur 2 repræsenterer et millisekund (1 ms). Nogle af staterne varer 3 ms, 4 ms og andre, længe nok med minimumshastigheden for motoren, der bruges til videodemonstrationen ved cirka 460 o / min.

Det er vigtigt at overveje og måle motorens hastighed for at kende og beregne timingen på design til generelle formål. På denne måde kan meddelelsen synkroniseres med motorhastigheden og derved synlig for det menneskelige øje. En anden overvejelse for at gøre tilstandsovergangen mindre umærkelig og klarere for vores vision, er at øge motorens hastighed til mere end 1000 omdr./min., Og tilstandenes timing indstilles i rækkefølgen af mikrosekunder, så budskabet kunne ses problemfrit. Du spørger måske dig selv, hvordan vil du synkronisere motorens hastighed med beskedhastigheden eller animationen? Dette opnås ved et par enkle formler. Hvis du har en motorhastighed på 1000 o / min, for at vide, hvor lang tid DC -motoren tager per omdrejning i sekunder, så:

Frekvens = 1000 RPM / 60 = 16,67 Hz Periode = 1 / 16,67 Hz = 59,99 ms

Ved at kende perioden ved du, hvor lang tid motoren tager i et sving. Hvis du vil udskrive en besked som "Hello World", når du kender perioden for hver tur, er det bare et spørgsmål om, hvor stor du vil have, at meddelelsen skal vises på displayet. Følg denne tommelfingerregel for at udskrive den ønskede meddelelse i den ønskede størrelse:

Hvis du f.eks. Ønsker, at meddelelsen dækker 40 % af displayets plads, så:

Beskedstørrelse = (periode * 40 %) / 100 % = (59,99 ms * 40 %) / 100 % = 24 ms

Det betyder, at meddelelsen vises i 24 ms for hver tur, så det tomme mellemrum eller resten af rummet i en tur (hvis du ikke viser noget efter meddelelsen), skal være:

Blankt mellemrum = Periode - Beskedstørrelse = 59,99 ms - 24 ms = 35,99 ms

Endelig, hvis du har brug for at vise meddelelsen i de 40% af perioden, skal du vide, hvor mange tilstande og overgange meddelelsen skal bruge for at skrive den forventede meddelelse, f.eks. Hvis meddelelsen har tyve (20) overgange, så:

Enkelt tilstandsperiode = Meddelelsesstørrelse / 20 = 24 ms / 20 = 1,2 ms.

Så hver tilstand skal vare 1,2 ms for at vise meddelelsen korrekt. Selvfølgelig vil du bemærke, at de fleste af de første designs ikke er perfekte, så du kan ændre nogle parametre under fysisk test for at forbedre designet. Vi brugte Dynamic Memory (DM) Macrocells til at lette tilstandsovergange. To af de fire DM -blokke har matrixforbindelser, så de kan interagere med blokke uden for ASM -delsystemet. Hver DM Macrocell kan have op til 6 forskellige konfigurationer, der kan bruges i forskellige tilstande. DM -blokke bruges i dette design til at udløse ASM til overgang fra en tilstand til en anden. For eksempel gentages Silego [3] -tilstanden to gange over overgangene; det skal skrive begyndelsen og slutningen af det store "I" -bogstav, der har det samme mønster, men det skal først gå til Silego [4] for at skrive mønsteret i midten af store "I", og derefter når Silego [3] udføres for anden gang, skal den gå til tilstanden Ingen besked og fortsætte resten af overgangene. Hvordan er det muligt at forhindre Silego [3] i at falde i en uendelig sløjfe med Silego [4]? Det er simpelt, der er nogle LUT'er konfigureret som SR Flip Flops, der fortæller Silego [3] om ikke at vælge Silego [4] igen og igen, men vælge Ingen meddelelsestilstand anden gang. Brug af SR-flip-flops til at forhindre uendelige sløjfer, når nogen af tilstande gentages, er en fantastisk måde at løse dette problem på og kræver kun en 3-bit LUT konfigureret som vist i figur 4 og figur 5. Denne proces sker samtidig med ASM -udgangen får Silego [3] til at gå til Silego [4], så næste gang statsmaskinen udfører Silego [3], vil det blive underrettet om at vælge Ingen besked -tilstand for at fortsætte processen.

En anden ASM -blok, der var nyttig til dette projekt, er F (1) Computational Macrocell. F (1) kan udføre en liste over specifikke kommandoer til at læse, gemme, behandle og udsende ønskede data. Det er i stand til at manipulere 1 bit ad gangen. I dette projekt blev F (1) blokken brugt til at læse, forsinke og udsende bits til at styre nogle LUT'er og aktivere tilstande (f.eks. I Silego [1] for at aktivere Silego [2]).

Tabellen i figur 1 forklarer, hvordan hver af lysdioderne er adresseret til GPO -benene i GreenPAK; de tilhørende fysiske stifter adresseres fra ASM Output RAM i matricen, som det er vist i tabel 2.

Som du kan se i tabel 2, blev hver pin af chippen adresseret til forskellige ASM -udgange; ASMOUTPUT 1 har otte (8) udgange, der alle bruges direkte forbundet til eksterne GPO'er undtagen OUT 4. ASM OUTPUT 0 har fire (4) udgange, hvor OUT 0 og OUT 1 er direkte forbundet til henholdsvis PIN 4 og PIN 16; OUT 2 bruges til at nulstille LUT5 og LUT6 ved Silego [5] og Silego [9] -tilstande, og til sidst bruges OUT 3 til at indstille LUT6 til Silego [4] og Silego [7]. ASM nRESET skifter ikke i dette design, så det er bare tvunget til HIGH at blive forbundet til VDD. Øvre og nedre lysdioder blev tilføjet til dette projekt for at lave yderligere animationer, mens "SILEGO" vises. Denne animation handler om et par linjer, der cirkler over tid med motorens bevægelse. Disse linjer er hvide lysdioder, mens dem, der bruges til at skrive bogstaverne, er røde. For at opnå denne animation brugte vi GreenPAKs PGEN og CNT0. PGEN er en mønstergenerator, der udsender den næste bit i sit array ved hver urkant. Vi opdelte motorens drejeperiode i 16 sektioner, og resultatet blev indstillet til outputperioden for CNT0. Mønsteret programmeret i PGEN er vist i figur 6.

Trin 3: Resultater

Resultater
Resultater

For at teste designet tilsluttede vi SLG46880 -stikket til printkortet med et båndkabel. To eksterne kort var forbundet til kredsløbet, hvoraf det ene indeholdt spændingsregulatoren og det andet, der indeholdt LED -arrayet. For at begynde at vise meddelelsen til demonstration tændte vi det logiske kredsløb, der styres af GreenPAK, og tændte derefter for DC -motoren. Hastigheden skal muligvis justeres for korrekt synkronisering. Det endelige resultat er vist i figur 7. Der er også en tilhørende video med denne applikationsnote.

Konklusion Perception of Vision Display præsenteret i dette projekt blev designet ved hjælp af en Dialog GreenPAK SLG46880 som hovedcontroller. Vi demonstrerede, at designet fungerer ved at skrive ordet “SILEGO” ved hjælp af lysdioder. Nogle forbedringer, der kan foretages i designet, omfatter:

● Brug af flere GreenPAK'er til at øge mængden af staters muligheder for at udskrive en længere besked eller animation.

● Tilføj flere lysdioder til matrixen. Det kan være nyttigt at bruge overflademonterede lysdioder frem for gennemgående huller til at reducere massen af den roterende arm.

● Hvis du inkluderer en mikrokontroller, kan du ændre den meddelelse, der vises, ved hjælp af I2C -kommandoer til at omkonfigurere GreenPAK -designet. Dette kan bruges til at oprette et digitalt urskærm, der opdaterer cifrene for at vise tiden præcist

Anbefalede: