

|
 |
você esta em: / hardware -> projetos

Este pequeno artigo descreve os passos para construir um adaptador de
joystick de PC (analógico) no MSX. Hoje em dia é muito mais simples
encontrar um joystick de PC para comprar, do que um joystick
"digital", que normalmente é usado no MSX (e até mesmo nos
Atari 2600). Eu só testei com o meu joystick (o que aparece nas fotos lá
em baixo), mas isto deveria funcionar com qualquer joystick de PC.
AVISO: Eu não sou
profissional da área de eletrônica e não tenho o conhecimento necessário
para fazer isto de forma perfeita. Eletrônica para mim é um hobby, e
como todo hobby, eu o exerço no tempo livre, que não é (nem de longe)
suficiente para estudar os detalhes e saber de todos os princípios que
regem a coisa toda. Então, esteja avisado. Este circuito pode fritar a
entrada de joystick do seu micro, e eu não vou ser responsável por isso.
Ele também pode chutar o seu cachorro, esconder a chave do seu carro
quando você estiver atrasado para o trabalho e fazer derreter o sorvete
da sua geladeira além de desmagnetizar seu cartão de crédito. Não me
culpe por nada disso :))) Mas, se for um incentivo, pra mim funcionou
perfeitamente. Ah, o texto também deve ter várias incorreções sobre o
assunto, além de erros de gramática. Se você os reportar, eles serão
corrigidos :)
O princípio de funcionamento é simples: O joystick de PC
nada mais é do que dois potenciômetros de 120K e duas chaves normalmente
abertas. Os potenciômetros são ligados entre o +5v e o pino do eixo
correspondente. As chaves são ligadas nos pinos dos botões. Observe no
diagrama abaixo:

Se você abriu seu joystick e achou um CI lá dentro, não se
assuste. Ele deve ter recursos de auto-fire, turbo-mode, etc., e é pra
isso que esse CI serve. Na verdade, no final das contas, o CI imita o
circuito original. O meu joystick por exemplo, "parece" digital,
porque ele tem um manche (direcional) com chaves, ao invés de potenciômetros.
O CI gera automaticamente resistências equivalentes a 0% (esquerda,
cima), 50% (centro) e 100% (direta, baixo), como se eu realmente tivesse
uma alavanca analógica e a colocasse nessas posições quando a movesse.
Então, se alimentarmos o joystick com 5v (o que é simples,
o MSX já tem 5v na saída do joystick), e pudermos medir a tensão que
retorna pela resistência interna do joystick, saberemos em que "posição"
o manche está. Depois disso, usamos comparadores de tensão para obter um
sinal digital (alto ou baixo) conforme esta tensão está acima ou abaixo
dos limites regulados nos potenciômetros externos (de calibragem).
Os botões, no joystick de PC, já usam o esquema idêntico
ao do MSX (aberto quando não pressionados, e GND quando pressionados).
Nesse caso, basta ligar os dois pinos dos botões do joystick de PC
diretamente nos pinos de botões do joystick do MSX.
Para montar o adaptador, você vai precisar de:
1 DB15 fêmea com capinha
1 DB9 fêmea com capinha
4 leds (opcional)
4 resistores de 100 ohms (para os leds, opcional)
2 resistores de 120K
2 potenciômetros de 100k
1 CI LM339N
20cm cabo 8 vias
Os leds são opcionais, mas, como você vai ver nas fotos,
fica muito legal colocá-los!! :)
Vamos começar pelo lado do DB9. As ligações são muito
simples. Solde os 8 fios do cabo de 8 vias nos pinos do DB9, deixando de
fora apenas o número 8. O pino 8 e o pino 9 podem servir de GND (terra),
você escolhe. No MSX, o terra oficial é o pino 9, mas no atari era o 8.
Como o MSX normalmente mantém o pino 8 (que é um pino de saída) em
sinal baixo, o adaptador vai servir também, mas podem existir certos
momentos (se alguém mexer no sinal do pino 8 antes de usar o joystick)
que o adaptador pare de funcionar (nunca vi acontecer).
   
Fure a capinha, coloque os leds. Core as perninhas deles bem
curtinhas (1mm mais ou menos). Solde os resistores por dentro, e depois
passe cola quente em tudo pra fixar. Solde o cabo de 8 vias no conector, e
ligue os fios dos leds. Agora você já pode fechar o conector, esta parte
está pronta:

Vamos agora ao DB15. Todo o resto será montado dentro
dele e, como vocês verão, o espaço é mais que suficiente. Só pra se
ter uma idéia de como as peças ficarão dentro do conector, olhe este
exemplo, com elas ainda soltas, apenas posicionadas:

Agora pegue o CI, entorte as pernas dele pra fora, até quase
ficarem paralelas. Corte fora as pontinhas mais finas de cada perna,
deixando apenas a parte mais grossa (pra economizar espaço). Pré-estanhe
cada perna, isso faz muita diferença mais tarde. Aqui temos uma foto do
CI já preparado, e colado na tampa do plug com cola quente:

Na outra tampa, faça dois furos como na foto abaixo. Você
vai colocar ali, pelo lado de fora, os dois potenciômetros para
calibragem. Eu usei os que tinha em casa na hora que fazer, mas você pode
escolher algum mais bonitinho :))

Faça todas as ligações, conforme o esquema que está mais
no final da página. Eu aconsolho a ligar o cabo de 8 vias no conector
DB15, para que ele fique bem preso, ao invés de tentar ligá-lo direto no
CI e puxar alguns fios para o conector. Você já deve ter colocado os
potenciômetros do lado de fora e os colados com cola quente também.

Agora é só fechar o DB15, e está pronto!! Veja abaixo o
adaptador pronto:

Veja aqui o esquemático
para a ligação das peças com o CI. Mais abaixo eu explico como calibrá-lo
na hora de usar.
Veja também algumas fotos dele em funcionamento, com os leds
acendendo conforme a direção que você move o joystick.
Quando estiver plugado apenas, todos os leds devem permanecer
apagados. Se você ligar o adaptador no MSX, sem nenhum joystick de PC
conectado na sua entrada, a tensão recebida nos pinos do eixo-x e eixo-y
será 0v e o adaptador irá pensar que você está pressionando para cima
e para a esquerda (diagonal). Isto é normal (veja mais sobre este
funcionamento mais abaixo).

Pressionando "para baixo" , o led de baixo acende:

Para a esquerda, idem...

Direita...

Para cima...

E em diagonal, acendem dois juntos (neste exemplo, para baixo
e para a esquerda):

Para entender a calibragem, é interessante entender como
varia a tensão nos eixos X e Y do joystick do PC.
No eixo-X, quando o manche está todo para a ESQUERDA, a
resistência é 0 ohms. Nesse caso, teremos 5v de retorno pelo pino do
eixo-X. Se movermos o manche todo para a DIREITA, a resistência passará
por 60K ohms no centro, e chegará a 120K ohms no extremo direito. Isto
significa que teremos 0v (simplificando a história toda) retornando pelo
pino do eixo-X.
No eixo-Y, ocorre o mesmo. Quando o manche está todo para
CIMA, temos 0 ohms de resistência interna, e 5v de retorno. Se movermos
para BAIXO, teremos 120K ohms de resistência e 0v de retorno.
Quando algum eixo está na posição central, ele tem
aproximadamente 60K ohms de resistência, e pode-se medir aproximadamente
2,5v de retorno no pino correspondente.
O que interessa aqui é definir uma tensão mais baixa que
2,5v no primeiro potenciômetro, para que ela seja usada de referência
nas comparações da ESQUERDA e CIMA, e uma outra tensão de referência
que seja mais alta que 2,5v para que seja usada como referência nas
comparações da DIREITA e de BAIXO. Então o primeiro potenciômetro
controla o limite para ESQUERDA+CIMA, e o segundo controla o limite para
DIREITA+BAIXO.
Cada potenciômetro tem 3 regiões: nas duas extremas, os
leds estão sempre apagados ou sempre acesos, não interessa se você
movimenta o manche ou não. Na região central, o led acende/apaga
conforme você movimenta. O seu trabalho será achar as divisões entre
essa região do centro e as duas laterais, e colocar o potenciômetro na média
das posições. Faça isso com um dos eixos, o outro vai de brinde.
É isso aí... se tiverem mais dúvidas ou sugestões, me
escrevam.
O texto, as fotos e o diagrama são todos de minha autoria.
Você pode reproduzir este artigo em qualquer lugar que desejar, apenas me
envie um e-mail avisando. Por André
Ruiz.
© 2003 by MSXPró 
Esta página é melhor visualizada em
resolução de 1024x768 @ True Color
Utilizando o navegador Mozilla
Visitante:
|
|
|