Índice:
- Etapa 1: Imprimir caixa
- Etapa 2: Montagem da Caixa
- Etapa 3: Circuito
- Etapa 4: Circuito Periférico
- Etapa 5: Programação
- Etapa 6: Dock opcional
- Etapa 7: Resultados
Vídeo: Console de jogo caseiro- "NinTIMdo RP": 7 etapas (com fotos)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Link para a página da web com explicações mais detalhadas, lista de peças e arquivos
timlindquist.me
Este projeto era para criar um sistema de jogo portátil que também pudesse funcionar como um computador portátil. O objetivo era criar um console que fosse funcional e também esteticamente agradável.
Lista de peças:
docs.google.com/spreadsheets/d/1Ay6-aW4nAt…
Etapa 1: Imprimir caixa
Para imprimir o dispositivo, baixe meus arquivos de modelo 3D e envie-os para sua impressora 3D. A impressora que usei foi uma Prusa i3 Mk2 com filamento de plástico preto. A qualidade de impressão foi considerada melhor em uma configuração de resolução média. Certifique-se de adicionar material estrutural embaixo do dispositivo (os apoios para as mãos ficarão ruins sem ele). As costas foram impressas com o verso alinhado com o prato. As peças da frente foram impressas com a face frontal alinhada com o prato. Se eu fosse imprimir outro caso, gostaria de usar uma nova cor, como roxo atômico para mostrar o interior. Se você for como eu e tiver uma mesa de impressão de 8 polegadas para trabalhar, você precisará imprimir a versão de 4 peças, será montado após a impressão. No entanto, se sua cama for grande o suficiente para funcionar como uma única peça, imprima as placas frontal e traseira como uma única unidade e evite a dor de juntá-las.
Arquivos de modelo:
github.com/timlindquist/Nintimdo-RP_3D_mod…
Etapa 2: Montagem da Caixa
Para montar, primeiro junte as peças dianteiras direita e esquerda inserindo um pino de metal nos orifícios de alinhamento. Em seguida, coloque super cola nas juntas e prenda a metade. Repita o processo para os itens inferiores direito e esquerdo. Depois disso, você deve ficar com a metade da frente e a de trás montadas. Agora é hora de anexar os 5 espaçadores de metal para unir as placas frontal e traseira. A maneira mais fácil de fazer isso é primeiro obter os afastamentos do comprimento correto. 13 mm de profundidade nas costas 5 mm de profundidade na frente. Portanto, faça os afastamentos de 18 mm ou um pouco menos. Eu fiz isso colocando um impasse mais longo em um torno de aperto e usando um moedor para diminuir o tamanho. Certifique-se de moer apenas um lado, pois você precisará dos fios do outro. Depois de obter o comprimento correto, cole todo o moedor das laterais na face frontal usando cola comum de gorila e deixe secar. Certifique-se de que todos estão em pé durante este processo. Depois de seco, raspe a cola excelente que formou espuma para que as faces possam ficar niveladas quando colocadas juntas. Agora veja se você pode inserir a placa traseira nos espaçadores para unir com a frente. Aparafuse através da placa traseira para prender. Cole a tela alinhando a moldura com o tubo de duelo Gorilla Epoxy. Coloquei muita coisa quando fiz isso e transbordou na tela. Felizmente, isso passa! Prenda e deixe secar por um tempo, em seguida, forre a parte de trás com cola Gorilla regular.
** Nota: Tente não colocar cola CA fina (super cola) no exterior, pois ela "queima" o PLA e mancha de branco.
Etapa 3: Circuito
Circuito de botão:
Capturar todos os pressionamentos de botão é feito usando um Teensy ++ 2.0. Pinos digitais no microcontrolador são usados para quaisquer botões binários de pressão. Os pinos analógicos são usados para botões que possuem vários estados, como joysticks. Para conectar os pinos digitais, conecte simplesmente o pino digital ao switch, conecte a outra extremidade do switch ao aterramento. Quando o botão é pressionado, ele puxa o pino de alta tensão para baixo para que o controlador detecte. Você não precisa se preocupar com os resistores, pois eles estão incluídos na placa Teensy. Para conectar os pinos analógicos, você precisará polarizar seu dispositivo analógico com uma tensão alta e baixa e ler um nível de tensão nessa faixa no pino analógico. Para os joysticks, existem 3 entradas para cada eixo. Forneça 5 V a um dos pinos, GND a outro e a linha de leitura de tensão ao último. Certifique-se de conectá-lo corretamente ou não funcionará (use um multímetro para ver se a tensão de saída muda no pino correto). Essencialmente, o joystick é um resistor variável que funciona como um divisor de tensão. A tensão de saída no pino lido variará entre 0 e 5 V dependendo da posição dos joysticks. (Normalmente a polarização 5V e GND estão nos pinos de entrada externos do joystick e o do meio será o pino de leitura de tensão variável. Se 5V e GND forem diferentes do meu, seus controles serão invertidos, isso pode ser corrigido no software ou religando)
Circuito de energia:
A bateria de três células do Anker fornece energia para todo o dispositivo. Para ligar / desligar o dispositivo, a saída do regulador da bateria é conectada a um interruptor e, em seguida, ao Raspberry Pi. Como o dispositivo pode consumir até 2A, uma chave seletora simples de 250mA não pode atender ao requisito de corrente. Em vez disso, você pode usar a chave para controlar a tensão da porta em um transistor PMOS para servir ao propósito de uma chave. Conecte os 5V da bateria à fonte de um transistor PMOS e ao switch. A outra extremidade da chave é conectada à porta do transistor PMOS e a um resistor de 10K conectado ao GND (quando a chave está aberta para evitar que a porta flutue, ela o conecta ao GND por meio do resistor). O Drain é conectado à entrada de 5 V no Raspberry Pi junto com o solo. Para carregar a bateria, simplesmente conecte a placa de breakout fêmea micro USB aos pinos de carregamento corretos (estende a entrada para a caixa). Escondi essa chave na entrada de ar na parte de trás do dispositivo. Originalmente, eu planejava fazer com que o botão da bateria ligasse e desligasse o dispositivo segurando-o por um determinado período; infelizmente, fiquei sem espaço e tive que fazer uma implementação simples. Este design alternativo é mostrado no esquema abaixo.
Circuito de áudio:
Para o áudio, eu queria que o som tocasse naturalmente nos alto-falantes (se não fosse silenciado) e redirecionasse para os fones de ouvido, se eles estivessem conectados. Felizmente, muitos dos conectores de fone de ouvido fêmeas de 3,5 mm são mecanicamente capazes de fazer isso. Quando um plugue macho é inserido, os condutores do alto-falante dobram e criam um circuito aberto, evitando que o sinal chegue aos alto-falantes. Como os alto-falantes têm uma carga maior, o sinal de áudio deve ser amplificado para ser ouvido. Isso é feito usando um amplificador estéreo classe D que encontrei no adafruit. Simplesmente polarize o amplificador com 5V e GND. Não temos entradas de áudio diferencial, portanto, conecte os alto-falantes esquerdo e direito aos terminais positivos e conecte os terminais negativos ao GND. O ganho é ajustado usando o jumper. Eu defino o ganho para o máximo e estou mudando a amplitude dos sinais de áudio de saída via software para ajustar o volume. Para silenciar o dispositivo, tenho um transistor NMOS controlando a polarização de 5V. Esta porta de transistores NMOS é controlada pelo Teensy. Um problema que tenho é um ruído constante de alta frequência presente nos alto-falantes externos. Vou analisar isso em um osciloscópio, pode estar vindo da polarização de 5V por causa de alguma troca de regulador na bateria ou as linhas podem estar captando RF em algum lugar. Além disso, certifique-se de torcer as linhas direita e esquerda para minimizar a interferência eletromagnética (EMI).
Etapa 4: Circuito Periférico
Este circuito inclui montagens USB e indicador LED. Peça o PCB em meu link e corte ao meio ao longo da linha pontilhada usando serra de fita. No lado USB, todos soldam as duas portas USB fêmeas na placa. No lado do LED, solde os 5 LEDs e os 5 resistores em série. 5V, GND, D +, D-pode ser estendido usando fios de USB desoldered do Raspberry PI para o PCB. O LED PCB pode ser colocado de forma que a luz brilhe através dos orifícios na parte superior do gabinete. Conecte 5 saídas PWM do Teensy aos LEDs junto com o GND. Variando o ciclo de trabalho, você pode alterar o brilho dos LEDs.
Compre PCB:
Etapa 5: Programação
Teensy:
Se você conectou exatamente o mesmo que eu, você pode apenas usar o código que forneci no Github. No entanto, eu recomendaria escrevê-lo você mesmo, pois você entenderá melhor o sistema e será capaz de manipulá-lo e personalizá-lo facilmente de acordo com sua preferência. A programação é muito simples, na verdade se resume a escrever um monte de instruções if para verificar se seus botões foram pressionados. Um conjunto de instruções útil do PJRC. Você pode usar o IDE do Arduino para escrever seu código e também fazer o upload para o Teensy.
CÓDIGO:
github.com/timlindquist/Nintimdo-RP
Botões digitais: Este exemplo mostra-me verificando se o pino digital 20 foi pressionado e emitindo o comando de joystick serial correto. Você pode escolher qualquer 1 a 32 para o botão, já que o Retropie faz uma configuração de mapeamento do controlador no início de qualquer maneira. Joystick.button (botões: 1-32, pressionado = 1 liberado = 0)
Botões analógicos:
No exemplo, o joystick vertical direito é conectado ao pino analógico 41. A função analogRead (pino) recebe um nível de tensão entre 0 e 5 V e retorna um valor de 0 a 1023. Uma posição central ideal corresponderia a 2,5 V ou 512, no entanto, este não foi o caso do meu stick analógico, portanto, foi necessário fazer um ajuste. Isso foi feito por meio de um remapeamento mostrado abaixo. Depois disso, precisei verificar se os limites não ultrapassavam 0 a 1023. Por último, o comando joystick analógico foi enviado via serial para ser o botão analógico Z usando Joystick. Z (valor 0 a 1023).
Etapa 6: Dock opcional
Doca:
Esta construção não estaria completa sem um dock para carregar e fácil conexão à TV, então projetei um nas fotos abaixo. Os modelos 3D estão disponíveis com os outros em meu pacote Github.
Modelos:
github.com/timlindquist/Nintimdo-RP_3D_mod…
Etapa 7: Resultados
Em retrospectiva, gostaria de ter feito a porta de saída HDMI com um PCB em vez de um suporte de parede fêmea pré-comprado. Isso teria economizado muito espaço. Na verdade, tive que dobrar o cabo em uma espiral para evitar cortá-lo e soldar novamente os 19 fios. Estou indeciso sobre ir com uma bateria menor porque a altura da célula era meu fator limitante na espessura de todo o dispositivo. No entanto, reduzir isso teria um impacto negativo na vida útil da bateria.
No total, isso me custou cerca de US $ 350 para fazer. Isso não inclui o pi de framboesa que quebrei tentando diminuir o tamanho … Ainda feliz por ter experimentado. Foi um projeto divertido de verão para ver se eu poderia torná-lo o mais compacto possível e, ao mesmo tempo, encaixar muitos recursos interessantes em seu interior.
Recomendado:
Jogo eletrônico do jogo da velha em uma caixa de madeira: 5 etapas
Jogo eletrônico do jogo da velha em uma caixa de madeira: Olá, eu apresento o jogo engraçado do jogo da velha em uma nova edição. Pesquisei na web por projetos semelhantes, mas a ideia aqui é única. ESPERO:) Então, vamos começar agora
Jogo Aruduino LED Jogo de dois jogadores com cliques rápidos: 8 etapas
Aruduino LED Game Jogo de dois jogadores com cliques rápidos: Este projeto é inspirado em @HassonAlkeim. Se você estiver disposto a dar uma olhada profunda, aqui está um link que você pode verificar https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. Este jogo é uma versão melhorada do Alkeim. É um
Controlador de jogo DIY baseado em Arduino - Controlador de jogo Arduino PS2 - Jogando Tekken com gamepad Arduino DIY: 7 etapas
Controlador de jogo DIY baseado em Arduino | Controlador de jogo Arduino PS2 | Jogando Tekken com DIY Arduino Gamepad: Olá pessoal, jogar é sempre divertido, mas jogar com seu próprio controlador de jogo DIY personalizado é mais divertido. Portanto, faremos um controlador de jogo usando arduino pro micro neste instructables
Controlador de jogo Arduino com luzes que respondem ao seu jogo Unity :: 24 etapas
Controlador de jogo Arduino com luzes que respondem ao seu jogo Unity :: Primeiro, escrevi isso em palavras. Esta é a primeira vez que uso instructable so sempre que digo: escreva código assim, saiba que estou me referindo à imagem no topo dessa etapa. Neste projeto eu uso 2 arduino ’ s para executar 2 bits separados
Console portátil caseiro: 12 etapas (com imagens)
Console portátil caseiro: Bem-vindo ao meu guia passo a passo sobre como criar seu próprio GameBoy DIY com um Raspberry Pi 3 e o software de emulação Retropie. Antes de iniciar este projeto, eu não tinha nenhuma experiência com raspberry pi, retropie, solda, impressão 3D ou eletr