Índice:

R / C para USB Bridge: 7 etapas
R / C para USB Bridge: 7 etapas

Vídeo: R / C para USB Bridge: 7 etapas

Vídeo: R / C para USB Bridge: 7 etapas
Vídeo: ETAPA DE POTENCIA - MODOS DE FUNCIONAMIENTO - BRIDGE o PUENTE - ¡PRECAUCIÓN con la IMPEDANCIA! 2024, Novembro
Anonim
R / C para ponte USB
R / C para ponte USB

Converte sinais PPM de um receptor de rádio em posições de joystick

Use-o para jogar seus jogos favoritos e simuladores de vôo com seu transmissor de rádio R / C. Este Instructable usa um Arduino da littleBits e um receptor DSMX mais um trecho de código simples para fazer essa conversão.

Você vai precisar

  • Poder
  • Arduino
  • Cabos USB
  • cabeçalhos de alfinetes
  • fio de ligação
  • um receptor de rádio com saída PPM.

Etapa 1: Soldar os cabeçalhos dos pinos para as portas de E / S adicionais do Arduino

Solder Pin Headers para as portas de E / S adicionais do Arduino
Solder Pin Headers para as portas de E / S adicionais do Arduino

Para alimentar o receptor (RX), cabeçalhos de pinos precisam ser adicionados ao Arduino. Isso também tornará a fiação entre o bit e o RX muito mais fácil. Consulte https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit para obter mais informações.

Etapa 2: adicionar a biblioteca de joystick do Arduino ao seu IDE

Adicione a biblioteca de joystick do Arduino ao seu IDE
Adicione a biblioteca de joystick do Arduino ao seu IDE

Você pode encontrar a biblioteca no GitHub, https://github.com/MHeironimus/ArduinoJoystickLib… Obrigado, Matthew Heironimus, por escrevê-la.

Apenas alguns Arduinos podem emular um HID como um joystick. Como o microcontrolador littleBits é um Arduino Leonardo no coração, você está pronto para começar.

Etapa 3: atualize o código no Arduino

#include #define inputPin 16 # define canais 4 #define lo 800 // ajusta a saída de RX # define hi 1600 // ajusta a saída de RX # define filtro 10int canal [canais]; int previousValue [canais]; contador interno = 0; Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, verdadeiro, verdadeiro, falso, falso, falso, falso, verdadeiro, verdadeiro, falso, falso, falso); configuração void () {Joystick.setXAxisRange (lo, Oi); Joystick.setYAxisRange (lo, hi); Joystick.setThrottleRange (lo, hi); Joystick.setRudderRange (lo, hi); Joystick.begin (); Serial.begin (9600); pinMode (inputPin, INPUT); } void loop () {if (pulseIn (inputPin, HIGH)> 3000) {for (int i = 0; i <= canais-1; i ++) {canal = pulseIn (inputPin, HIGH); } para (int i = 0; i <= canais-1; i ++) {if ((canal > 2000) || (canal <500)) {canal = valor anterior ; } else {canal = (valor anterior + canal ) / 2; contador ++; }} Joystick.setXAxis (canal [0]); Joystick.setYAxis (canal [1]); Joystick.setThrottle (canal [2]); Joystick.setRudder (canal [3]); } if (contador> filtro) {para (int i = 0; i <= canais-1; i ++) {Serial.print ("canal"); Serial.print (i + 1); Serial.print (":"); Serial.println (canal ); valor anterior = canal ; } contador = 0; }}

Esteja ciente de que o código que faz a ponte entre o sinal R / C e o USB HID emulado vem em sua forma mais simples. A função usada aqui - pulseIn - é uma função de bloqueio. Leia aqui e aqui como implementar uma abordagem sem bloqueio usando interrupções.

Etapa 4: faça a fiação

Faça a fiação
Faça a fiação
Faça a fiação
Faça a fiação

Conecte os cabos jumper / DuPont entre o Bit e o RX. Os conectores nas extremidades desses cabos precisam ser fêmeas. Conectamos GND (azul), VCC (marrom) e sinal (laranja) da porta PPM do RX ao GND, VCC e d16 no Arduino.

Etapa 5: vincular o receptor

Desconecte o Arduino da alimentação. Coloque o chicote de amarração no local do conector marcado BIND no RX. Ligue o seu transmissor de rádio e coloque-o no modo de ligação. Em seguida, aplique energia ao Arduino. O processo de vinculação foi bem-sucedido quando o LED do receptor acende.

Etapa 6: ajuste o código às suas circunstâncias

As constantes hi e lo no esboço do Arduino precisam ser alteradas para refletir a saída real do receptor que você está usando.

#define lo 800

#define hi 1600

Os sinais dentro do pulso PPM variam idealmente de 1000μs a 2000μs. O RX usado neste Instructable emite valores aproximadamente entre 800 e 1600 e é ligeiramente diferente em cada canal. Para descobrir qual o alcance do seu receptor, abra o Serial Monitor no Arduino IDE para ver a saída do seu RX. Será semelhante a este:

canal 1: 728

canal 2: 729 canal 3: 703 canal 4: 726 canal 1: 1681 canal 2: 1639 canal 3: 1613 canal 4: 1676

Depois de ter uma ideia mais clara da faixa de saída de seu RX, escolha boas aproximações para hi e lo e altere as constantes de acordo. Em seguida, carregue o esboço para o Arduino novamente.

Etapa 7: calibrar o joystick emulado

Conecte o dispositivo ao seu computador e use a função de calibração do seu sistema operacional para calibrar o joystick emulado. Uma boa ferramenta para Linux é jstest-gtk.

Outras melhorias

  • Escreva um código sem bloqueio (consulte a Etapa 3)
  • Defina intervalos por canal, não globalmente (consulte a Etapa 6)

Leitura adicional

  • Redcon CM703
  • PPM

Recomendado: