Sisukord:
- 1. samm: lahtiütlemine
- 2. samm: trükkplaadi valmistamine tooneri ülekandemeetodi abil
- Samm: elektrooniliste komponentide jootmine
- 4. samm: STM32 mikrokontrolleri programmeerimine
- Samm: AODMoST 32 kasutamine
- 6. samm: disaini ülevaade
Video: Stereoskoopilise ülekande dikoptiline modifikaator 32 [STM32F103C8T6+STMAV340 VGA superimposer]: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:45
Olen mõnda aega töötanud algse AODMoST -i järglase kallal. Uus seade kasutab kiiremat ja paremat 32-bitist mikrokontrollerit ning kiiremat analoogvideolülitit. See võimaldab AODMoST 32 -l töötada kõrgema eraldusvõimega ja rakendada uusi funktsioone. Nüüd saab seadet toita ka USB 5 V pingega.
Suurim uus omadus on lihtsa mustrilise pildimaski rakendamine ühele silmale ja pöördmustriline mask teisele, mis sarnaneb selles artiklis esitatuga: Dichoptic filmide vaatamine käsitleb lapsepõlve amblüoopiat. Nende parameetrite kuju, positsiooni ja pideva randomiseerimise jaoks on ka rohkem kohandamisvõimalusi.
Pean märkima, et ma pole kõiki oma ideid ellu viinud ja püsivara saab edasi arendada. Kuid ma eeldan, et sotsiaalmajanduslike probleemide tõttu ei saa ma selle projektiga lähitulevikus töötada, seega avaldan selle sellisena, nagu see on. Püsivara saab nüüd töötada 3D -sisuga ülalt -alla ja kõrvuti ning seda testiti Nvidia GPU -ga varustatud arvuti ja Xbox 360 -ga.
2020-11-26 UUENDAMINE: Mul õnnestus lõpuks luua MODE 3: TASUTA UJUVAD OBJEKTID. See sisaldub püsivara versioonis 1.00. Sellel uuel tarkvaral on ka mõned väikesed kohandused, näiteks nüüd on kõigil režiimidel eraldi kuju, maski ja juhuslikkuse sätted, mis salvestatakse seadme väljalülitamisel. Jätan alles vanemad failid (alates püsivara versioonist 0.50, kui failinimes pole versiooni teavet, see tähendab, et see on see vana püsivara), juhul kui versioon 1.00 on kuidagi vigane.
Selle projekti lähtekoodi, skeemi, trükkplaadi, kasutusjuhendi jne saate alla laadida siit:
aodmost_32_all_files_1.00.zip
aodmost_32_all_files.zip
Tarvikud:
Osad ja materjalid:
- STM32F103C8T6 mikrokontroller (LQFP-48)
- 74AC00 quad NAND värav (SOIC-14, kitsas 3,9 mm)
- STMAV340 analoogvideolüliti (TSSOP-16)
- LM1117-3.3 pingeregulaator (TO-263)
- 3x BC817 transistor (SOT-23)
- 3x valge 3mm LED
- 2x hajutatud kollane 3 mm LED
- hajutatud punane 3 mm LED
- 2x hajutatud sinine 3 mm LED
- hajutatud roheline 3 mm LED
- 8 MHz kristall (HC49-4H)
- mikro -USB B -tüüpi naissoost pistikupesa (pange tähele, et neid on palju tüüpe ja mõned ei pruugi ühilduda trükkplaadi konstruktsiooni aukudega, võite USB täielikult vahele jätta, kuna USB -d kasutatakse ainult 5 V toiteallikana)
- 2x D-SUB 15-kontaktiline täisnurkse naissoost VGA-pistik (pange tähele, et neid tüüpe on palju ja vajate pikemat versiooni koos tihvtidega, mis muudavad trükkplaadile augud)
- 2 tihvtiga 2,54 mm sirge isast tihvtiga päis
- 3 -kontaktiline 2,54 mm sirge isast tihvtiga päis
- 11x 6x6mm puutetundlikud lüliti nupud SMD/SMT
- 2x 10 uF 16V korpus A 1206 tantaalkondensaator
- 10x 100 nF 0805 kondensaator
- 2x 15 pF 1206 kondensaator
- 3x 1k ohm trimpot 6mm
- 3x 10k 1206 takisti
- 4x 4k7 1206 takisti
- 3x 2k7 1206 takisti
- 2x 1k 1206 takisti
- 3x 470 oomi 1206 takisti
- 3x 75 oomi 1206 takisti
- 3x 10 oomi 1206 takisti
- kahepoolne vaskplaat (vähemalt 79,375x96,901 mm)
- paar vasktraaditükki (eriti väikese läbimõõduga, näiteks 0,07 mm, võib tulla kasuks, kui kavatsete parandada katkist rada LQFP mikrokontrolleri juhtmete kõrval)
Tööriistad:
- diagonaalne lõikur
- tangid
- lameda kruvikeerajaga
- pintsetid
- tarbenuga
- faili
- keskne löök
- haamer
- väike nõel
- 1000 liivapaberiga kuiv/märg liivapaber
- paberrätikud
- saag või muu tööriist, mis võib trükkplaate lõigata
- 4x 0,8 mm puur
- 1 mm puur
- 3 mm puur
- puuripress või pöörlev tööriist
- naatriumpersulfaat
- plastmahuti ja plastist tööriist, mida saab kasutada PCB eemaldamiseks söövitamise lahusest
- pruun pakkelint
- isoleerlint
- multimeeter
- jootmisjaam
- kooniline peenepunkti jootmisots
- peitli jootmise ots
- jootma
- jootmisvoog (kasutasin RMA klassi, SMT kokkupanekuks ja remondiks mõeldud voolugeeli, mis oli 1,4 cm^3 süstlas)
- jootetraat
- laserprinter
- läikiv paber
- riideid rauast
- kreemi puhastaja
- atsetoon
- alkoholi hõõrumine
- alaline tegija
- ST-LINK/V2 (või selle kloon) + kaablid, mis ühendavad selle AODMoST 32 + tarkvaraga, mis saab programmeerijat kasutada
1. samm: lahtiütlemine
Sellise seadme kasutamine võib väikesel osal seadme kasutajatest põhjustada epilepsiahooge või muid kahjulikke mõjusid. Sellise seadme ehitamiseks on vaja kasutada mõõdukalt ohtlikke tööriistu ja see võib kahjustada või kahjustada vara. Kirjutate ja kasutate kirjeldatud seadet omal vastutusel
2. samm: trükkplaadi valmistamine tooneri ülekandemeetodi abil
Peate laserprinteriga printima läikivale paberile F. Cu peegelpildi (esikülg) ja tavalise B. Cu -pildi (tagakülg) (ilma tooneri säästmise seadistusteta). Trükitud piltide välismõõtmed peaksid olema 79,375x96,901 mm (või nii lähedal kui võimalik). Lõika trükkplaat trükitud pildi suuruseks, soovi korral saate PCB mõlemale küljele lisada paar mm. Mulle isiklikult meeldib seda teha, tehes kasuliku noaga laminaadi kogu pikkuses sügava rea (peate paar korda kogu pikkuses lõikama), seejärel korrake protsessi teisest küljest. Kui read on piisavalt sügavad, puruneb kogu laminaat kergesti pooleks. Laminaadi purustamise protsess tuleb läbi viia kaks korda, sest teil peab olema õige tüki pikkus ja laius. Väiksemaid laminaaditükke saab tangide abil lahti murda (veenduge, et te ei kriimustaks vaske liiga palju, kasutage kaitsvat paberikihti, näiteks tangide ja trükkplaadi vahel). Nüüd peaksite saadud tahvlitüki servad viiliga siluma.
Järgmisena peate vaskkihid puhastama niisutatud peene liivapaberiga, seejärel eemaldama liivapaberist jäänud osakesed kreemipuhastusvahendiga (võite kasutada ka pesuvedelikku või seepi). Seejärel puhastage see alkoholiga. Pärast seda peaksite olema väga ettevaatlik, et mitte puudutada sõrmedega vaske.
Nüüd on aeg lõigata F. Cu peegelpildiga leht paremini hallatavasse suurusesse (jäta paar sentimeetrit välise ristküliku ümber) ja asetada see triikrauale (tooner üles). Võite hoida rauda reite vahel, kuid olge väga ettevaatlik, et tald oleks pidevalt püsti ja ei puudutaks midagi. Seejärel asetage trükkplaat läikiva paberi peale (puhastatud külgpindade tooner) ja lülitage triikraud sisse (kasutage täisvõimsust). Mõne aja pärast peaks paber PCB -le kleepuma. Võite kasutada riidetükki või rätikut, et lükata plaat vastu paberit ja nihutada veidi kleepuvat paberit. Oodake vähemalt mõni minut, kuni paber muutub kollaseks. Kahjuks peate ülekandeprotsessi katkestamiseks õige aja kindlaks määrama, nii et kui vasel olev pilt on väga halva kvaliteediga, peate tooneri uuesti atsetooni, liiva ja pesulauaga puhastama ning alustama kogu protsessi algusest.
Kui arvate, et tooneri ülekanne on lõpule viidud, pange PCB koos paberiga vette (võite lisada kreemipuhastusvahendit või nõudepesuvahendit) 20 minutiks. Seejärel hõõruge trükkplaadilt paberit. Kui on kohti, kus tooner ei kleepunud vase külge, kasutage tooneri asendamiseks püsimarkerit.
Nüüd peate trükkplaadiga nurkades märkima nelja tühja ruumi keskused. Hiljem need keskused puuritakse ja saadud auke kasutatakse PCB mõlema külje joondamiseks.
Järgmisena peate laminaadi tagakülje katma pruuni pakkelindiga. Segage värske vesi naatriumpersulfaadiga ja pange PCB söövituslahusesse. Püüdke hoida lahust temperatuuril 40 ° C. Võite panna plastmahuti radiaatori või muu soojusallika peale. Aeg -ajalt segage lahust anumas. Oodake, kuni katmata vask on täielikult lahustunud. Kui see on tehtud, eemaldage lahusest PCB ja loputage seda vees. Koorige pakkelint. Eemaldage tooner atsetooniga (küünelakieemaldaja peaks sisaldama seda parajas koguses). Siinkohal võite hakata lühise eemaldama kasuliku noaga.
Nüüd puurige 0,8 mm puuri abil neli joondusava. Seejärel puurige sama 0.8 mm puuri abil läbi paberi vastavad augud B. Cu kujutisega. Kui see on tehtud, lihvige ja puhastage PCB tagakülg. Seejärel asetage plaat tasasele pinnale (peal puhastatud vask), katke see läikiva paberiga B. Cu kujutisega (tooner alla) ja asetage neli 0,8 mm puurit aukudesse (ümmargune osa alla), et paber ja laminaat joondatud. Nüüd peaksite paberit lühikese aja jooksul õrnalt kuuma riideotsa otsaga puudutama, nii et paber ja trükkplaat kleepuksid üksteise külge. Seejärel eemaldage puurid, asetage triikraud reide vahele ja asetage paber laminaadiga triikraua peale ning korrake tooneri ülekandmise protseduuri. Hiljem leotage paberit selle eemaldamiseks vees ja asendage puuduv tooner püsiva markeriga.
Nüüd peate katma trükkplaadi esikülje pakkelindiga, samuti tagaküljega juba puuritud aukude ümber. Seejärel söövitage tagakülg samamoodi nagu esikülg, koorige lint, eemaldage tooner ja hakake lühiseid otsima.
Samuti peate puurima ülejäänud augud trükkplaadile. VGA -pistikute kinnitamiseks on neli 3 mm ava. Ülejäänud VGA -aukude, trimpotside, tihvtide päiste ja sisendkaablite jaoks kasutatakse 1 mm auke mikro -USB kõrval (kui te ei kavatse USB -d kasutada, saate siin joota teisi 5V toitepistikuid/kaableid). Kõiki muid auke saab teha 0,8 mm puuriga.
Samm: elektrooniliste komponentide jootmine
Alustuseks katke kogu vask joodisega (kasutage peitliotsa ja tehke toiming juba vooluga kaetud pinnal). Kui pärast seda toimingut on mõnes kohas liiga palju jootet, eemaldage see jootetraadiga. Kui söövituslahuses on lahustunud mõni rada, asendage need õhukeste juhtmetega. Seejärel võite hakata teisi komponente jootma, kuigi ma soovitan teil oodata suurte ja mahukate asjadega MCU koha lõpuni. Elektriühenduste tegemisel kasutage korralikku voogu.
MCU LQFP-48 pakendis on jootmine kõige raskem. Alustuseks joondage see, jootke ainult üks juhe pakendi tipu lähedal ja seejärel teine juhe vastasküljel, et MCU oma kohale kinnitada. Seejärel katke ridad või juhtmed voolus ja jootke need peitliotsaga õrnalt vaskradadele. Veenduge, et te ei painuta juhtmeid tahapoole, kui te seda teete, võite proovida libistada nõelaga puhkejuhtmete ridu ja suruda tihvti välja. Või kui te seda tõesti kardate, asetage nõel sinna juba enne jootma hakkamist. Kontrollige, et lühiseid ei tekiks ja elektriühendused toimiksid, peaks piisama lihtsast multimeetrist koos järjepidevuse testeriga (see võib integreeritud vooluahela hävitada, kuid minu testimine jäi üle). Kui tegite lühise, asetage selle peale jootetraat ja alustage kuumutamist. Kui trükkplaadil olevad vaskjäljed on kahjustatud, kasutage selle asendamiseks väga õhukest traati. Traati on võimalik joota otse LQFP juhtmete külge koonilise peene otsaga. Ma tegin seda paar korda, peamiselt seetõttu, et kahjustasin MCU jootmisel radu, mis pärast esimest jootmiskatset oli lootusetu (seda saab teha nõelaga tihvtide abil). Loodan siiralt, et saate esimese korraga õigesti aru.
Teised IC -d on sarnased ja neid tuleks joota samal viisil, kuid neil on väiksem hulk suuremaid juhtmeid, seega ei tohiks need palju väljakutseid esitada. LM1117 -l on suur sakk, mis tuleks joota vase külge, kuid tavalise jootekolbiga on seda raske piisavalt kuumutada, nii et kui teete selle trükkplaadile kleepuvaks ja katate küljed mõne koguse joodisega, peaks sellest piisama.
Mõned THT komponendid tuleb joota mõlemalt poolt plaati. Trimpode ja valgusdioodide puhul on see üsna sirgjooneline. Tihvtide päiste jootmisel libistage plastik enne seda toimingut kõrgemale, kui see peaks olema, seejärel jootke kõik tihvtid mõlemalt poolt ja libistage plastik tagasi algasendisse. Kvartskristalli jootmisel jootke see kõigepealt vajalikust kõrgemale, jootke juhtmed mõlemalt poolt ja seejärel lükake neid lõõmast kuumutades madalamale. Pange tähele, et mähkisin kristallikarbi ka traati ja seejärel jootsin traadi maapinnale (suur vasest täidis vasakul ja lõõgastab kristalli). Enne VGA -pistiku osade jootmist, mis lähevad 3 mm aukudesse, jootsin mõlemad juhtmed mõlemalt poolt vase külge, veendumaks, et mõlemad vase kihid on ühendatud, ja alles siis jootsin varjestusjuhtmed. Viasid saab teha, asetades ava sisse suurema traadi (näiteks THT -komponendi juhtme kasutamata pikkuse), jootes selle mõlemalt poolt trükkplaati ja lõikades seejärel mittevajaliku osa.
USB-pistiku jootmisel võite väikeste juhtmete jaoks kasutada koonilist peene otsaga otsa.
Kui arvate, et olete kõik jootnud, peaksite uuesti kontrollima, kas seal pole lühiseid ega halbu ühendusi.
4. samm: STM32 mikrokontrolleri programmeerimine
AODMoST 32 püsivara arendamiseks kasutasin System Workbench for STM32 (Linuxi versioon), mis kasutab mikrokontrolleri programmeerimiseks OpenOCD -d. Üksikasjalikud juhised selle projekti importimiseks SW4STM32 -sse leiate failist sw4stm32_configuration_1.00.pdf.
Teise võimalusena võite kasutada utiliiti ST-LINK (STSW-LINK004). Testisin Windowsi versiooni ja see töötas koos aodmost_32_1.00.bin hästi
Kasutasin oma programmeerijana odavat ST-LINK/V2 klooni, mis pole ideaalne, kuid töötas. MCU programmeerimiseks oli mul vaja toita AODMoST 32 USB-pordist ja ühendada 3 džemprikaablit 2,54 mm pistikutega ühel pool programmeerijaga ja teisel pool AODMoST 32 SW-DP pordiga. Peate ühendama GND, SWCLK ja SWDIO. Programmeerimisel veenduge, et tarkvara on seadistatud tarkvara süsteemi lähtestama.
MCU programmeerimiseks vajalikud failid aodmost_32_1.00.bin ja aodmost_32_1.00.elf on aodmost_32_all_files_1.00.zip arhiivis.
Enne programmeerimist peaks MCU välkmälu olema tühi, vastasel juhul võivad mõned selle viimase 4 kB -sse jäänud vanad andmed häirida seadete salvestamist ja laadimist.
Samm: AODMoST 32 kasutamine
Nüüd saate ühendada oma graafikakaardi või videomängukonsooli VGA IN -ga, ühendada oma 3D -ekraani VGA OUT -ga ja 5V toiteallika mikro -USB -ga. Kui AODMoST 32 on sisse lülitatud, ootab see videosignaali (ja sünkroonimisimpulsside polarisatsiooni tuvastamist). Sellest annab märku punane NO SIGNAL LED. Samuti peaksid sinised LED -id olema pidevalt sisse lülitatud. Kui need vilguvad, tähendab see, et 8MHz HSE kristalliga on midagi valesti. Selle aja jooksul võite vajutada nuppe, et kontrollida, kas need on korralikult ühendatud. Kui vähemalt ühte nuppu vajutatakse, põlevad kollased LED -id. Kahe või enama nupu vajutamisel põlevad ka valged LED -id. Kui videosignaal on tuvastatud, algab käivitusjärjestus. See koosneb sellest, et järjest iga teine LED süttib (0b10101010) 300 ms, seejärel lülitatakse neli muud LED -i 300 ms (0b01010101) sisse. See on tehtud, nii et saate kontrollida, kas valgusdioodid on MCU -ga korralikult ühendatud.
Seadmel on 4 töörežiimi. Vaikimisi algab see režiimist 0: VIDEO PASS-THROUGH. Samuti on olemas MODE 1: TOP - BOTTOM, MODE 2: SIDE by Side, ja MODE 3: TASUTA UJUVAD OBJEKTID. Seadeid on 6 lehekülge. Numbrid 0 ja 3 sisaldavad sageduse/perioodi, oklusioonimäära, objektide sisse- ja väljalülitamist jms. Lehed 1 ja 4 sisaldavad positsiooniseadeid, samas kui leheküljed 2 ja 5 sisaldavad suuruse seadeid. Vajutades nuppe MODE + PAGE, taastate kõikides režiimides vaikeseaded. Samuti on võimalusi objekti kuju muutmiseks, maskimustri tutvustamiseks ja mõnede seadete juhuslikuks muutmiseks. Lisateavet AODMoST 32 konfigureerimise kohta saate lugeda juhendist manual_1.00.pdf
Üks võimalikest 3D -sisu allikatest nii ülalt alla kui ka kõrvuti on arvutimängud. Kui kasutate GeForce'i videokaarti, saab paljusid selle loendi mänge muuta ühilduvas vormingus väljundiks. Põhimõtteliselt peate kasutama 3DMigoto -põhiseid modifikatsioone/parandusi, mis võimaldavad teil väljastada SBS/TB 3D mis tahes kuvarile pärast seda, kui olete d3dx.ini mod/fix konfiguratsioonifailis „run = CustomShader3DVision2SBS” kommenteerimata jätnud. Hea pildikvaliteedi saamiseks peate NVIDIA draiverites keelama ka 3D Vision Discover tooni. Peate muutma “StereoAnaglyphType” väärtuseks “0” jaotises “HKLM / SOFTWARE / WOW6432Node / NVIDIA Corporation / Global / Stereo3D \”. Selle kohta saate rohkem lugeda siit.
Nvidia draiverite uutes versioonides peate registrivõtme lukustama. Registriredaktori avamiseks vajutage WIN+R, seejärel tippige regedit ja vajutage sisestusklahvi (ENTER). Võtme lukustamiseks peate sellel paremklõpsama, valima Õigused, Täpsemad, Keela pärandi, kinnitama pärandi keelamise, naasma lubade aknasse ja lõpuks märkima märkeruudud Keela kõik kasutajad ja rühmad, mida saab märkida, ja kinnitage see klõpsake nuppu OK. Pange tähele, et võib -olla tuleb muuta ka väärtusi "LeftAnaglyphFilter" "RightAnaglyphFilter". Kui soovite teha mingeid muudatusi, peate registrivõtme avama, tühistades need keeldumiskastid või lubades pärimise. Kui teil on esmalt probleeme 3D Visioni lubamisega, kuna NVIDIA juhtpaneeli häälestusviisard jookseb kokku, peate jaotises „HKLM / SOFTWARE / WOW6432Node / NVIDIA Corporation / Global / Stereo3D \” muutma „StereoVisionConfirms” väärtuseks „1”.”. See lubab 3D Visioni avastusrežiimis. Kahjuks lõpetas Nvidia 3D Visioni toetamise, seega on uusim kasutatav draiveriversioon 425.31, kuid kui soovite tõesti uuemat versiooni kasutada, võite seda proovida.
3D -mängude hankimiseks on ka teisi võimalusi. Võite proovida SuperDepth3D, ReShade'i protsessijärgset varjutajat. GZ3Doom (ViveDoom) toetab algselt 3D -d ja seda saab mängida ilma spetsiaalse tarkvarata. Windowsi versioonid Rise of the Tomb Raider ja Shadow of the Tomb Raider toetavad kõrvuti 3D -d.
Teise võimalusena võite kasutada ka Xbox 360 -d, mis toetab VGA -väljundit ja millel on mõned mängud, mis toetavad 3D -d - Top - Botom või Side by Side. Siit leiate loendi Xbox 360 mängudest, mis toetavad 3D-d (kuigi selles loendis on mõningaid vigu, näiteks minu testitud Halo: Combat Evolved Anniversary koopia ei toeta ülevalt alla ega ka SBS-i).
Loomulikult võite leida ka filme Top - Bottom või Side By Side vormingus ja mängida neid mitmesugusel riistvaral.
Galeriist leiate järgmised mängud:
- James Cameroni avatar: The Game, SBS, Xbox 360
- Gears of War 3, SBS, Xbox 360
- The Witcher 3: metsik jaht, tuberkuloos, arvuti
- Rise of the Tomb Raider, SBS (seade on seadistatud režiimile 3: TASUTA UJUVAD OBJEKTID), arvuti
6. samm: disaini ülevaade
VGA -signaalil on kolm komponenti: punane, roheline ja sinine. Igaüks neist saadetakse eraldi traadi kaudu, komponendi värvi intensiivsus on kodeeritud pingetasemele, mis võib varieeruda vahemikus 0V kuni 0,7V. AODMoST 32 joonistab objekte (ülekate), asendades videokaardi genereeritud värvisignaali transistoride Q1-Q3 pinge tasemega emitteri järgija konfiguratsioonis, mis teisendab pinge takistuse 2k7 takisti-1k trimpoti pingejaguriks. Signaalide vahetamine toimub STMAV340 analoog multiplekseri/demultiplekseri abil.
Selle lülitamise ajastust hoiab MCU täiustatud juhtimise taimer (TIM1), mis kasutab väljundite juhtimiseks kõiki nelja võrdlusregistrit. Nende väljundite olekut töödeldakse seejärel 3 kiire NAND -värava abil. See töötab järgmiselt: HSynci impulsi lähtestamise taimerid Loendur. Võrdle 1 Registreeri juhtelemendid, millal alustada rea esimese objekti joonistamist, Võrdle 2 Registreeri, millal see peatada. Võrdle 3 Registreeri juhtelemendid, millal alustada teise objekti joonistamist joonel, Võrdle 4 Registreeri, millal see peatada. Kui on vaja kolmandat objekti, kasutatakse võrdlusregistreid 1 ja 2 uuesti. NAND -väravad on ühendatud nii, et nad saadavad signaali multiplekserile, mis asendab algse video, kui paar võrdluskanalit teatab, et objektide joonistamine on alanud, kuid pole veel lõppenud.
Horisontaalsete ja vertikaalsete sünkroonimisimpulsside pingetase varieerub vahemikus 0V kuni 5V ja neid kandvad juhtmed on otse ühendatud STM32F103C8T6 5V tolerantsete katkestusnõeltega, mis on konfigureeritud suure takistusega sisenditena.
Seade tarbib umbes 75 mA.