Tabla de contenido:

Puente R / C a USB: 7 pasos
Puente R / C a USB: 7 pasos

Video: Puente R / C a USB: 7 pasos

Video: Puente R / C a USB: 7 pasos
Video: Ahorra dinero con este truco si no te funciona el conector de carga 2024, Mes de julio
Anonim
Puente R / C a USB
Puente R / C a USB

Convierte señales PPM de un receptor de radio en posiciones de joystick

Úselo para jugar sus juegos favoritos y simuladores de vuelo con su transmisor de radio R / C. Este Instructable utiliza un Arduino de littleBits y un receptor DSMX más un fragmento de código simple para realizar esta conversión.

Necesitará

  • Poder
  • Arduino
  • Cables USB
  • encabezados de pin
  • cable pasa corriente
  • un receptor de radio con salida PPM.

Paso 1: Suelde los encabezados de los pines a los puertos de E / S adicionales de Arduino

Suelde los encabezados de los pines a los puertos de E / S adicionales de Arduino
Suelde los encabezados de los pines a los puertos de E / S adicionales de Arduino

Para alimentar el receptor (RX), se deben agregar encabezados de pines al Arduino. Esto también facilitará mucho el cableado entre el Bit y el RX. Consulte https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit para obtener más información.

Paso 2: agregue la biblioteca de joystick Arduino a su IDE

Agregue la biblioteca de joystick Arduino a su IDE
Agregue la biblioteca de joystick Arduino a su IDE

Puede encontrar la biblioteca en GitHub, https://github.com/MHeironimus/ArduinoJoystickLib … Gracias, Matthew Heironimus, por escribirlo.

Solo ciertos Arduinos pueden emular un HID como un joystick. Como el microcontrolador littleBits es un Arduino Leonardo en el fondo, está listo para comenzar.

Paso 3: Actualice el código en Arduino

#include #define inputPin 16 # define canales 4 #define lo 800 // ajusta a la salida de RX # define hi 1600 // ajusta a la salida de RX # define filter 10int channel [canales]; int previousValue [canales]; int contador = 0; Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, true, true, false, false, false, false, true, true, false, false, false); void setup () {Joystick.setXAxisRange (lo, Hola); Joystick.setYAxisRange (lo, hola); Joystick.setThrottleRange (lo, hola); Joystick.setRudderRange (lo, hola); Joystick.begin (); Serial.begin (9600); pinMode (inputPin, INPUT); } bucle vacío () {if (pulseIn (inputPin, HIGH)> 3000) {for (int i = 0; i <= canales-1; i ++) {canal = pulseIn (inputPin, HIGH); } for (int i = 0; i <= canales-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) {for (int i = 0; i <= canales-1; i ++) {Serial.print ("canal"); Serial.print (i + 1); Serial.print (":"); Serial.println (canal ); previousValue = canal ; } contador = 0; }}

Tenga en cuenta que el código que une la señal R / C y el USB HID emulado viene en su forma más simple. La función utilizada aquí, pulseIn, es una función de bloqueo. Lea aquí, y aquí, cómo implementar un enfoque sin bloqueo mediante interrupciones.

Paso 4: Realice el cableado

Hacer el cableado
Hacer el cableado
Hacer el cableado
Hacer el cableado

Conecte el cable puente / cables DuPont entre el Bit y el RX. Los conectores al final de estos cables deben ser hembra. Conectamos GND (azul), VCC (marrón) y la señal (naranja) del puerto PPM del RX a GND, VCC y d16 en el Arduino.

Paso 5: vincular el receptor

Desconecte el Arduino de la energía. Coloque el arnés de unión en la ubicación del conector marcada BIND en el RX. Encienda su transmisor de radio y póngalo en modo de enlace. Luego aplique energía al Arduino. El proceso de vinculación se realizó correctamente cuando se enciende el LED del receptor.

Paso 6: ajuste el código a sus circunstancias

Las constantes hi y lo en el boceto de Arduino deben modificarse para reflejar la salida real del receptor que está utilizando.

#define lo 800

#define hola 1600

Las señales dentro del pulso PPM idealmente oscilan entre 1000μs y 2000μs. El RX utilizado en estas salidas Instructable tiene valores aproximadamente entre 800 y 1600 y es ligeramente diferente en cada canal. Para saber qué rango tiene su receptor, abra el Monitor serial en el IDE de Arduino para ver la salida de su RX. Se verá similar a esto:

canal 1: 728

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

Una vez que tenga una idea más clara del rango que emite su RX, elija buenas aproximaciones para hi y lo y modifique las constantes en consecuencia. Luego, cargue el boceto en el Arduino nuevamente.

Paso 7: calibre el joystick emulado

Conecte el dispositivo a su computadora y use la función de calibración de su sistema operativo para calibrar el joystick emulado. Una buena herramienta para Linux es jstest-gtk.

Más mejoras

  • Escriba un código sin bloqueo (consulte el paso 3)
  • Establezca rangos por canal, no globalmente (consulte el Paso 6)

Otras lecturas

  • Redcon CM703
  • PPM

Recomendado: