Tartalomjegyzék:

R/C az USB -hídhoz: 7 lépés
R/C az USB -hídhoz: 7 lépés

Videó: R/C az USB -hídhoz: 7 lépés

Videó: R/C az USB -hídhoz: 7 lépés
Videó: Автомобильный генератор для генератора с самовозбуждением с использованием ДИОДА 2024, November
Anonim
R/C az USB -hídhoz
R/C az USB -hídhoz

A rádióvevőből érkező PPM jeleket joystick helyzetbe alakítja

Használja kedvenc játékait és repülési szimulátorait az R/C rádióadóval. Ez az Instructable egy kis bitekből származó Arduino -t és egy DSMX vevőt, valamint egy egyszerű kódrészletet használ az átalakításhoz.

Szükséged lesz

  • Erő
  • Arduino
  • USB kábelek
  • tűfejlécek
  • jumper huzal
  • egy rádióvevő PPM kimenettel.

1. lépés: Forrasztófej fejlécek az Arduino további I/O portjaihoz

Forrasztófej fejlécek az Arduino további I/O portjaihoz
Forrasztófej fejlécek az Arduino további I/O portjaihoz

A vevő tápellátásához (RX) a tűfejléceket hozzá kell adni az Arduino -hoz. Ez jelentősen megkönnyíti a Bit és az RX közötti huzalozást is. További információért lásd:

2. lépés: Adja hozzá az Arduino joystick könyvtárat az IDE -hez

Adja hozzá az Arduino joystick könyvtárat az IDE -hez
Adja hozzá az Arduino joystick könyvtárat az IDE -hez

A könyvtárat megtalálod a GitHubon, https://github.com/MHeironimus/ArduinoJoystickLib… Köszönöm, Matthew Heironimus, hogy megírtad.

Csak bizonyos Arduinos képes emulálni a HID -t, mint a joystick. Mivel a littleBits mikrovezérlő egy Arduino Leonardo, szívesen megy.

3. lépés: Villanja be a kódot az Arduino -ra

#include #define inputPin 16#define csatornák 4 #define lo 800 // állítsa be az RX kimenetét#define hi 1600 // állítsa be az RX kimenetét#definiálja a szűrőt 10int csatorna [csatornák]; int previousValue [csatornák]; 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, Szia); Joystick.setYAxisRange (íme, szia); Joystick.setThrottleRange (lo, szia); Joystick.setRudderRange (íme, szia); Joystick.begin (); Sorozat.kezdet (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 <= csatornák-1; i ++) {if ((csatorna > 2000) || (csatorna <500)) {csatorna = előzőValue ; } else {csatorna = (előzőValue +csatorna )/2; számláló ++; }} Joystick.setXAxis ([0] csatorna); Joystick.setYAxis (csatorna [1]); Joystick.setThrottle (csatorna [2]); Joystick.setRudder (csatorna [3]); } if (számláló> szűrő) {for (int i = 0; i <= channels-1; i ++) {Serial.print ("channel"); Sorozatnyomat (i+1); Serial.print (":"); Serial.println ( csatorna); previousValue = csatorna ; } számláló = 0; }}

Kérjük, vegye figyelembe, hogy az R/C jel és az emulált USB HID között áthidaló kód a legegyszerűbb formában jelenik meg. Az itt használt funkció - pulseIn - blokkoló funkció. Olvassa el itt és itt, hogyan lehet blokkolásmentes megközelítést alkalmazni megszakításokkal.

4. lépés: Végezze el a huzalozást

Végezze el a huzalozást
Végezze el a huzalozást
Végezze el a huzalozást
Végezze el a huzalozást

Csatlakoztassa a jumper vezetéket / DuPont kábeleket a bit és az RX közé. Ezeknek a kábeleknek a végén lévő csatlakozóknak nőnek kell lenniük. Csatlakoztatjuk a GND (kék), a VCC (barna) és a jel (narancssárga) jeleket az RX PPM portjáról az Arduino GND, VCC és d16 csatlakozóihoz.

5. lépés: Kötözze be a vevőt

Válassza le az Arduino -t az áramellátásról. Helyezze a kötőköteget az RX BIND jelű csatlakozóhelyére. Kapcsolja be a rádióadót, és kapcsolja kötési módba. Ezután kapcsolja be az Arduino áramellátását. A kötési folyamat sikeres volt, amikor a vevő LED -je kigyullad.

6. lépés: Állítsa be a kódot a körülményeihez

Az Arduino vázlat hi és lo konstansát módosítani kell, hogy tükrözze a használt vevő tényleges kimenetét.

#define lo 800

#define szia 1600

A PPM impulzuson belüli jelek ideális esetben 1000μs és 2000μs között mozognak. Az ebben az utasítható kimenetben használt RX nagyjából 800 és 1600 között van, és minden csatornán kissé eltér. A vevőkészülék hatótávolságának kiderítéséhez nyissa meg a soros monitort az Arduino IDE -ben, hogy megtekinthesse az RX kimenetét. Így fog kinézni:

1. csatorna: 728

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

Ha világosabb elképzelése van az RX kimenetek tartományáról, válasszon jó közelítéseket a hi és lo számára, és ennek megfelelően módosítsa az állandókat. Ezután töltse fel újra a vázlatot az Arduino -ba.

7. lépés: Kalibrálja az emulált joystickot

Csatlakoztassa az eszközt a számítógéphez, és használja az operációs rendszer kalibrációs funkcióját az emulált joystick kalibrálásához. Linuxra jó eszköz a jstest-gtk.

További fejlesztések

  • Írjon nem blokkoló kódot (lásd a 3. lépést)
  • Állítsa be a tartományokat csatornánként, ne globálisan (lásd a 6. lépést)

További irodalom

  • Redcon CM703
  • PPM

Ajánlott: