Talaan ng mga Nilalaman:

R / C sa USB Bridge: 7 Mga Hakbang
R / C sa USB Bridge: 7 Mga Hakbang

Video: R / C sa USB Bridge: 7 Mga Hakbang

Video: R / C sa USB Bridge: 7 Mga Hakbang
Video: Ako Naman Muna - Angela Ken | Full Song (Lyrics Video) 2024, Nobyembre
Anonim
R / C sa USB Bridge
R / C sa USB Bridge

Binabago ang mga signal ng PPM mula sa isang radio receiver sa mga posisyon ng joystick

Gamitin ito upang i-play ang iyong mga paboritong laro at flight simulator sa iyong R / C radio transmitter. Gumagamit ang Instructable na ito ng isang Arduino mula sa littleBits at isang tatanggap ng DSMX kasama ang isang simpleng snippet ng code upang magawa ang conversion na ito.

Kakailanganin mong

  • Lakas
  • Arduino
  • Mga USB cable
  • mga header ng pin
  • jumper wire
  • isang radio receiver na may output ng PPM.

Hakbang 1: Mga Solder Pin Header sa Karagdagang I / O Ports ng Arduino

Mga Solder Pin Header sa Karagdagang I / O Ports ng Arduino
Mga Solder Pin Header sa Karagdagang I / O Ports ng Arduino

Upang mapagana ang receiver (RX), ang mga pin header ay kailangang idagdag sa Arduino. Gagawin din nitong mas madali ang mga kable sa pagitan ng Bit at ng RX. Tingnan ang https://discuss.l Littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit para sa karagdagang impormasyon.

Hakbang 2: Idagdag ang Arduino Joystick Library sa Iyong IDE

Idagdag ang Arduino Joystick Library sa Iyong IDE
Idagdag ang Arduino Joystick Library sa Iyong IDE

Mahahanap mo ang silid-aklatan sa GitHub, https://github.com/MHeironimus/ArduinoJoystickLib… Salamat, Matthew Heironimus, sa pagsulat nito.

Ang ilang mga Arduino lamang ang maaaring tularan ang isang HID tulad ng isang joystick. Tulad ng littleBits microcontroller ay isang Arduino Leonardo sa puso mabuti kang puntahan.

Hakbang 3: I-flash ang Code Sa Arduino

#include #define inputPin 16 # tukuyin ang mga channel 4 # tukuyin ang lo 800 // ayusin sa output ng RX # tukuyin ang hi 1600 // ayusin sa output ng RX # tukuyin ang filter na 10int channel [mga channel]; int nakaraangValue [mga channel]; 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, hi); Joystick.setYAxisRange (lo, hi); Joystick.setThrottleRange (lo, hi); Joystick.setRudderRange (lo, hi); Joystick.begin (); Serial.begin (9600); pinMode (inputPin, INPUT); } void loop () {if (pulseIn (inputPin, HIGH)> 3000) {for (int i = 0; i <= channels-1; i ++) {channel = pulseIn (inputPin, HIGH); } para sa (int i = 0; i <= channels-1; i ++) {if ((channel > 2000) || (channel <500)) {channel = nakaraangValue ; } iba pa {channel = (nakaraangValue + channel ) / 2; counter ++; }} Joystick.setXAxis (channel [0]); Joystick.setYAxis (channel [1]); Joystick.setThrottle (channel [2]); Joystick.setRudder (channel [3]); } kung (counter> filter) {para sa (int i = 0; i <= channels-1; i ++) {Serial.print ("channel"); Serial.print (i + 1); Serial.print (":"); Serial.println (channel ); nakaraangValue = channel ; } counter = 0; }}

Mangyaring magkaroon ng kamalayan na ang code kung aling mga tulay sa pagitan ng R / C signal at ang tinulad na USB HID ay dumating sa pinakasimpleng form nito. Ang pagpapaandar na ginamit dito - pulseIn - ay isang pagpapaandar sa pag-andar. Basahin dito, at dito, kung paano ipatupad ang isang hindi nakaharang na diskarte gamit ang mga pagkagambala.

Hakbang 4: Gawin ang Mga Kable

Gawin ang Kable
Gawin ang Kable
Gawin ang Kable
Gawin ang Kable

Ikonekta ang mga jumper wire / DuPont cable sa pagitan ng Bit at ng RX. Ang mga konektor sa dulo ng mga kable na ito ay kailangang babae. Ikonekta namin ang GND (asul), VCC (kayumanggi) at signal (orange) mula sa port ng PPM ng RX sa GND, VCC at d16 sa Arduino.

Hakbang 5: Bind ang Receiver

Idiskonekta ang Arduino mula sa kapangyarihan. Ilagay ang binding harness sa lokasyon ng konektor na minarkahang BIND sa RX. I-on ang iyong radio transmitter at ilipat ito sa bind mode. Susunod na mag-apply ng lakas sa Arduino. Ang proseso ng bind ay matagumpay kapag ang LED sa receiver ay nakabukas.

Hakbang 6: Ayusin ang Code sa Iyong Mga Kaganapan

Ang mga nagpapatuloy na hi at lo sa Arduino sketch ay kailangang mabago upang maipakita ang aktwal na output ng iyong ginagamit na tatanggap.

# tukuyin ang 800

# tukuyin hi 1600

Ang mga signal sa loob ng pulso ng PPM ay may perpektong saklaw mula sa 1000μs hanggang 2000μs. Ang RX na ginamit sa Instructable output na ito ay humigit-kumulang na halaga sa pagitan ng 800 at 1600 at bahagyang naiiba sa bawat channel. Upang malaman kung aling saklaw ang mayroon ang iyong tatanggap, buksan ang Serial Monitor sa Arduino IDE upang makita ang output ng iyong RX. Magiging katulad ito:

channel 1: 728

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

Kapag mayroon kang isang mas malinaw na ideya ng saklaw na kung saan ang iyong RX outputs, pumili ng mahusay na mga approximations para sa hi at lo at baguhin ang mga pare-pareho nang naaayon. Pagkatapos i-upload muli ang sketch sa Arduino.

Hakbang 7: I-calibrate ang Emulate Joystick

I-hook up ang aparato sa iyong computer at gamitin ang calibration function ng iyong OS upang i-calibrate ang tinulad na joystick. Ang isang mahusay na tool para sa Linux ay jstest-gtk.

Karagdagang mga pagpapahusay

  • Sumulat ng hindi naka-block na code (tingnan ang Hakbang 3)
  • Itakda ang mga saklaw bawat channel, hindi sa buong mundo (tingnan ang Hakbang 6)

Karagdagang pagbabasa

  • Redcon CM703
  • PPM

Inirerekumendang: