Tabla de contenido:

Consola de juegos casera - "NinTIMdo RP": 7 pasos (con imágenes)
Consola de juegos casera - "NinTIMdo RP": 7 pasos (con imágenes)

Video: Consola de juegos casera - "NinTIMdo RP": 7 pasos (con imágenes)

Video: Consola de juegos casera -
Video: Consola de juegos con la Raspberry pi 3 2024, Noviembre
Anonim
Image
Image
Consola de juegos casera
Consola de juegos casera

Enlace a la página web con explicaciones más detalladas, lista de piezas y archivos

timlindquist.me

Este proyecto consistía en crear un sistema de juegos portátil que también pudiera funcionar como computadora portátil. El objetivo era crear una consola que fuera funcional y estéticamente agradable.

Lista de partes:

docs.google.com/spreadsheets/d/1Ay6-aW4nAt…

Paso 1: Imprimir caso

Caso de impresión
Caso de impresión
Caso de impresión
Caso de impresión

Para imprimir el dispositivo, descargue mis archivos de modelo 3D y envíelos a su impresora 3D. La impresora que usé fue una Prusa i3 Mk2 junto con filamento de plástico negro. Se encontró que la calidad de impresión es mejor en una configuración de resolución media. Asegúrese de agregar material estructural debajo del dispositivo (los asideros se verán mal sin él). Las piezas traseras se imprimieron con la parte posterior al ras con el plato. Las piezas frontales se imprimieron con la cara frontal alineada con el plato. Si tuviera que imprimir otro estuche, me gustaría usar un nuevo color como el púrpura atómico para mostrar las partes internas. Si eres como yo y tienes una cama de impresión de 8 pulgadas para trabajar, necesitarás imprimir la versión de 4 piezas que se ensamblará después de la impresión. Sin embargo, si su cama es lo suficientemente grande como para hacerla como una sola pieza, imprima la placa frontal y posterior como una sola unidad y evite el dolor de unirlas.

Archivos de modelo:

github.com/timlindquist/Nintimdo-RP_3D_mod…

Paso 2: Ensamblaje de la caja

Ensamblaje de la caja
Ensamblaje de la caja
Ensamblaje de la caja
Ensamblaje de la caja

Para ensamblar, primero una las piezas delanteras derecha e izquierda insertando una clavija de metal en los orificios de alineación. A continuación, coloque superpegamento en las juntas y asegure la mitad. Repite el proceso para los que tienen la parte inferior derecha e izquierda. Después de esto, debe quedar con una mitad delantera y trasera ensambladas. Ahora es el momento de colocar los 5 separadores de metal para fusionar las placas frontal y posterior. La forma más fácil de hacer esto es primero hacer que los separadores tengan la longitud correcta. 13 mm de profundidad en la espalda 5 mm de profundidad en la parte delantera. Por lo tanto, haga que los separadores sean de 18 mm o un poco menos. Hice esto colocando un soporte más largo en un tornillo de banco y usando una amoladora para reducir el tamaño. Asegúrese de esmerilar solo un lado porque necesitará los hilos del otro. Después de obtener la longitud correcta, pegue todos los lados de la amoladora a la cara frontal con pegamento de gorila regular y déjelo secar. Asegúrese de que todos estén erguidos durante este proceso. Una vez seco, raspe el excelente pegamento que se hizo espuma para que las caras puedan quedar al ras cuando se junten. Ahora vea si puede insertar la placa trasera en los separadores para unirla con la parte delantera. Atornille a través de la placa trasera para asegurar. Pegue la pantalla forrando el marco con el tubo de duelo Gorilla Epoxy. Me puse demasiado cuando hice esto y se desbordó en la pantalla. ¡Afortunadamente, se borra! Sujete y deje secar por un tiempo, luego forre la parte trasera con pegamento Gorilla regular.

** Nota: Trate de no aplicar pegamento fino CA (superpegamento) en el exterior ya que "quemará" el PLA y manchará de color blanco.

Paso 3: Circuito

Circuitería
Circuitería
Circuitería
Circuitería
Circuitería
Circuitería

Circuito de botones:

La captura de todas las pulsaciones de botones se realiza utilizando un Teensy ++ 2.0. Los pines digitales del microcontrolador se utilizan para cualquier botón de presión binario. Los pines analógicos se utilizan para botones que tienen varios estados, como los joysticks. Para conectar las clavijas digitales, simplemente conecte la clavija digital al interruptor, conecte el otro extremo del interruptor a tierra. Cuando se presiona el botón, bajará el pin de alto voltaje para que el controlador lo detecte. No necesita preocuparse por las resistencias, ya que están incluidas en la placa Teensy. Para conectar los pines analógicos, deberá polarizar su dispositivo analógico con un voltaje alto y bajo y leer un nivel de voltaje dentro de ese rango en el pin analógico. Para los joysticks hay 3 entradas para cada eje. Suministre 5V a uno de los pines, GND a otro y la línea de lectura de voltaje al último. Asegúrese de conectarlo correctamente o no funcionará (use un multímetro para ver si el voltaje de salida cambia en el pin correcto). Básicamente, el joystick es una resistencia variable que funciona como un divisor de voltaje. El voltaje de salida en el pin de lectura variará entre 0 y 5 V dependiendo de la posición de los joysticks. (Por lo general, la polarización 5V y GND están en los pines de entrada externos del joystick y el del medio será su pin de lectura de voltaje variable. Si 5V y GND son diferentes a los míos, sus controles se invertirán, esto se puede arreglar en el software o recablear).

Circuito de energía:

La batería Anker de tres celdas suministra energía a todo el dispositivo. Para encender / apagar el dispositivo, la salida del regulador de batería se conecta a un interruptor y luego a Raspberry Pi. Debido a que el dispositivo puede consumir hasta 2 A, un simple interruptor de palanca de 250 mA no puede manejar el requisito de corriente. En su lugar, puede usar el interruptor para controlar el voltaje de la puerta en un transistor PMOS para que sirva como interruptor. Conecte los 5V de la batería a la fuente de un transistor PMOS y al interruptor. El otro extremo del interruptor está conectado a la puerta del transistor PMOS y a una resistencia de 10K conectada a GND (cuando el interruptor está abierto para evitar que la puerta flote, lo ata a GND a través de la resistencia). El drenaje está conectado a la entrada de 5 V en la Raspberry Pi junto con el suelo. Para cargar la batería, simplemente conecte la placa de conexión micro USB hembra a los pines de carga correctos (extiende la entrada a la carcasa). Escondí este interruptor en la entrada de aire en la parte posterior del dispositivo. Originalmente, estaba planeando que el botón de la batería encienda y apague el dispositivo manteniéndolo presionado durante un cierto tiempo, desafortunadamente me quedé sin espacio y tuve que hacer la implementación simple. Este diseño alternativo se muestra en el esquema siguiente.

Circuito de audio:

Para el audio, quería que el sonido saliera naturalmente por los altavoces (si no estuviera silenciado) y redirigiera a los auriculares si están conectados. Afortunadamente, muchas de las tomas de auriculares hembra de 3,5 mm son mecánicamente capaces de hacer esto. Cuando se inserta un enchufe macho, los cables de los altavoces se doblarán y crearán un circuito abierto, lo que evitará que la señal llegue a los altavoces. Dado que los altavoces tienen una carga mayor, la señal de audio debe amplificarse para poder escucharla. Esto se hace usando un amplificador estéreo de clase D que encontré en adafruit. Simplemente polarice el amplificador con 5V y GND. No tenemos entradas de audio diferenciales, así que conecte los altavoces izquierdo y derecho a los terminales positivos y ate los terminales negativos a GND. La ganancia se ajusta con el puente. Establezco la ganancia al máximo y estoy cambiando la amplitud de las señales de audio de salida a través del software para ajustar el volumen. Para silenciar el dispositivo, tengo un transistor NMOS que controla el sesgo de 5V. Esta puerta de transistores NMOS está controlada por Teensy. Un problema que tengo es un ruido de alta frecuencia constante en los altavoces externos. Analizaré esto en un osciloscopio, puede provenir de la polarización de 5V debido a que algunos reguladores cambian en la batería o las líneas pueden estar captando RF en algún lugar. Además, asegúrese de torcer las líneas derecha e izquierda para minimizar la interferencia electromagnética (EMI).

Paso 4: Circuito periférico

Circuito periférico
Circuito periférico
Circuito periférico
Circuito periférico

Este circuito incluye los soportes USB y el indicador LED. Ordene el PCB en mi enlace y córtelo por la mitad a lo largo de la línea de puntos con una sierra de cinta. En el lado USB, suelde todos los dos puertos USB hembra en la placa. En el lado de los LED, suelde los 5 LED y las 5 resistencias en serie. 5V, GND, D +, D-se pueden extender usando cables desde los USB desoldados de Raspberry PI a la PCB. La PCB LED se puede colocar de modo que la luz brille a través de los orificios en la parte superior de la carcasa. Conecte 5 salidas PWM del Teensy a los LED junto con GND. Al variar el ciclo de trabajo, puede alterar el brillo de los LED.

Compra de PCB:

Paso 5: programación

Programación
Programación
Programación
Programación
Programación
Programación

Teensy:

Si lo conectó exactamente igual que yo, puede usar el código que proporcioné en Github. Sin embargo, recomendaría escribirlo usted mismo, ya que comprenderá mejor el sistema y podrá manipularlo y personalizarlo fácilmente a su gusto. La programación es muy simple, realmente se reduce a escribir un montón de declaraciones if para verificar si se presionaron los botones. Un útil conjunto de instrucciones de PJRC. Puede usar el IDE de Arduino para escribir su código y cargarlo en Teensy.

CÓDIGO:

github.com/timlindquist/Nintimdo-RP

Botones digitales: este ejemplo me muestra verificando si se presionó el pin digital 20 y luego emitiendo el comando de joystick en serie correcto. Puede elegir entre 1 y 32 para el botón, ya que Retropie realiza una configuración de mapeo del controlador al principio de todos modos. Botón Joystick (botones: 1-32, Pulsado = 1 Liberado = 0)

Botones analógicos:

En el ejemplo, la vertical derecha del joystick está conectada al pin analógico 41. La función analogRead (pin) recibe un nivel de voltaje entre 0 y 5V y devuelve un valor de 0 a 1023. Una posición central ideal correspondería a 2.5V o 512, sin embargo, este no fue el caso de mi palanca analógica, por lo que fue necesario realizar un ajuste. Esto se hizo mediante una reasignación que se muestra a continuación. Después de eso, necesitaba verificar si los límites no se excedieron de 0 a 1023. Por último, el comando del joystick analógico se envió en serie para ser el botón analógico Z usando Joystick. Z (valor de 0 a 1023).

Paso 6: muelle opcional

Muelle opcional
Muelle opcional
Muelle opcional
Muelle opcional
Muelle opcional
Muelle opcional

Muelle:

Esta construcción no estaría completa sin una base para cargar y una conexión de TV fácil, así que diseñé una en las imágenes a continuación. Los modelos 3D están disponibles con los demás en mi paquete Github.

Modelos:

github.com/timlindquist/Nintimdo-RP_3D_mod…

Paso 7: resultados

Resultados
Resultados
Resultados
Resultados
Resultados
Resultados
Resultados
Resultados

En retrospectiva, desearía haber hecho el puerto de salida HDMI con una PCB en lugar de un soporte de pared hembra comprado previamente. Esto habría ahorrado mucho espacio, en realidad tuve que meter el cable en espiral para evitar cortarlo y volver a soldar los 19 cables. Estoy desgarrado por ir con una batería más pequeña porque la altura de la celda fue mi factor limitante en el grosor de todo el dispositivo. Sin embargo, reducir esto afectaría negativamente la duración de mi batería.

En total, esto me costó alrededor de $ 350. Esto no incluye la frambuesa pi que rompí tratando de reducir el tamaño … Todavía estoy feliz de haberlo probado. Fue un proyecto de verano divertido para ver si podía hacerlo lo más compacto posible y, al mismo tiempo, incorporar muchas características interesantes en su interior.

Recomendado: