Obsah:
- Krok 1: Spájkujte hlavičky kolíkov s ďalšími vstupno -výstupnými portami Arduina
- Krok 2: Pridajte do svojho IDE knižnicu joysticku Arduino
- Krok 3: Flashujte kód na Arduino
- Krok 4: Vykonajte zapojenie
- Krok 5: Spojte prijímač
- Krok 6: Upravte kód podľa svojich okolností
- Krok 7: Kalibrujte emulovaný joystick
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
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
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
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
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