Sadržaj:

R/C na USB most: 7 koraka
R/C na USB most: 7 koraka

Video: R/C na USB most: 7 koraka

Video: R/C na USB most: 7 koraka
Video: Морозильная камера не включается (замена пускового реле) 2024, Juli
Anonim
R/C na USB most
R/C na USB most

Pretvara PPM signale sa radio prijemnika u položaje džojstika

Koristite ga za igranje vaših omiljenih igara i simulatora letenja s vašim R/C radio predajnikom. Ovaj Instructable koristi Arduino iz littleBits -a i DSMX prijemnik plus jednostavan isječak koda za ovu konverziju.

Trebat će vam

  • Snaga
  • Arduino
  • USB kablovi
  • pin headers
  • kratkospojnik
  • radio prijemnik sa PPM izlazom.

Korak 1: Lemljenje pin zaglavlja na dodatne Arduino I/O portove

Lemljenje zaglavlja pinova na dodatne Arduino I/O portove
Lemljenje zaglavlja pinova na dodatne Arduino I/O portove

Za napajanje prijemnika (RX), Arduinu je potrebno dodati pin zaglavlja. Ovo će također znatno olakšati ožičenje između Bit -a i RX -a. Za više informacija pogledajte

Korak 2: Dodajte biblioteku džojstika Arduino u svoj IDE

Dodajte biblioteku Arduino Joystick u svoj IDE
Dodajte biblioteku Arduino Joystick u svoj IDE

Biblioteku možete pronaći na GitHub -u, https://github.com/MHeironimus/ArduinoJoystickLib… Hvala vam, Matthew Heironimus, što ste je napisali.

Samo određeni Arduinos može oponašati HID poput džojstika. Kako je mali upravljač littleBits Arduino Leonardo, u srcu ste spremni.

Korak 3: Prenesite kôd na Arduino

#include #define inputPin 16#definirati kanale 4 #define lo 800 // prilagoditi izlazu RX#definirati hi 1600 // prilagoditi izlazu RX#definirati filter 10int kanal [kanali]; int previousValue [kanali]; int counter = 0; Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, true, true, false, false, false, false, true, false, false, false); void setup () {Joystick.setXAxisRange, zdravo); Joystick.setYAxisRange (lo, zdravo); Joystick.setThrottleRange (lo, hi); Joystick.setRudderRange (lo, zdravo); Joystick.begin (); Serial.begin (9600); pinMode (inputPin, INPUT); } void loop () {if (pulseIn (inputPin, HIGH)> 3000) {for (int i = 0; i <= channel-1; i ++) {channel = pulseIn (inputPin, HIGH); } za (int i = 0; i <= kanali-1; i ++) {ako ((kanal > 2000) || (kanal <500)) {kanal = prethodnaVrednost ; } else {kanal = (prethodna vrijednost +kanal )/2; counter ++; }} Joystick.setXAxis (kanal [0]); Joystick.setYAxis (kanal [1]); Joystick.setThrottle (kanal [2]); Joystick.setRudder (kanal [3]); } if (brojač> filter) {za (int i = 0; i <= kanali-1; i ++) {Serial.print ("kanal"); Serial.print (i+1); Serial.print (":"); Serial.println (kanal ); previousValue = kanal ; } brojač = 0; }}

Imajte na umu da kod koji premošćuje R/C signal i emulirani USB HID dolazi u svom najjednostavnijem obliku. Ovdje korištena funkcija - pulseIn - je funkcija blokiranja. Ovdje i ovdje pročitajte kako primijeniti pristup koji ne blokira pomoću prekida.

Korak 4: Ožičite

Uradite ožičenje
Uradite ožičenje
Uradite ožičenje
Uradite ožičenje

Spojite kratkospojnik / DuPont kabele između bita i RX -a. Priključci na kraju ovih kabela moraju biti ženski. Povezujemo GND (plavo), VCC (smeđe) i signal (narančasto) s PPM porta RX -a na GND, VCC i d16 na Arduinu.

Korak 5: Vežite prijemnik

Isključite Arduino iz napajanja. Umetnite kabelski svežanj u mjesto konektora označeno BIND na RX -u. Uključite radio predajnik i prebacite ga u način vezivanja. Zatim priključite napajanje na Arduino. Proces vezivanja je bio uspješan kada se LED u prijemniku uključi.

Korak 6: Prilagodite kôd svojim okolnostima

Konstante hi i lo u Arduino skici potrebno je promijeniti tako da odražavaju stvarni izlaz prijemnika koji koristite.

#define lo 800

#define hi 1600

Signali unutar PPM impulsa idealno se kreću od 1000μs do 2000μs. RX koji se koristi u ovom Instructable daje vrijednosti otprilike između 800 i 1600 i malo se razlikuje na svakom kanalu. Da biste saznali koji raspon ima vaš prijemnik, otvorite Serial Monitor u Arduino IDE -u da vidite izlaz vašeg RX -a. To će izgledati ovako:

kanal 1: 728

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

Jednom kada imate jasniju predstavu o rasponu koji emituje vaš RX, odaberite dobre aproksimacije za hi i lo i prema tome promijenite konstante. Zatim ponovo prenesite skicu na Arduino.

Korak 7: Kalibrirajte emuliranu joystick

Priključite uređaj na računar i koristite funkciju kalibracije vašeg OS za kalibraciju emuliranog džojstika. Dobar alat za Linux je jstest-gtk.

Daljnja poboljšanja

  • Napišite kôd koji ne blokira (pogledajte korak 3)
  • Postavite raspone po kanalu, ne globalno (pogledajte korak 6)

Dalje čitanje

  • Redcon CM703
  • PPM

Preporučuje se: