Arcade Retro c/ Raspberry Pi (Parte 2): Energia, Joystick, LCD e Áudio

Na parte 2 desta nossa trilogia do Arcade Retro, iremos aprender como conectar as peças do arcade para operar através de um gabinete, como: fontes de alimentação, joysticks, botões, monitor LCD e a parte de áudio.

Se você está chegando por este post, pode ser interessante ver como instalamos e configuramos a plataforma de emulação RetroPie no Raspberry 3 no nosso post passado:

Mini Arcade Retro com gabinete e Raspberry Pi (Parte 1)

Caso você já tenha um Raspberry Pi (2 ou 3) com o RetroPie instalado e esteja querendo saber como conectar estas partes para montar seu próprio gabinete Arcade, então este é o seu começo.

O que faremos neste Tutorial ‘Parte 2’

  1. Ligar uma fonte AC com 2 saídas: 5V e 12V no Raspberry Pi e LCD
  2. Conectar uma tela LCD e Alto-Falantes via placa controladora HDMI ao Raspberry Pi
  3. Conectar controles Arcade no Raspberry Pi via GPIO e placas controladoras USB

 

O que você irá precisar para a ‘Parte 2’

 


#1 – Energizando o Arcade

O Raspberry Pi e o monitor LCD necessitam de tensões diferentes para operarem, portanto fiz uso de uma fonte regulada de pequeno tamanho que tivessem como saídas tensões distintas para cada um. Segue especificações, caso não encontrem exatamente a mesma no mercado:

ENERGIA
Corrente de Saída 2.5 / 2 A
Entrada AC 110-240V
Saída DC 12V / DC 5V
FABRICANTE
Modelo T40-12-5
DIMENSÕES
Comprimento 86 mm
Altura 39 mm
Largura 90 mm
Peso 215 g
Dados do Produto na Fabricante FastTech
SKU 1270309

Iremos acoplar a fonte de alimentação um plug para a conectarmos numa tomada, uma chave liga-desliga (com identificação luminosa) e os fios para alimentarmos o monitor LCD e o Raspberry Pi. Ao final teremos este resultado:

img_2123
Fonte de Alimentação completa

 

Soldamos os fios no soquete e através da chave liga-desliga até a fonte de acordo com o esquemático e foto abaixo:

conexoesac
Conexões AC: da Tomada até a Fonte de Alimentação
img_2121
Resultado real da conexão Tomada e Chave Liga-Desliga

Após realizarmos as conexões AC da ‘tomada’ até os fios que vão para fonte, devemos conectar os terminais da fonte também aos conectores DC que irão alimentar tanto a placa controladora e monitor LCD quanto o Raspberry Pi.

Obs: Estou montando aqui para fazer uma super verificação se tudo está ok. Algumas partes (como a ligação da tomada com a chave) precisaremos desfazer no momento de montar no nosso gabinete. Dito isso, podemos seguir.

 

conexoesdc
Conexões da Fonte de Alimentação com 2 saídas: 5Vdc e 12 Vdc

Os terminais que utilizei para conectar a placa controladora e o Raspberry Pi eu removi de fontes antigas.

Atenção especial para a polaridade (positivo + e negativo -) para a ligação da placa e Raspberry Pi. Certifique-se que conectou adequadamente, pois a inversão de polaridade pode queimar os equipamentos.

Para o Raspberry Pi temos o conector Micro USB:

  • +5Vdc: fio vermelho (positivo)
  • – V: fio preto: negativo, terra ou ground

Para a Placa Controladora Universal LCD que estamos utilizando

  • +12Vdc: positivo, parte interna do conector, normalmente associada ao sinal (+)
  • -V: negativo, terra ou ground, normalmente associado ao sinal (-)

 


#2 – Monitor LCD e Placa Controladora

Para ligarmos o monitor LCD para nosso gabinete arcade iremos precisar não apenas da ‘tela’ LCD propriamente dita como também de uma placa controladora, esta responsável por captar os sinais de vídeo de HDMI (ou sinal composto no caso de Raspberry Pis mais antigos) e codificá-los para a tela de LCD.

Existem inúmeros monitores de LCD e inúmeras placas controladores cada um com seu preço e qualidade. Devemos observar sempre se determinada tela é compatível a placa controladora. Basicamente esta compatibilidade dos LCDs está no número de pinos do seu cabo conector e o tipo de conector, também devemos observar qual o tipo de tela temos, tecnologias como VGA, Vídeo Composto, Plasma, LED ou TFT são alguns exemplos de tipos de tela que necessitam de placas controladoras diferentes.

A maneira mais segura é comprar as placas controladoras ‘universais’ como esta abaixo:

img_2124
Placa controladora NT68676  ‘universal’ comumente encontrada no mercado

Estas placas possuem diferentes tipos de conexão para diferentes tipos de tela LCD, saída para antigas telas TFT (que necessitam de iluminação adicional através de inversores – chamados de ‘backlights’), entradas DVI, saída VGA e inclusive uma saída de ‘alto-falantes’ com mini amplificador de 1W embutido.

Para saber mais sobre telas e controladoras sugiro o seguinte site https://sites.google.com/site/lcd4hobby/home

Na prática, minha sugestão: compre a tela de LCD em conjunto com a placa controladora respectiva de acordo com a orientação do fornecedor, pois assim ele (o fornecedor) se responsabilizará pelo funcionamento e compatibilidade de ambos.

A placa acima NT68676 é completamente compatível com nossa tela LCD B101EW05, aliás comprei ambos em conjunto para não ter erro. Este foi o kit adquirido aqui.

frete-grtis-hdmi-dvi-vga-lcd-b101ew05-controlador-kit-10-1-polegada-1280x800-conduziu-o-painel
Kit Completo Placa Controladora e LCD

Encontrei placas menores (com menos recursos, como por exemplo, sem a entrada DVI – inútil para mim no caso), porém muitas vezes o preço não justifica, então vale a pesquisa!

A especificação da placa controladora NT68676:

m-nt68676-2a-4a

E dimensões para furos:

htb1ngrhhfxxxxazxvxxq6xxfxxxk

Os cabos já vem plugados na placa (para evitar confusões) restando apenas a conexão ao LCD. Destacando os detalhes de cada conector da placa para o LCD temos:

m-nt68676-lcd-led-controller-driver-board-hdmi-vga-dvi-audio-1366-768-for-lp156wh2-tl-ea-b156xw04-v
Conexões da Placa Controladora e LCD

No caso a minha tela o conector é no canto inferior direito.

img_2126
Ligação Placa Controlador e LCD 10.1′ conectadas

Adicionalmente, esta placa controladora possui 2 saídas pré-amplificadas prontas para receber pequenos alto-falantes. Para economizar alguns circuitos e ligações, levando em consideração o tamanho deste arcade, vou utilizá-las como saída de áudio ao invés de construir um pequeno amplificador.

A ligação de cada alto-falante pode ser feita diretamente no conector.

img_2127
Falantes de 2W ligados diretamente na saída de ‘speaker’ da placa

Observe que o tamanho do conector é bem pequeno. A polaridade (positivo e negativo) não importa, porém precisamos mantê-los ambos conectados na mesma sequência, isto é:

  • 1a posição do conector: fio (+) vermelho do falante #01
  • 2a posição do conector: fio (-) preto do falante #01
  • 3a posição do conector: fio (+) vermelho (no meu caso é branco) do falante #02
  • 4a posição do conector: fio (-) preto do falante #02

 

img_2128
Detalhe da conexão dos falantes na placa controladora de LCD

Ligados os cabos da tela LCD, devemos ligar a entrada HDMI da placa controladora LCD na saída HDMI do Raspberry Pi com nosso cabo HDMI.

img_2134
Conexão HDMI Raspberry Pi e Placa Controladora LCD

Obs: observe que acima conectei a saída de áudio P2 do meu Raspberry Pi na entrada de aúdio da placa controlada, pois o aúdio que o RetroPie estava enviando através da HDMI continha muito ruído (devido ao tráfego de vídeo ocorrer junto ao de vídeo e talvez o cabo ou a placa não ter uma boa separação entre ambos). Este pode ou não ser o seu caso, portanto considere um cabo P2-P2 opcional para casos deste tipo.


#3 – Conexão do Joystick e Botões

É chegado o momento que todos aguardávamos, a conexão dos famosos joysticks (manches) e botões de arcade.

kit-joytsick-arcade
Kit Joystick e Botões Arcade Completo com Placa Controladora saída USB

Algumas observações são importantes na hora da aquisição destes kits disponíveis no mercado:

  1. Prefira os kits já fornecidos com os cabos e placas controladoras, pois evitará um trabalhão gigante (que eu tive) de confeccionar os cabos.
  2. As placas controladoras devem ter saída USB e ser do tipo ‘zero delay’, ‘zero latency’ (zero latência) ou ‘zero atraso’ – tudo isso quer dizer que as placas irão comunicar com o Raspberry Pi na mesma velocidade na qual os comandos físicos do manche e botões ocorram.
  3. Botões e Joystick do tipo SANWA são os melhores e mais caros do mercado. Sensíveis ao toque e não fazem quase nenhum barulho – dê preferência por eles no nosso arcade, pois devido ao tamanho barulho das chaves irão acabar com o prazer da jogatina.
  4. Uma opção aos botões SANWA são algumas réplicas chinesas (SANWA-like) que são muito boas nos quesitos barulho e sensibilidade.

Anatomia dos Joysticks

Apesar das várias cores e formatos, a função primordial do joystick é traduzir os movimentos produzidos pela mão na barra em sinais digitais a serem interpretados pelos jogos. Em resumo, esta tradução se dará através do acionamento de 4 chaves, cada uma correspondente a uma direção do mache: para cima, para baixo, para esquerda e para direita.

joystick-americano-joytick-japones
Joysticks e seus formatos clássicos: Americano (esq) e Japonês (dir)

Para cumprir esta função o joystick é dividido em partes, que basicamente são:

  • Bastão, Stick, Barra: onde os movimentos são performados
  • Proteção, Esferas, Bolas: protege a palma da mão durante a execução dos movimentos
  • Suporte: une o stick as chaves/potenciômetros e anexa o joystick a mesa através de parafusos
  • Chaves ou Potênciômetros: situados abaixo so suporte, podem ser apenas chaves ou possuir uma placa PCB para facilitar a conexão das mesmas.
  • Restritor: impõe uma limitação física ao curso da barra e pode ser utilizado para auxiliar o usuário a atingir uma determinada posição específica sem ficar em um estágio intermediário.

    picture1
    Anatomia do Joystick Básico

Montagem

Normalmente os joysticks do tipo japonês já vem montados, pois possuem um placa PCB abaixo do suporte para facilitar a conexão das chaves, sendo necessário apenas um pequeno cabo (abaixo):

rm342w
Joystick do Tipo Japonês com Placa PCB e Cabo

Mais baratos, barulhentos e menos precisos (alguns vídeos mostrarão como você pode regular melhor) os modelos americanos normalmente vem desmontados, necessitando o encaixe de cada uma das chaves, além da barra e colocação da arruela final de fixação existente no fim da barra.

joystick-switches
Joystick do Tipo Americano, sem PCB e parcialmente desmontado

Além de tudo isso, cada chave deverá ser conectada individulamente, o que acaba gerando um emaranhado de fios maior ainda do que o de costume.

Chaves e Potenciômetros

Abaixo do suporte estão as chaves responsáveis pela conversão de movimento em sinais digitais. Temos as seguintes divisões: chaves e potenciômetros.

As chaves irão traduzir os movimentos em sinais digitais do tipo ‘0’ e ‘1’ ou ‘liga’ e ‘desliga’, isto é, ou o movimento é para cima ou não é, sem meios termos. A combinação das 4 posições clássicas: cima, baixo, esquerda e direita, permitem aumentar para um total de 8 os tipos de movimentos a serem interpretados pelos jogos clássicos:

  • Superior
  • Superior-Esquerda
  • Superior-Direita
  • Direita
  • Esquerda
  • Inferior
  • Inferior-Esquerda
  • Inferior-Direita

Desta forma temos a caracterização de um JOYSTICK DIGITAL.

Outra forma de traduzir os movimentos para os jogos é utilizando de potenciômetros, que são resistores rotativos que assumem diversos valores conforme o seu percurso – assim como alguns interruptores de luz (chamados dimmers) que conseguem variar a luminosidade da luz e não apenas ligar e desligar.

Este tipo de tradução de movimentos é comumente encontrada nos joysticks mais modernos (e mais caros) permitindo uma precisão fina ao jogo, porém não preciso mencionar que o jogo precisa saber interpretar este tipo de movimentação.

Estes joysticks com potenciômetros damos o nome de JOYSTICK ANALÓGICOS.

No nosso caso iremos seguir com os joysticks digitais, pois para os games antigos/clássicos é o que faz sentido.

Chaves Mecânicas ou Óticas 

Agora que sabemos que iremos trabalhar com chaves, ainda temos a seguinte escolha.

  • Chaves Mecânicas ou de contato: onde precisamos pressionar placas para entrarem em contato e assim produzir o comando digital
  • Chaves Óticas: onde para produzir o comando digital é necessário que seja detectada a presença próxima da barra

Para comparação de alguns quesitos, segue a tabela abaixo:

Preço

Quanto vou gastar?

Durabilidade

Quanto tempo sem quebrar?

Continuidade

Vai ficar dando pau no meio do jogo?

Manutenção

Vai ser fácil/barato consertar?

Outros
Mecânicas Baixo preço Durabilidade média Pouca intermitência Baixo custo Barulho característico, mas dependendo da marca pode ser bem alto
Óticas Alto preço Muito durável Média Intermitência Alto custo Não há barulho, pois não há contato. Poeira no joystick pode atrapalhar funcionamento
Obs: Todas as comparações foram feitas observando os valores médios de cada peça sem particularizações

Restritores

Outro ponto sobre joysticks é a utilização de restritores, estes são peças plásticas que limitam o curso dos joystics e tornam mais sensíveis ao jogador se determinada posição foi atingida, facilitando ao jogador saber se determinado ponto é certo de ser traduzido da maneira esperada.

Por exemplo, se estou utilizando um restritor octogonal (peça destacada em amarelo na foto abaixo) e vou realizar um movimento para o canto superior direito (ou para cima e direita ao mesmo tempo) eu irei sentir que estou na posição certa quanto atingir aquele canto, caso eu ‘erre’ um pouquinho a própria peça plástica conduz a barra para a posição correta. ;D

Os 5 restritores (que conheço) são, de acordo com a foto abaixo e começando de cima para baixo da esquerda para direita: circular, octogonal, quadrado, losângulo, elíptico. 

artbj-og1
Tipos de Restritores de Joystick

Botões

É aqui que a ação toma forma – tiro, soco, pontapé, magia ou pulo!! Para os botões segue a fórmula: vários tipos e formatos e todos dependendo da qualidade da chave a qual estão associados para termos mais sensibilidade, durabilidade, preço, enfim… tudo aquilo que já colocamos acima.

Sem alongar muito mais – temos também botões analógicos, isto é, ao invés de chaves, temos pequenos potenciômetros para saber não apenas se o botão foi disparado ou não, mas sabe o nível de profundidade ou intensidade que está sendo pressionado.

Este tipo de botão está bem presente nos joysticks atuais e são denominados ‘triggers’ ou ‘gatilhos’ pelo formato que possuem.

dual-triggers-c-borracha-p-analogico-play-3-ps3-sixaxis-d_nq_np_12774-mlb20065785431_032014-f
Gatilhos (numerados 2) do Playstation 3

Conexões de Joystick e Botões: Placa Controlador USB e GPIO

Para conectar todas estas chaves do joystick e dos botões ao nosso Raspberry Pi temos 2 opções:

  1. Ligar cada uma das chaves a um controlador joystick USB
  2. Ligar cada uma das chaves diretamente no Raspberry Pi nas entradas GPIO

 

opcoes-joystick

Minhas sugestões quanto ao objetivo da sua montagem de Joystick são:

  • Caso você esteja montando apenas um controle de arcade e planeje conectá-lo livremente em várias plataformas, opte pela placa controladora, pois assim poderá operar seu joystick livremente conectando-o via USB.
  • Caso você esteja (como no nosso caso) montando um gabinete de arcade fixo, então a opção por conectar na GPIO elimina uma parte do nosso conjunto e simplifica a solução.

Cada uma das opções também está ligada a plataforma seguimos a partir da Parte 1 deste Tutorial, se RetroPie ou Recalbox.

  • Caso esteja usando o RetroPie é preferível a conexão via placa controladora, pois os drivers de joysticks para interpretar a GPIO são limitados a apenas alguns consoles e ainda requerem que sejam trocados os pinos dos botões em algumas situações (veja abaixo).
  • Caso esteja usando Recalbox utilizar a GPIO é uma ótima saída para reduzir custos e peças, pois o driver faz a interpretação dos botões de forma genérica para todos os emuladores existentes

Em resumo:

Controlador USB GPIO
RetroPie Gabinete Fixo SIM TALVEZ
Apenas Joystick SIM NÃO
Recalbox Gabinete Fixo TALVEZ SIM
Apenas Joystick SIM NAO

 

Conexão via GPIO para RETROPIE

O RetroPie para interpretar os comandos das GPIOs faz uso de 2 drivers distintos (GAMECON e DB9) e cada driver serve para uma parte dos emuladores (consoles) disponíveis – seguem os links abaixo para cada um dos drivers.

Também podem ser consultados diretamente em sua wiki aqui.

A ligação física de cada um também é diferente, isto é, se você trocar de um SNES para um ATARI, deverá reconectar os cabos na GPIO e trocar o driver nas configurações para ser corretamente interpretado pelo emulador.

gamecon_gpio_rpi:
NES gamepads
SNES gamepads and mouses
PSX/PS2 gamepads, wheels and DDR controllers
N64 controllers
Gamecube controllers
GPIO interface for gamecon
Conexões GPIO para GAMECON
db9_gpio_rpi:
Atari, Commodore, Amiga etc. DB9 multisystem joysticks
Sega Mega Drive (Genesis) pads
Sega Saturn controllers (Note: custom connector instead of DB9)
Amiga CD32 pads
Conexões GPIO para DB9

 

Conexão GPIO para Recalbox

Obs: Esta será a opção que irei utilizar em no nosso projeto

Para utilizarmos a GPIO no Recalbox é bem mais simples.O mesmo utiliza o driver mk_arcade_joystick_gpio que gerencia todos os botões para todos os emuladores. Ele considera a utilização dos 7 botões abaixo:

 ↑ Ⓨ Ⓧ Ⓛ ← → Ⓑ Ⓐ Ⓡ Ⓗ ↓

Sendo:

= Right trigger = TR= Left trigger = T= HK = Hotkey

A montagem dos botões devem seguir a pinagem (pinout) abaixo. Onde é possível conectar até 2 controles via GPIO para seu arcade.

rpi2 pinout
Pinagem RECALBOX

As conexões deverão ser feitas sendo um fio do botão na GPIO e o outro fio do botão associado a terra ou GND, pois o driver utiliza o sistema de pull-up das GPIOs (como visto em outros posts nossos por aqui).

No mercado é possível encontrar os cabos prontos já com os conectores para GPIO e as pontas para conexão nos terminais das chaves de botões e joysticks.

cabosprontos-gpio-recalbox
Cabos prontos no mercado para Recalbox GPIO

A última parte é habilitar o uso da GPIO. Acesse a linha de comando no Raspberry Pi onde está instalado o Recalbox e digite:

sudo nano /recalbox/share/system/recalbox.conf

Dentro do arquivo encontre (ou digite caso não exista) a linha abaixo, colocando seu valor para 1:

controllers.gpio.enabled = 1

Execute o restart e tudo pronto:

sudo reboot

 

Conexão via Placa Controladora USB (para RetroPie e Recalbox)

As conexão de uma placa controladora USB (normalmente simuladora de controle de PS3) ficarão da seguinte forma:

fullsizerender
Placa Controladora com Conexões e saída USB

Todas as chaves (joysticks e botões) deverão ser conectadas a esta placa nas posições indicadas (na própria placa) equivalentes a de um controle de PS3.

Não se preocupe com a posição de cada botão ou da sequência exata do joystick, pois ao ser conectado no RetroPie ou Recalbox, as configurações irão pedir a movimentação de cada uma dos lados assim definindo o que é botão A, B, X, Y e qual posição é para CIMA, BAIXO, ESQUERDA e DIREITA.

O único ponto a ser respeitado é com relação aos terras/GNDs das conexões.

Para os botões cada fio de cada cada botão deverão ser conectados a placa para a interpretação do botão ‘aberto’ ou ‘fechado’.

Para o Joystick do tipo japonês (da foto abaixo) é necessário apenas 1 fio em cada posição e uma ligação no terra/GND.

img_2136
Conexões dos Botões (acima), Joystick (abaixo) e saída USB (a direita)

 

joystick_conectado_placa
Joystick conectado a Placa Controladora USB

Cada par de fios proveniente de cada botão deverá ser conectado nas indicações:

  • Triângulo
  • Círculo
  • Xis
  • Quadrado
  • L1
  • R1
  • L2
  • R2
  • Start
  • Select

Desta forma teremos um botão associado a cada um dos botões de um controle PS3 convencional.

7f353148-42c0-11e6-9023-dbaf074bc933
Mapa de todas as teclas de um joystick PS3

Outras posições na placa referente aos demais botões do PS3 (ex: thumb esquerdo e direito) podem receber os botões do arcade, porém para os jogos clássicos, não haverá serventia.

Com todos os botões e josytick conectados na placa, resta apenas plugar o cabo USB da placa controlador para uma das entradas USB do Raspberry Pi.

As configurações serão realizadas internamente na plataforma seja RetroPie ou Recalbox no momento em que ligarmos o Raspberry Pi.

Opcional: Controle USB

Também conectaremos via USB um controle de Super Nintendo ao Raspberry Pi, apenas por diversão e para permitir jogar com mais um player devido ao tamanho restrito do nosso arcade que só comporta 1 set de joystick arcade.

Sem dificuldade, apenas conecte o controle na porta USB do Raspberry Pi e selecione tanto no RetroPie quanto no Recalbox para configurar nova entrada (ou Input), assim como vimos na Parte 1 deste tutorial aqui.


 

Montando e Testando toda a Eletrônica

Agora que temos todas as partes devidamente conectadas, precisamos uní-las em torno do nosso Raspberry Pi.

  • Conectar MicroSD Card no Raspberry Pi
  • Conectar USB contendo as ROMs (caso esteja armazenando em USB)
  • Conectar com o cabo HDMI o Raspberry Pi até a entrada HDMI da placa controladora do LCD
  • Conectar a placa controladora do Joystick ou os cabos na GPIO do Raspberry Pi
  • Conectar a saída da fonte 12Vdc na placa controladora LCD
  • Conectar a saída da fonte 5Vdc no Raspberry Pi
  • Plugar o cabo de energia no soquete AC
  • Ligar a chave liga-desliga
img_2135
Todas as peças montadas aguardando o gabinete que está sendo pintado!

Procurei ligar o máximo número de peças para demonstrar a todos o circuito completo. Na próxima parte farei uma nova geral na parte eletrônica mostrando quais foram minhas opções para plataforma de gaming, controlador de joystick e outros.


 Próximos Passos

Na Parte 3 iremos montar as partes do nosso gabinete, pintá-lo, adesivá-lo, montar toda a eletrônica interna e finalmente: JOGAR!

Anúncios

3 comentários sobre “Arcade Retro c/ Raspberry Pi (Parte 2): Energia, Joystick, LCD e Áudio

  1. Seu tutorial está fantástico amigo. Até eu que não entendo nada de eletrônica estou com ânimo pra montar o meu. Vou ter um certo trabalho pois estou querendo aproveitar uma tela de notebook 14″ e parece ser onde as coisas tendem a se complicar. Agradeço pelas suas informações.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s