Table des matières:

Pont R/C vers USB : 7 étapes
Pont R/C vers USB : 7 étapes

Vidéo: Pont R/C vers USB : 7 étapes

Vidéo: Pont R/C vers USB : 7 étapes
Vidéo: Беслан. Помни / Beslan. Remember (english & español subs) 2024, Novembre
Anonim
Pont R/C vers USB
Pont R/C vers USB

Convertit les signaux PPM d'un récepteur radio en positions de joystick

Utilisez-le pour jouer à vos jeux et simulateurs de vol préférés avec votre émetteur radio R/C. Ce Instructable utilise un Arduino de littleBits et un récepteur DSMX ainsi qu'un simple extrait de code pour effectuer cette conversion.

Tu auras besoin de

  • Puissance
  • Arduino
  • Câbles USB
  • en-têtes de broche
  • cavalier
  • un récepteur radio avec sortie PPM.

Étape 1: souder les en-têtes des broches aux ports d'E/S supplémentaires de l'Arduino

Souder les en-têtes de broches aux ports d'E/S supplémentaires de l'Arduino
Souder les en-têtes de broches aux ports d'E/S supplémentaires de l'Arduino

Afin d'alimenter le récepteur (RX), des en-têtes de broche doivent être ajoutés à l'Arduino. Cela facilitera également le câblage entre le Bit et le RX. Voir https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit pour plus d'informations.

Étape 2: ajoutez la bibliothèque Arduino Joystick à votre IDE

Ajoutez la bibliothèque Arduino Joystick à votre IDE
Ajoutez la bibliothèque Arduino Joystick à votre IDE

Vous pouvez trouver la bibliothèque sur GitHub, https://github.com/MHeironimus/ArduinoJoystickLib… Merci, Matthew Heironimus, de l'avoir écrit.

Seuls certains Arduinos peuvent émuler un HID comme un joystick. Comme le microcontrôleur littleBits est un Arduino Leonardo dans l'âme, vous êtes prêt à partir.

Étape 3: Flashez le code sur l'Arduino

#include #define inputPin 16#define channels 4 #define lo 800 //ajustement à la sortie de RX#define hi 1600 //ajustement à la sortie de RX#define filter 10int channel[channels]; int valeur précédente[canaux]; int counter = 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, salut); Joystick.setYAxisRange(lo, salut); Joystick.setThrottleRange(bas, salut); Joystick.setRudderRange(lo, salut); Joystick.begin(); Serial.begin(9600); pinMode(inputPin, INPUT); }void loop(){ if(pulseIn(inputPin, HIGH) > 3000) { for(int i = 0; i <= channels-1; i++) { channel=pulseIn(inputPin, HIGH); } for(int i = 0; i <= channels-1; i++) { if((channel > 2000) || (channel <500)) { channel = previousValue; } else { channel = (previousValue+channel)/2; compteur++; } } Joystick.setXAxis(canal[0]); Joystick.setYAxis(canal[1]); Joystick.setThrottle(canal[2]); Joystick.setRudder(canal[3]); } if(compteur > filtre) { for(int i = 0; i <= canaux-1; i++) { Serial.print("canal "); Serial.print(i+1); Serial.print(": "); Serial.println(canal); Valeur précédente=canal; } compteur=0; } }

Veuillez noter que le code qui fait le pont entre le signal R/C et le HID USB émulé se présente sous sa forme la plus simple. La fonction utilisée ici – pulseIn – est une fonction de blocage. Lisez ici et ici comment implémenter une approche non bloquante à l'aide d'interruptions.

Étape 4: faire le câblage

Faire le câblage
Faire le câblage
Faire le câblage
Faire le câblage

Connectez le fil de liaison / les câbles DuPont entre le Bit et le RX. Les connecteurs à l'extrémité de ces câbles doivent être femelles. Nous connectons GND (bleu), VCC (marron) et le signal (orange) du port PPM du RX à GND, VCC et d16 sur l'Arduino.

Étape 5: Liez le récepteur

Débranchez l'Arduino de l'alimentation. Mettez le harnais de fixation dans l'emplacement du connecteur marqué BIND sur le RX. Allumez votre émetteur radio et passez-le en mode affectation. Ensuite, mettez l'Arduino sous tension. Le processus de liaison a réussi lorsque la LED du récepteur s'allume.

Étape 6: Adaptez le code à votre situation

Les constantes hi et lo dans l'esquisse Arduino doivent être modifiées pour refléter la sortie réelle du récepteur que vous utilisez.

#définir lo 800

#définir salut 1600

Les signaux à l'intérieur de l'impulsion PPM vont idéalement de 1000μs à 2000μs. Le RX utilisé dans ce Instructable produit des valeurs approximativement entre 800 et 1600 et est légèrement différent sur chaque canal. Pour connaître la portée de votre récepteur, ouvrez le moniteur série dans l'IDE Arduino pour voir la sortie de votre RX. Cela ressemblera à ceci:

canal 1: 728

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

Une fois que vous avez une idée plus précise de la plage de sortie de votre RX, choisissez de bonnes approximations pour hi et lo et modifiez les constantes en conséquence. Ensuite, téléchargez à nouveau le croquis sur l'Arduino.

Étape 7: Calibrer le joystick émulé

Connectez l'appareil à votre ordinateur et utilisez la fonction de calibrage de votre système d'exploitation pour calibrer le joystick émulé. Un bon outil pour Linux est jstest-gtk.

Autres améliorations

  • Écrivez du code non bloquant (voir étape 3)
  • Définir des plages par canal, pas globalement (voir étape 6)

Lectures complémentaires

  • Redcon CM703
  • PPM

Conseillé: