No, řekněme, že s joysticky (tvořenými) jsem si kdysi hrál a za mě
stručněV .ino vidím na konci:
Joystick.setXAxis(analogRead(A0));
Joystick.setYAxis(analogRead(A1));
Joystick.setRxAxis(analogRead(A2));
Joystick.setRyAxis(analogRead(A3));
a tak bych to nechal.
Klidně i
Joystick.setXAxis(analogRead(A0));
Joystick.setYAxis(analogRead(A1));
Joystick.setZAxis(analogRead(A2));
Joystick.setRxAxis(analogRead(A3));
protože takto (tuším) jsou osy po sobě a nebude se tak nic vynechávat.
Možná bych zkusil projekt
MMJoy2 - nahraje se do Leonarda FW a konfigurovat se pak dá přes UI v PC - umí i takové věci jako nastavit křivky, limity, dokonce "oversampling" simulující vyšší rozlišení, simulace os tlačítky a td.
Podrobněji:Knihonva Joystick tvoří z Arduina vstupní HID zařízení se všemi definicemi deskriptorů a ostatních USB složitostí, ... blablabla....
Co mám vyzkoušené, tak prvních 6os std win joysticku se dají obsluhovat standardními (historicky kompatibilními) knihovnami. Proto je dobré používat, pokud možno, (jen?) prvních 6 os. jestli jsem se dobře díval do kódu, tak bude dobré použít následujících 6 fcí:
// Set Axis Values
void setXAxis(int16_t value);
void setYAxis(int16_t value);
void setZAxis(int16_t value);
void setRxAxis(int16_t value);
void setRyAxis(int16_t value);
void setRzAxis(int16_t value);
pak následují další osy
// Set Simuation Values
void setRudder(int16_t value);
void setThrottle(int16_t value);
void setAccelerator(int16_t value);
void setBrake(int16_t value);
void setSteering(int16_t value);
které už ale nemusí všechny simulátory vidět správně. Odtud možná problémy s viditelností. V některých leteckých simulátorech (dneska už asi ve všech) jsou pak vidět i ty další osy. Dá se ještě pustit "pomůcka", která z dalších "neviditelných" os vyrobí třeba další joystick, ale to už je trochu mimo potřeby jednoho ovladače zvlášť pokud to je ovladač na RC.
A pokud bych si nechtěl moc hrát s programováním, tak bych fakt zkusil ten MMJoy2.
Tož tak.