Índice:

Dispositivo móvel para jogos Raspberry Pi: 11 etapas
Dispositivo móvel para jogos Raspberry Pi: 11 etapas

Vídeo: Dispositivo móvel para jogos Raspberry Pi: 11 etapas

Vídeo: Dispositivo móvel para jogos Raspberry Pi: 11 etapas
Vídeo: Como Transferir Jogos para a Raspberry Pi (Recalbox, Batocera, Retropie, Lakka, PES e Pipplware)|#10 2024, Junho
Anonim
Dispositivo móvel para jogos Raspberry Pi
Dispositivo móvel para jogos Raspberry Pi

Você sempre quis ser capaz de jogar videogames clássicos em trânsito, mas não tinha certeza de onde conseguir um dispositivo capaz de rodar jogos antigos ou eles eram muito caros? Então faça o seu!

Esta é uma documentação sobre a construção do meu dispositivo móvel para jogos Raspberry Pi, inspirado no Nintendo Switch. O custo é de pouco menos de US $ 200 e é capaz de rodar muitos jogos antigos com o uso do RetroPie. RetroPie tem mais de 30 emuladores integrados, então rodar jogos antigos é muito fácil, contanto que você tenha os ROMs!

Há muitas coisas que eu teria feito diferente neste projeto, e vou tentar compartilhar isso com você neste tutorial. Dessa forma, você pode aprender com meus erros sem ter que cometê-los você mesmo.

Esperançosamente, você pode usar as instruções neste tutorial para criar seu próprio dispositivo de jogo Raspberry Pi. Se você fizer isso, diga-me clicando em "Eu consegui!" no final do Instructable.

Além disso, se você gosta deste projeto, vote nele, pois está no concurso Game Life. Obrigado!

Etapa 1: Lista de peças

HABILIDADES

Você precisará ter habilidade com um ferro de soldar, conhecer o básico do Python e ter algum domínio de marcenaria.

A capacidade de destruir videogames também é obrigatória (ainda estou trabalhando nisso …)

PEÇAS

1 Framboesa Pi 2 ou 3 - $ 35

1x Raspberry Pi Official 7 Touchscreen - US $ 75

1 cartão Micro SD (mínimo de 8 GB, provavelmente você vai querer mais para seus ROMs!)

1 bateria de íon de lítio - 3,7 V 4400mAh - US $ 19,95 (https://www.adafruit.com/product/354)

2x joystick analógico de 2 eixos - US $ 5,95 (https://www.adafruit.com/product/512)

1 carregador PowerBoost 1000 - $ 19,95 (https://www.adafruit.com/product/2465)

1x MCP3008 - ADC de 8 canais e 10 bits - US $ 3,75 (https://www.adafruit.com/product/856)

1x Adafruit Trinket - $ 6,95 (https://www.adafruit.com/product/1500)

4 LEDs de 3 mm

Uma variedade de botões táteis - (redondos: https://www.adafruit.com/product/1009 e quadrados:

Uma variedade de fios, resistores e outros pequenos componentes

Quadro de desempenho

1/4 "de madeira e 1/2" de madeira para construir a caixa

FERRAMENTAS

Ferro de solda

Alicate de ponta fina

Decapador de Arame

Uma estação de solda / mão amiga também pode ser útil.

Furadeira

Serra de fita / serra de rolagem

Serra de mesa

Lixadeira de cinta

Ferramenta Dremel

PROGRAMAS

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

Todo o código e esquemas do Fritzing estão disponíveis neste arquivo Github

Você também precisará de outro computador para carregar RetroPie e ROMs em seu Raspberry Pi. Este computador precisará de Etcher.io, Win32DiskImager ou outro aplicativo que possa gravar RetroPie em um cartão SD, junto com o IDE Arduino mais recente. Se estiver executando o Windows, você precisará instalar o PuTTY (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) para fazer o SSH em seu Raspberry Pi.

Etapa 2: administre seus circuitos

Comecei fazendo um breadboard em meus circuitos, para ter certeza de que tudo funcionou conforme o planejado.

Incluí o esquema e o código no arquivo Github no início do tutorial; no entanto, fiz algumas pequenas alterações que esqueci de documentar, portanto, algumas coisas podem ter sido diferentes do que são agora. O código pode ser usado como um ponto de partida para seu projeto, mas eu recomendo altamente pelo menos lê-lo para entendê-lo e alterá-lo para atender às suas necessidades específicas ou torná-lo melhor.

Todos os controles são conectados a 3.3v, conectar-se a 5v pode danificar seu Raspberry Pi

Fiação do controlador

Existem 12 botões de controle no total. 4 para A / B / X / Y, 4 para DPAD, um para cada Iniciar e Selecionar e dois botões de ombro. Você pode conseguir 4 botões de ombro dependendo do espaço, mas a maioria dos jogos RetroPie que requerem botões de ombro requerem apenas dois (eu acho …).

Os botões são conectados de um lado a 3,3 V por meio de um resistor de 10k e, do mesmo lado, são conectados ao seu respectivo pino GPIO por meio de um resistor de 1k. O outro lado é conectado diretamente ao GND (terra). Se a lógica for diferente em seu circuito, certifique-se de que a lógica em seu código reflete isso! No código que forneci, pode funcionar de qualquer maneira, mas não me mencione isso;)

Os joysticks são conectados ao MCP3008 ADC (conversor analógico para digital). Existem 8 canais de um lado e a interface SPI do outro. Certifique-se de conectar as saídas dos joysticks ao lado correto do ADC! Os joysticks 'X, Y e SEL (botão de seleção) estão todos conectados ao ADC. O pino SEL não é analógico, mas para economizar nos pinos GPIO, eu os conectei ao ADC. Eu conectei um resistor dos pinos do SEL a 3,3 V, já que a saída é configurada para um valor flutuante quando não pressionada e, em seguida, em curto com o aterramento quando pressionada.

O ADC é conectado por meio de 4 pinos ao Raspberry Pi, mas alguns pinos não são necessários (até onde eu sei. Os pinos no esquema foram testados e funcionaram bem, junto com alguns outros). Como eu disse acima, certifique-se de que seu código reflita seu hardware!

Fiação de energia

Você precisará primeiro fazer o upload do código para o Trinket do Arduino IDE. Abra o arquivo TrinketRPi.ino no IDE do Arduino, selecione sua placa e porta no menu de ferramentas e clique no botão de upload.

A saída de 5v do PowerBoost é conectada diretamente ao pino GPIO do Raspberry Pi 5v e ao pino de 5v da tela sensível ao toque, e o aterramento do PowerBoost é conectado ao Pi e aos pinos de aterramento da tela sensível ao toque. O trinket é alimentado pelo pino GPIO 3.3v do Raspberry Pi.

O Trinket Adafruit é usado para controlar o poder. O pino 0 no Trinket está conectado ao GPIO 15 (não físico 15) no Raspberry Pi, e o pino 2 no Trinket está conectado ao pino EN no PowerBoost. Junto com isso, um botão liga / desliga é conectado entre BAT e EN no PowerBoost. Quando este botão é pressionado e mantido por cerca de 5 segundos (o tempo que leva para o Trinket iniciar), tudo é ligado. Quando liberado, o Trinket mantém o pino 2 HIGH (conectado ao pino EN no PowerBoost), mantendo a energia indo para o sistema.

O botão liga / desliga funciona apenas como uma chave liga / desliga, já que eu não tinha certeza de como fazer um circuito que o deixasse funcionar tanto como ligado quanto desligado. O Pi ainda pode ser facilmente desligado a partir do software!

Quando o Pi começa, o pino 15 é definido como HIGH (Controller.py) para notificar o Trinket que ele está ligado. Quando o Pi é desligado de alguma forma, o pino 15 fica BAIXO, fazendo com que o Trinket segure a energia por ~ 20 segundos e, em seguida, desligue a energia completamente.

Lamento dizer que fiz algumas alterações nisso, que agora estão enterradas em um recinto, e não tenho certeza do que fiz porque este projeto foi feito há algum tempo. Este layout deve funcionar, mas por favor teste-o antes de enfiá-lo em um local inacessível!

O pino BAT do PowerBoost é conectado ao ADC para ler o nível da bateria. Um resistor de 6,8k conecta o pino BAT ao canal ADC e outro resistor de 10k conecta o pino BAT ao GND. Isso permite que o ADC obtenha a tensão de saída da bateria e aproxime o nível da bateria. Ao carregar, a saída da bateria será de 5v, portanto, não há como saber o nível da bateria enquanto ela está carregando com esta configuração.

Se desejar, você pode conectar o VBUS no PowerBoost da mesma forma que o BAT; isso permite que você saiba se a bateria está carregando.

LEDs indicadores

Os quatro LEDs indicadores permitem que você veja itens como nível da bateria, volume ou brilho da tela. O código está configurado apenas para o nível da bateria no momento.

Cada LED de 3 mm é conectado a partir de um pino GPIO, por meio de um resistor de 100 ohm, e de volta ao aterramento. Meus LEDs são verdes, certifique-se de escolher os resistores apropriados para outros LEDs coloridos, pois eles têm requisitos de energia diferentes!

Isso é tudo para a fiação! Depois de testar sua fiação em uma placa de ensaio, você pode começar a fazer um circuito mais permanente.

Etapa 3: configurar o software

Configure o software
Configure o software

Para carregar RetroPie no cartão SD, você precisará de um aplicativo como Etcher.io (recomendado) ou Win32DiskImager, e o sistema operacional RetroPie do link no início.

Para usar o Etcher, primeiro insira o cartão micro SD em seu computador. Abra o Etcher e clique em "Selecionar imagem". Navegue até a pasta onde você baixou RetroPie, selecione-a e clique em "Abrir". Em seguida, clique em "Selecionar unidade" e selecione seu cartão SD na lista. Certifique-se de selecionar o cartão SD correto, pois ele irá apagá-lo! Clique em "Flash" e espere terminar. Ele irá ejetar automaticamente o cartão SD assim que terminar, por isso é seguro removê-lo do seu computador.

Se você não tiver um Raspberry Pi 3, precisará de um dongle WiFi. Um controlador de jogo é útil nesta etapa, mas apenas um teclado é necessário. Insira o cartão SD no Raspberry Pi, conecte-o a um monitor (a tela sensível ao toque funciona bem) e conecte a alimentação. Assim que o RetroPie for inicializado, você precisará configurar os controles. Selecione seu controlador / teclado e siga as instruções. Uma vez feito isso, navegue até as configurações de WiFi no menu RetroPie e configure seu WiFi.

Você também precisará habilitar o SSH. Volte ao menu RetroPie e selecione raspi-config na lista (acredito que é onde está). Em interfaces, selecione SSH. Ele perguntará se você deseja habilitar o SSH. Selecione Sim.

Você pode ter que reiniciar seu Pi agora. Depois de reiniciado, volte ao menu RetroPie. Acredito que haja um endereço IP ou opção de nome de host que informará o endereço IP do Raspberry Pi. Copie isso em um pedaço de papel ou apenas deixe este menu aberto por enquanto.

No seu computador, você precisará fazer o SSH no Raspberry Pi.

Se você estiver no Windows, baixe, instale e abra o PuTTY (link na lista de peças) e defina a caixa "Nome do host (ou endereço IP)" como o nome do host do Raspberry Pi e clique em "Abrir" para iniciar a sessão.

No Mac e Linux, você pode simplesmente abrir um terminal e digitar

$ ssh pi @ hostname

substituindo "hostname" pelo endereço IP que você obteve no Raspberry Pi. Observe que $ não é digitado no terminal, significa apenas que este é um novo prompt de terminal.

Em seguida, entre

$ nano /home/pi/Controller.py

e cole nele o conteúdo do arquivo Controller.py do Github. Controller.py é o script python que lida com todas as entradas de controle, como joysticks e botões.

Você precisará alterar os números dos pinos para corresponder aos do seu hardware.

Pressione CTRL-X ou CMD-X e depois Y para salvar o arquivo. Em seguida, entre

$ sudo nano /etc/rc.local

em seguida, insira esta linha no arquivo:

sudo python3 /home/pi/Controller.py &

em seguida, pressione CTRL-X (Windows) ou CMD-X (Mac) e, em seguida, Y (sem CTRL / CMD) para salvar. Isso configura o script Controller.py para iniciar na inicialização.

Em seguida, você pode redefinir a configuração do controlador, para que possa usar seus botões / joysticks em vez de um controlador de jogo USB.

$ sudo ~ / RetroPie-Setup / retropie_setup.sh

e vá para a configuração da estação de emulação via

Gerenciar pacotes -> Pacotes principais -> estação de emulação -> Configuração ou Configuração / Ferramentas -> estação de emulação e escolher a opção de Limpar / Redefinir a configuração de entrada da estação de emulação

Na próxima vez que você reiniciar, seu controlador USB não será mais configurado, mas você poderá configurar seus controles personalizados nesse ponto.

Neste ponto, você pode carregar seus ROMs no Raspberry Pi. Existem muitas maneiras diferentes de fazer isso, e achei esses vídeos os mais úteis:

Através do seu navegador - Esta opção também oferece acesso mais fácil a algumas outras coisas na instalação do RetroPie, uma vez que fornece uma GUI baseada na web para muitas das tarefas que normalmente são feitas através do terminal ou da GUI baseada em texto do RetroPie.

Pela sua rede - Esta opção permite transferir ROMs de dentro do navegador de arquivos do seu computador, tornando mais fácil navegar até os seus arquivos. Também permite explorar e editar algumas pastas compartilhadas no RetroPie, como BIOS, telas iniciais e arquivos de configuração.

Usar as duas opções permitirá mais controle da instalação do RetroPie, mas apenas uma é necessária para transferir ROMs. Escolha aquele que melhor se adapta a você.

Etapa 4: prepare o Raspberry Pi e a tela sensível ao toque

Para este projeto, o espaço seria mínimo, então comecei removendo componentes desnecessários do Raspberry Pi.

Em primeiro lugar, foram as portas USB e Ethernet. A solda pode ser difícil de remover, pois tem uma alta temperatura de fusão. Cortei quase todas as portas com um recorte de estanho e tirei a solda das partes restantes. Tenha cuidado ao remover essas portas, pois alguns componentes menores podem ser facilmente removidos do Raspberry Pi (falando por experiência própria).

Uma única porta USB é conectada (não diretamente) aos pinos de solda USB recentemente expostos do Raspberry Pi. Isso permite que ele seja conectado na lateral do gabinete.

A porta de saída USB foi removida da tela sensível ao toque da mesma maneira.

Em seguida, tirei a solda dos pinos GPIO. Descobri que a maneira mais fácil de fazer isso era primeiro cortando a parte de plástico preto ao redor da parte inferior dos pinos GPIO. Isso permite dessoldar cada pino separadamente. Não consegui retirar a solda de nenhum dos pinos de aterramento devido ao ponto de fusão mais alto da solda, mas eles podem ser cortados mais curtos posteriormente.

Etapa 5: criar circuitos para controles

Criar circuitos para controles
Criar circuitos para controles
Criar circuitos para controles
Criar circuitos para controles

Para esta etapa, você precisará de seções de placa de perfuração para soldar os botões. Eu descobri que o perfboard com traços de cobre nas linhas entre alguns dos orifícios pode funcionar melhor do que o perfboard com todos os orifícios separados. No entanto, depende de você o que usar;)

Haverá dois conjuntos de 4 botões em forma de diamante para o DPAD e para A / B / X / Y. Esqueci de tirar fotos minhas durante a montagem, mas não deve ser muito difícil descobrir o layout. Meus botões estavam quase tocando em dois de seus cantos cada. Os botões Iniciar / Selecionar podem ser soldados a uma placa de desempenho individual ou você pode conectar um à placa de desempenho do botão A / B / X / Y. Os botões de ombro também devem ser soldados às suas próprias placas de desempenho individuais.

Os joysticks no meu caso precisavam ser soldados às placas de fuga incluídas. Você provavelmente já fez isso se esse fosse o seu caso também:)

Os LEDs foram soldados a uma única tira de placa de desempenho, assim como o ADC.

Certifique-se de testar a fiação com um voltímetro, porque testar depois de instalar tudo no gabinete pode ser complicado!

Você pode querer esperar antes de soldar quaisquer fios ao Raspberry Pi ou entre as seções da placa de perf até saber o layout do seu revestimento. Não o fiz e ficou difícil encaixar tudo mais tarde (opa).

Etapa 6: Criando o Caso

Criando o Caso
Criando o Caso
Criando o Caso
Criando o Caso
Criando o Caso
Criando o Caso
Criando o Caso
Criando o Caso

O caso é provavelmente o que demorou mais neste projeto. O case que você criou provavelmente será diferente do meu, então não vou dar as dimensões exatas de nada (além disso, perdi o layout do case).

A frente, o topo e as costas são feitos de madeira de 1/4 "(se bem me lembro), e as laterais e o fundo são feitos de madeira de 1/2".

Comece medindo a distância entre os centros de seus botões, junto com o diâmetro de cada um na parte mais larga do botão. Marque essas medidas no interior da caixa onde irá colocá-las. Você (quase) sempre deseja perfurar de dentro para fora da caixa, pois o fundo de um orifício perfurado ficará mais bonito. Isso ajuda a colocar uma tábua de rascunho atrás do orifício durante a perfuração, para que não rasgue a tábua.

Os orifícios dos joysticks foram primeiro perfurados até o tamanho aproximado e, em seguida, lixados e usados a ferramenta Dremel no interior para arredondá-los para que os joysticks se encaixassem melhor.

O grande orifício para a tela sensível ao toque foi medido a partir da seção de metal na parte traseira da tela. Comecei perfurando um orifício perto de uma borda de onde a tela iria, removi uma extremidade da serra em espiral, coloquei-a no orifício e recoloquei para poder cortar o orifício. Um pequeno recuo foi feito no orifício retangular para a passagem do cabo plano na parte de trás da tela (foto acima). Usei a ferramenta Dremel para raspar uma seção na lateral desse orifício, de modo que a tela sensível ao toque ficasse rente à caixa.

A parte superior do case foi furada da mesma forma, com orifícios retangulares para HDMI, conector A / V, porta USB e porta de carregamento. O Raspberry Pi fica bem próximo à parte superior do gabinete, de modo que os cabos HDMI e A / V não são necessários. Eu provavelmente deveria ter usado extensores, pois era um ajuste um pouco apertado.

A parte traseira do gabinete tem seis orifícios para fins de ventilação. Eles não têm nenhum tamanho ou layout específico, então você pode fazer um padrão legal com eles! Esqueci de fazer um buraco atrás das luzes indicadoras de carga do PowerBoost, então tenho que segurar o dispositivo corretamente para que possa vê-los através dos orifícios de ventilação. Você pode fazer um pequeno orifício na parte de trás da caixa para poder vê-los!

As laterais e a parte inferior do case são chanfradas ao longo das bordas para que se encaixem e criam um bolso para a frente e a parte de trás se encaixarem.

Depois de fazer todos os furos / cortar, você pode montar a caixa. No meu, tudo menos a parte traseira era colada, com a parte traseira aparafusada para permitir fácil acesso aos componentes.

Etapa 7: Concluindo a eletrônica e a adaptação de teste

Finalizando a Eletrônica e Teste de adaptação
Finalizando a Eletrônica e Teste de adaptação
Finalizando a Eletrônica e Teste de adaptação
Finalizando a Eletrônica e Teste de adaptação

Neste ponto, você deve terminar a eletrônica soldando os fios restantes entre as seções da placa de desempenho. Certifique-se de que os fios tenham o comprimento correto para chegar aonde precisam. Sempre use um pouco mais de tempo, pois você pode dobrar os fios um pouco, mas não pode esticá-los!

Os fios podem ser soldados diretamente ao Raspberry Pi, apenas certifique-se de verificar o posicionamento antes de fazer algo permanente!

Descobri que foi útil criar uma tira do perf board que tivesse aterramento e voltagem, de modo que cada seção do perf board pudesse se conectar a ela, em vez de pinos diferentes no Raspberry Pi ou em outras seções.

Teste os orifícios de ajuste e o espaçamento para garantir que seu layout funcione!

Etapa 8: Pintura

Para pintar meu case, escolhi uma tinta preta semibrilhante que combinou muito bem com a tela sensível ao toque. Eu colei a parte interna dos buracos para não cair tinta nas áreas que teriam botões colados neles. O interior não precisa e não deve ser pintado, mas não se preocupe se entrar um pouco.

Etapa 9: Instalação de componentes

Instalando Componentes
Instalando Componentes
Instalando Componentes
Instalando Componentes

Para instalar os botões, cortei pequenos pedaços de madeira de 1/4 que foram colados nas seções do perfboard. Em seguida, foram colados no interior da caixa nos seus respectivos locais com super cola, pois a cola de madeira dificulta a fixação. no local enquanto seca.

Para os joysticks, fiz pequenos "contrapesos" usando buchas e pequenos pedaços de madeira, que foram aparafusados e / ou colados nos orifícios de montagem nas placas de quebra. Usei Gorilla supercola, pois ela cola rapidamente e é capaz de unir a madeira e o perfboard com facilidade. Uma placa de desagregação do joystick teve que ser aparada em um lado com uma lixadeira de cinta para que se encaixasse melhor.

O Raspberry Pi foi instalado de maneira semelhante aos joysticks, com suportes de madeira presos a alguns dos orifícios de montagem.

O PowerBoost tinha um pequeno bloco de madeira colado na parte inferior, que era então colado na lateral da caixa.

Os LEDs foram simplesmente colados diretamente no gabinete. Descobri que a supercola "queimava" a tinta se ficasse do lado de fora na hora de instalar os LEDs, então você vai querer ter cuidado ao fazer isso.

Depois de conectar a bateria, ela foi colada na parte inferior do case usando fita de espuma de dupla face, que parece segurar bem.

Depois disso, você pode testar se ele liga e continuar para a última etapa.

Etapa 10: Concluindo

Terminando
Terminando

Agora que o hardware está pronto, você pode terminar de configurar os controles no RetroPie. Primeiro, conecte um adaptador de alimentação 5v 2,5A ou qualquer adaptador de alimentação Raspberry Pi oficial, pois a bateria pode não estar carregada ainda. Certifique-se de ter pelo menos 2,5 A se o seu Pi estiver ligado enquanto você o carrega, já que a energia é dividida entre o circuito de carregamento PowerBoost e o Raspberry Pi. Se você estiver carregando enquanto o Pi está desligado, qualquer carregador deve funcionar. Inicialize seu Raspberry Pi mantendo o botão liga / desliga pressionado por cerca de 5 segundos. Descobri que o meu não inicializou enquanto conectado por algum motivo, então você pode ter que carregar a bateria até que a luz indicadora verde no PowerBoost acenda (a bateria está carregada) e, em seguida, desconecte-o. Assim que o RetroPie iniciar, você precisará configurar novamente o controlador, mas desta vez será o controlador Python. Depois de configurar seus controles, certifique-se de que tudo funcione, iniciando seu jogo favorito e testando-o!

Etapa 11: Palavras Finais e Créditos

Parabéns! Você completou seu próprio dispositivo móvel para jogos Raspberry Pi! Divirta-se jogando em qualquer lugar e exibindo-o aos seus amigos!

Algumas coisas que eu teria feito de forma diferente são:

- Usar um Arduino para controles em vez de conectar a fiação diretamente ao Raspberry Pi. Houve algumas vezes que queimei um pino GPIO e (acredito) o Arduino tem mais proteção de pino do que o Pi.

- A impressão 3D teria sido boa para um caso, mas infelizmente não tenho uma (ainda)

- Planejei melhor a fiação. Eu meio que me apressei neste projeto, então descobri um pouco tarde que deveria ter feito mais planejamento:)

- Orifícios para LEDs de status de carregamento. Os LEDs indicadores de carga no PowerBoost dizem se a bateria está carregada ou não, e esqueci de fazer um furo para que eles possam ser vistos. Um bom lugar provavelmente seria a parte de trás do gabinete atrás do PowerBoost, ou acima dos LEDs.

- Orifícios de remoção do painel traseiro. O painel traseiro do meu é meio apertado, então alguns orifícios que permitiriam que você puxasse com o dedo podem ser uma boa ideia.

Felizmente, consegui terminar este projeto, e espero que você também tenha concluído ou seja capaz de aprender algo sobre marcenaria, programação ou soldagem.

Gostaria de agradecer ao Sr. Fields por me ajudar neste projeto. Ele gentilmente doou seu tempo, oficina e madeira para este projeto. Ele me ajudou a aprender mais sobre marcenaria e foi capaz de me orientar durante o processo de elaboração do caso.

Obrigado por ler este Instructable!

Recomendado: