Índice:

Botões de joystick / roda do PC sem fio: 4 etapas (com imagens)
Botões de joystick / roda do PC sem fio: 4 etapas (com imagens)

Vídeo: Botões de joystick / roda do PC sem fio: 4 etapas (com imagens)

Vídeo: Botões de joystick / roda do PC sem fio: 4 etapas (com imagens)
Vídeo: Como usar o controle DualShock 4 do PlayStation 4 no PC na Steam e fora dela – Assistência Tec #047 2024, Novembro
Anonim
Botões de controle / roda sem fio para PC
Botões de controle / roda sem fio para PC

Eu tenho criado um novo simulador de corrida nos últimos anos e decidi usar um volante DIY Direct Drive. Embora esse projeto sozinho possa ser vários instructables em si, este é um instructable sobre como tornar todos os botões no volante sem fio.

Porque?

  • A roda DD tem rotações ilimitadas, então ter fios ligados a ela seria irritante.
  • Sem capacidade de rotear cabos através do eixo da roda, como nas rodas comerciais
  • Eu queria ser capaz de trocar facilmente as rodas com diferentes configurações de botão
  • Porque eu poderia:)

Para atingir o objetivo dos botões sem fio, precisamos considerar:

  • Entrega de energia
  • Conectividade sem fio
  • Tempo de reação / atraso
  • Confiabilidade

Os seguintes componentes foram escolhidos para atender a estes critérios: Tx - Arduino Nano com módulo NRF24 integrado aqui ou use um Nano genérico ou Pro Mini + Módulo NRF24 Rx - Arduino Pro Micro / Leonardo / Beetle (Atmega32u4) + módulo NRF24 USB 'Banco de bateria' - Qualquer banco de bateria 18650 único genérico deve funcionar. Isso vai durar cerca de 20 horas! Você pode querer verificar se ele pode carregar e fornecer energia ao mesmo tempo. Isso é útil se ele funcionar sem problemas e você quiser carregá-lo e usá-lo ao mesmo tempo.

Além disso, você precisará dos botões e de um botão liga / desliga de sua escolha, algum fio de conexão e possivelmente um tubo termorretrátil.

Isso também pode ser usado em uma 'caixa de botão' em vez de em uma roda, mas imaginei que haveria menos demanda para isso, pois não há muita vantagem se ele não se mover.

Ferramentas necessárias:

Ferro de soldar e soldaUma pistola de cola quente também é útil para montar as peças. Arduino IDE instalado no computador.

Etapa 1: a fiação do transmissor

A fiação do transmissor
A fiação do transmissor
A fiação do transmissor
A fiação do transmissor
A fiação do transmissor
A fiação do transmissor

Comece montando quantos interruptores forem necessários em seu volante e considere a localização do Arduino. Conecte todos os fios aos interruptores de acordo com o diagrama. Cada botão será conectado com um lado ao GND e o outro ao pino Arduino associado. O código permite 14 interruptores / botões que devem ser suficientes para a maioria das rodas.

Se você usa o Nano com o módulo NRF embutido, obviamente não precisa adicionar a fiação associada para isso, apenas conecte os botões.

Os botões estão nesta ordem (1-14): RX, TX, D2, D3, D4, D5, D6, D7, A0, A1, A2, A3, A4, A5

Mas por que apenas 14 botões? A razão para isso é porque podemos ler um banco completo de pinos rapidamente e transmitir apenas 2 bytes de dados não demora muito - embora isso pudesse ser modificado para incluir mais botões (por meio de uma matriz) e / ou entradas analógicas, isso tornaria as coisas um pouco mais lentas. A leitura da matriz e as leituras / conversão analógicas levam tempo do processador. Eu só precisava de 12 botões no meu volante, então optei por eles, mas consideraria adicionar mais.

PowerPara a alimentação, você tem duas opções - Você pode deixar o banco de baterias intacto e apenas prendê-lo ao volante de alguma forma. Isso lhe dá a vantagem adicional de poder desconectar a energia do arduino, evitando ter um switch embutido e alguma fiação.

Se você preferir uma solução mais personalizada, pode ser necessário abrir o banco de baterias e reaproveitar os componentes internos em sua configuração personalizada.

Eu não tinha espaço na roda para deixá-lo intacto, então ele foi retirado. Eu removi o conector USB padrão da placa de carga e soldou os fios +5 e Gnd dos pads da porta USB ao Arduino por meio de um switch. É um pouco difícil detalhar isso por causa das muitas opções disponíveis …

O circuito foi então montado dentro da roda, expondo o conector de carga micro USB.

A placa de carga terá um ou mais LEDs para exibir o status da carga - é útil torná-los visíveis de alguma forma ou usar algum plástico para 'portá-los' para algum lugar visível para que você saiba quando terminou de carregar.

Para os interessados, meu design de roda é da Amstudio - alguns designs de peças de simulação de corrida DIY excelentes estão disponíveis a preços razoáveis.

Etapa 2: o receptor

O receptor
O receptor
O receptor
O receptor
O receptor
O receptor

Basta seguir o diagrama de fiação anexado. Se você não estiver usando um Leonardo, você PRECISARÁ de um regulador externo de 3.3v, como o AMS1117. O regulador Pro Micro não pode fornecer corrente suficiente para o módulo NRF24 e o besouro não tem nenhum.

Codifiquei por cores as conexões para o módulo NRF da mesma forma para o Pro Micro e o besouro.

O Arduino 'Beetle', que é muito fácil de encontrar nos lugares comuns, mas mais uma vez, o regulador de 3.3v precisará ser usado, pois ele não tem nenhum. Eu testei isso e funciona bem também. As conexões são as mesmas

Etapa 3: Programando os dispositivos

Programando os Dispositivos
Programando os Dispositivos
Programando os Dispositivos
Programando os Dispositivos
Programando os Dispositivos
Programando os Dispositivos

Se você ainda não tem o IDE do Arduino instalado, acesse https://www.arduino.cc e baixe a versão adequada para seu sistema operacional para este exemplo estou no windows.

Depois de configuradas, você precisará de duas bibliotecas diferentes - A primeira é fácil por meio do Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas (ou CTRL + SHIFT + I)

NRFLite por Dave Parson (versão 2.2.2 a partir da publicação)

O segundo precisará ser instalado manualmente em

Clique em 'Clonar ou Baixar' e depois em 'Baixar o ZIP e abra o arquivo baixado. Em seguida, você terá que clicar nas pastas até ver uma pasta 'Joystick' - Copie para a pasta Bibliotecas do Arduino (no Windows, geralmente está em Documentos -> Arduino -> Bibliotecas.

Reinicie o IDE do Arduino

Se estiver usando o Pro Micro para o receptor, você também precisará adicionar essa placa ao IDE. Arquivo -> Preferências -> URLs adicionais do gerenciador de placas:

digite:

Em seguida, vá para Ferramentas -> Gerenciador de placas, pesquise Sparkfun e instale 'Sparkfun AVR Boards'

Agora estamos prontos! Vamos começar com o transmissor - Conecte-o ao seu PC

Em Ferramentas -> Placa, selecione 'Arduino Nano' (ou qualquer variante que você decidiu usar). Verifique também a porta COM no menu de ferramentas.

Abra o arquivo Wireless_Wheel_Tx anexado.

Há apenas uma linha que você pode querer alterar neste código e é:

int nrfChannel = 22;

Você tem até 126 canais que pode usar no espectro de 2,4 GHz. Não deve haver problema em deixar como está, mas se você achar que tem problemas de confiabilidade, talvez mude para um número diferente.

Em seguida, basta clicar no botão 'upload' e aguardar o término.

O mesmo vale para Leonardo / Pro Micro / Beetle - Selecione a placa que deseja - Para Leonardo e Beetle, selecione a placa Arduino leonardo. Para o Pro Micro, selecione e selecione também a variante / processador Atmega32u4 (5v, 16Mhz), abra o arquivo Wireless_Wheel_Rx, altere a configuração nrfChannel (se você mudou no Tx) e programe.

Assim que o dispositivo for reiniciado na programação, seu computador deve detectar um dispositivo de joystick. Se você também ligar o transmissor, poderá pressionar os botões e fazer com que apareça no status do dispositivo!

Uma característica incidental interessante é que você obterá uma luz de status no Leonardo e no Pro Micro - O led USB TX acenderá quando houver conexão com os botões. No entanto, isso não está presente no besouro.

ATUALIZADO EM 2021-02-13

Eu adicionei 2 arquivos extras (Tx e Rx) ao instructable aqui para uma versão com 4 entradas analógicas, bem como uma matriz de botão 3X8. Quase sempre não testado, pode haver atraso. Por favor, tente e comente.

Etapa 4: melhorias

Melhorias
Melhorias

LED de energia Depois de usar essa solução por um tempo, tive o hábito de deixar o volante acidentalmente ligado. Para ajudar a combater isso, adicionei um LED na frente para que pudesse ver que a roda estava ligada. Este é apenas um simples led de 3 mm executado a partir de 5v no arduino por meio de um resistor. A parte superior é lixada para difundir um pouco a luz e evitar reflexos.

Medidor de nível de bateria Comprei alguns medidores de nível de bateria da BG ou Ali, mas quando eles chegaram eram muito maiores do que o que eu esperava, mas isso é algo que ainda quero acrescentar. Existem muitas opções disponíveis para isso, mas como a bateria dura muito, eu costumo recarregar depois de algumas horas de uso.

Botões / codificadores / entradas analógicas extras. Ainda estou pensando nisso. Para mim, não é tão importante para as corridas que faço, mas para coisas como F1 é provavelmente mais útil. Vou considerar duas versões ou adicionar isso se houver demanda suficiente, mas isso pode afetar o tempo de resposta nos botões.

Recomendado: