Arduino button box pro flight sim — DIY návod

Vyrobte si vlastní button box s přepínači, rotary encodery a LED indikátory za zlomek ceny komerčních řešení. Kompletní návod s kódem a schématy.

Proč vlastní button box?

Komerční button boxy stojí 200-500 €. S Arduinem a základními součástkami si postavíte custom panel přesně podle vašich potřeb za zlomek ceny.

Potřebný materiál

  • Arduino Leonardo nebo Pro Micro (důležité — musí podporovat HID) — ~250 Kč
  • Toggle switches (ON/OFF) — 10× ~200 Kč
  • Momentary push buttons — 8× ~100 Kč
  • Rotary encoders (s tlačítkem) — 3× ~150 Kč
  • LED indikátory — 5× ~50 Kč
  • Prototyping PCB — ~80 Kč
  • Krabička — 3D tisk nebo hliníkový box — ~200 Kč
  • Kabely a pájka — ~100 Kč

Celkem: ~1 100 Kč (vs 5 000+ Kč komerční řešení)

Zapojení

Arduino Leonardo se chová jako USB joystick — Windows ho rozpozná automaticky bez driverů.

  • Každý switch/button připojte mezi digitální pin a GND
  • Enkodéry: CLK pin, DT pin, GND; SW pin pro tlačítko
  • LED: přes 220Ω rezistor na digitální výstupní pin
  • Použijte interní pull-up rezistory (INPUT_PULLUP)

Software

Použijte knihovnu Joystick.h:

#include <Joystick.h>

Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,
  JOYSTICK_TYPE_JOYSTICK, 32, 0,
  false, false, false, false, false, false,
  false, false, false, false, false);

void setup() {
  Joystick.begin();
  // Set pins as INPUT_PULLUP
  for (int i = 2; i = 21; i++) {
    pinMode(i, INPUT_PULLUP);
  }
}

void loop() {
  for (int i = 2; i = 21; i++) {
    Joystick.setButton(i-2, !digitalRead(i));
  }
  Joystick.sendState();
  delay(10);
}

Příklady layoutů

  • GA panel: Master, Avionics, Landing light, Nav lights, Pitot heat, Fuel pump, Beacon, Strobe + COM/NAV enkodéry
  • Airliner overhead: APU, Packs, Engine start, Seatbelt sign, No smoking, Anti-ice + Barometer encoder

Sdílejte své výtvory na SimCzech fóru v sekci Komunita — těšíme se na vaše buildy!