Obsah:

Most R/C na USB: 7 krokov
Most R/C na USB: 7 krokov

Video: Most R/C na USB: 7 krokov

Video: Most R/C na USB: 7 krokov
Video: ZigUSB - Бесшумное Zigbee USB реле с энергомониторингом 2024, Júl
Anonim
Most R/C na USB
Most R/C na USB

Konvertuje signály PPM z rádiového prijímača do polôh joysticku

Hrajte s ním svoje obľúbené hry a letecké simulátory s rádiovým vysielačom R/C. Tento návod používa na vykonanie tejto konverzie Arduino od LittleBits a prijímač DSMX plus jednoduchý útržok kódu.

Budete potrebovať

  • Moc
  • Arduino
  • USB káble
  • kolíkové hlavičky
  • prepojovací drôt
  • rádiový prijímač s PPM výstupom.

Krok 1: Spájkujte hlavičky kolíkov s ďalšími vstupno -výstupnými portami Arduina

Pájkovacie kolíky zapojte do ďalších vstupno -výstupných portov Arduina
Pájkovacie kolíky zapojte do ďalších vstupno -výstupných portov Arduina

Na napájanie prijímača (RX) je potrebné do Arduina pridať hlavičky pinov. To tiež značne uľahčí zapojenie medzi bitom a RX. Ďalšie informácie nájdete na stránke

Krok 2: Pridajte do svojho IDE knižnicu joysticku Arduino

Pridajte do svojho IDE knižnicu joysticku Arduino
Pridajte do svojho IDE knižnicu joysticku Arduino

Knižnicu nájdete na GitHub, https://github.com/MHeironimus/ArduinoJoystickLib… Ďakujem, Matthew Heironimus, za jej napísanie.

Len niektorí Arduinos môžu emulovať HID ako joystick. Pretože mikrokontrolér littleBits je srdcom Arduino Leonardo, môžete ísť.

Krok 3: Flashujte kód na Arduino

#include #define inputPin 16#definovať kanály 4 #definovať lo 800 // nastaviť na výstup RX#definovať hi 1600 // upraviť na výstup RX#definovať filter 10int kanál [kanály]; int previousValue [kanály]; int counter = 0; Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, true, true, false, false, false, true, true, false, false, false, false); void setup () {Joystick.setXAxisRange (lo, Ahoj); Joystick.setYAxisRange (lo, ahoj); Joystick.setThrottleRange (lo, ahoj); Joystick.setRudderRange (lo, ahoj); 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); } pre (int i = 0; i <= kanály-1; i ++) {if ((kanál > 2000) || (kanál <500)) {kanál = previousValue ; } else {channel = (previousValue +kanál )/2; počítadlo ++; }} Joystick.setXAxis (kanál [0]); Joystick.setYAxis (kanál [1]); Joystick.setThrottle (kanál [2]); Joystick.setRudder (kanál [3]); } if (counter> filter) {for (int i = 0; i <= channels-1; i ++) {Serial.print ("channel"); Serial.print (i+1); Serial.print (":"); Serial.println (kanál ); previousValue = kanál ; } počítadlo = 0; }}

Uvedomte si prosím, že kód, ktorý premosťuje medzi signálom R/C a emulovaným USB HID, je vo svojej najjednoduchšej forme. Tu použitá funkcia - pulseIn - je blokovacia funkcia. Prečítajte si tu a tu, ako implementovať neblokujúci prístup pomocou prerušení.

Krok 4: Vykonajte zapojenie

Vykonajte zapojenie
Vykonajte zapojenie
Vykonajte zapojenie
Vykonajte zapojenie

Pripojte prepojovací kábel / káble DuPont medzi bit a RX. Konektory na konci týchto káblov musia byť zásuvky. Pripojíme GND (modrý), VCC (hnedý) a signál (oranžový) z PPM portu RX na GND, VCC a d16 na Arduine.

Krok 5: Spojte prijímač

Odpojte Arduino od napájania. Vložte zväzok viazania do miesta konektora označeného BIND na RX. Zapnite rádiový vysielač a prepnite ho do režimu viazania. Potom pripojte napájanie k Arduinu. Proces viazania bol úspešný, keď sa rozsvieti LED dióda v prijímači.

Krok 6: Upravte kód podľa svojich okolností

Konštanty hi a lo v skici Arduino je potrebné zmeniť tak, aby odrážali skutočný výstup prijímača, ktorý používate.

#definujte lo 800

#definuj ahoj 1600

Signály vo vnútri impulzu PPM sa v ideálnom prípade pohybujú od 1 000 μs do 2 000 μs. RX použité v tomto návode na výstupy majú hodnoty zhruba medzi 800 a 1600 a sú na každom kanáli mierne odlišné. Ak chcete zistiť, aký rozsah má váš prijímač, otvorte sériový monitor v IDE Arduino a zobrazte výstup svojho RX. Bude to vyzerať podobne ako toto:

kanál 1: 728

kanál 2: 729 kanál 3: 703 kanál 4: 726 kanál 1: 1681 kanál 2: 1639 kanál 3: 1613 kanál 4: 1676

Akonáhle máte jasnejšiu predstavu o rozsahu, ktorý vaše RX výstupy, zvoľte dobré aproximácie pre hi a lo a podľa toho zmeňte konštanty. Potom znova nahrajte skicu do Arduina.

Krok 7: Kalibrujte emulovaný joystick

Pripojte zariadenie k počítaču a pomocou funkcie kalibrácie vášho operačného systému kalibrujte emulovaný joystick. Dobrým nástrojom pre Linux je jstest-gtk.

Ďalšie vylepšenia

  • Napíšte neblokujúci kód (pozri krok 3)
  • Nastavte rozsahy pre kanál, nie globálne (pozri krok 6)

Ďalšie čítanie

  • Redcon CM703
  • PPM

Odporúča: