Tabla de contenido:

Dispositivo de juego móvil Raspberry Pi: 11 pasos
Dispositivo de juego móvil Raspberry Pi: 11 pasos

Video: Dispositivo de juego móvil Raspberry Pi: 11 pasos

Video: Dispositivo de juego móvil Raspberry Pi: 11 pasos
Video: TODO ESTO PUEDES HACER CON UNA RASPBERRY PI 😈💻 2024, Mes de julio
Anonim
Dispositivo de juegos móvil Raspberry Pi
Dispositivo de juegos móvil Raspberry Pi

¿Alguna vez has querido poder jugar videojuegos clásicos sobre la marcha, pero no estabas seguro de dónde conseguir un dispositivo capaz de ejecutar juegos antiguos, o simplemente eran demasiado caros? ¡Entonces haz el tuyo!

Esta es una documentación sobre la construcción de mi dispositivo de juegos móvil Raspberry Pi, inspirado en el Nintendo Switch. El costo es de poco menos de $ 200 y es capaz de ejecutar muchos juegos más antiguos con el uso de RetroPie. RetroPie tiene más de 30 emuladores integrados, por lo que ejecutar juegos más antiguos es muy sencillo, ¡siempre que tengas las ROM!

Hubo muchas cosas que hubiera hecho de manera diferente en este proyecto, y trataré de compartirlas con ustedes en este tutorial. De esa forma, puedes aprender de mis errores sin tener que cometerlos tú mismo.

Con suerte, puede utilizar las instrucciones de este tutorial para crear su propio dispositivo de juego Raspberry Pi. Si es así, dímelo haciendo clic en "¡Lo hice!" al final del Instructable.

Además, si le gusta este proyecto, vote por él tal como está en el concurso Game Life. ¡Gracias!

Paso 1: Lista de piezas

HABILIDADES

Necesitará ser hábil con un soldador, conocer los conceptos básicos de Python y tener algunos conocimientos de carpintería.

La capacidad de destruir videojuegos también es imprescindible (aunque todavía estoy trabajando en eso …)

PARTES

1x Raspberry Pi 2 o 3 - $ 35

1 pantalla táctil oficial Raspberry Pi de 7 - $ 75

1x tarjeta Micro SD (8GB mínimo, probablemente querrá más para sus ROM!)

1x paquete de batería de iones de litio - 3.7V 4400mAh - $ 19.95 (https://www.adafruit.com/product/354)

2x Joystick de pulgar analógico de 2 ejes - $ 5.95 (https://www.adafruit.com/product/512)

1x cargador PowerBoost 1000 - $ 19.95 (https://www.adafruit.com/product/2465)

1x MCP3008 - ADC de 8 canales y 10 bits - $ 3.75 (https://www.adafruit.com/product/856)

1x Baratija de Adafruit - $ 6.95 (https://www.adafruit.com/product/1500)

LED de 4 x 3 mm

Una variedad de botones táctiles - (redondo: https://www.adafruit.com/product/1009 y cuadrado:

Una variedad de cables, resistencias y otros componentes pequeños.

Tablero perfilado

Madera de 1/4 "y madera de 1/2" para construir la caja

INSTRUMENTOS

Soldador

Alicates de punta de aguja

Pelacables

Una estación de soldadura / mano amiga también puede ser útil.

Taladro de banco

Sierra de cinta / sierra de calar

Sierra de mesa

Lijadora de banda

Herramienta Dremel

SOFTWARE

RetroPie (https://retropie.org.uk)

Todo el código y los esquemas de Fritzing están disponibles en este archivo de Github

También necesitará otra computadora para cargar RetroPie y ROM en su Raspberry Pi. Esta computadora necesitará Etcher.io, Win32DiskImager u otra aplicación que pueda escribir RetroPie en una tarjeta SD, junto con el último IDE de Arduino. Si está ejecutando Windows, deberá instalar PuTTY (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) para poder SSH en su Raspberry Pi.

Paso 2: Placa de pruebas para tus circuitos

Comencé por hacer un tablero de pruebas en mis circuitos, para asegurarme de que todo saliera según lo planeado.

He incluido los esquemas y el código en el archivo Github al comienzo del tutorial; sin embargo, hice algunos cambios menores que olvidé documentar, por lo que algunas cosas pueden haber sido diferentes de lo que son ahora. El código se puede utilizar como punto de partida para su proyecto, pero le recomiendo al menos leerlo para comprenderlo y cambiarlo para satisfacer sus necesidades específicas o mejorarlo.

Todos los controles están conectados a 3.3v, ¡la conexión a 5v puede dañar su Raspberry Pi

Cableado del controlador

Hay 12 botones de control en total. 4 para A / B / X / Y, 4 para DPAD, uno para cada Start y Select, y dos botones laterales. Es posible que pueda tener 4 botones de hombro dependiendo del espacio, pero la mayoría de los juegos RetroPie que requieren botones de hombro solo requieren dos (creo que…).

Los botones están conectados en un lado a 3.3v a través de una resistencia de 10k, y en el mismo lado están conectados a su pin GPIO respectivo a través de una resistencia de 1k. El otro lado está conectado directamente a GND (tierra). Si la lógica es diferente en su circuito, ¡asegúrese de que la lógica en su código refleje eso! En el código que proporcioné, puede funcionar de cualquier manera, pero no me cites en eso;)

Los joysticks están conectados al MCP3008 ADC (convertidor analógico a digital). Hay 8 canales en un lado y la interfaz SPI en el otro. ¡Asegúrese de conectar las salidas de los joysticks al lado correcto del ADC! Los joysticks X, Y y SEL (selección de botón) están todos conectados al ADC. El pin SEL no es analógico, pero para guardar en los pines GPIO, los conecté al ADC. Conecté una resistencia de los pines SEL a 3.3v, ya que la salida se establece en un valor flotante cuando no se presiona, luego se corta a tierra cuando se presiona.

El ADC está conectado a través de 4 pines a la Raspberry Pi, pero no se requieren ciertos pines (hasta donde yo sé. Los pines en el esquema se probaron y funcionaron bien, junto con algunos otros). Como dije anteriormente, ¡asegúrese de que su código refleje su hardware!

Cableado de energía

Primero deberá cargar el código para Trinket desde el IDE de Arduino. Abra el archivo TrinketRPi.ino en el IDE de Arduino, seleccione su placa y puerto en el menú de herramientas y presione el botón de carga.

La salida de 5v del PowerBoost está conectada directamente al pin GPIO de 5v de la Raspberry Pi y al pin de 5v de la pantalla táctil, y la tierra del PowerBoost está conectada a los pines de tierra del Pi y la pantalla táctil. La baratija se alimenta desde el pin GPIO 3.3v de la Raspberry Pi.

El Adafruit Trinket se utiliza para controlar el poder. El pin 0 del Trinket está conectado al GPIO 15 (no el 15 físico) en el Raspberry Pi, y el pin 2 del Trinket está conectado al pin EN del PowerBoost. Junto con eso, un botón de encendido está conectado entre BAT y EN en el PowerBoost. Cuando se mantiene pulsado este botón durante unos 5 segundos (el tiempo que tarda el Trinket en iniciarse), todo se enciende. Cuando se suelta, el Trinket mantiene el pin 2 HIGH (conectado al pin EN en el PowerBoost), manteniendo la energía yendo al sistema.

El botón de encendido solo funciona como un interruptor de ENCENDIDO, ya que no estaba seguro de cómo hacer un circuito que lo dejara actuar tanto como encendido como apagado. ¡Sin embargo, el Pi aún se puede apagar fácilmente desde el software!

Cuando se inicia el Pi, el pin 15 se establece en HIGH (Controller.py) para notificar al Trinket que está encendido. Cuando el Pi se apaga de alguna manera, el pin 15 pasa a BAJO, lo que hace que el Trinket mantenga la energía durante ~ 20 segundos y luego se apaga por completo.

Lamento decir que hice algunos cambios a esto que ahora están enterrados en un recinto, y no estoy seguro de lo que hice, ya que este proyecto se realizó hace un tiempo. Este diseño debería funcionar, pero pruébelo antes de meterlo en un lugar inaccesible.

El pin BAT del PowerBoost está conectado al ADC para leer el nivel de la batería. Una resistencia de 6.8k conecta el pin BAT al canal ADC, y otra resistencia de 10k conecta el pin BAT a GND. Esto permite que el ADC obtenga el voltaje de salida de la batería y se aproxime al nivel de la batería. Al cargar, la salida de la batería será de 5 V, por lo que no hay forma de saber el nivel de la batería mientras se carga con esta configuración.

Si lo desea, puede conectar VBUS en el PowerBoost de la misma manera que BAT; esto le permite saber si la batería se está cargando.

LEDs indicadores

Los cuatro indicadores LED le permiten ver cosas como el nivel de la batería, el volumen o el brillo de la pantalla. El código solo está configurado para el nivel de la batería en este momento.

Cada LED de 3 mm está conectado desde un pin GPIO, a través de una resistencia de 100 ohmios y de regreso a tierra. Mis LED son verdes, asegúrese de elegir las resistencias adecuadas para otros LED de colores, ya que tienen diferentes requisitos de energía.

¡Eso es todo por el cableado! Después de haber probado su cableado en una placa de prueba, puede comenzar a hacer un circuito más permanente.

Paso 3: configurar el software

Configurar el software
Configurar el software

Para cargar RetroPie en la tarjeta SD, necesitará una aplicación como Etcher.io (recomendado) o Win32DiskImager, y el sistema operativo RetroPie desde el enlace al principio.

Para usar Etcher, primero inserte su tarjeta micro SD en su computadora. Abra Etcher y haga clic en "Seleccionar imagen". Navega a la carpeta donde descargaste RetroPie, selecciónala y haz clic en "Abrir". A continuación, haga clic en "Seleccionar unidad" y seleccione su tarjeta SD de la lista. ¡Asegúrese de seleccionar la tarjeta SD correcta, ya que la borrará! Haga clic en "Flash" y espere a que termine. Expulsa automáticamente la tarjeta SD una vez hecho, por lo que es seguro quitarla de su computadora.

Si no tiene una Raspberry Pi 3, necesitará un dongle WiFi. Un controlador de juego es útil en este paso, pero solo se requiere un teclado. Inserte su tarjeta SD en su Raspberry Pi, conéctela a un monitor (la pantalla táctil funciona bien) y conecte la energía. Una vez que RetroPie arranque, deberá configurar los controles. Seleccione su controlador / teclado y siga las instrucciones. Una vez hecho esto, navegue a la configuración de WiFi en el menú RetroPie y configure su WiFi.

También deberá habilitar SSH. Regrese al menú RetroPie y seleccione raspi-config de la lista (creo que ahí es donde está). En interfaces, seleccione SSH. Le preguntará si desea habilitar SSH. Seleccione Sí.

Es posible que tenga que reiniciar su Pi ahora. Una vez que se reinicia, vuelve al menú RetroPie. Creo que hay una opción de dirección IP o nombre de host que le dirá la dirección IP de la Raspberry Pi. Copie esto en una hoja de papel o simplemente deje este menú abierto por ahora.

En su computadora, necesitará SSH en su Raspberry Pi.

Si está en Windows, descargue, instale y abra PuTTY (enlace en la lista de piezas) y configure el cuadro "Nombre de host (o dirección IP)" en el nombre de host de su Raspberry Pi, luego haga clic en "Abrir" para iniciar la sesión.

En Mac y Linux, simplemente puede abrir una terminal y escribir

$ ssh pi @ nombre de host

reemplazando "nombre de host" con la dirección IP que obtuvo en la Raspberry Pi. Tenga en cuenta que $ no se escribe en el terminal, solo significa que se trata de un nuevo indicador de terminal.

A continuación, ingrese

$ nano /home/pi/Controller.py

y pegue el contenido del archivo Controller.py de Github en él. Controller.py es el script de Python que maneja todas las entradas de control, como joysticks y botones.

Deberá cambiar los números de pin para que coincidan con los de su hardware.

Presione CTRL-X o CMD-X y luego Y para guardar el archivo. A continuación, ingrese

$ sudo nano /etc/rc.local

luego ingrese esta línea en el archivo:

sudo python3 /home/pi/Controller.py &

luego presione CTRL-X (Windows) o CMD-X (Mac) y luego Y (sin CTRL / CMD) para guardar. Esto configura el script Controller.py para que se inicie en el arranque.

A continuación, puede restablecer la configuración de su controlador, de modo que pueda usar sus botones / joysticks en lugar de un controlador de juegos USB.

$ sudo ~ / Configuración de RetroPie / retropie_setup.sh

y vaya a la configuración de la estación de emulación a través de

Administrar paquetes -> Paquetes principales -> estación de emulación -> Configuración o Configuración / Herramientas -> estación de emulación y elija la opción para borrar / restablecer la configuración de entrada de la estación de emulación

La próxima vez que reinicie, su controlador USB ya no estará configurado, pero podrá configurar sus controles personalizados en ese momento.

En este punto, puede cargar sus ROM en la Raspberry Pi. Hay muchas formas diferentes de hacer esto, y estos videos me parecieron los más útiles:

A través de su navegador: esta opción también le brinda un acceso más fácil a algunas otras cosas en la instalación de RetroPie, ya que brinda una GUI basada en la web para muchas de las tareas que normalmente se realizan a través del terminal o la GUI basada en texto de RetroPie.

A través de su red: esta opción le permite transferir ROM desde el explorador de archivos de su computadora, lo que facilita la navegación a sus archivos. También le permite explorar y editar algunas carpetas compartidas en RetroPie, como BIOS, pantallas de presentación y archivos de configuración.

El uso de ambas opciones permitirá un mayor control de la instalación de RetroPie, pero solo se necesita una para transferir ROM. Elige el que mejor se adapte a ti.

Paso 4: Prepare la Raspberry Pi y la pantalla táctil

Para este proyecto, el espacio iba a ser mínimo, así que comencé eliminando componentes innecesarios de la Raspberry Pi.

Primero fueron los puertos USB y Ethernet. La soldadura de estos puede ser difícil de quitar, ya que tiene una alta temperatura de fusión. Corté la mayor parte de cada puerto con una tijera de hojalata y luego desolé las partes sobrantes. Tenga cuidado al quitar estos puertos, ya que algunos componentes más pequeños pueden desprenderse fácilmente de la Raspberry Pi (hablando por experiencia).

Un solo puerto USB está conectado (no directamente) a los pines de soldadura USB recientemente expuestos de la Raspberry Pi. Esto permite que se conecte al lateral de la carcasa.

El puerto de salida de energía USB se eliminó de la pantalla táctil de la misma manera.

A continuación, desolé los pines GPIO. Encontré que la forma más fácil de hacer esto fue cortando primero la parte de plástico negro alrededor de la parte inferior de los pines GPIO. Esto le permite desoldar cada pin por separado. No pude desoldar ninguno de los pines de tierra debido a la soldadura con un punto de fusión más alto, pero se pueden cortar más adelante más adelante.

Paso 5: crear circuitos para controles

Crear circuitos para controles
Crear circuitos para controles
Crear circuitos para controles
Crear circuitos para controles

Para este paso, necesitará secciones de la placa perf para soldar los botones. He descubierto que la placa perf con trazos de cobre en las líneas entre algunos de los orificios puede funcionar mejor que la placa perf con todos los orificios separados. Sin embargo, depende de usted lo que use;)

Habrá dos juegos de 4 botones en forma de diamante para el DPAD y para A / B / X / Y. Me olvidé de tomar fotos mías mientras lo montaba, pero no debería ser muy difícil averiguar el diseño. Mis botones estaban a punto de tocar dos de sus esquinas cada uno. Los botones Start / Select se pueden soldar a la placa de perforación individual, o puede conectar uno a la placa de perforación del botón A / B / X / Y. Los botones laterales también deben estar soldados a sus propias placas de perforación individuales.

En mi caso, los joysticks debían soldarse a sus placas de conexión incluidas. Probablemente ya hayas hecho esto si ese también fue tu caso:)

Los LED se soldaron a una sola tira de placa de perforación, al igual que el ADC.

¡Asegúrese de probar el cableado con un voltímetro, porque probar después de instalar todo en la carcasa puede ser complicado!

Es posible que desee esperar antes de soldar cualquier cable a la Raspberry Pi o entre las secciones de la placa de perforación hasta que conozca el diseño de la carcasa. No lo hice y me resultó difícil encajar todo más adelante (oops).

Paso 6: creación del caso

Creando el caso
Creando el caso
Creando el caso
Creando el caso
Creando el caso
Creando el caso
Creando el caso
Creando el caso

El caso es probablemente lo que más tardó en este proyecto. Lo más probable es que la carcasa que hagas difiera de la mía, por lo que no voy a dar las dimensiones exactas de nada (además, perdí el diseño de la carcasa).

El frente, la parte superior y la parte posterior están hechos de madera de 1/4 "(si recuerdo bien), y los lados y la parte inferior están hechos de madera de 1/2".

Comience midiendo la distancia entre los centros de sus botones, junto con el diámetro de cada uno en la parte más ancha del botón. Marque estas medidas en el interior de la caja donde las va a colocar. Usted (casi) siempre desea perforar desde el interior de la caja hacia el exterior, ya que la parte inferior de un orificio perforado se verá mejor. Es útil colocar una tabla de desecho detrás de su agujero mientras perfora, para que no rasgue la tabla.

Los orificios de los joysticks se perforaron primero al tamaño aproximado y luego se lijaron y se utilizó la herramienta Dremel en el interior para redondearlos para que los joysticks encajaran mejor.

El gran agujero para la pantalla táctil se midió desde la sección de metal en la parte posterior de la pantalla táctil. Comencé perforando un orificio cerca de un borde de donde iría la pantalla, quité un extremo de la sierra de calar, lo puse a través del orificio y lo volví a colocar para poder cortar el orificio. Se hizo un pequeño hueco en el orificio rectangular para que pasara el cable plano en la parte posterior de la pantalla (en la imagen de arriba). Usé la herramienta Dremel para afeitar una sección en el costado de este orificio, de modo que la pantalla táctil quedara al ras de la carcasa.

La parte superior de la carcasa se perforó de la misma manera, con orificios rectangulares para HDMI, conector A / V, puerto USB y puerto de carga. La Raspberry Pi se encuentra justo al lado de la parte superior de la carcasa, por lo que no se necesitan cables HDMI y A / V. Sin embargo, probablemente debería haber usado extensores, ya que era un ajuste algo ajustado.

La parte posterior de la caja tiene seis orificios para ventilación. Estos no tienen ningún tamaño o diseño específico, ¡así que podrías hacer un patrón genial con ellos! Me olvidé de perforar un agujero detrás de las luces indicadoras de carga del PowerBoost, así que tengo que sujetar el dispositivo correctamente para poder verlos a través de los agujeros de ventilación. ¡Es posible que desee perforar un pequeño orificio en la parte posterior de la caja para que pueda verlos!

Los lados y la parte inferior de la caja tienen muescas a lo largo de los bordes para que encajen y creen un bolsillo para que la parte delantera y trasera se asienten.

Una vez que tenga todos los agujeros perforados / cortados, puede ensamblar la caja. En el mío, todo menos la parte trasera estaba pegado, con la parte trasera atornillada para permitir un fácil acceso a los componentes.

Paso 7: acabado de la electrónica y ajuste de prueba

Terminando la electrónica y prueba de ajuste
Terminando la electrónica y prueba de ajuste
Terminando la electrónica y prueba de ajuste
Terminando la electrónica y prueba de ajuste

En este punto, debe terminar la electrónica soldando los cables restantes entre las secciones de la placa de perforación. Asegúrese de que sus cables tengan la longitud correcta para llegar a donde deben ir. Vaya siempre demasiado tiempo, ya que puede doblar los cables ligeramente, ¡pero no puede estirarlos!

Los cables se pueden soldar directamente a la Raspberry Pi, ¡solo asegúrese de verificar la ubicación antes de hacer algo permanente!

Descubrí que era útil crear una tira de placa de perforación que tuviera tierra y voltaje, de modo que cada sección de la placa de perforación pudiera conectarse a eso en lugar de diferentes pines en la Raspberry Pi u otras secciones.

¡Pruebe los orificios de ajuste y el espaciado para asegurarse de que su diseño funcione!

Paso 8: pintura

Para pintar mi carcasa, elegí una pintura negra semibrillante que combinaba muy bien con la pantalla táctil. Pegué con cinta adhesiva el interior de los agujeros para que no se manchara de pintura en las áreas que tendrían botones pegados a ellos. El interior no necesita ni debe pintarse, pero no se preocupe si entra un poco.

Paso 9: Instalación de componentes

Instalación de componentes
Instalación de componentes
Instalación de componentes
Instalación de componentes

Para instalar los botones, corté pequeños trozos de madera de 1/4 que se pegaron a las secciones del tablero perfilado. Luego se pegaron al interior de la caja en sus respectivos lugares con superpegamento, ya que el pegamento para madera hace que sea difícil de sujetar. en su lugar mientras se seca.

Para los joysticks, hice pequeños "separadores" con clavijas y pequeños trozos de madera, que luego se atornillaron y / o pegaron a los orificios de montaje en las tablas de ruptura. Usé superpegamento Gorilla, ya que se adhiere rápidamente y puede unir madera y tablero perfilado fácilmente. Se tuvo que recortar una placa de arranque de un joystick en un lado con una lijadora de banda para que se ajustara mejor.

La Raspberry Pi se instaló de manera similar a los joysticks, con separadores de madera unidos a algunos de los orificios de montaje.

El PowerBoost tenía un pequeño bloque de madera pegado a la parte inferior, que luego se pegó al costado de la caja.

Los LED simplemente se pegaron directamente a la carcasa. Descubrí que el superpegamento "quemó" la pintura si se manchaba por fuera al instalar los LED, así que debes tener cuidado al hacerlo.

Después de conectar la batería, se pegó con cinta adhesiva a la parte inferior de la caja con cinta de espuma de doble cara, que parece sujetarse bien.

Después de eso, puede probar que se enciende y continuar con el último paso.

Paso 10: Terminando

Terminando
Terminando

Ahora que el hardware está listo, puede terminar de configurar los controles en RetroPie. Primero, conecte un adaptador de corriente de 5v 2.5A, o cualquier adaptador de corriente oficial de Raspberry Pi, ya que es posible que su batería aún no esté cargada. Asegúrese de tener al menos 2.5A si su Pi está encendida mientras la está cargando, ya que la energía se divide entre el circuito de carga PowerBoost y la Raspberry Pi. Si lo está cargando mientras el Pi está apagado, cualquier cargador debería funcionar. Inicie su Raspberry Pi manteniendo presionado el botón de encendido durante unos 5 segundos. Descubrí que el mío no arrancó mientras estaba enchufado por alguna razón, por lo que es posible que deba cargar la batería hasta que se encienda la luz indicadora verde del PowerBoost (la batería está cargada) y luego desenchufarlo. Una vez que se inicie RetroPie, deberá volver a configurar el controlador, solo que esta vez será el controlador Python. Una vez que haya configurado sus controles, asegúrese de que todo funcione iniciando su juego favorito y probándolo.

Paso 11: Palabras finales y créditos

¡Felicidades! ¡Has completado tu propio dispositivo de juegos móvil Raspberry Pi! ¡Diviértete jugando sobre la marcha y mostrándoselo a tus amigos!

Algunas cosas que hubiera hecho de manera diferente son:

- Usar un Arduino para los controles en lugar de cablear directamente a la Raspberry Pi. Hubo algunas veces que quemé un pin GPIO, y (creo) el Arduino tiene más protección de pin que el Pi.

- La impresión 3D hubiera sido buena para un caso, pero desafortunadamente no tengo una (todavía)

- Planifiqué mejor el cableado. Me apresuré a entrar en este proyecto, luego me di cuenta un poco tarde de que debería haber hecho un poco más de planificación:)

- Orificios para LED de estado de carga. Los LED indicadores de carga en el PowerBoost indican si la batería está cargada o no, y olvidé perforar un agujero para que se puedan ver. Un buen lugar probablemente sería la parte posterior de la carcasa detrás del PowerBoost o en la parte superior, encima de los LED.

- Orificios de extracción del panel trasero. El panel trasero del mío es un poco ajustado, por lo que algunos agujeros que te permitirían sacarlo con el dedo podrían ser una buena idea.

Afortunadamente, pude terminar este proyecto y espero que ustedes también puedan o puedan aprender algo sobre carpintería, programación o soldadura.

Me gustaría agradecer al Sr. Fields por ayudarme en este proyecto. Amablemente donó su tiempo, taller y madera a este proyecto. Me ayudó a aprender más sobre la carpintería y pudo guiarme a través del proceso de elaboración del caso.

¡Gracias por leer este Instructable!

Recomendado: