Índice:
- Etapa 1: isenção de responsabilidade
- Etapa 2: Fazendo PCB usando o método de transferência de toner
- Etapa 3: Componentes eletrônicos de soldagem
- Etapa 4: Programação do microcontrolador STM32
- Etapa 5: Uso do AODMoST 32
- Etapa 6: Visão geral do projeto
Vídeo: Modificador dicóptico de oclusão alternada de transmissão estereoscópica 32 [STM32F103C8T6 + STMAV340 VGA Superimposer]: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
Há algum tempo venho trabalhando em um sucessor para o AODMoST original. O novo dispositivo usa um microcontrolador de 32 bits mais rápido e melhor e um switch de vídeo analógico mais rápido. Permite ao AODMoST 32 trabalhar com resoluções mais altas e implementar novas funcionalidades. O dispositivo agora também pode ser alimentado pela voltagem de 5 V do USB.
A maior novidade é a implementação de máscara de imagem com padrão simples para um olho e máscara com padrão inverso para o outro, semelhante à apresentada neste artigo: A visualização de filmes dicóticos trata a ambliopia infantil. Existem também mais opções de personalização para a forma, posição e randomização constante desses parâmetros.
Devo salientar que não implementei todas as ideias que tive e o firmware pode ser desenvolvido. Mas prevejo que, devido a questões socioeconômicas, não poderei trabalhar neste projeto em um futuro próximo, então estou publicando como está. O firmware agora pode funcionar com conteúdo 3D nos formatos Topo - Fundo e Lado a Lado e foi testado com PC equipado com GPU Nvidia e Xbox 360.
2020-11-26 ATUALIZAÇÃO: Finalmente consegui criar o MODO 3: OBJETOS FLUTUANTES GRATUITOS. Ele está incluído na versão 1.00 do firmware. Este novo software também apresenta alguns pequenos ajustes, por exemplo, agora todos os modos têm configurações separadas de Forma, Máscara e Randomização que são salvas quando o dispositivo é desligado. Vou manter os arquivos mais antigos (da versão 0.50 do firmware, quando não há informações de versão no nome do arquivo, isso significa que este é o firmware antigo) caso a versão 1.00 esteja de alguma forma com defeito.
Você pode baixar o código-fonte, esquema, PCB, manual do usuário, etc. para este projeto aqui:
aodmost_32_all_files_1.00.zip
aodmost_32_all_files.zip
Suprimentos:
Peças e materiais:
- Microcontrolador STM32F103C8T6 (LQFP-48)
- 74AC00 quad NAND gate (SOIC-14, 3,9 mm estreito)
- Chave de vídeo analógico STMAV340 (TSSOP-16)
- Regulador de tensão LM1117-3.3 (TO-263)
- 3 transistores BC817 (SOT-23)
- 3 LED branco de 3 mm
- 2 LED amarelo difuso de 3 mm
- LED vermelho difuso de 3 mm
- 2 LED azul difuso de 3 mm
- LED verde difuso de 3 mm
- Cristal de 8 MHz (HC49-4H)
- Conector fêmea micro USB tipo B (observe que existem muitos tipos deles, e alguns podem não ser compatíveis com os orifícios no design do PCB, você pode ignorar o USB completamente, já que o USB é usado apenas como fonte de alimentação de 5 V)
- 2x Conector VGA fêmea de ângulo reto D-SUB de 15 pinos (observe que existem muitos tipos e você precisa de uma versão mais longa com pinos que farão furos no PCB)
- Conector de pino macho reto de 2 pinos de 2,54 mm
- Cabeçalho de pino macho reto de 3 pinos 2,54 mm
- 11x 6x6mm botões de interruptor tátil SMD / SMT
- 2x 10 uF 16V capacitor de tântalo caso A 1206
- Capacitor 10x 100 nF 0805
- 2x 15 pF 1206 capacitor
- 3x 1k ohm trimpot 6mm
- 3 resistor 10k 1206
- 4x 4k7 1206 resistor
- 3 resistor 2k7 1206
- 2x 1k 1206 resistor
- 3 resistor de 470 ohm 1206
- 3 resistor 1206 de 75 ohms
- 3 resistor 1206 de 10 ohms
- placa revestida de cobre de dupla face (79.375x96.901mm no mínimo)
- alguns pedaços de fio de cobre (especialmente algo com diâmetro pequeno como 0,07 mm pode ser útil se for consertar trilhos quebrados próximos aos terminais do microcontrolador LQFP)
Ferramentas:
- cortador diagonal
- alicate
- chave de fenda plana
- pinças
- faca utilitária
- Arquivo
- soco Central
- martelo
- agulha pequena
- Lixa seca / úmida de grão 1000
- toalhas de papel
- serra ou outra ferramenta que pode cortar PCB
- 4x broca de 0,8 mm
- Broca de 1 mm
- Broca de 3 mm
- ferramenta de perfuração ou ferramenta rotativa
- persulfato de sódio
- recipiente de plástico e ferramenta de plástico que pode ser usada para retirar o PCB da solução de corrosão
- fita de embalagem marrom
- fita isolante
- multímetro
- estação de solda
- ponta cônica de solda de ponta fina
- ponta de solda de cinzel
- solda
- fluxo de solda (usei classe RMA, gel de fluxo destinado à montagem e reparos SMT, que veio em seringa de 1,4 cm ^ 3)
- fio desoldering
- impressora a laser
- papel brilhante
- ferro de passar roupas
- limpador de creme
- acetona
- álcool isopropílico
- fabricante permanente
- ST-LINK / V2 (ou clone dele) + cabos que podem conectá-lo ao software AODMoST 32 + que pode fazer uso do programador
Etapa 1: isenção de responsabilidade
O uso de tal dispositivo pode causar ataques epilépticos ou outros efeitos adversos em uma pequena parte dos usuários do dispositivo. A construção de tal dispositivo requer o uso de ferramentas moderadamente perigosas e pode causar danos ou danos à propriedade. Você constrói e usa o dispositivo descrito por sua própria conta e risco
Etapa 2: Fazendo PCB usando o método de transferência de toner
Você precisa imprimir uma imagem espelhada de F. Cu (frente) e uma imagem normal de B. Cu (verso) em papel brilhante usando uma impressora a laser (sem nenhuma configuração de economia de toner ativada). As dimensões externas das imagens impressas devem ser 79,375 x 96,901 mm (ou o mais próximo possível). Corte o PCB no tamanho da imagem impressa, você pode adicionar alguns mm de cada lado do PCB, se desejar. Eu pessoalmente gosto de fazer isso fazendo uma linha profunda ao longo de todo o comprimento de um laminado com uma faca (você precisa cortar todo o comprimento algumas vezes) e, em seguida, repetir o processo do outro lado. Quando as fileiras são profundas o suficiente, o laminado inteiro se quebra ao meio facilmente. Você precisa realizar o processo de quebra do laminado duas vezes, pois precisa ter o comprimento e a largura corretos da peça resultante. Pedaços menores de laminado podem ser quebrados com o uso de um alicate (certifique-se de não arranhar muito o cobre, use uma camada protetora de papel, por exemplo, entre o alicate e o PCB). Agora você deve alisar as bordas da peça de cartão resultante com a lima.
Em seguida, você precisará limpar as camadas de cobre usando uma lixa fina umedecida e, em seguida, remover as partículas deixadas pela lixa com um limpador de creme (você também pode usar detergente ou sabão). Em seguida, limpe-o com álcool isopropílico. Depois disso, você deve ter muito cuidado para não tocar no cobre com os dedos.
Agora é hora de cortar a folha com imagem espelhada do F. Cu para um tamanho mais manejável (deixar alguns centímetros ao redor do retângulo externo) e colocá-la em cima do ferro de passar (toner para cima). Você pode segurar o ferro entre as coxas, mas tenha muito cuidado para que a base fique constantemente levantada e não toque em nada. Em seguida, coloque o PCB em cima do papel brilhante (o toner está limpo) e ligue o ferro (use a potência máxima). Após um curto período de tempo, o papel deve aderir ao PCB. Você pode usar um pedaço de pano ou uma toalha para empurrar a placa contra o papel e mover um pouco o papel colando no PCB. Espere pelo menos alguns minutos, até que o papel mude de cor para amarelo. Infelizmente, você precisa determinar o momento certo para parar o processo de transferência experimentalmente, portanto, caso a imagem no cobre tenha qualidade muito ruim, você precisará limpar o toner com acetona, lixar e lavar a placa novamente e começar todo o processo desde o início.
Quando você achar que a transferência do toner está concluída, coloque o PCB com papel na água (você pode adicionar creme de limpeza ou detergente para a loiça) por 20 minutos. Em seguida, esfregue o papel do PCB. Se houver lugares onde o toner não grudou no cobre, use um marcador permanente para substituir o toner.
Agora você precisa marcar os centros de quatro espaços vazios nos cantos do PCB com um punção. Mais tarde, esses centros serão perfurados e os orifícios resultantes usados para alinhar os dois lados do PCB.
Em seguida, você precisa cobrir a parte de trás do laminado com fita de embalagem marrom. Misture água doce com persulfato de sódio e coloque o PCB na solução de corrosão. Tente manter a solução a 40 ° C. Você pode colocar um recipiente de plástico em cima do radiador ou outra fonte de calor. De vez em quando, misture a solução no recipiente. Espere que o cobre descoberto se dissolva completamente. Quando terminar, remova o PCB da solução e enxágue-o com água. Retire a fita de embalagem. Remova o toner com acetona (o removedor de esmalte deve conter uma boa quantidade dele). Neste ponto, você pode começar a remover qualquer curto-circuito com o canivete.
Agora, faça quatro furos de alinhamento usando uma broca de 0,8 mm. Em seguida, faça os furos correspondentes no papel com a imagem de B. Cu usando a mesma broca de 0,8 mm. Quando isso for feito, lixe e limpe a parte traseira do PCB. Em seguida, coloque a placa em cima de uma superfície plana (cobre limpo em cima), cubra-a com papel brilhante segurando a imagem de B. Cu (toner para baixo) e coloque quatro brocas de 0,8 mm nos orifícios (parte redonda para baixo), para manter o papel e o laminado alinhado. Agora você deve tocar suavemente o papel com a ponta de um ferro de passar roupas quente por um tempo, de forma que o papel e o PCB grudem um no outro. Em seguida, retire as brocas, coloque o ferro entre as coxas e coloque o papel com o laminado em cima do ferro e repita o procedimento de transferência do toner. Posteriormente, mergulhe o papel em água para removê-lo e substitua o toner ausente por um marcador permanente.
Agora você precisa cobrir a parte frontal da placa de circuito impresso com fita adesiva, bem como a parte de trás em torno dos orifícios já perfurados. Em seguida, grave o verso da mesma forma que fez o frontal, descasque a fita, remova o toner e comece a procurar por curtos-circuitos.
Você também precisa fazer o restante dos orifícios no PCB. Existem quatro orifícios de 3 mm para a montagem dos conectores VGA. Orifícios de 1 mm são usados para o resto dos orifícios VGA, trimpots, cabeçotes de pinos e vias próximos ao micro USB (se você não for usar USB, você pode soldar outros conectores / cabos de alimentação de 5V aqui). Todos os outros furos podem ser feitos com broca de 0,8 mm.
Etapa 3: Componentes eletrônicos de soldagem
Você pode começar cobrindo todo o cobre com solda (use a ponta do cinzel e execute a operação na superfície já coberta pelo fluxo). Se após esta operação uma quantidade excessiva de solda estiver presente em alguns pontos, remova-a com fio de dessoldagem. Se alguma trilha foi dissolvida na solução de corrosão, substitua-a por fios finos. Então você pode começar a soldar outros componentes, embora eu recomendo que você espere com materiais altos e volumosos ao redor do local pelo MCU até o fim. Use uma quantidade decente de fluxo ao fazer conexões elétricas.
O MCU no pacote LQFP-48 é a coisa mais difícil de soldar. Comece por alinhá-lo, soldando apenas um condutor próximo ao vértice da embalagem e, em seguida, outro condutor no lado oposto, a fim de fixar o MCU em sua posição. Em seguida, cubra as linhas ou condutores no fluxo e solde-os suavemente aos trilhos de cobre com a ponta do cinzel. Certifique-se de não dobrar os cabos para trás; se o fizer, você pode tentar deslizar as linhas de sopro da agulha e empurrar o pino para fora. Ou se você realmente tem medo dela, coloque a agulha lá antes mesmo de começar a soldar. Controle para que nenhum curto-circuito seja feito e que as conexões elétricas estejam conduzindo, um multímetro simples com testador de continuidade deve ser adequado (ele pode destruir o circuito integrado, mas a mina sobreviveu ao teste). Se você fez algum curto-circuito, coloque o fio de dessoldagem em cima dele e comece a aquecer. Se as trilhas de cobre no PCB foram danificadas, use um fio muito fino para substituí-lo. É possível soldar o fio diretamente aos terminais do LQFP com ponta cônica de ponta fina. Fiz isso algumas vezes, principalmente porque danifiquei as faixas ao dessoldar o MCU, o que estava além de qualquer esperança após a primeira tentativa de soldá-lo (isso pode ser feito levantando pinos com agulha). Eu sinceramente espero que você acerte na primeira vez.
Outros ICs são semelhantes e devem ser soldados da mesma maneira, mas eles têm uma quantidade menor de cabos maiores, então eles não devem representar um grande desafio. O LM1117 tem uma aba grande que deve ser soldada ao cobre, mas é difícil aquecê-la adequadamente com o ferro de solda comum, então se você prendê-la à placa de circuito impresso e cobrir as laterais com alguma quantidade de solda, deve ser o suficiente.
Alguns componentes THT precisam ser soldados em ambos os lados da placa. No caso de trimpots e LEDs, é bastante simples. Ao soldar cabeçotes de pinos, deslize o plástico mais para cima do que deveria antes desta operação, solde todos os pinos de ambos os lados e deslize o plástico de volta à posição original. Ao soldar o cristal de quartzo, na primeira posição mais alto do que o necessário, solde os terminais de ambos os lados e, enquanto os aquece a partir do fole, empurre o cristal para baixo. Observe que também envolvi a caixa de cristal em fio e, em seguida, soldei o fio ao solo (o grande preenchimento de cobre à esquerda e abaixo do cristal). Antes de soldar as partes do conector VGA que vão em orifícios de 3 mm, soldei alguns fios ao cobre em ambos os lados para ter certeza de que as duas camadas de cobre estão conectadas e só então soldei cabos de blindagem. Vias pode ser feito colocando um fio maior dentro do orifício (por exemplo, comprimento não utilizado do cabo do componente THT), soldando-o de ambos os lados do PCB e, em seguida, cortando a parte desnecessária.
Ao soldar o conector USB, você pode usar uma ponta cônica de ponta fina para os cabos pequenos.
Quando você achar que soldou tudo, deve verificar mais uma vez se não há curto-circuitos ou conexões ruins.
Etapa 4: Programação do microcontrolador STM32
Para desenvolver o firmware AODMoST 32 usei o System Workbench for STM32 (versão Linux), que usa o OpenOCD para programar o microcontrolador. Você pode encontrar instruções detalhadas sobre como importar este projeto para SW4STM32 dentro do arquivo sw4stm32_configuration_1.00.pdf.
Alternativamente, você pode usar o utilitário ST-LINK (STSW-LINK004). Testei a versão do Windows e funcionou bem com aodmost_32_1.00.bin
Usei um clone barato de ST-LINK / V2 como meu programador, o que não é ideal, mas funcionou. Para programar o MCU, eu precisava ligar o AODMoST 32 da porta USB e conectar 3 cabos jumper com conectores fêmea de 2,54 mm ao programador de um lado e a porta SW-DP do AODMoST 32 do outro. Você precisa conectar GND, SWCLK e SWDIO. Ao programar, certifique-se de que o software esteja configurado para realizar a reinicialização do sistema de software.
Os arquivos aodmost_32_1.00.bin e aodmost_32_1.00.elf necessários para programar MCU estão dentro do arquivo aodmost_32_all_files_1.00.zip.
A memória flash do MCU deve estar vazia antes da programação, caso contrário, alguns dados antigos deixados nos últimos 4 kB dele podem interferir no salvamento e no carregamento das configurações.
Etapa 5: Uso do AODMoST 32
Agora você pode conectar sua placa gráfica ou console de videogame à ENTRADA VGA, conectar seu monitor 3D à SAÍDA VGA e a fonte de alimentação de 5 V ao micro USB. Quando o AODMoST 32 é ligado, ele aguarda o sinal de vídeo (e a detecção da polarização dos pulsos de sincronização). É sinalizado pelo LED vermelho SEM SINAL aceso. Além disso, os LEDs azuis devem estar constantemente ligados. Se estiverem piscando, significa que algo está errado com o cristal HSE de 8 MHz. Durante este tempo você pode apertar os botões, para verificar se eles estão conectados corretamente. Se pelo menos um botão estiver sendo pressionado, os LEDs amarelos estarão acesos. Quando dois ou mais botões estão sendo pressionados, LEDs brancos também acendem. Quando o sinal de vídeo é detectado, a sequência de inicialização começa. Consiste em cada segundo LED em uma linha sendo aceso (0b10101010) por 300 ms, em seguida, quatro outros LEDs são acesos por 300 ms (0b01010101). Está feito, para que você possa verificar se os LEDs estão conectados corretamente ao MCU.
O dispositivo tem 4 modos de operação de trabalho. Por padrão, ele começa no MODO 0: VIDEO PASS-THROUGH. Há também MODO 1: CIMA - BAIXO, MODO 2: LADO A LADO e MODO 3: OBJETOS FLUTUANTES LIVRES. Existem 6 páginas de configurações. Aqueles com números 0 e 3 contêm configurações de frequência / período, taxa de oclusão, ativação / desativação de objetos e outros. As páginas 1 e 4 contêm configurações de posição, enquanto as páginas 2 e 5 contêm configurações de tamanho. Ao pressionar os botões MODE + PAGE, você restaura as configurações padrão em todos os modos. Também existem opções para alterar as formas dos objetos, introduzindo o padrão de máscara e randomizando algumas das configurações. Você pode ler mais sobre como configurar AODMoST 32 em manual_1.00.pdf
Uma possível fonte de conteúdo 3D no formato Topo-Fundo ou Lado a Lado são os jogos de computador. Se você usar a placa de vídeo GeForce, muitos jogos desta lista podem ser modificados para saída em formato compatível. Basicamente, você precisa usar mods / consertos baseados em 3DMigoto, que permitem a saída SBS / TB 3D para qualquer tela após descomentar “run = CustomShader3DVision2SBS” no arquivo de configuração de mod / fix “d3dx.ini”. Para ter uma boa qualidade de imagem, você também deve desativar o tom 3D Vision Discover nos drivers NVIDIA. Você precisa alterar “StereoAnaglyphType” para “0” em “HKLM / SOFTWARE / WOW6432Node / NVIDIA Corporation / Global / Stereo3D \”. Você pode ler mais sobre isso aqui.
Em novas versões de drivers da Nvidia, você deve bloquear a chave de registro. Para abrir o Editor do Registro, pressione WIN + R, digite regedit e pressione ENTER. Bloquear uma chave exigirá que você clique com o botão direito nela, selecione Permissões, Avançado, Desativar herança, confirmando a desativação da herança, voltando para a janela de Permissões e, finalmente, marcando as caixas Negar para todos os usuários e grupos que podem ser marcados e confirmando com um clique no botão OK. Observe que também pode ser necessário alterar os valores de "LeftAnaglyphFilter" "RightAnaglyphFilter". Se quiser fazer qualquer alteração, você precisará desbloquear a chave do Registro desmarcando as caixas de negação ou habilitando a herança. Se você estiver tendo problemas para ativar o 3D Vision em primeiro lugar, porque o assistente de configuração no Painel de controle NVIDIA está travando, você precisa alterar “StereoVisionConfirmed” para “1” em “HKLM / SOFTWARE / WOW6432Node / NVIDIA Corporation / Global / Stereo3D \”. Isso habilitará o 3D Vision no modo de descoberta. Infelizmente, a Nvidia parou de suportar o 3D Vision, então a versão mais recente do driver que pode ser usada é a 425.31, mas se você realmente deseja usar uma versão mais recente, pode tentar.
Existem outras maneiras de obter jogos 3D. Você pode experimentar SuperDepth3D, um shader pós-processo ReShade. GZ3Doom (ViveDoom) oferece suporte nativo a 3D e pode ser reproduzido sem nenhum software especial. As versões do Windows de Rise of the Tomb Raider e Shadow of the Tomb Raider têm suporte nativo para Side by Side 3D.
Alternativamente, você também pode usar o Xbox 360, que oferece suporte a saída VGA e alguns jogos que oferecem suporte a 3D em Top-Botom ou Side by Side. Aqui você pode encontrar uma lista de jogos do Xbox 360 que suportam 3D (embora haja alguns erros nesta lista, por exemplo, uma cópia de Halo: Combat Evolved Anniversary que testei não suporta Top-Bottom, nem SBS).
Claro que você também pode encontrar filmes no formato Topo-Fundo ou Lado a Lado e reproduzi-los em uma ampla variedade de hardware.
Na galeria, você pode encontrar os seguintes jogos:
- Avatar de James Cameron: 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 (o dispositivo está configurado para MODO 3: OBJETOS FLUTUANTES LIVRES), PC
Etapa 6: Visão geral do projeto
O sinal VGA tem 3 cores componentes: Vermelho, Verde e Azul. Cada um deles é enviado através de um fio separado, com intensidade de componente codificada por cores em nível de tensão que pode variar entre 0V e 0,7V. O AODMoST 32 desenha objetos (sobreposição) substituindo o sinal de cor gerado pela placa de vídeo pelo nível de tensão fornecido pelos transistores Q1-Q3 na configuração do seguidor de emissor, que convertem a impedância da tensão em um resistor 2k7 - divisor de tensão trimpot 1k. A comutação de sinais é feita pelo multiplexador / demultiplexador analógico STMAV340.
O tempo dessa comutação é mantido pelo temporizador de controle avançado (TIM1) do MCU, que usa todos os quatro de seus registros de comparação para acionar as saídas. O estado dessas saídas é então processado por 3 portas NAND rápidas. Funciona assim: Contador de temporizadores de redefinição de pulso HSync. Compare 1 Registre quando começar a desenhar o primeiro objeto em uma linha, Compare 2 Registre quando parar. Compare 3 Registre os controles quando começar a desenhar o segundo objeto em uma linha, Compare 4 Registre quando parar. Quando o terceiro objeto é necessário, Compare os registros 1 e 2 são usados novamente. As portas NAND são conectadas de tal forma que enviam sinal ao multiplexador que substitui o vídeo original, quando um par de canais de comparação informa que o desenho do objeto começou, mas ainda não terminou.
Os pulsos de sincronização horizontal e vertical variam no nível de tensão entre 0 V e 5 V e os fios que os transportam são conectados diretamente aos pinos de interrupção tolerantes STM32F103C8T6 5 V configurados como entradas de alta impedância.
O dispositivo consome aproximadamente 75 mA.