Sadržaj:
Video: R/C na USB most: 7 koraka
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Pretvara PPM signale s radijskog prijemnika u položaje upravljačke palice
Koristite ga za igranje omiljenih igara i simulatora letenja s vašim R/C radijskim odašiljačem. Ovaj Instructable koristi Arduino iz littleBits -a i DSMX prijemnik te jednostavan isječak koda za ovu pretvorbu.
Trebat će vam
- Vlast
- Arduino
- USB kabeli
- pin zaglavlja
- kratkospojnik
- radio prijemnik s PPM izlazom.
Korak 1: Lemljenje pin zaglavlja na dodatne Arduino I/O portove
Kako bi se napajao prijemnik (RX), potrebno je Arduinu dodati pin zaglavlja. To će također uvelike olakšati ožičenje između Bit -a i RX -a. Za više informacija pogledajte
Korak 2: Dodajte knjižnicu joystick Arduino 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 joysticka. Kako je mali upravljač LittleBits Arduino Leonardo u srcu, dobro je otići.
Korak 3: Prenesite kôd na Arduino
#include #define inputPin 16#definirati kanale 4 #define lo 800 // prilagoditi izlazu RX -a#definirati hi 1600 // prilagoditi izlazu RX -a#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, true, false, false, false); void setup () {Joystick.setXAxisRange, bok); Joystick.setYAxisRange (gle, zdravo); Joystick.setThrottleRange (lo, hi); Joystick.setRudderRange (gle, 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 = prethodnaVrijednost ; } else {kanal = (prethodnaVrijednost +kanal )/2; brojač ++; }} Joystick.setXAxis (kanal [0]); Joystick.setYAxis (kanal [1]); Joystick.setThrottle (kanal [2]); Joystick.setRudder (kanal [3]); } if (brojač> filter) {for (int i = 0; i <= kanali-1; i ++) {Serial.print ("kanal"); Serijski.ispis (i+1); Serial.print (":"); Serial.println (kanal ); previousValue = kanal ; } brojač = 0; }}
Imajte na umu da kôd koji premošćuje signal R/C 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
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 priključka RX -a na GND, VCC i d16 na Arduinu.
Korak 5: Vežite prijemnik
Isključite Arduino iz napajanja. Postavite vezni pojas na mjesto priključka označeno BIND na RX -u. Uključite radio odašiljač i prebacite ga u način vezivanja. Zatim priključite napajanje na Arduino. Postupak vezanja bio je uspješan kada se upali LED dioda u prijemniku.
Korak 6: Prilagodite kôd svojim okolnostima
Konstante hi i lo u Arduino skici potrebno je izmijeniti kako bi odražavale stvarni izlaz prijemnika koji koristite.
#definirajte 800
#definirajte 1600
Signali unutar PPM impulsa idealno se kreću od 1000μs do 2000μs. RX koji se koristi u ovom Instructableu 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. Izgledat će slično 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
Nakon što ste dobili jasniju predstavu o rasponu koji emitira vaš RX, odaberite dobre aproksimacije za hi i lo i prema tome promijenite konstante. Zatim ponovno prenesite skicu na Arduino.
Korak 7: Kalibrirajte emuliranu joystick
Priključite uređaj na računalo i upotrijebite funkciju kalibracije vašeg OS -a za kalibriranje emulirane upravljačke palice. 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)
Daljnje čitanje
- Redcon CM703
- PPM