Game Boy com Pi Zero - Parte 2

Nesta segunda parte do projeto fiz os testes de usar os botões com micro switch pela GPIO, saída de áudio também pela GPIO e imprimi o case.

O case ficou perfeito para a tela que tenho, encaixou com precisão milimetrica, imprimi também (em laranja) um apoio para a tela que servirá de apoio para a placa de controle da tela e será onde parte do case traseiro será parafusado.

Abaixo segue algumas fotos da impressão:







Botões do controle pela GPIO:

O teste para fazer o controle com botões ligados na GPIO funcionou perfeitamente. O programa da Adafruit é bem simples, depois de instalado ele simula teclas de um teclado em cada pino da GPIO. Os detalhes estão aqui:
https://learn.adafruit.com/pigrrl-2/software#installing-keypress-retrogame-support-4-9

Para instalar basta usar os comandos:

cd
curl https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/retrogame.sh >retrogame.sh
sudo chmod +x retrogame.sh
sudo bash retrogame.sh

O primeiro comando baixa o script, o segundo da permissão de execução no script e o terceiro executa. Após a execução basta escolher "1. PiGRRL 2 controls" e rebootar. Será criado um arquivo /boot/retrogame.cfg então basta edita-lo de acordo com algum teclado que já esteja configurado, ou configurar o teclado de acordo com o arquivo. O teclado é configurado no menu do Retropie em configure input. O arquivo retrogame.cfg segue o padrão:

LEFT       4  # Joypad left
RIGHT     19  # Joypad right
UP        16  # Joypad up
DOWN      26  # Joypad down
LEFTCTRL  14  # 'A' button
LEFTALT   15  # 'B' button
Z         20  # 'X' button
X         18  # 'Y' button
SPACE      5  # 'Select' button
ENTER      6  # 'Start' button
A         12  # Left shoulder button
S         13  # Right shoulder button

Onde a primeira coluna é a tecla do teclado, a segunda é a referencia da GPIO(não é o pino) e a terceira é o comentário de qual botão será acionado no jogo/menu seguindo o padrão SNES. Abaixo segue a numeração da GPIO onde seguindo o arquivo acima por exemplo, a tecla Z do teclado aciona a GPIO 20 e o botão "X". A GPIO 20 é o pino 38. A primeira coluna pode ser alterada livremente de acordo com a configuração que foi feita no teclado.



Áudio pela GPIO:

Para a saída de áudio, novamente segui a dica da Adafruit:
https://learn.adafruit.com/adding-basic-audio-ouput-to-raspberry-pi-zero/pi-zero-pwm-audio

Eu fiz por DTO, que era o mais simples e funcionou de primeira, bastando adicionar a linha:

dtoverlay=pwm-2chan,pin=18,func=2,pin2=13,func2=4

No arquivo de configuração:

/boot/config.txt

Os pinos de saída de áudio serão:

GPIO #13 (pin #33) como PWM1
GPIO #18 (pin #12) como PWM0

Lembrando que se for usar a GPIO para o controle como eu estou fazendo, estes pinos não podem ser os mesmos de algum do controle. Acima eu mostrei como alterar o do controle. A eletrônica usada é bem simples, é apenas um filtro e seus componentes não são críticos, podendo usar valores próximos. Os diodos de proteção do circuito não são necessários, a não ser que você pretenda ligar tensões na saída :) Este circuito não é amplificado, ele até alimenta um fone de ouvido bem por sua impedância ser alta, mas um auto falante por menor que seja ele não consegue. Minha ideia é usar um amplificador PAM8403 ou algo parecido para amplificar o auto falante que fica no canto inferior direito, além de deixar uma saída P2 para o fone de ouvido.





*Estou postando todo o processo de montagem no forum Retro Games Brasil também, qualquer duvida que surgir não deixe de postar lá:
https://retrogamesbrasil.net/showthread.php?tid=310

Comentários