Nemáte zrovna peníze na drahé letecké pedály? Válí se vám v koutě volant Logitech G25 a vadí vám, že lze kombinovat pouze brzdu a plyn? znám řešení, po malé úpravě kódu, bude fungovat i na jiných značkách volantů.
Nějakou dobu koketuji s myšlenkou stavby vlastních pedálu pro ovládání směrovky v letecký simulátorech.
Vlastním Logitech G25 a kdysi dávno jsem zjišťoval, zda nejde v officiální aplikaci kombinovat osy. Bohužel šlo dát dohromady jen brzdu a plyn. Brzda je tuhá a plyn měkký takže se moc nehodí.
Nedávno jsem zkoušel naprogramovat virtuální joystick pro ovládání 4 motorových bombardérů pro WarThunder pro iPhone. Částečně se povedlo, lze startovat a ovládat tah motoru jediným dotykem.
Dnes mě napadlo použít stejný projekt pro naprogramování virtuálního joysticku, který na vstupu přečte hodnoty os G25ky a na výstupu dodá zkombinované hodnoty, které se budou hodit.
Projekt, který jakž takž řeší virtuální joysticky pod linuxem jsem našel na https://github.com/ferry-/Linux-Virtual-Joystick-cpp. Aplikaci je problém zkompilovat, je nutné vyřešit chyby s konfigurací a kompilací, jakmile se ale povede program spustit, je velmi jednoduché joystick naprogramovat.
Pokud máte funkční program, pro start virtuálního joysticku stačí napsat vjoy virtual.py, pokud je váš joystick virtual.py
Přikládám g25.py pro lepší orientaci. Z nějakého důvodu jsem musel ponechat print values, aby jstest joystick správně četl hodnoty a byl tím pádem funkční. Doufám, že přijdu na řešení problému.
[edit 11.2.2014]
Řešením bylo přepsat si virtuální joy do C (g25.c). Omluvte prasáctví ve zdrojovém kódu, moc často v C nedělám, avšak svůj účel program plní bezvadně. Na řádku 174 změňte hodnotu usleep na 16000, klesne zatížení procesoru.
zkompilujte v linuxu
gcc g25.c -o g25pedals
[edit 12.2.2014]
K dispozici je lepší verze, osy brzd jsou v plném rozsahu.
Zapomněl jsem dodat, co vlastně tento program umí. Vytvoří virtuální joystick se 3mi osami. Levá brzda, pravá brzda, směrovka. Levá a pravá brzda se aktivuje, pokud oba pedály jsou sešlápnuté alespoň z poloviny, jinak se počítá pouze směrovka a brzdy zůstávají v minimálních hodnotách.
Ke spuštění je nutné mít práva pro /dev/uinput, jinak nelze vytvořit virtuální joy. Pokud budou problémy s kompilací, vyřešte závislosti dle hlášky compilátoru. Vytvořeno a zkoušeno na ubuntu 13.10