Taula de continguts:

Pont R / C a USB: 7 passos
Pont R / C a USB: 7 passos

Vídeo: Pont R / C a USB: 7 passos

Vídeo: Pont R / C a USB: 7 passos
Vídeo: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, De novembre
Anonim
Pont R / C a USB
Pont R / C a USB

Converteix els senyals PPM d’un receptor de ràdio en posicions del joystick

Utilitzeu-lo per jugar als vostres jocs i simuladors de vol favorits amb el vostre transmissor de ràdio R / C. Aquest Instructable utilitza un Arduino de littleBits i un receptor DSMX més un simple fragment de codi per fer aquesta conversió.

Necessitarà

  • Potència
  • Arduino
  • Cables USB
  • capçaleres de pins
  • cable de pont
  • un receptor de ràdio amb sortida PPM.

Pas 1: soldar les capçaleres dels pins als ports d'E / S addicionals d'Arduino

Capçaleres de pin de soldadura als ports d'E / S addicionals d'Arduino
Capçaleres de pin de soldadura als ports d'E / S addicionals d'Arduino

Per alimentar el receptor (RX), cal afegir capçaleres de pin a l'Arduino. Això també facilitarà molt el cablejat entre el Bit i el RX. Consulteu https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit per obtenir més informació.

Pas 2: afegiu la biblioteca del joystick Arduino al vostre IDE

Afegiu la biblioteca del joystick Arduino al vostre IDE
Afegiu la biblioteca del joystick Arduino al vostre IDE

Podeu trobar la biblioteca a GitHub, https://github.com/MHeironimus/ArduinoJoystickLib… Gràcies, Matthew Heironimus, per escriure-la.

Només certs Arduinos poden emular un HID com un joystick. Com que el microcontrolador littleBits és un Arduino Leonardo de fons, és bo anar-hi.

Pas 3: introduïu el codi a l'arduino

#include #define inputPin 16 # define channels 4 #define lo 800 // ajustar a la sortida de RX # define hi 1600 // ajustar a la sortida de RX # definir filtre 10int canal [canals]; intValor anterior [canals]; 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 (he, hola); Joystick.setYAxisRange (he, hi); Joystick.setThrottleRange (he, hi); Joystick.setRudderRange (he, hi); 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 {canal = (anteriorValor + canal ) / 2; comptador ++; }} Joystick.setXAxis (canal [0]); Joystick.setYAxis (canal [1]); Joystick.setThrottle (canal [2]); Joystick.setRudder (canal [3]); } if (comptador> filtre) {for (int i = 0; i <= channels-1; i ++) {Serial.print ("channel"); Serial.print (i + 1); Serial.print (":"); Serial.println (canal ); anteriorValor = canal ; } comptador = 0; }}

Tingueu en compte que el codi que connecta entre el senyal R / C i l’HID USB emulat es presenta en la seva forma més senzilla. La funció que s'utilitza aquí - pulseIn - és una funció de bloqueig. Llegiu aquí i aquí com implementar un enfocament que no bloqueja mitjançant interrupcions.

Pas 4: Feu el cablejat

Feu el cablejat
Feu el cablejat
Feu el cablejat
Feu el cablejat

Connecteu els cables jumper / DuPont entre el Bit i el RX. Els connectors al final d’aquests cables han de ser femelles. Connectem GND (blau), VCC (marró) i senyal (taronja) des del port PPM del RX a GND, VCC i d16 a l’Arduino.

Pas 5: enllaceu el receptor

Desconnecteu l'Arduino de l'alimentació. Col·loqueu l’arnès d’enquadernació a la ubicació del connector marcada BIND al RX. Enceneu el transmissor de ràdio i canvieu-lo al mode de vinculació. A continuació, apliqueu energia a l'Arduino. El procés de vinculació va tenir èxit quan s’encén el LED del receptor.

Pas 6: ajusteu el codi a les vostres circumstàncies

Les constants hi i lo de l'esbós d'Arduino s'han de modificar per reflectir la sortida real del receptor que utilitzeu.

#define lo 800

#define hi 1600

Els senyals a l’interior del pols PPM van idealment de 1000μs a 2000μs. El RX utilitzat en aquesta sortida instructable valors aproximadament entre 800 i 1600 i és lleugerament diferent a cada canal. Per esbrinar quin rang té el vostre receptor, obriu el monitor de sèrie a l'IDE Arduino per veure la sortida del vostre RX. Serà similar a això:

canal 1: 728

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

Un cop tingueu una idea més clara del rang que emet el vostre RX, trieu bones aproximacions per hi i lo i modifiqueu les constants en conseqüència. Després torneu a penjar l'esbós a l'Arduino.

Pas 7: calibreu el joystick emulat

Connecteu el dispositiu a l’ordinador i utilitzeu la funció de calibratge del sistema operatiu per calibrar el joystick emulat. Una bona eina per a Linux és jstest-gtk.

Més millores

  • Escriviu codi que no bloquegi (vegeu el pas 3)
  • Definiu intervals per canal, no de manera global (vegeu el pas 6)

Per llegir més

  • Redcon CM703
  • PPM

Recomanat: