Innholdsfortegnelse:

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

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

Video: R/C til USB -bro: 7 trinn
Video: Стоит БРАТЬ ВСЕМ?? И чем хорош радиоприемник ATS25X1 подробный обзор 2024, November
Anonim
R/C til USB -bro
R/C til USB -bro

Konverterer PPM -signaler fra en radiomottaker til joystick -posisjoner

Bruk den til å spille dine favorittspill og flysimulatorer med din R/C radiosender. Denne instruksen bruker en Arduino fra littleBits og en DSMX -mottaker pluss en enkel kodebit for å gjøre denne konverteringen.

Du vil trenge

  • Makt
  • Arduino
  • USB -kabler
  • pinnehoder
  • jumper wire
  • en radiomottaker med PPM -utgang.

Trinn 1: Loddepinnehoder til Arduino's tilleggs I/O -porter

Loddepinnehoder til Arduino's tilleggs I/O -porter
Loddepinnehoder til Arduino's tilleggs I/O -porter

For å drive mottakeren (RX) må pinnehoder legges til Arduino. Dette vil også gjøre ledningen mellom biten og RX mye lettere. Se https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit for mer informasjon.

Trinn 2: Legg til Arduino Joystick Library i IDE -en din

Legg til Arduino Joystick -biblioteket i IDE -en din
Legg til Arduino Joystick -biblioteket i IDE -en din

Du finner biblioteket på GitHub, https://github.com/MHeironimus/ArduinoJoystickLib… Takk, Matthew Heironimus, for at du skrev det.

Bare visse Arduinos kan etterligne et HID som en joystick. Siden littleBits -mikrokontrolleren er en Arduino Leonardo i hjertet, er du god til å gå.

Trinn 3: Flash koden til Arduino

#include #define inputPin 16#definere kanaler 4 #define lo 800 // justere til utgang fra RX#definere hi 1600 // justere til utgang fra 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, hei); Joystick.setYAxisRange (lo, hei); Joystick.setThrottleRange (lo, hei); Joystick.setRudderRange (lo, hei); 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 ; } annet {kanal = (forrige verdi +kanal )/2; teller ++; }} Joystick.setXAxis (kanal [0]); Joystick.setYAxis (kanal [1]); Joystick.setThrottle (kanal [2]); Joystick.setRudder (kanal [3]); } if (teller> filter) {for (int i = 0; i <= channel-1; i ++) {Serial.print ("channel"); Serial.print (i+1); Serial.print (":"); Serial.println (kanal ); forrige verdi = kanal ; } teller = 0; }}

Vær oppmerksom på at koden som bygger bro mellom R/C -signalet og det emulerte USB HID kommer i sin enkleste form. Funksjonen som brukes her - pulseIn - er en blokkeringsfunksjon. Les her, og her, hvordan du implementerer en ikke-blokkerende tilnærming ved hjelp av avbrudd.

Trinn 4: Gjør ledningen

Gjør ledningen
Gjør ledningen
Gjør ledningen
Gjør ledningen

Koble jumper wire / DuPont kabler mellom Bit og RX. Kontaktene på enden av disse kablene må være hunn. Vi kobler GND (blå), VCC (brun) og signal (oransje) fra PPM -porten på RX til GND, VCC og d16 på Arduino.

Trinn 5: Bind mottakeren

Koble Arduino fra strømmen. Sett bindeselen inn i kontaktplassen merket BIND på RX. Slå på radiosenderen og sett den i bindemodus. Påfør deretter strøm til Arduino. Innbindingsprosessen var vellykket da LED -en i mottakeren slås på.

Trinn 6: Tilpass koden til dine omstendigheter

Konstantene hei og lo i Arduino -skissen må endres for å gjenspeile den faktiske utgangen til mottakeren du bruker.

#define lo 800

#define hei 1600

Signalene inne i PPM -pulsen varierer ideelt fra 1000μs til 2000μs. RX -en som brukes i denne instruerbare utgangen, verdier omtrent mellom 800 og 1600 og er litt forskjellig på hver kanal. For å finne ut hvilket område mottakeren har, åpner du Serial Monitor i Arduino IDE for å se utgangen fra RX -en. Det vil se ut som 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 ide om rekkevidden som RX sender ut, velger du gode tilnærminger for hei og lo og endrer konstantene deretter. Last deretter opp skissen til Arduino igjen.

Trinn 7: Kalibrer den emulerte joysticken

Koble enheten til datamaskinen din og bruk kalibreringsfunksjonen til operativsystemet til å kalibrere den emulerte joysticken. Et godt verktøy for Linux er jstest-gtk.

Ytterligere forbedringer

  • Skriv ikke-blokkerende kode (se trinn 3)
  • Angi områder per kanal, ikke globalt (se trinn 6)

Videre lesning

  • Redcon CM703
  • PPM

Anbefalt: