Indholdsfortegnelse:
- Trin 1: Ansvarsfraskrivelse
- Trin 2: Lav PCB ved hjælp af toneroverførselsmetode
- Trin 3: Lodning af elektroniske komponenter
- Trin 4: Programmering af STM32 mikrokontroller
- Trin 5: Brug af AODMoST 32
- Trin 6: Designoversigt
Video: Alternativt lukkende dikoptisk modifikator for stereoskopisk transmission 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
I et stykke tid har jeg arbejdet på en efterfølger til den originale AODMoST. Ny enhed bruger hurtigere og bedre 32-bit mikrokontroller og hurtigere analog video switch. Det giver AODMoST 32 mulighed for at arbejde med højere opløsninger og implementere nye funktioner. Enheden kan nu også drives af USB’s 5V spænding.
Den største nye funktion er implementering af simpel mønstret billedmaske til det ene øje og omvendt mønstret maske til det andet, svarende til den, der præsenteres i denne artikel: Dikoptisk filmvisning behandler barndommens amblyopi. Der er også flere tilpasningsmuligheder til form, position og konstant randomisering af disse parametre.
Jeg skal påpege, at jeg ikke har implementeret alle de ideer, jeg havde, og firmwaren kan videreudvikles. Men jeg forventer, at på grund af socioøkonomiske spørgsmål vil jeg ikke være i stand til at arbejde med dette projekt i en overskuelig fremtid, så jeg udgiver det som det er. Firmware kan nu arbejde med 3D -indhold i Top - Bottom og Side by Side -formater og blev testet med Nvidia GPU -udstyret pc og Xbox 360.
2020-11-26 OPDATERING: Det lykkedes mig endelig at oprette MODE 3: GRATIS FLOVENDE OBJEKTER. Det er inkluderet i version 1.00 af firmware. Denne nye software indeholder også få små justeringer, for eksempel har alle tilstande nu separate indstillinger for form, maske og randomisering, som gemmes, når enheden slukkes. Jeg vil beholde ældre filer (fra firmwareversion 0.50, når der ikke er nogen versionoplysninger i filnavnet, betyder det, at dette er denne gamle firmware), hvis version 1.00 på en eller anden måde er defekt.
Du kan downloade kildekode, skematisk, PCB, brugermanual osv. Til dette projekt her:
aodmost_32_all_files_1.00.zip
aodmost_32_all_files.zip
Tilbehør:
Dele og materialer:
- STM32F103C8T6 mikrokontroller (LQFP-48)
- 74AC00 quad NAND-låge (SOIC-14, 3,9 mm smal)
- STMAV340 analog videokontakt (TSSOP-16)
- LM1117-3.3 spændingsregulator (TO-263)
- 3x BC817 transistor (SOT-23)
- 3x hvid 3mm LED
- 2x diffust gul 3 mm LED
- diffust rød 3 mm LED
- 2x diffust blå 3 mm LED
- diffust grøn 3 mm LED
- 8 MHz krystal (HC49-4H)
- micro USB type B hunstik (bemærk at der er mange typer af dem, og nogle er muligvis ikke kompatible med hullerne i printkortdesignet, du kan helt springe USB over, da USB kun bruges som 5V strømforsyning)
- 2x D-SUB 15-benet vinklet VGA-stik med hunvinkler (bemærk, at der er mange typer, og du har brug for en længere version med stifter, der vil bearbejde huller i printkortet)
- 2 ben 2,54 mm lige hanstik
- 3 -pins 2,54 mm lige hanstikhoved
- 11x 6x6mm taktile switch knapper SMD/SMT
- 2x 10 uF 16V Case A 1206 tantal kondensator
- 10x 100 nF 0805 kondensator
- 2x 15 pF 1206 kondensator
- 3x 1k ohm trimpot 6mm
- 3x 10k 1206 modstand
- 4x 4k7 1206 modstand
- 3x 2k7 1206 modstand
- 2x 1k 1206 modstand
- 3x 470 ohm 1206 modstand
- 3x 75 ohm 1206 modstand
- 3x 10 ohm 1206 modstand
- dobbeltsidet kobberbeklædte plade (79.375x96.901mm mindst)
- få stykker kobbertråd (især noget med en lille diameter som 0,07 mm kan være praktisk, hvis de skal reparere ødelagte spor ved siden af ledninger til LQFP -mikrokontroller)
Værktøjer:
- diagonal fræser
- tang
- fladskruetrækker
- pincet
- schweizer kniv
- fil
- midterstempel
- Hammer
- lille nål
- 1000 korn tørt/vådt sandpapir
- papirhåndklæder
- sav eller andet værktøj, der kan skære printkort
- 4x 0,8 mm bor
- 1 mm bor
- 3 mm bor
- boremaskine eller roterende værktøj
- natriumpersulfat
- plastbeholder og plastværktøj, der kan bruges til at tage PCB ud af ætsningsløsning
- brunt pakningstape
- isolerende tape
- multimeter
- lodde station
- konisk finpunkts loddetip
- mejsel loddetip
- loddetin
- loddeflux (jeg brugte RMA -klasse, fluxgel beregnet til SMT -samling og reparationer, der kom i 1,4 cm^3 sprøjte)
- aflodningstråd
- laser printer
- blankt papir
- tøjjern
- cremerens
- acetone
- husholdningssprit
- permanent skaber
- ST-LINK/V2 (eller klon af det) + kabler, der kan forbinde det med AODMoST 32 + software, der kan gøre brug af programmereren
Trin 1: Ansvarsfraskrivelse
Brug af en sådan enhed kan forårsage epileptiske anfald eller andre negative virkninger hos en lille del af enhedens brugere. Konstruktion af en sådan enhed kræver brug af moderat farlige værktøjer og kan forårsage skade på ejendom. Du bygger og bruger beskrevet enhed på egen risiko
Trin 2: Lav PCB ved hjælp af toneroverførselsmetode
Du skal udskrive spejlbillede af F. Cu (forsiden) og normalt billede af B. Cu (bagsiden) på blankt papir ved hjælp af laserprinter (uden indstillinger for tonerbesparelse). Eksterne dimensioner af udskrevne billeder skal være 79.375x96.901mm (eller så tæt som du kan komme). Skær PCB i størrelsen på det udskrevne billede, du kan tilføje få mm til hver side af printkortet, hvis du vil. Jeg kan personligt lide at gøre det ved at lave en dyb række langs hele laminatets længde med en kniv (du skal skære i hele længden et par gange) og derefter gentage processen fra den anden side. Når rækkerne er dybe nok, går hele laminat let i stykker. Du skal udføre processen med at bryde laminatet to gange, fordi du skal have den rigtige længde og bredde på det resulterende stykke. Mindre stykker laminat kan brydes ved brug af tænger (sørg for ikke at ridse kobber for meget, brug et beskyttende lag papir f.eks. Mellem tangen og printkortet). Nu skal du glatte kanterne af det resulterende brætstykke med filen.
Derefter skal du rense kobberlag ved hjælp af fugtet fint sandpapir og derefter fjerne partikler, der er tilbage af sandpapir med cremefremskriver (du kan også bruge opvaskemiddel eller sæbe). Rens den derefter med sprit. Derefter skal du være meget forsigtig med ikke at røre kobber med fingrene.
Nu er det tid til at skære ark med spejlbillede af F. Cu til en mere håndterbar størrelse (lad få cm være omkring det udvendige rektangel) og læg det oven på tøjjernet (toner op). Du kan holde jern mellem lårene, men vær meget forsigtig med, at en strygesål konstant er oppe og ikke rører ved noget. Læg derefter printpladen oven på blankt papir (renset toner på siden) og tænd for strygejernet (brug fuld strøm). Efter kort tid skal papir klæbe til PCB. Du kan bruge et stykke klud eller et håndklæde til at skubbe tavlen mod papiret og flytte papir, der klæber lidt til PCB. Vent mindst et par minutter, indtil papiret skifter farve til gul. Desværre skal du bestemme det rigtige tidspunkt for at stoppe overførselsprocessen eksperimentelt, så hvis billedet på kobberet har en meget dårlig kvalitet, skal du rengøre toner med acetone, sand og vaskebræt igen og starte hele processen fra begyndelsen.
Når du tror, at toneroverførslen er fuldført, skal du lægge PCB med papir i vand (du kan tilføje cremerens eller opvaskemiddel) i 20 minutter. Gnid derefter papir fra PCB. Hvis der er steder, hvor toneren ikke klistrede til kobber, skal du bruge permanent markør til at udskifte toneren.
Nu skal du markere midten af fire tomme rum i hjørnerne af printkortet med et hul. Senere vil disse centre blive boret, og de resulterende huller bruges til at justere begge sider af PCB.
Dernæst skal du dække bagsiden af laminatet med brunt pakningstape. Bland ferskvand med natriumpersulfat og kom PCB i ætsningsopløsningen. Prøv at holde opløsningen ved 40 ° C. Du kan lægge en plastbeholder oven på radiatoren eller en anden varmekilde. Af og til blandes opløsningen i beholderen. Vent på, at afdækket kobber er helt opløst. Når det er gjort, fjernes PCB fra opløsningen og skylles i vand. Skræl pakningstape. Fjern toner med acetone (neglelakfjerner bør indeholde rimelig mængde af det). På dette tidspunkt kan du begynde at fjerne eventuelle kortslutninger med en kniv.
Bor nu fire justeringshuller med 0,8 mm bor. Bor derefter tilsvarende huller gennem papiret med billedet af B. Cu ved hjælp af det samme 0,8 mm bor. Når dette er gjort, skal du slibe og rense bagsiden af PCB. Læg derefter brættet oven på en flad overflade (renset kobber ovenpå), dæk det til med blankt papir, der holder billedet af B. Cu (toner ned), og læg fire 0,8 mm bor i hullerne (den runde del ned) for at holde papir og laminatet justeret. Nu skal du forsigtigt røre papiret med spidsen af varmt tøjjern i et kort stykke tid, så papir og printkort klæber til hinanden. Fjern derefter borene, læg jern mellem lårene og læg papir med laminatet oven på strygejernet, og gentag proceduren for overførsel af toner. Blødgør senere papir i vand for at fjerne det og erstatte manglende toner med permanent markør.
Nu skal du dække forsiden af PCB med pakningstape såvel som tilbage omkring allerede borede huller. Æts derefter bagsiden på samme måde som på forsiden, skræl tape, fjern toneren, og begynd at jagte efter kortslutninger.
Du skal også bore resten af hullerne i printkortet. Der er fire 3 mm huller til montering af VGA -stik. 1 mm huller bruges til resten af VGA -hullerne, trimpots, pinhoveder og vias ved siden af micro USB (hvis du ikke vil bruge USB, kan du lodde andre 5V strømstik/kabler her). Alle andre huller kan laves ved hjælp af 0,8 mm bor.
Trin 3: Lodning af elektroniske komponenter
Du kan starte med at dække alt kobber med loddemetal (brug mejselspids og udfør operationen på overflade, der allerede er dækket af flux). Hvis der efter denne operation er for stor mængde lodde på nogle punkter, skal du fjerne det med aflodningstråd. Hvis nogen spor blev opløst i ætsning, skal de udskiftes med tynde tråde. Derefter kan du begynde at lodde andre komponenter, selvom jeg anbefaler, at du vil vente med store og omfangsrige ting rundt om stedet for MCU til slutningen. Brug en anstændig mængde flux, når du laver elektriske forbindelser.
MCU i LQFP-48-pakken er den sværeste ting at lodde. Start med at justere den, lodde kun en afledning nær toppunktet af pakken og derefter en anden afledning på den modsatte side for at sikre MCU i sin position. Derefter dækkes rækker eller ledninger i flux og forsigtigt loddes til kobbersporene med mejselspids. Sørg for, at du ikke bøjer ledninger baglæns. Hvis du gør det, kan du prøve at skubbe nåleblæsere med ledninger og skubbe stiften ud. Eller hvis du virkelig er bange for det, skal du placere nålen der, selv før du begynder at lodde. Kontroller, at der ikke laves kortslutninger og elektriske forbindelser, simple multimeter med kontinuitetstester bør være tilstrækkelig (det kan muligvis ødelægge integreret kredsløb, men min overlevede test). Hvis du lavede en kortslutning, skal du placere aflodningstråd oven på den og starte opvarmningen. Hvis kobberspor på PCB blev beskadiget, skal du bruge meget tynd tråd til at udskifte det. Det er muligt at lodde ledningen direkte til lederne af LQFP med en konisk fin spids. Jeg gjorde det få gange, mest fordi jeg beskadigede spor ved desoldering af MCU, der var uden håb efter første forsøg på at lodde det (det kan gøres ved at lirke stifter med nål). Jeg håber oprigtigt, at du får det rigtigt første gang.
Andre IC'er ligner hinanden og bør loddes på samme måde, men de har en mindre mængde større kundeemner, så de bør ikke udgøre en stor udfordring. LM1117 har stor fane, der skal loddes til kobberet, men det er svært at opvarme det tilstrækkeligt med almindeligt loddejern, så hvis du får det til at klæbe til printet og dækker siderne med en vis mængde lodde, bør det være nok.
Nogle THT -komponenter skal loddes fra begge sider af brættet. I tilfælde af trimpots og lysdioder er det ret lige frem. Ved lodning af stifter skal du skubbe plastik højere op end det burde være før denne operation, derefter lodde alle stifterne fra begge sider og derefter skubbe plast tilbage til den oprindelige position. Ved lodning af kvartskrystal, ved først at placere det højere op end nødvendigt, loddes ledningerne fra begge sider, og derefter mens du opvarmer dem fra nedenunder, skub krystal lavere. Bemærk, at jeg også pakkede krystalhus i tråd og derefter loddet tråd til jorden (den store kobberfyldning til venstre og bølgede krystallen). Før lodning af dele af VGA -stik, der går ind i 3 mm huller, lod jeg nogle ledninger til kobberet på begge sider for at sikre, at begge lag kobber er forbundet, og først da lodde jeg afskærmningsledninger. Vias kan laves ved at placere større ledning inde i hullet (f.eks. Ubrugt længde af THT -komponentledning), lodde det fra begge sider af printkortet og derefter skære unødvendige dele.
Ved lodning af USB-stik kan du bruge konisk fin spids til de små ledninger.
Når du tror, at du loddet alt, skal du igen kontrollere, at der ikke er kortslutninger eller dårlige forbindelser.
Trin 4: Programmering af STM32 mikrokontroller
For at udvikle AODMoST 32 firmware brugte jeg System Workbench til STM32 (Linux Version), som bruger OpenOCD til at programmere mikrokontroller. Du kan finde detaljerede instruktioner om, hvordan du importerer dette projekt til SW4STM32 i filen sw4stm32_configuration_1.00.pdf.
Alternativt kan du bruge ST-LINK Utility (STSW-LINK004). Jeg testede Windows -version, og det fungerede godt med aodmost_32_1.00.bin
Jeg brugte billig klon af ST-LINK/V2 som min programmør, hvilket ikke er ideelt, men det fungerede. For at programmere MCU havde jeg brug for at drive AODMoST 32 fra USB-porten og tilslutte 3 jumperkabler med 2,54 mm hunstik til programmøren på den ene side og SW-DP-porten på AODMoST 32 på den anden. Du skal tilslutte GND, SWCLK og SWDIO. Når du programmerer, skal du sørge for, at softwaren er indstillet til at udføre nulstilling af softwaresystem.
aodmost_32_1.00.bin og aodmost_32_1.00.elf -filer, der er nødvendige for at programmere MCU, er inde i aodmost_32_all_files_1.00.zip -arkivet.
Flash -hukommelse i MCU bør være tom før programmering, ellers kan nogle gamle data tilbage i de sidste 4 kB af det forstyrre lagring og indlæsning af indstillinger.
Trin 5: Brug af AODMoST 32
Nu kan du slutte dit grafikkort eller din spillekonsol til VGA IN, tilslutte din 3D -skærm til VGA OUT og 5V strømforsyning til micro USB. Når AODMoST 32 får strøm, venter den på videosignalet (og påvisning af polarisering af synkroniseringspulser). Det signaleres ved, at rød NO SIGNAL LED lyser. Også blå lysdioder bør konstant være tændt. Hvis de blinker, betyder det, at der er noget galt med 8MHz HSE -krystal. I løbet af denne tid kan du trykke på knapper for at kontrollere, om de er tilsluttet korrekt. Hvis der trykkes på mindst en knap, lyser gule lysdioder. Når der trykkes på to eller flere knapper, lyser også hvide lysdioder. Når videosignal detekteres, starter startsekvensen. Den består af, at hver anden LED i træk lyser (0b10101010) i 300 ms, derefter er fire andre LED'er tændt i 300 ms (0b01010101). Det er gjort, så du kan kontrollere, at lysdioder er tilsluttet korrekt til MCU'en.
Enheden har 4 arbejdsmåder. Som standard starter den i MODE 0: VIDEO PASS-THROUGH. Der er også TILSTAND 1: TOP - NED, MODE 2: SIDE FOR SIDE og TILSTAND 3: GRATIS flydende objekter. Der er 6 sider med indstillinger. Dem med tallene 0 og 3 indeholder indstillinger for frekvens/periode, okklusionshastighed, objekter, der er tændt/slukket og sådan. Side 1 og 4 indeholder positionsindstillinger, mens side 2 og 5 indeholder størrelsesindstillinger. Ved at trykke på MODE + PAGE -knapperne gendanner du standardindstillingerne i alle tilstande. Der er også muligheder for at ændre objektformer, indføre maskemønster og randomisere nogle af indstillingerne. Du kan læse mere om konfiguration af AODMoST 32 i manual_1.00.pdf
En mulig kilde til 3D -indhold i formatet Top - Bottom eller Side By Side er computerspil. Hvis du bruger GeForce -grafikkort, kan mange spil fra denne liste ændres til output i kompatibelt format. Grundlæggende skal du bruge 3DMigoto -baserede mods/rettelser, der giver dig mulighed for at udsende SBS/TB 3D til enhver skærm efter ikke at have kommenteret “run = CustomShader3DVision2SBS” i “d3dx.ini” mod/fix konfigurationsfil. For at få en god billedkvalitet skal du også deaktivere 3D Vision Discover -farvetone i NVIDIA -drivere. Du skal ændre "StereoAnaglyphType" til "0" i "HKLM / SOFTWARE / WOW6432Node / NVIDIA Corporation / Global / Stereo3D \". Du kan læse mere om dette her.
I nye versioner af Nvidia -drivere skal du låse registreringsnøglen. For at åbne Registreringseditor skal du trykke på WIN+R, derefter skrive regedit og trykke på ENTER. Hvis du låser en nøgle, skal du højreklikke på den, vælge Tilladelser, Avanceret, Deaktiver arv, bekræfte deaktivering af arv, gå tilbage til vinduet Tilladelser og til sidst markere afkrydsningsfelter for alle brugere og grupper, der kan krydses af og bekræfte det med en klik på knappen OK. Bemærk, at der også kan være behov for at ændre værdierne for "LeftAnaglyphFilter" "RightAnaglyphFilter". Hvis du vil foretage ændringer, skal du låse registreringsnøglen op ved at fjerne markeringen i disse afvisningsbokse eller aktivere arv. Hvis du har problemer med at aktivere 3D Vision i første omgang, fordi installationsguiden i NVIDIA Kontrolpanel går ned, skal du ændre "StereoVisionConfirmed" til "1" i "HKLM / SOFTWARE / WOW6432Node / NVIDIA Corporation / Global / Stereo3D \”. Dette aktiverer 3D Vision i Discover -tilstand. Desværre stoppede Nvidia med at understøtte 3D Vision, så den nyeste driverversion, der kan bruges, er 425,31, men hvis du virkelig vil bruge en nyere version, kan du prøve dette.
Der er andre måder at få 3D -spil på. Du kan prøve SuperDepth3D, en ReShade efter-proces shader. GZ3Doom (ViveDoom) understøtter indbygget 3D og kan afspilles uden særlig software. Windows -versioner af Rise of the Tomb Raider og Shadow of the Tomb Raider har indbygget support til Side by Side 3D.
Alternativt kan du også bruge Xbox 360, som understøtter VGA -output og har et par spil, der understøtter 3D i Top - Botom eller Side by Side. Her kan du finde en liste over Xbox 360-spil, der understøtter 3D (selvom der er nogle fejl på denne liste, for eksempel en kopi af Halo: Combat Evolved Anniversary, som jeg testede, understøtter ikke Top-Bottom, hverken SBS).
Selvfølgelig kan du også finde film i Top - Bottom eller Side By Side -format og afspille dem på en lang række hardware.
I galleriet kan du finde følgende spil:
- James Camerons Avatar: The Game, SBS, Xbox 360
- Gears of War 3, SBS, Xbox 360
- The Witcher 3: Wild Hunt, TB, PC
- Rise of the Tomb Raider, SBS (enheden er indstillet til MODE 3: GRATIS FLOATENDE OBJEKTER), PC
Trin 6: Designoversigt
VGA -signalet har 3 komponentfarver: rød, grøn og blå. Hver af dem sendes gennem separat ledning, med intensiteten af komponentfarve kodet til spændingsniveau, der kan variere mellem 0V og 0,7V. AODMoST 32 tegner objekter (overlay) ved at erstatte farvesignal genereret af grafikkort med spændingsniveau leveret af transistorer Q1-Q3 i emitterfølge-konfiguration, der konverterer spændingsimpedans på en 2k7 modstand-1k trimpotspændingsdeler. Skift af signaler udføres af STMAV340 analog multiplexer/demultiplexer.
Timingen af denne omskiftning holdes af avanceret kontroltimer (TIM1) for MCU, som bruger alle fire af sine sammenligningsregistre til at drive output. Tilstanden for disse output behandles derefter af 3 hurtige NAND -porte. Det fungerer sådan: HSync puls nulstillingstimere Tæller. Sammenlign 1 Registrer kontrollerer, hvornår det første objekt i en linje skal tegnes, Sammenlign 2 Registrer, hvornår det skal stoppes. Sammenlign 3 Registrer kontroller, hvornår du skal begynde at tegne andet objekt i en linje, sammenligne 4 Registrer, hvornår det skal stoppes. Når der er behov for et tredje objekt, bruges sammenligningsregister 1 og 2 igen. NAND -porte er forbundet på en sådan måde, at de sender signal til multiplexeren, der erstatter originalvideoen, når par sammenligningskanaler fortæller det, at objekttegning er startet, men ikke er færdig endnu.
Horisontale og lodrette synkroniseringsimpulser varierer i spændingsniveau mellem 0V og 5V, og ledninger, der bærer dem, er direkte forbundet til STM32F103C8T6 5V tolerante afbrydelsesstifter konfigureret som input med høj impedans.
Enheden bruger cirka 75 mA.