Indholdsfortegnelse:

R/C til USB -bro: 7 trin
R/C til USB -bro: 7 trin

Video: R/C til USB -bro: 7 trin

Video: R/C til USB -bro: 7 trin
Video: Автомобильный генератор для генератора с самовозбуждением с использованием ДИОДА 2024, Juli
Anonim
R/C til USB Bridge
R/C til USB Bridge

Konverterer PPM -signaler fra en radiomodtager til joystick -positioner

Brug den til at spille dine yndlingsspil og flyvesimulatorer med din R/C -radiosender. Denne instruktør bruger en Arduino fra littleBits og en DSMX -modtager plus et simpelt kodestykke til at lave denne konvertering.

Du får brug for

  • Strøm
  • Arduino
  • USB -kabler
  • pin -overskrifter
  • jumper wire
  • en radiomodtager med PPM -udgang.

Trin 1: Loddepindehoveder til Arduino's ekstra I/O -porte

Loddepindehoveder til Arduino's ekstra I/O -porte
Loddepindehoveder til Arduino's ekstra I/O -porte

For at forsyne modtageren (RX) skal pinheadere tilføjes til Arduino. Dette vil også gøre ledningerne mellem bit og RX meget lettere. Se https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit for mere information.

Trin 2: Føj Arduino Joystick -biblioteket til din IDE

Føj Arduino Joystick -biblioteket til din IDE
Føj Arduino Joystick -biblioteket til din IDE

Du kan finde biblioteket på GitHub, https://github.com/MHeironimus/ArduinoJoystickLib… Tak, Matthew Heironimus, fordi du skrev det.

Kun visse Arduinos kan efterligne et HID som et joystick. Da littleBits -mikrokontrolleren er en Arduino Leonardo i hjertet, er du god til at gå.

Trin 3: Flash koden på Arduino

#include #define inputPin 16#definere kanaler 4 #define lo 800 // justere til output af RX#definere hi 1600 // justere til output af RX#definere filter 10int kanal [kanaler]; int previousValue [kanaler]; 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, Hej); Joystick.setYAxisRange (lo, hej); Joystick.setThrottleRange (lo, hej); Joystick.setRudderRange (lo, hej); 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); } for (int i = 0; i <= channel-1; i ++) {if ((channel > 2000) || (channel <500)) {channel = previousValue ; } ellers {kanal = (foregående værdi +kanal )/2; tæller ++; }} Joystick.setXAxis (kanal [0]); Joystick.setYAxis (kanal [1]); Joystick.setThrottle (kanal [2]); Joystick.setRudder (kanal [3]); } hvis (tæller> filter) {for (int i = 0; i <= channel-1; i ++) {Serial.print ("kanal"); Serial.print (i+1); Serial.print (":"); Serial.println (kanal ); foregående værdi = kanal ; } tæller = 0; }}

Vær opmærksom på, at koden, der bygger bro mellem R/C -signalet og det emulerede USB HID, kommer i sin enkleste form. Funktionen, der bruges her - pulseIn - er en blokerende funktion. Læs her, og her, hvordan man implementerer en ikke-blokerende tilgang ved hjælp af afbrydelser.

Trin 4: Lav ledningerne

Lav ledningerne
Lav ledningerne
Lav ledningerne
Lav ledningerne

Tilslut jumper wire / DuPont kabler mellem bit og RX. Stikkene for enden af disse kabler skal være hun. Vi forbinder GND (blå), VCC (brun) og signal (orange) fra PPM -porten på RX til GND, VCC og d16 på Arduino.

Trin 5: Bind modtageren

Afbryd Arduino fra strømmen. Sæt bindingsselen ind i stikplaceringen markeret BIND på RX. Tænd din radiosender, og skift den til bindemodus. Påfør derefter strøm til Arduino. Indbindingsprocessen lykkedes, da LED'en i modtageren tændes.

Trin 6: Juster koden efter dine omstændigheder

Konstanterne hi and lo i Arduino -skitsen skal ændres for at afspejle det faktiske output fra den modtager, du bruger.

#define lo 800

#define hej 1600

Signalerne inde i PPM -pulsen spænder ideelt fra 1000μs til 2000μs. RX'en, der bruges i denne instruerbare udgang, værdier omtrent mellem 800 og 1600 og er lidt forskellig på hver kanal. For at finde ud af, hvilket område din modtager har, skal du åbne Serial Monitor i Arduino IDE for at se output fra din RX. Det kommer til at ligne dette:

kanal 1: 728

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

Når du har en klarere idé om det område, som din RX sender, skal du vælge gode tilnærmelser til hi og lo og ændre konstanterne i overensstemmelse hermed. Upload derefter skitsen til Arduino igen.

Trin 7: Kalibrer det emulerede joystick

Tilslut enheden til din computer, og brug kalibreringsfunktionen i dit operativsystem til at kalibrere det emulerede joystick. Et godt værktøj til Linux er jstest-gtk.

Yderligere forbedringer

  • Skriv ikke-blokerende kode (se trin 3)
  • Angiv områder pr. Kanal, ikke globalt (se trin 6)

Yderligere læsning

  • Redcon CM703
  • PPM

Anbefalede: