- Circuito do Joystick
Estes componentes são facilmente encontrados em lojas de jogos arcade.
As informações dos terminais da chave do botão são mostradas na figura a baixo.
Os terminais do LED estão representados com suas respectivas polarizações, porem, depende de como o LED está encaixado no soquete interno da chave. Para alterar, caso esteja invertido desencaixe a chave girando-a no sentido anti-horário. Puxe o LED e verifique o sinal de polarização se é correspondente ao dos terminais Catodo e Ânodo indicados na figura acima.
A chave possui 3 terminais: Comum, Normalmente Aberto e Normalmente Fechado. O terminal Normalmente Aberto fecha o contato com o terminal Comum quando a chave é pressionada. O terminal Normalmente Fechado abre o contato com o terminal Comum quando a chave é pressionada. Este último não será usado.
As chaves do Manche segue o mesmo padrão da chave do botão sem os terminais do LED. Na figura são mostrados os terminais Comum e Normalmente Aberto que serão utilizados nas 4 chaves do Manche.
Ao acionar uma chave, a entrada analógica do Arduino é conectada ao terra. O diagrama a baixo mostra o esquema elétrico do circuito.
Os botões possuem led's que se acendem quando são pressionados. São utilizadas as saídas do arduino para alimentar os leds. O terra, tanto das chaves quanto dos leds é comum. As imagens a seguir mostram a ligação dos fios em cada uma das chaves e nas portas do Arduino.
O fio preto mostrado na figura a baixo é ligado no GND do Arduino e é soldado no terminal Catodo (-) do LED de um dos botões. A conexão dos fios ao Arduinio deve ser feita pelo modu do Arduino, ou seja, é recomendado que seja soldado um pinheader para facilitar a conexão e isolar a parte de solda com uma fita isolante ou um termo retrátil.
No mesmo terminal é soldado um fio no terminal Comum da chave do Botão. Do terminal Comum é soldado outro fio (de cor alaranjada como mostra a figura acima) que é soldado no Catodo do outro botão e respectivamente soldado outro fio no terminal Comum do outro botão. O mesmo fio laranja é soldado no terminal Comum das chaves do manche. Assim, todos os Catodos dos LEDs dos botões, bem como os terminais comuns das chaves dos botões e do manche devem ser eletricamente o mesmo ponto onde deve ser conectado ao GND do Arduino.
Os outros fios serão soldados no terminal Normalmente Aberto de cada chave do manche e dos botões e conectados nas entradas analógicas do Arduino. Ao receber o firmware o Arduino estará configurado para receber os seguintes comandos.
Entrada do Arduino Comando Cor do Fio na Figura
A0 Baixo Branco
A1 Cima Cinza
A2 Direita Lilás
A3 Esquerda Azul
A4 Botão 2 Verde
A5 Botão 1 Amarelo
O acendimento dos LEDs é comandado pelas saídas 11 e 12 do Arduino nos botões 2 e 1 respectivamente e representado pelas cores vermelha e marrom. O Gnd comum para as chaves, bem como para os LED's deve ser ligado ao Gnd do Arduino (representado pelo fio Preto na figura)
Feita as ligações das 4 chaves do manche e as duas chaves dos botões nas respectivas entradas do Arduino e os LEDs nas respectivas saídas do Arduino, está completa a parte da instalação elétrica do Joystick.
A tabela completa de Ligações com o Arduino está representada logo abaixo:
Entrada do Arduino Comando Cor do Fio na Figura
A0 Baixo Branco
A1 Cima Cinza
A2 Direita Lilás
A3 Esquerda Azul
A4 Botão 2 Verde
A5 Botão 1 Amarelo
Gnd Gnd Preto (laranja nas chaves)
Saída do Arduino Comando Cor do fio na Figura
11 LED Botão 2 Vermelho
12 LED Botão 1 Marrom
Gnd Gnd Preto (laranja nas chaves)
Saída do Arduino Comando Cor do fio na Figura
11 LED Botão 2 Vermelho
12 LED Botão 1 Marrom
- Gravando Firmware no Arduino
Firmware ATMega16U2 Download
Firmware ATMega328 Download
No Arduino UNO há 2 microcontroladores, um é o ATMega328 que é o principal e o outro é o ATMega8U2 (ATMega16U2 no caso do Arduino UNO Rev.3). Para cada microcontrolador existe uma porta ISP semelhantes as da figura abaixo.
Para programar os microcontroladores utilizando o USB Tiny ISP é necessário instalar o AVR Dude. O WinAVR é um software que tem o AVR Dude, caso esteja usando o Windows. O WinAVR pode ser baixado no site <http://winavr.sourceforge.net/>. Faça a instalação do WinAVR.
O AVR Dude é um programa que funciona por linha de comando. Como serão feitas varias alterações nas configuradões, recomenda-se usar um GUI do AVR Dude para facilitar. O GUI recomendado é o AVRDUDE-GUI Yuki-lab.jp no site <http://yuki-lab.jp/hw/avrdude-GUI/>. A figura a baixo mostra o programa.
Na barra superior selecione o local da pasta onde está instalado o avrdude.exe. O arquivo se encontra dentro da pasta "bin" do WinAVR.
Selecione o programador USB Tiny ISP LadyAda
Selecione a Porta USB.
No caso do ATMega16U2 escolha o dispositivo AT90USB162 (se não for Arduino UNO Rev.3 selecione o AT90USB82)
Escreva o comando "-F" no campo de linha de comando opcional
Conecte o cabo do programador no conector ISP correspondente ao ATMega16U2 conforme a figura:
Atenção!! Verifique a pinagem correta antes de fazer a ligação. Qualquer dúvida confira no site: <http://www.ladyada.net/make/usbtinyisp/>
Para testar se a comunicação pode ser feita com o microcontrolador faça uma verificação das Fuses.
Se os campos forem preenchidos e não aparecer mensagem de erro é porque a comunicação foi bem sucedida. O próximo passo é gravar o Firmware no microcontrolador. Selecione o arquivo ATmega16U2-Firmware.hex caso ainda não tenha baixado baixe no link a seguir <Firmware ATMega16U2 Download> ( o mesmo firmware serve no ATMega8U2) e clique em "Erase - Write - Verify".
Em seguida conecte o programador no outro conector ISP correspondente ao ATMega328
Mude o dispositivo para ATMega328P e verifique as fuses
Se não aparecer nenhuma mensagem de erro, abra o arquivo ATmega328-Firmware.hex caso não tenha baixado <Firmware ATMega328 Download>. Em seguida clique em "Erase - Write - Verify".
Feito isso troque o cabo USB do programador e conecte no Arduino. Clique no menu Iniciar do Windows e depois em Dispositivos e Impressoras. Deverá aparecer um novo dispositivo "Arduino Joystick".
Feito isso é só fazer as ligações mostradas no tópico anterior e montar em uma caixa apropriada.
Olá Arthur belo poster...Então quer dizer que para eu fazer meu joystick com o ATMEGA328 eu precisarei de um Arduino com um ATMEGA para gravar o programa que está no Arduino para o meu ATMEGA328 virgem?
ResponderExcluirOlá Deco! Obrigado! Você precisará basicamente de um programador ISP, não necessariamente um arduino. O arduino também pode exercer a função do programador. Para o seu ATMEGA virgem, voce só precisa conectar nas portas corretas. Pode usar uma protoboard e os componentes básicos para fazer a gravação. Tem muitos tutoriais por aí que ensinam como fazer sem precisar de um arduino. Espero ter respondido. Abraços!
ExcluirOlá Deco! Obrigado! Você precisará basicamente de um programador ISP, não necessariamente um arduino. O arduino também pode exercer a função do programador. Para o seu ATMEGA virgem, voce só precisa conectar nas portas corretas. Pode usar uma protoboard e os componentes básicos para fazer a gravação. Tem muitos tutoriais por aí que ensinam como fazer sem precisar de um arduino. Espero ter respondido. Abraços!
ExcluirEste comentário foi removido pelo autor.
ExcluirArthur quer dizer que quando eu fizer meu joystick e por no prototipo com o meu atmega328 para ele reconhecer pela porta USB eu vou precisar de um programador ISP também?... Eu fiz o joystick coloquei no meu prototipo agora são sei fazer como ele reconhecer pelo USB.... fico muito feliz por você ter me dado atenção Arthur forte abraço! se tiver algum site com tutorial eu fico feliz ....
ExcluirTipo eu teria que usar um USB HOST?
ExcluirEste comentário foi removido pelo autor.
ResponderExcluirCurti! Fiz um recentemente usando modulo joystick para controlar por HT12E/D RF 433MHz um pequeno carro. Optei por RF devido ao alcance. Mas vou pesquisar para montar um arcade como o seu. Muito bom!
ResponderExcluirOlá Arthur. Muito obrigada pelo post. Gostaria de saber se é possível montar somente o joystick, sem os botões. O projeto muda muito ou só deixo de configurar os botões? Abraço o/
ResponderExcluir