Microsoft Flight Simulator: Controller selbst bauen auf Basis des Arduino Micro

Ein passender USB-Controller mit Arduino Micro ist schnell gebaut und bindet Trimmrad, Landeklappen- und Fahrwerkshebel einer Cessna an den Rechner an.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 8 Kommentare lesen
Ein selbst gebauter Controller für den Flugsimulator auf Basis des Arduino Micro
Lesezeit: 14 Min.
Inhaltsverzeichnis

Baut man Bedienelemente eines Flugzeug-Cockpits mit physischen Hebeln, Rädchen und Schaltern nach, holt man den virtuellen Raum des Flugsimulators ein Stück weit in die Realität. Die Simulation fühlt sich authentischer an und das Fluggefühl wird intensiver. Da jeder virtuell fliegende Pilot ein anderes Flugzeug mag, hat jeder auch andere Vorstellungen für die perfekte Form der Bedienelemente – und die setzt man am besten mit einem selbst gebauten Controller um. Mit einem Arduino Micro als Herzstück geht das einfach und kostengünstig.

Gibt sich der Arduino als Tastatur aus, kann man jedes Mal, wenn am selbst gebauten Controller ein Schalter umgelegt wird, einen Tastendruck oder eine Tastenkombination an den Rechner schicken. Moderne Betriebssysteme brauchen für solche "Human Interface Devices" (HID) keine besonderen Treiber und über die Einstellungen im Flugsimulator und in anderen Spielen kann man bequem definieren, was passieren soll, wenn der Arduino in die Tasten haut.

Ein Mikrocontroller kann sich nur dann als HID ausgeben, wenn er die USB-Kommunikation selbst abwickelt. Steckt wie beim Arduino Uno oder Nano für USB ein Extra-Chip auf dem Board, lässt sich damit kein HID emulieren. Ein Atmel MEGA 32U4, der als HID arbeiten kann, ist auf einem Arduino Micro, Leonardo oder auf dem inoffiziellen 3,3-V-Klon "Pro Micro" verlötet. Wir haben einen Arduino Micro verwendet, der 16 GPIO-Pins zur Verfügung stellt. Die waren uns aber nicht genug, weshalb wir per I2C einen MCP23017 angebunden haben, der weitere 16 GPIO-Pins zur Verfügung stellt (für I2C gehen dafür am Arduino zwei GPIO verloren).