Tabla de contenido:
- Paso 1: descargo de responsabilidad
- Paso 2: Fabricación de PCB utilizando el método de transferencia de tóner
- Paso 3: Soldar componentes electrónicos
- Paso 4: Programación del microcontrolador STM32
- Paso 5: uso de AODMoST 32
- Paso 6: descripción general del diseño
Video: Modificador de transmisión estereoscópica con dichoptic de oclusión alternativa 32 [STM32F103C8T6 + STMAV340 VGA Superimposer]: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Durante algún tiempo he estado trabajando en un sucesor del AODMoST original. El nuevo dispositivo utiliza un microcontrolador de 32 bits más rápido y mejor y un conmutador de vídeo analógico más rápido. Permite a AODMoST 32 trabajar con mayores resoluciones e implementar nuevas funcionalidades. El dispositivo ahora también puede ser alimentado por voltaje de 5V del USB.
La nueva característica más importante es la implementación de una máscara de imagen con patrón simple para un ojo y una máscara con patrón inverso para el otro, similar a la que se presenta en este artículo: La visualización de películas con Dichoptic trata la ambliopía infantil. También hay más opciones de personalización para la forma, la posición y la aleatorización constante de esos parámetros.
Debo señalar que no he implementado todas las ideas que tenía y que el firmware se puede desarrollar más. Pero anticipo que debido a problemas socioeconómicos no podré trabajar en este proyecto en el futuro previsible, así que lo estoy publicando como está. El firmware ahora puede funcionar con contenido 3D en formatos Top - Bottom y Side by Side y se probó con una PC equipada con GPU Nvidia y Xbox 360.
2020-11-26 ACTUALIZACIÓN: Finalmente logré crear el MODO 3: OBJETOS FLOTANTES LIBRES. Se incluye en la versión 1.00 del firmware. Este nuevo software también presenta algunos pequeños ajustes, por ejemplo, ahora todos los modos tienen configuraciones separadas de Forma, Máscara y Aleatorización que se guardan cuando el dispositivo se apaga. Voy a conservar los archivos más antiguos (de la versión 0.50 del firmware, cuando no hay información de la versión en el nombre del archivo, significa que este es este firmware antiguo) en caso de que la versión 1.00 sea defectuosa de alguna manera.
Puede descargar el código fuente, esquema, PCB, manual de usuario, etc. para este proyecto aquí:
aodmost_32_all_files_1.00.zip
aodmost_32_all_files.zip
Suministros:
Partes y materiales:
- Microcontrolador STM32F103C8T6 (LQFP-48)
- Puerta NAND cuádruple 74AC00 (SOIC-14, 3,9 mm de estrecho)
- Conmutador de vídeo analógico STMAV340 (TSSOP-16)
- Regulador de voltaje LM1117-3.3 (TO-263)
- 3x transistor BC817 (SOT-23)
- 3x LED blanco de 3 mm
- 2x LED amarillo difuso de 3 mm
- LED rojo difuso de 3 mm
- 2x LED azul difuso de 3 mm
- LED verde difuso de 3 mm
- Cristal de 8 MHz (HC49-4H)
- Conector hembra micro USB tipo B (tenga en cuenta que hay muchos tipos de ellos, y algunos pueden no ser compatibles con los orificios en el diseño de la PCB, puede omitir el USB por completo, ya que el USB se usa solo como fuente de alimentación de 5V)
- 2x conector VGA hembra de ángulo recto D-SUB de 15 pines (tenga en cuenta que hay muchos tipos y necesita una versión más larga con pines que hagan agujeros en la PCB)
- Cabezal de clavija macho recto de 2 pines de 2,54 mm
- Cabezal de clavija macho recto de 3 pines y 2,54 mm
- 11 botones de interruptor táctil de 6x6 mm SMD / SMT
- 2x 10 uF 16V Case A 1206 condensador de tantalio
- Condensador 10x 100 nF 0805
- 2 condensadores de 15 pF 1206
- Potenciómetro de ajuste de 3x 1k ohmios 6mm
- 3 resistencias 10k 1206
- Resistencia 4x 4k7 1206
- Resistencia 3x 2k7 1206
- 2x 1k 1206 resistencia
- 3 resistencias de 470 ohmios 1206
- 3 resistencias de 75 ohmios 1206
- 3 resistencias de 10 ohmios 1206
- tablero revestido de cobre de doble cara (79.375x96.901mm al menos)
- pocas piezas de alambre de cobre (especialmente algo con un diámetro pequeño como 0.07 mm podría ser útil si va a reparar una pista rota junto a los cables del microcontrolador LQFP)
Instrumentos:
- cortador diagonal
- alicates
- destornillador de punta plana
- pinzas
- cuchillo de uso
- expediente
- punzón central
- martillo
- aguja pequeña
- Papel de lija seco / húmedo de grano 1000
- toallas de papel
- sierra u otra herramienta que pueda cortar PCB
- 4 brocas de 0,8 mm
- Broca de 1 mm
- Broca de 3 mm
- taladro prensas o herramienta rotativa
- persulfato de sodio
- recipiente de plástico y herramienta de plástico que se puede utilizar para sacar PCB de la solución de grabado
- cinta de embalaje marrón
- cinta insultiva
- multimetro
- estación de soldadura
- punta de soldadura cónica de punta fina
- punta de soldadura de cincel
- soldar
- fundente de soldadura (utilicé clase RMA, gel fundente destinado al montaje y reparaciones de SMT, que venía en una jeringa de 1,4 cm ^ 3)
- alambre para desoldar
- impresora laser
- papel brillante
- plancha de ropa
- limpiador de crema
- acetona
- frotar alcohol
- fabricante permanente
- ST-LINK / V2 (o clon) + cables que pueden conectarlo al software AODMoST 32 + que puede hacer uso del programador
Paso 1: descargo de responsabilidad
El uso de un dispositivo de este tipo puede causar ataques epilépticos u otros efectos adversos en una pequeña parte de los usuarios del dispositivo. La construcción de un dispositivo de este tipo requiere el uso de herramientas moderadamente peligrosas y puede causar daños o daños a la propiedad. Usted construye y usa el dispositivo descrito bajo su propio riesgo
Paso 2: Fabricación de PCB utilizando el método de transferencia de tóner
Debe imprimir una imagen reflejada de F. Cu (anverso) y una imagen normal de B. Cu (anverso) en papel brillante con una impresora láser (sin ninguna configuración de ahorro de tóner activada). Las dimensiones externas de las imágenes impresas deben ser 79,375x96,901 mm (o lo más cerca posible). Corte la PCB al tamaño de la imagen impresa, puede agregar algunos mm a cada lado de la PCB si lo desea. Personalmente, me gusta hacerlo haciendo una hilera profunda a lo largo de toda la longitud de un laminado con un cuchillo de uso general (debe cortar a lo largo de toda la longitud varias veces), luego repitiendo el proceso desde el otro lado. Cuando las filas son lo suficientemente profundas, todo el laminado se rompe por la mitad fácilmente. Debe realizar el proceso de romper el laminado dos veces, porque debe tener la longitud y el ancho correctos de la pieza resultante. Los trozos más pequeños de laminado se pueden romper con el uso de alicates (asegúrese de no rayar demasiado el cobre, use una capa protectora de papel, por ejemplo, entre los alicates y la PCB). Ahora debe suavizar los bordes de la pieza de tablero resultante con la lima.
A continuación, deberá limpiar las capas de cobre con papel de lija fino humedecido, luego eliminar las partículas dejadas por el papel de lija con un limpiador en crema (también puede usar detergente líquido o jabón). Luego límpielo con alcohol isopropílico. Después de eso, debe tener mucho cuidado de no tocar el cobre con los dedos.
Ahora es el momento de cortar la chapa con imagen especular de F. Cu a un tamaño más manejable (dejar unos centímetros alrededor del rectángulo externo) y ponerla encima de la plancha de ropa (toner arriba). Puede sujetar la plancha entre los muslos, pero tenga mucho cuidado de que la suela esté constantemente levantada y no toque nada. Luego, coloque la PCB sobre papel brillante (tóner de caras laterales limpias) y encienda la plancha (use la máxima potencia). Después de un rato, el papel debe adherirse al PCB. Puede usar un trozo de tela o una toalla para empujar la placa contra el papel y mover un poco el papel que se adhiere al PCB. Espere al menos unos minutos hasta que el papel cambie de color a amarillo. Desafortunadamente, debe determinar el momento adecuado para detener el proceso de transferencia de manera experimental, por lo que en caso de que la imagen en el cobre tenga muy mala calidad, deberá limpiar el tóner con acetona, lijar y lavar la tabla nuevamente y comenzar todo el proceso desde el principio.
Cuando crea que se ha completado la transferencia de tóner, coloque el PCB con papel en agua (puede agregar limpiador en crema o detergente líquido) durante 20 minutos. A continuación, frote el papel de la PCB. Si hay lugares donde el tóner no se pega al cobre, use un marcador permanente para reemplazar el tóner.
Ahora necesita marcar los centros de cuatro espacios vacíos en las esquinas de PCB con un punzón. Posteriormente se perforarán esos centros y los orificios resultantes se utilizarán para alinear ambos lados de la PCB.
A continuación, debe cubrir la parte posterior del laminado con cinta de embalaje marrón. Mezcle agua dulce con persulfato de sodio y ponga PCB en la solución de grabado. Intente mantener la solución a 40 ° C. Puede colocar un recipiente de plástico encima del radiador u otra fuente de calor. De vez en cuando, mezcle la solución en el recipiente. Espere a que el cobre descubierto se disuelva por completo. Cuando termine, retire la PCB de la solución y enjuáguela con agua. Despegue la cinta de embalaje. Quite el tóner con acetona (el quitaesmalte debe contener una buena cantidad). En este punto, puede comenzar a eliminar cualquier cortocircuito con una navaja.
Ahora, taladre cuatro orificios de alineación con un taladro de 0,8 mm. Luego, taladre los orificios correspondientes a través del papel con la imagen de B. Cu utilizando el mismo taladro de 0,8 mm. Una vez hecho esto, lije y limpie la parte posterior de la PCB. Luego coloque el tablero sobre una superficie plana (cobre limpio en la parte superior), cúbralo con papel brillante sosteniendo la imagen de B. Cu (tóner abajo) y coloque cuatro taladros de 0.8 mm en los orificios (parte redonda hacia abajo), para mantener el papel y el laminado alineado. Ahora debes tocar suavemente el papel con la punta de la plancha de ropa caliente durante un rato, de modo que el papel y la PCB se peguen entre sí. Luego, retire los taladros, coloque la plancha entre los muslos y coloque papel con el laminado encima de la plancha y repita el procedimiento de transferencia de tóner. Posteriormente, sumerja el papel en agua para quitarlo y reemplace el tóner faltante con marcador permanente.
Ahora debe cubrir la parte frontal de la PCB con cinta de embalaje, así como la parte posterior alrededor de los orificios ya perforados. Luego, grabe la parte posterior de la misma manera que lo hizo con la parte frontal, retire la cinta, retire el tóner y comience a buscar cortocircuitos.
También necesita perforar el resto de los orificios en la PCB. Hay cuatro orificios de 3 mm para el montaje de los conectores VGA. Los orificios de 1 mm se utilizan para el resto de los orificios VGA, trimpots, cabezales de clavija y vías junto al micro USB (si no va a usar USB, puede soldar otros conectores / cables de alimentación de 5 V aquí). Todos los demás agujeros se pueden hacer con un taladro de 0,8 mm.
Paso 3: Soldar componentes electrónicos
Puede comenzar cubriendo todo el cobre con soldadura (use la punta de un cincel y realice la operación en la superficie ya cubierta de fundente). Si después de esta operación hay una cantidad excesiva de soldadura en algunos puntos, retírela con alambre desoldador. Si alguna pista se disolvió en la solución de grabado, reemplácela con alambres delgados. Luego, puede comenzar a soldar otros componentes, aunque recomiendo que esperará con cosas altas y voluminosas por el lugar para MCU hasta el final. Use una cantidad decente de fundente al hacer conexiones eléctricas.
MCU en el paquete LQFP-48 es lo más difícil de soldar. Comience por alinearlo, soldando solo un cable cerca del vértice del paquete, y luego otro cable en el lado opuesto, para asegurar el MCU en su posición. A continuación, cubra las filas o los cables con fundente y suéldelos suavemente a las pistas de cobre con la punta de un cincel. Asegúrese de no doblar los cables hacia atrás; si lo hace, puede intentar deslizar las filas de cables de soplado de la aguja y empujar el pasador hacia afuera. O si realmente le tiene miedo, coloque la aguja allí incluso antes de comenzar a soldar. Controle que no se hagan cortocircuitos y que las conexiones eléctricas sean conductoras, un multímetro simple con probador de continuidad debería ser adecuado (posiblemente podría destruir el circuito integrado, pero el mío sobrevivió a las pruebas). Si hizo algún cortocircuito, coloque el alambre desoldador encima y comience a calentar. Si las pistas de cobre de la PCB se dañaron, use un cable muy delgado para reemplazarlas. Es posible soldar alambre directamente a los cables de LQFP con punta cónica de punta fina. Lo hice pocas veces, principalmente porque dañé las pistas al desoldar el MCU, lo que estaba más allá de cualquier esperanza después del primer intento de soldarlo (se puede hacer haciendo palanca con las clavijas con una aguja). Espero sinceramente que lo haga bien la primera vez.
Otros circuitos integrados son similares y deben soldarse de la misma manera, pero tienen una cantidad menor de cables más grandes, por lo que no deberían representar un gran desafío. El LM1117 tiene una pestaña grande que debe soldarse al cobre, pero es difícil calentarla adecuadamente con un soldador normal, por lo que si hace que se adhiera a la PCB y cubra los lados con una cierta cantidad de soldadura, debería ser suficiente.
Algunos componentes THT deben soldarse desde ambos lados de la placa. En el caso de trimpots y LED, es bastante sencillo. Cuando suelde los cabezales de las clavijas, deslice el plástico más arriba de lo que debería estar antes de esta operación, luego suelde todas las clavijas de ambos lados y luego deslice el plástico de regreso a la posición original. Al soldar cristal de cuarzo, al principio colóquelo más arriba de lo necesario, suelde los cables de ambos lados y luego, mientras los calienta desde abajo, empuje el cristal hacia abajo. Tenga en cuenta que también envolví la caja de cristal en alambre y luego soldé el alambre al suelo (el gran relleno de cobre a la izquierda y debajo del cristal). Antes de soldar partes del conector VGA que entran en orificios de 3 mm, soldé algunos cables al cobre en ambos lados para asegurarme de que ambas capas de cobre estén conectadas, y solo entonces soldé los cables de blindaje. Las vías se pueden hacer colocando un cable más grande dentro del orificio (por ejemplo, la longitud no utilizada del cable del componente THT), soldando ambos lados de la PCB y luego cortando la parte innecesaria.
Cuando suelde el conector USB, puede usar una punta cónica de punta fina para los cables pequeños.
Cuando creas que has soldado todo debes comprobar una vez más que no hay cortocircuitos ni malas conexiones.
Paso 4: Programación del microcontrolador STM32
Para desarrollar el firmware AODMoST 32 utilicé System Workbench para STM32 (versión Linux), que usa OpenOCD para programar el microcontrolador. Puede encontrar instrucciones detalladas sobre cómo importar este proyecto a SW4STM32 dentro del archivo sw4stm32_configuration_1.00.pdf.
Alternativamente, puede utilizar la utilidad ST-LINK (STSW-LINK004). Probé la versión de Windows y funcionó bien con aodmost_32_1.00.bin
Usé un clon barato de ST-LINK / V2 como mi programador, lo cual no es ideal, pero funcionó. Para programar MCU, necesitaba alimentar AODMoST 32 desde el puerto USB y conectar 3 cables de puente con conectores hembra de 2.54 mm al programador en un lado y al puerto SW-DP de AODMoST 32 en el otro. Necesita conectar GND, SWCLK y SWDIO. Al programar, asegúrese de que el software esté configurado para realizar el reinicio del sistema por software.
Los archivos aodmost_32_1.00.bin y aodmost_32_1.00.elf necesarios para programar MCU están dentro del archivo aodmost_32_all_files_1.00.zip.
La memoria flash de la MCU debe estar vacía antes de la programación; de lo contrario, algunos datos antiguos que quedan en los últimos 4 kB podrían interferir con el almacenamiento y la carga de la configuración.
Paso 5: uso de AODMoST 32
Ahora puede conectar su tarjeta gráfica o consola de videojuegos a VGA IN, conectar su pantalla 3D a VGA OUT y la fuente de alimentación de 5V a micro USB. Cuando se enciende AODMoST 32, espera la señal de video (y la detección de polarización de pulsos de sincronización). Se indica mediante el encendido del LED rojo NO SIGNAL. Además, los LED azules deben estar encendidos constantemente. Si están parpadeando, significa que algo anda mal con el cristal HSE de 8MHz. Durante este tiempo, puede presionar botones para verificar si están conectados correctamente. Si se presiona al menos un botón, los LED amarillos están encendidos. Cuando se presionan dos o más botones, los LED blancos también se encienden. Cuando se detecta la señal de video, comienza la secuencia de inicio. Consiste en que cada segundo LED en una fila se encienda (0b10101010) durante 300ms, luego otros cuatro LED se encienden durante 300ms (0b01010101). Está hecho, para que pueda verificar que los LED estén conectados correctamente a la MCU.
El dispositivo tiene 4 modos de funcionamiento. Por defecto comienza en MODO 0: VIDEO PASS-THROUGH. También hay MODO 1: ARRIBA - ABAJO, MODO 2: LADO A LADO y MODO 3: OBJETOS FLOTANTES LIBRES. Hay 6 páginas de configuraciones. Aquellos con números 0 y 3 contienen configuraciones de frecuencia / período, tasa de oclusión, objetos encendidos / apagados, etc. Las páginas 1 y 4 contienen configuraciones de posición, mientras que las páginas 2 y 5 contienen configuraciones de tamaño. Al presionar los botones MODE + PAGE, restaura la configuración predeterminada en todos los modos. También hay opciones para cambiar las formas de los objetos, introducir un patrón de máscara y aleatorizar algunas de las configuraciones. Puede leer más sobre la configuración de AODMoST 32 en manual_1.00.pdf
Una posible fuente de contenido 3D en formato Top-Bottom o Side by Side son los juegos de computadora. Si usa una tarjeta de video GeForce, muchos juegos de esta lista se pueden modificar para que tengan un formato compatible. Básicamente, necesita utilizar modificaciones / correcciones basadas en 3DMigoto, que le permiten generar SBS / TB 3D en cualquier pantalla después de descomentar "run = CustomShader3DVision2SBS" en el archivo de configuración de modificación / corrección "d3dx.ini". Para tener una buena calidad de imagen, también debe deshabilitar el tinte 3D Vision Discover en los controladores NVIDIA. Debe cambiar "StereoAnaglyphType" a "0" en "HKLM / SOFTWARE / WOW6432Node / NVIDIA Corporation / Global / Stereo3D \". Puedes leer más sobre esto aquí.
En las nuevas versiones de los controladores de Nvidia, debe bloquear la clave de registro. Para abrir el Editor del Registro, presione WIN + R, luego escriba regedit y presione ENTER. Para bloquear una clave, deberá hacer clic derecho sobre ella, seleccionar Permisos, Avanzado, Desactivar herencia, confirmar la desactivación de la herencia, volver a la ventana Permisos y, finalmente, marcar las casillas Denegar para todos los usuarios y grupos que se pueden marcar y confirmar con un haga clic en el botón Aceptar. Tenga en cuenta que también puede ser necesario cambiar los valores de "LeftAnaglyphFilter" "RightAnaglyphFilter". Si desea realizar algún cambio, debe desbloquear la clave de registro desmarcando esas casillas de denegación o habilitando la herencia. Si tiene problemas para habilitar 3D Vision en primer lugar, porque el asistente de configuración en el Panel de control de NVIDIA se bloquea, debe cambiar "StereoVisionConfirmed" a "1" en "HKLM / SOFTWARE / WOW6432Node / NVIDIA Corporation / Global / Stereo3D \”. Esto habilitará 3D Vision en el modo Descubrir. Desafortunadamente, Nvidia dejó de admitir 3D Vision, por lo que la versión más reciente del controlador que se puede usar es 425.31, pero si realmente desea usar una versión más nueva, puede probar esta.
Hay otras formas de obtener juegos en 3D. Puede probar SuperDepth3D, un sombreador de postproceso de ReShade. GZ3Doom (ViveDoom) es compatible de forma nativa con 3D y se puede reproducir sin ningún software especial. Las versiones de Windows de Rise of the Tomb Raider y Shadow of the Tomb Raider tienen soporte nativo para Side by Side 3D.
Alternativamente, también puede usar Xbox 360, que admite salida VGA y tiene algunos juegos que admiten 3D en Top - Botom o Side by Side. Aquí puede encontrar una lista de juegos de Xbox 360 que admiten 3D (aunque hay algunos errores en esta lista, por ejemplo, una copia de Halo: Combat Evolved Anniversary que probé no es compatible con Top-Bottom, ni SBS).
Por supuesto, también puede encontrar películas en formato Superior - Inferior o Lado a Lado y reproducirlas en una amplia variedad de hardware.
En la galería puedes encontrar los siguientes juegos:
- 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 (el dispositivo está configurado en MODO 3: OBJETOS FLOTANTES LIBRES), PC
Paso 6: descripción general del diseño
La señal VGA tiene 3 colores componentes: rojo, verde y azul. Cada uno de ellos se envía a través de un cable separado, con la intensidad del color del componente codificada en un nivel de voltaje que puede variar entre 0 V y 0,7 V. AODMoST 32 dibuja objetos (superposición) reemplazando la señal de color generada por la tarjeta de video con el nivel de voltaje proporcionado por los transistores Q1-Q3 en la configuración de seguidor de emisor, que convierten la impedancia de voltaje en una resistencia de 2k7 - divisor de voltaje de trimpot de 1k. La conmutación de señales se realiza mediante el multiplexor / demultiplexor analógico STMAV340.
La sincronización de esta conmutación se mantiene mediante el temporizador de control avanzado (TIM1) de MCU, que utiliza sus cuatro registros de comparación para controlar las salidas. El estado de esas salidas es luego procesado por 3 puertas NAND rápidas. Funciona así: Contador de temporizadores de reinicio de pulso HSync. Comparar 1 Registre los controles de cuándo empezar a dibujar el primer objeto de una línea, Compare 2 Registre cuándo detenerlo. Comparar 3 Registre los controles cuándo comenzar a dibujar el segundo objeto en una línea, Compare 4 Registre cuándo detenerlo. Cuando se necesita un tercer objeto, se vuelven a utilizar los registros de comparación 1 y 2. Las puertas NAND están conectadas de tal manera que envían una señal al multiplexor que reemplaza el video original, cuando un par de canales de comparación le dice que el dibujo del objeto ha comenzado, pero aún no ha terminado.
Los pulsos de sincronización horizontal y vertical varían en el nivel de voltaje entre 0 V y 5 V y los cables que los transportan se conectan directamente a los pines de interrupción tolerantes STM32F103C8T6 de 5 V configurados como entradas de alta impedancia.
El dispositivo consume aproximadamente 75 mA.