Wozu Computerspiele einen manchmal verleiten ist schon verrückt.
Neulich wurde WARDOGS auf Steam veröffentlicht und in WARDOGS (ja, alles Caps), kann man Hubschrauber fliegen.
Damals ™ in Battlefield 3 habe ich es geliebt, mit dem AH-6J aka Little Bird, alle Gegner plattzumachen und so wollte ich auch in WARDOGS ein richtig mieser Pilot sein.
Nun liegen zwischen BF3 und heute allerdings locker 15 Jahre und irgendwie wollte das alles nicht so klappen mit mir und dem AH-6J aus WARDOGS – ständig bin ich gecrasht.
Klug wie ich bin, hab ich das natürlich direkt auf die unprofessionelle Eingabemethode „Maus + Tastatur“ geschoben und bin dann erstmal für zwei Tage ins Rabbit Hole „HOTAS“ abgetaucht, um mir anschließend einen Turtlebeach FlightStick Velocityone bei MediaMarkt zu kaufen. Nur, um dann festzustellen, dass der kacke ist (steif wie’n toter Marder) und nochmal in den Kanninchenbau zu verschwinden, um dann einen WINCTRL URSA MINOR Fighter Joystick (so viele Caps heute) zu bestellen.
Da jedoch beide Sticks den Schubregler direkt an der Base verbaut haben, ich den gerne extra hätte haben wollen und das Thrustmaster T16000M FCX HOTAS-Set aufgrund einiger negativen Aspekte nicht in die engere Wahl kam, war sehr schnell klar:
det bauste selbst!
Und nach dieser unglaublich langen Einführung, kommen wir jetzt zum eigtl. Thema:
ein selbstgebauter Schubregler
Direkt danach kam die Frage nach dem Design auf. Einfach irgendwelche 3D-Druck-Dateien aus dem Internet herunterladen kam nicht in Frage – kann ja jede/r!
Das Konzept war schnell überlegt: ein Schlitten, der mittels Hülsenlager auf zwei Stangen gleitet und einen Poti beinhaltet. Auf den Poti pack ich ein Zahnrad, dass an einer Zahnstange entlang fährt und so die Vor- und Rückwärtsbewegung auf den Poti überträgt. Ein Arduino wertet das ganze dann aus und schickt es an den Rechner.
Einen HID-fähigen Arduino (der Micro aus der eZee-Box) und einen B10K-Poti hatte ich noch rumliegen. Eine Edelstahlstange mit 6mm Durchmesser lag auch noch rum. Die Lager musste ich bestellen.
Also Fusion360 angeworfen und eine erste Skizze erstellt, um die Wartezeit der Lieferung zu überbücken (effizient!).
War nervig, weil ich echt ein Noob in Fusion bin. Besonders beim Erstellen des Zahnrads und der Zahnstange hatte ich ordentlich viele Schweissperlen auf der Stirn. Schließlich sollen die sauber ineinandergreifen und der gesamte Weg des Potis soll auch genutzt werden können, um die maximale Auflösung zu erreichen.
Ich hab daher auch erstmal nur die wirklich notwendigen Teile erstellt und das ganze anschließend provisorisch auf ein Frühstücksbrettchen montiert. Erstaunlicherweise hat’s direkt gepasst. Hätte ich auch nicht gedacht.


Die Sketch für den Arduino war wenig spannend – wurde ja auch direkt von Claude erstellt, weil ich ehrlicherweise keine Lust hatte, mich jetzt auch noch in die joystick.h einzuarbeiten. Mächtig das Ding ist.
/*
* Throttle Control (Collective) – Arduino Micro (ATmega32u4)
* Poti an A0, ausgewertet über die Throttle-Achse der Joystick-Library.
*
* Library: https://github.com/mheironimus/ArduinoJoystickLibrary
* (Installation: ZIP von GitHub laden, dann Sketch > Include Library > Add .ZIP Library...)
*/
#include <Joystick.h>
// ---- Konfiguration ----
const int POT_PIN = A0;
// TODO: Nach dem ersten Testlauf anpassen!
// Rohwerte (0-1023), die analogRead() an den beiden mechanischen Endanschlägen
// tatsächlich liefert. Einfach im Serial Monitor ablesen (siehe unten) und hier eintragen.
int potRawMin = 0;
int potRawMax = 1023;
const int NUM_SAMPLES = 10; // Anzahl Werte für den gleitenden Mittelwert (Glättung)
// Joystick mit nur einer aktiven Achse (Throttle) anlegen:
// Parameter: reportId, joystickType, buttonCount, hatSwitchCount,
// X, Y, Z, Rx, Ry, Rz, Rudder, Throttle, Accelerator, Brake, Steering
Joystick_ Joystick(
JOYSTICK_DEFAULT_REPORT_ID,
JOYSTICK_TYPE_JOYSTICK,
0, // keine Buttons
0, // keine Hat-Switches
false, // X
false, // Y
false, // Z
false, // Rx
false, // Ry
false, // Rz
false, // Rudder
true, // Throttle <-- das nutzen wir
false, // Accelerator
false, // Brake
false // Steering
);
int readings[NUM_SAMPLES];
int readIndex = 0;
long total = 0;
void setup() {
Serial.begin(9600);
Joystick.setThrottleRange(0, 1023);
Joystick.begin();
// Array für den gleitenden Mittelwert initialisieren
for (int i = 0; i < NUM_SAMPLES; i++) {
readings[i] = analogRead(POT_PIN);
total += readings[i];
}
}
void loop() {
// --- Glättung per gleitendem Mittelwert ---
total -= readings[readIndex];
readings[readIndex] = analogRead(POT_PIN);
total += readings[readIndex];
readIndex = (readIndex + 1) % NUM_SAMPLES;
int smoothed = total / NUM_SAMPLES;
// --- Kalibrierung: gemessenen Bereich auf vollen Achsenbereich mappen ---
int mapped = map(smoothed, potRawMin, potRawMax, 0, 1023);
mapped = constrain(mapped, 0, 1023); // gegen Überschwinger absichern, falls min/max nicht exakt passen
Joystick.setThrottle(mapped);
// Zum Kalibrieren: Rohwert im Serial Monitor beobachten,
// Hebel an beide Endanschläge fahren und die min/max-Werte oben eintragen.
// Danach die Zeile unten wieder auskommentieren (unnötiger Overhead).
//Serial.println(smoothed);
delay(10);
}
Also den Arduino geflasht, angeschlossen, WARDOGS gestartet und das beste gehofft.
Was soll ich sagen: das Teil wurde direkt erkannt und ich konnte das Collective (Anstellwinkel des Rotors; quasi Schub) ansteuern.
Nun hatte mich der Ehrgeiz gepackt und ich wollte mehr.
Also wieder Fusion angeschmissen, Tutorials geschaut, verzweifelt, noch mehr Tutorials geschaut und irgendwann hat’s Klick gemacht und ein besseres Modell ist entstanden.
An dieser Stelle, einen riesen Dankeschön an Mistermestro, der mir schon oft mit seinen Tutorials weitergeholfen hat!



Wer ein bissl aufgepasst hat, wird festgestellt haben, dass sich die Quailtät des Drucks ebenfalls ein wenig geändert (sprich: verbessert) hat.
Das kann vllt. daran liegen, dass ich mir unterwegs auch noch einen Ersatz für den guten, alten Anycubic Mega S gegönnt habe: den Anycubic Kobra 4
Einfach ein geiles Teil! Ich habe völlig unterschätzt, wie sehr sich 3D Druck in den letzten fünf Jahren hinsichtlich Qualität, Leistung und Preis von Druckern weiterentwickelt hat.
Naja, dazu vllt. in einem anderen Beitrag mehr. Wobei es eigtl. genug Beiträge zu dem Gerät im Netz gibt. Da muss ich nicht auch noch…
Jedenfalls habe ich nun einen richtig geilen FlightStick und einen selbstgebauten, orangenen, externen Schubregler.
Fliegen kann ich aber immer noch nicht richtig damit.
Dann greife ich wohl doch weiterhin zu Maus und Tastatur.
Ist ja eh praktischer, wenn man zwischendrin auch mal Sniper oder Support spielt 😅
Bis denn dann
Jan
Wenn Dir dieser Beitrag geholfen hat und/oder Du mich finanziell unterstützen magst, kannst Du dies gerne per Paypal machen.
Alternativ kannst Du Dir meinen Amazon-Partnerlink in die Favoriten legen und Amazon bei Deinen zukünftigen Einkäufen darüber aufrufen:
Es entstehen Dir dadurch keine Mehrkosten, ich erhalte aber eine kleine Provision.
Über einen Kommentar freue ich mich natürlich auch :-)
Jan B-Punkt
Neueste Artikel von Jan B-Punkt (alle ansehen)
- Wir brauchen mehr Schub! - 1. Oktober 2026
- CRTspec – Yet another audio visualizer - 24. September 2026
- Ein Lebenszeichen! - 23. September 2026
- Adventskalender Gewinnspiele 2025 - 30. November 2025
- Frohe Ostern – DOGMALTAR – Dornenträger - 18. April 2025

