Sommario:
- Passaggio 1: Dichiarazione di non responsabilità
- Passaggio 2: creazione di PCB utilizzando il metodo di trasferimento del toner
- Passaggio 3: saldatura di componenti elettronici
- Passaggio 4: programmazione del microcontrollore STM32
- Passaggio 5: utilizzo di AODMoST 32
- Passaggio 6: panoramica del design
Video: Modificatore dicottico a occlusione alternativa della trasmissione stereoscopica 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: 6 Passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Per qualche tempo ho lavorato su un successore dell'AODMoST originale. Il nuovo dispositivo utilizza un microcontrollore a 32 bit più veloce e migliore e uno switch video analogico più veloce. Consente ad AODMoST 32 di lavorare con risoluzioni più elevate e di implementare nuove funzionalità. Il dispositivo ora può anche essere alimentato dalla tensione 5V USB.
La più grande nuova caratteristica è l'implementazione di una semplice maschera con motivi per un occhio e una maschera con motivi inversi per l'altro, simile a quella presentata in questo articolo: La visione di film dichoptic tratta l'ambliopia infantile. Ci sono anche più opzioni di personalizzazione per la forma, la posizione e la randomizzazione costante di tali parametri.
Tengo a precisare che non ho implementato tutte le idee che avevo e che il firmware può essere ulteriormente sviluppato. Ma prevedo che a causa di problemi socioeconomici non sarò in grado di lavorare a questo progetto nel prossimo futuro, quindi lo pubblico così com'è. Il firmware ora può funzionare con i contenuti 3D nei formati Top – Bottom e Side by Side ed è stato testato con PC e Xbox 360 dotati di GPU Nvidia.
AGGIORNAMENTO 26-11-2020: finalmente sono riuscito a creare la MODALITÀ 3: OGGETTI FLOTTANTI GRATUITI. È incluso nella versione 1.00 del firmware. Questo nuovo software presenta anche alcune piccole regolazioni, ad esempio ora tutte le modalità hanno impostazioni separate di Forma, Maschera e Randomizzazione che vengono salvate quando il dispositivo viene spento. Manterrò i file più vecchi (dalla versione 0.50 del firmware, quando non ci sono informazioni sulla versione nel nome del file, significa che questo è questo vecchio firmware) nel caso in cui la versione 1.00 sia in qualche modo difettosa.
Puoi scaricare il codice sorgente, lo schema, il PCB, il manuale utente, ecc. per questo progetto qui:
aodmost_32_all_files_1.00.zip
aodmost_32_all_files.zip
Forniture:
Parti e materiali:
- Microcontrollore STM32F103C8T6 (LQFP-48)
- 74AC00 quad NAND gate (SOIC-14, 3,9 mm stretto)
- Commutatore video analogico STMAV340 (TSSOP-16)
- Regolatore di tensione LM1117-3.3 (TO-263)
- 3x transistor BC817 (SOT-23)
- 3 LED bianchi da 3 mm
- 2x LED giallo diffuso da 3 mm
- LED rosso diffuso da 3 mm
- 2x LED blu diffuso da 3 mm
- LED verde diffuso da 3 mm
- Cristallo da 8 MHz (HC49-4H)
- connettore femmina micro USB di tipo B (si noti che ne esistono molti tipi e alcuni potrebbero non essere compatibili con i fori nel design del PCB, è possibile saltare del tutto l'USB, poiché l'USB viene utilizzato solo come alimentazione a 5 V)
- 2x connettore VGA femmina ad angolo retto a 15 pin D-SUB (notare che ce ne sono molti tipi e hai bisogno di una versione più lunga con pin che creino fori nel PCB)
- Connettore maschio diritto a 2 pin 2,54 mm
- Connettore maschio dritto a 3 pin 2,54 mm
- Pulsanti tattili 11x 6x6mm SMD/SMT
- 2x 10 uF 16V Case A 1206 condensatore al tantalio
- Condensatore 10x 100 nF 0805
- 2x 15 pF 1206 condensatore
- 3x 1k ohm trimpot 6mm
- 3x 10k 1206 resistore
- 4x 4k7 1206 resistore
- 3x 2k7 1206 resistore
- 2x 1k 1206 resistore
- 3x 470 ohm 1206 resistore
- 3x 75 ohm 1206 resistore
- 3x 10 ohm 1206 resistore
- pannello rivestito in rame su entrambi i lati (minimo 79,375x96,901 mm)
- alcuni pezzi di filo di rame (soprattutto qualcosa di piccolo diametro come 0,07 mm potrebbe tornare utile se si desidera riparare la pista rotta accanto ai cavi del microcontrollore LQFP)
Utensili:
- taglierina diagonale
- pinze
- cacciavite a lama piatta
- pinzette
- coltello multiuso
- file
- pugno centrale
- martello
- ago piccolo
- Carta vetrata a grana 1000 asciutta/umida
- tovaglioli di carta
- sega o altro strumento in grado di tagliare PCB
- 4 punte da 0,8 mm
- Punta da trapano da 1 mm
- Punta da trapano da 3 mm
- trapano a colonna o utensile rotante
- persolfato di sodio
- contenitore di plastica e strumento di plastica che può essere utilizzato per estrarre il PCB dalla soluzione di incisione
- nastro da imballaggio marrone
- nastro isolante
- multimetro
- stazione di saldatura
- punta di saldatura conica a punta fine
- punta di saldatura a scalpello
- saldare
- flusso di saldatura (ho usato la classe RMA, gel di flusso destinato all'assemblaggio e alle riparazioni SMT, fornito in una siringa da 1,4 cm^3)
- filo dissaldante
- stampante laser
- carta lucida
- ferro da stiro
- crema detergente
- acetone
- alcol denaturato
- creatore permanente
- ST-LINK/V2 (o suo clone) + cavi che possono collegarlo ad AODMoST 32 + software che può utilizzare il programmatore
Passaggio 1: Dichiarazione di non responsabilità
L'utilizzo di tale dispositivo può causare crisi epilettiche o altri effetti avversi in una piccola parte degli utenti del dispositivo. La costruzione di un tale dispositivo richiede l'uso di strumenti moderatamente pericolosi e può causare danni o danni alla proprietà. Costruisci e utilizzi il dispositivo descritto a tuo rischio
Passaggio 2: creazione di PCB utilizzando il metodo di trasferimento del toner
È necessario stampare l'immagine speculare di F. Cu (lato anteriore) e l'immagine normale di B. Cu (lato posteriore) su carta lucida utilizzando una stampante laser (senza alcuna impostazione di risparmio toner attiva). Le dimensioni esterne delle immagini stampate dovrebbero essere 79,375x96,901 mm (o il più vicino possibile). Taglia il PCB alla dimensione dell'immagine stampata, puoi aggiungere pochi mm a ciascun lato del PCB, se lo desideri. Personalmente mi piace farlo facendo una riga profonda lungo l'intera lunghezza di un laminato con un taglierino (devi tagliare lungo tutta la lunghezza alcune volte), quindi ripetendo il processo dall'altro lato. Quando le file sono abbastanza profonde, l'intero laminato si spezza a metà facilmente. Devi eseguire il processo di rottura del laminato due volte, perché devi avere la giusta lunghezza e larghezza del pezzo risultante. I pezzi più piccoli di laminato possono essere rotti con l'uso di una pinza (assicurarsi di non graffiare troppo il rame, utilizzare uno strato protettivo di carta per esempio tra le pinze e il PCB). Ora dovresti levigare i bordi del pezzo di tavola risultante con il file.
Successivamente, dovrai pulire gli strati di rame con carta vetrata inumidita, quindi rimuovere le particelle lasciate dalla carta vetrata con un detergente in crema (puoi anche usare detersivo per piatti o sapone). Quindi puliscilo con alcol denaturato. Dopodiché dovresti stare molto attento a non toccare il rame con le dita.
Ora è il momento di tagliare il foglio con l'immagine speculare di F. Cu ad una dimensione più maneggevole (lasciare qualche cm intorno al rettangolo esterno) e di metterlo sopra il ferro da stiro (toner up). Puoi tenere il ferro tra le cosce, ma fai molta attenzione che una piastra sia costantemente sollevata e non tocchi nulla. Quindi, posizionare il PCB sopra la carta lucida (toner delle facce laterali pulito) e accendere il ferro (utilizzare la massima potenza). Dopo poco tempo la carta dovrebbe attaccarsi al PCB. Puoi usare un pezzo di stoffa o un asciugamano per spingere la lavagna contro la carta e spostare leggermente la carta che si attacca al PCB. Attendere almeno qualche minuto, finché la carta non cambierà colore in gialla. Sfortunatamente, è necessario determinare sperimentalmente il momento giusto per interrompere il processo di trasferimento, quindi nel caso in cui l'immagine sul rame sia di pessima qualità, sarà necessario pulire nuovamente il toner con acetone, carteggiare e lavare il pannello e ricominciare l'intero processo dall'inizio.
Quando pensi che il trasferimento del toner sia completato, metti il PCB con la carta nell'acqua (puoi aggiungere un detergente in crema o un detersivo per piatti) per 20 minuti. Quindi, strofina la carta dal PCB. Se ci sono punti in cui il toner non si è attaccato al rame, usa un pennarello indelebile per sostituire il toner.
Ora devi segnare i centri di quattro spazi vuoti negli angoli del PCB con un punzone. Successivamente quei centri verranno perforati e i fori risultanti utilizzati per allineare entrambi i lati del PCB.
Successivamente, è necessario coprire il lato posteriore del laminato con nastro adesivo marrone. Mescolare acqua dolce con persolfato di sodio e mettere il PCB nella soluzione di incisione. Cerca di mantenere la soluzione a 40°C. Puoi mettere un contenitore di plastica sopra il radiatore o un'altra fonte di calore. Di tanto in tanto mescolare la soluzione nel contenitore. Attendi che il rame scoperto si dissolva completamente. Al termine, rimuovere il PCB dalla soluzione e sciacquarlo con acqua. Staccare il nastro da imballaggio. Rimuovere il toner con l'acetone (il solvente per unghie dovrebbe contenerne una discreta quantità). A questo punto puoi iniziare a rimuovere eventuali cortocircuiti con un taglierino.
Ora, pratica quattro fori di allineamento usando un trapano da 0,8 mm. Quindi, praticare i fori corrispondenti attraverso la carta con l'immagine di B. Cu utilizzando lo stesso trapano da 0,8 mm. Al termine, carteggiare e pulire il retro del PCB. Quindi metti la lavagna sopra una superficie piana (rame pulito sopra), coprila con carta lucida contenente l'immagine di B. Cu (toner verso il basso) e inserisci quattro trapani da 0,8 mm nei fori (parte rotonda verso il basso), per mantenere la carta e il laminato allineato. Ora dovresti toccare delicatamente la carta con la punta del ferro da stiro caldo per un breve periodo, in modo che la carta e il PCB si attacchino l'uno all'altro. Quindi, rimuovere i trapani, posizionare il ferro tra le cosce e posizionare la carta con il laminato sopra il ferro e ripetere la procedura di trasferimento del toner. Successivamente immergere la carta in acqua per rimuoverla e sostituire il toner mancante con un pennarello indelebile.
Ora è necessario coprire il lato anteriore del PCB con del nastro adesivo e il retro attorno ai fori già praticati. Quindi incidere il lato posteriore nello stesso modo in cui hai fatto il lato anteriore, staccare il nastro, rimuovere il toner e iniziare a cercare i cortocircuiti.
È inoltre necessario praticare il resto dei fori nel PCB. Sono presenti quattro fori da 3 mm per il montaggio dei connettori VGA. I fori da 1 mm vengono utilizzati per il resto dei fori VGA, trimpot, intestazioni pin e via accanto a micro USB (se non si utilizza l'USB, è possibile saldare altri connettori/cavi di alimentazione da 5 V qui). Tutti gli altri fori possono essere realizzati con un trapano da 0,8 mm.
Passaggio 3: saldatura di componenti elettronici
Si può iniziare coprendo tutto il rame con la saldatura (usare la punta a scalpello ed eseguire l'operazione su una superficie già ricoperta di fondente). Se dopo questa operazione è presente una quantità eccessiva di saldatura in alcuni punti, rimuoverla con filo dissaldante. Se delle tracce sono state sciolte nella soluzione di incisione, sostituirle con fili sottili. Quindi puoi iniziare a saldare altri componenti, anche se ricomincio che aspetterai con roba alta e ingombrante in giro per MCU fino alla fine. Utilizzare una discreta quantità di flusso quando si effettuano i collegamenti elettrici.
L'MCU nel pacchetto LQFP-48 è la cosa più difficile da saldare. Inizia allineandolo, saldando solo un cavo vicino al vertice del pacchetto e poi un altro cavo sul lato opposto, per fissare l'MCU nella sua posizione. Quindi, coprire le file oi conduttori in flusso e saldarli delicatamente alle piste di rame con la punta a scalpello. Assicurati di non piegare i cavi all'indietro, se lo fai, puoi provare a far scorrere l'ago in file di cavi e spingere fuori il perno. Oppure, se ne hai davvero paura, posiziona l'ago lì anche prima di iniziare a saldare. Controlla che non si creino cortocircuiti e che i collegamenti elettrici siano in conduzione, un semplice multimetro con tester di continuità dovrebbe essere adeguato (potrebbe eventualmente distruggere il circuito integrato, ma il mio è sopravvissuto ai test). Se hai creato un corto circuito, posizionaci sopra il filo dissaldante e inizia a riscaldare. Se le piste di rame sul PCB sono state danneggiate, utilizzare un filo molto sottile per sostituirlo. È possibile saldare il filo direttamente ai cavi di LQFP con punta conica a punta fine. L'ho fatto poche volte, soprattutto perché ho danneggiato le tracce durante la dissaldatura dell'MCU che era al di là di ogni speranza dopo il primo tentativo di saldarlo (può essere fatto facendo leva sui perni con l'ago). Spero sinceramente che lo farai bene la prima volta.
Altri circuiti integrati sono simili e dovrebbero essere saldati allo stesso modo, ma hanno una quantità minore di cavi più grandi, quindi non dovrebbero rappresentare una sfida. LM1117 ha una linguetta grande che dovrebbe essere saldata al rame, ma è difficile riscaldarla adeguatamente con un normale saldatore, quindi se lo fai aderire al PCB e copri i lati con una certa quantità di saldatura, dovrebbe essere sufficiente.
Alcuni componenti THT devono essere saldati da entrambi i lati della scheda. In caso di trimpot e LED, è piuttosto semplice. Quando si saldano le intestazioni dei pin, far scorrere la plastica più in alto di quanto dovrebbe essere prima di questa operazione, quindi saldare tutti i pin da entrambi i lati e quindi far scorrere la plastica nella posizione originale. Quando si salda il cristallo di quarzo, dapprima posizionarlo più in alto del necessario, saldare i cavi da entrambi i lati, quindi durante il riscaldamento dal soffietto, spingere il cristallo più in basso. Nota che ho anche avvolto la custodia di cristallo nel filo e poi ho saldato il filo a terra (il grande riempimento di rame a sinistra e sotto il cristallo). Prima di saldare le parti del connettore VGA che vanno nei fori da 3 mm, ho saldato alcuni fili al rame su entrambi i lati per assicurarmi che entrambi gli strati di rame fossero collegati, e solo allora ho saldato i cavi di schermatura. I via possono essere realizzati posizionando un filo più grande all'interno del foro (ad esempio la lunghezza inutilizzata del cavo del componente THT), saldandolo da entrambi i lati del PCB e quindi tagliando la parte non necessaria.
Quando si salda il connettore USB, è possibile utilizzare una punta conica a punta fine per i cavi piccoli.
Quando pensi di aver saldato tutto dovresti controllare ancora una volta che non ci siano cortocircuiti o cattive connessioni.
Passaggio 4: programmazione del microcontrollore STM32
Per sviluppare il firmware AODMoST 32 ho utilizzato System Workbench per STM32 (versione Linux), che utilizza OpenOCD per programmare il microcontrollore. Puoi trovare istruzioni dettagliate su come importare questo progetto in SW4STM32 all'interno del file sw4stm32_configuration_1.00.pdf.
In alternativa è possibile utilizzare l'utilità ST-LINK (STSW-LINK004). Ho testato la versione di Windows e ha funzionato bene con aodmost_32_1.00.bin
Ho usato un clone economico di ST-LINK/V2 come programmatore, che non è l'ideale, ma ha funzionato. Per programmare MCU avevo bisogno di alimentare AODMoST 32 dalla porta USB e collegare 3 cavi jumper con connettori femmina da 2,54 mm al programmatore da un lato e alla porta SW-DP di AODMoST 32 dall'altro. È necessario collegare GND, SWCLK e SWDIO. Durante la programmazione, assicurarsi che il software sia impostato per eseguire il ripristino del sistema software.
I file aodmost_32_1.00.bin e aodmost_32_1.00.elf necessari per programmare MCU si trovano all'interno dell'archivio aodmost_32_all_files_1.00.zip.
La memoria flash dell'MCU dovrebbe essere vuota prima della programmazione, altrimenti alcuni vecchi dati lasciati negli ultimi 4 kB di essa potrebbero interferire con il salvataggio e il caricamento delle impostazioni.
Passaggio 5: utilizzo di AODMoST 32
Ora puoi collegare la tua scheda grafica o console per videogiochi all'ingresso VGA IN, collegare il tuo display 3D all'uscita VGA OUT e l'alimentatore da 5 V alla micro USB. Quando AODMoST 32 è alimentato, attende il segnale video (e il rilevamento della polarizzazione degli impulsi di sincronizzazione). Viene segnalato dall'accensione del LED rosso NO SEGNALE. Anche i LED blu dovrebbero essere costantemente accesi. Se lampeggiano, significa che c'è qualcosa che non va con il cristallo HSE da 8 MHz. Durante questo tempo è possibile premere i pulsanti per verificare se sono collegati correttamente. Se viene premuto almeno un pulsante, i LED gialli sono accesi. Quando vengono premuti due o più pulsanti, si accendono anche i LED bianchi. Quando viene rilevato il segnale video, inizia la sequenza di avvio. Consiste nell'accensione di ogni secondo LED di fila (0b10101010) per 300 ms, quindi altri quattro LED vengono accesi per 300 ms (0b01010101). È fatto, in modo che tu possa verificare che i LED siano collegati correttamente all'MCU.
Il dispositivo ha 4 modalità di funzionamento. Di default si avvia in MODALITÀ 0: PASS-THROUGH VIDEO. C'è anche MODALITÀ 1: ALTO – BASSO, MODALITÀ 2: FIANCO A FIANCO e MODALITÀ 3: OGGETTI FLOTTANTI LIBERI. Ci sono 6 pagine di impostazioni. Quelli con i numeri 0 e 3 contengono impostazioni di frequenza/periodo, tasso di occlusione, oggetti che sono on/off e così via. Le pagine 1 e 4 contengono le impostazioni di posizione mentre le pagine 2 e 5 contengono le impostazioni di formato. Premendo i pulsanti MODE + PAGE si ripristinano le impostazioni predefinite in tutte le modalità. Ci sono anche opzioni per cambiare la forma degli oggetti, introdurre il modello di maschera e randomizzare alcune delle impostazioni. Puoi leggere di più sulla configurazione di AODMoST 32 in manual_1.00.pdf
Una possibile fonte di contenuto 3D in formato Top – Bottom o Side by Side sono i giochi per computer. Se utilizzi la scheda video GeForce, molti giochi di questo elenco possono essere modificati per l'output in un formato compatibile. Fondamentalmente, è necessario utilizzare mod/fix basati su 3DMigoto, che consentono di inviare SBS/TB 3D a qualsiasi display dopo aver decommentato "run = CustomShader3DVision2SBS" nel file di configurazione mod/fix "d3dx.ini". Per avere una buona qualità dell'immagine, devi anche disabilitare la tinta 3D Vision Discover nei driver NVIDIA. È necessario modificare "StereoAnaglyphType" in "0" in "HKLM\SOFTWARE\WOW6432Node\NVIDIA Corporation\Global\Stereo3D\". Puoi leggere di più su questo qui.
Nelle nuove versioni dei driver Nvidia, devi bloccare la chiave di registro. Per aprire l'editor del registro, premere WIN+R, quindi digitare regedit e premere INVIO. Per bloccare una chiave sarà necessario fare clic con il tasto destro su di essa, selezionare Permessi, Avanzate, Disabilita eredità, confermare la disabilitazione dell'ereditarietà, tornare alla finestra Permessi e infine spuntare le caselle Nega per tutti gli utenti e i gruppi che possono essere spuntati e confermarlo con un fare clic sul pulsante OK. Si noti che potrebbe essere necessario modificare anche i valori di "LeftAnaglyphFilter" "RightAnaglyphFilter". Se desideri apportare modifiche, devi sbloccare la chiave di registro deselezionando le caselle di rifiuto o abilitando l'ereditarietà. Se hai problemi con l'abilitazione di 3D Vision in primo luogo, poiché la procedura guidata di installazione nel pannello di controllo NVIDIA si blocca, devi cambiare "StereoVisionConfirmed" su "1" in "HKLM\SOFTWARE\WOW6432Node\NVIDIA Corporation\Global\Stereo3D\”. Ciò abiliterà 3D Vision in modalità Scopri. Sfortunatamente, Nvidia ha smesso di supportare 3D Vision, quindi la versione più recente del driver che può essere utilizzata è 425.31, ma se vuoi davvero usare una versione più recente puoi provare questa.
Ci sono altri modi per ottenere giochi 3D. Puoi provare SuperDepth3D, uno shader post-elaborazione ReShade. GZ3Doom (ViveDoom) supporta nativamente il 3D e può essere giocato senza alcun software speciale. Le versioni Windows di Rise of the Tomb Raider e Shadow of the Tomb Raider hanno il supporto nativo per Side by Side 3D.
In alternativa puoi anche utilizzare Xbox 360, che supporta l'uscita VGA e ha alcuni giochi che supportano il 3D in Alto – Basso o Affiancato. Qui puoi trovare un elenco di giochi Xbox 360 che supportano il 3D (sebbene ci siano alcuni errori in questo elenco, ad esempio una copia di Halo: Combat Evolved Anniversary che ho testato non supporta Top-Bottom, né SBS).
Ovviamente puoi anche trovare film in formato Top – Bottom o Side by Side e riprodurli su un'ampia varietà di hardware.
Nella galleria puoi trovare i seguenti giochi:
- Avatar di James Cameron: Il gioco, SBS, Xbox 360
- Gears of War 3, SBS, Xbox 360
- The Witcher 3: Caccia Selvaggia, TB, PC
- Rise of the Tomb Raider, SBS (il dispositivo è impostato su MODALITÀ 3: OGGETTI FLOTTANTI LIBERI), PC
Passaggio 6: panoramica del design
Il segnale VGA ha 3 colori componenti: rosso, verde e blu. Ciascuno di essi viene inviato tramite un filo separato, con intensità del componente codificata a colori in un livello di tensione che può variare tra 0V e 0,7V. AODMoST 32 disegna oggetti (overlay) sostituendo il segnale di colore generato dalla scheda video con il livello di tensione fornito dai transistor Q1-Q3 in configurazione emettitore follower, che convertono l'impedenza di tensione su un resistore 2k7 - partitore di tensione trimpot 1k. La commutazione dei segnali viene eseguita dal multiplexer/demultiplexer analogico STMAV340.
La tempistica di questa commutazione è mantenuta dal timer di controllo avanzato (TIM1) dell'MCU, che utilizza tutti e quattro i suoi registri di confronto per pilotare le uscite. Lo stato di queste uscite viene quindi elaborato da 3 porte NAND veloci. Funziona in questo modo: Contatore timer di reset degli impulsi HSync. Confronta 1 Registra controlla quando iniziare a disegnare il primo oggetto in una linea, Confronta 2 Registra quando interromperlo. Confronta 3 Registra controlla quando iniziare a disegnare il secondo oggetto in una linea, Confronta 4 Registra quando interromperlo. Quando è necessario il terzo oggetto, vengono utilizzati nuovamente i registri di confronto 1 e 2. Le porte NAND sono collegate in modo tale da inviare il segnale al multiplexer che sostituisce il video originale, quando una coppia di canali di confronto gli comunica che il disegno dell'oggetto è iniziato, ma non è ancora terminato.
Gli impulsi di sincronizzazione orizzontale e verticale variano nel livello di tensione tra 0V e 5V e i fili che li trasportano sono collegati direttamente ai pin di interrupt tolleranti STM32F103C8T6 5V configurati come ingressi ad alta impedenza.
Il dispositivo consuma circa 75 mA.