Índice:

Console de jogo caseiro- "NinTIMdo RP": 7 etapas (com fotos)
Console de jogo caseiro- "NinTIMdo RP": 7 etapas (com fotos)

Vídeo: Console de jogo caseiro- "NinTIMdo RP": 7 etapas (com fotos)

Vídeo: Console de jogo caseiro-
Vídeo: BROKEN SWITCH 😭 2024, Novembro
Anonim
Image
Image
Console de jogo caseiro
Console de jogo caseiro

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

Imprimir Caso
Imprimir Caso
Imprimir caixa
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

Montagem da Caixa
Montagem da Caixa
Montagem da Caixa
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
Circuito
Circuito
Circuito
Circuito
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

Circuito Periférico
Circuito Periférico
Circuito Periférico
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

Programação
Programação
Programação
Programação
Programação
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

Dock opcional
Dock opcional
Dock opcional
Dock opcional
Dock opcional
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

Resultados
Resultados
Resultados
Resultados
Resultados
Resultados
Resultados
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: