Gasquadranten und Trimmrad
Komponenten und Verbrauchsmaterialien
| × | 1 | ||||
| × | 3 | ||||
| × | 1 |
Notwendige Werkzeuge und Maschinen
| ||||
|
Apps und Onlinedienste
|
Über dieses Projekt
Einführung
Nachdem ich kürzlich meinen PC aktualisiert hatte, um MS FS2020 ausführen zu können, war ich inspiriert, die von mir verwendeten Steuerelemente zu verbessern. Eine Tastatur hat nicht wirklich das richtige Fluggefühl und ich wollte das Erlebnis auf etwas Besseres aufwerten. Ich bin kein Vollzeit-Flugsimmer und kann mir weder den Platz noch das Geld leisten, um viel dafür zu verwenden, ein komplettes Cockpit oder sogar eine gekaufte Steuerung zu bauen.
Design
Ich machte mich daran, eine Reihe von Steuerelementen in CAD zu entwerfen, die mit den mir zur Verfügung stehenden Werkzeugen erstellt werden konnten, und gab eine angemessene Erfahrung damit, wie sich ein echtes Flugzeug meiner Meinung nach anfühlen würde Ich denke, sie wären wie.
Ich entschied, dass die Bedienelemente, die ich gerne hätte, einige einzelne Hebel für Gas, Landeklappen, Fahrwerk und ein Höhenrudertrimmrad sind. Ich fliege hauptsächlich die kleinen leichten einmotorigen Flugzeuge in der Simulation, also habe ich mich darauf konzentriert.
Die Gestaltung des Trimmrads war die größte Herausforderung und es brauchte mehrere Tage lang mehrere skizzierte Ideen, um ein Design zu entwickeln, von dem ich dachte, dass es das Aussehen und die Haptik liefern würde, die ich wollte.
Erstellen
Alle Teile wurden in ABS in 3D auf meinem UP gedruckt! Drucker, sie wurden dann bemalt und mit einem Arduino verkabelt, einem Leonardo zunächst, dann auf ein Micro umgetauscht. Am Ende steht ein Plug-and-Play-Gerät, das bei Nichtgebrauch einfach verstaut werden kann.
Teile
3D-gedruckte Teileliste
Jedes Hebelmodul erfordert
Jedes Radmodul benötigt
Back-Box-Teile können verwendet werden, um das Arduino und die Verkabelung unterzubringen.
Fazit
Ein sehr angenehmer Build, sehr einfach aus der Sicht des Programmierens, die wahre Herausforderung bei diesem Build war das Design, insbesondere das Trimmrad und das Gefühl richtig.
Code
- Quadrant.ino
Quadrant.inoArduino
Verwenden Sie die Einstellvariable und den seriellen Monitor, um die Endpunktwerte für jedes Potentiometer zu ermitteln, geben Sie sie in das Array axisLimits ein Arrays// diese werden in einen Bereich von 0 - 1023 übersetztint axisLimits0[] ={686, 338};int axisLimits1[] ={345, 695};int axisLimits2[] ={327, 678};int axisLimits3[] ={342, 692};int axisLimits4[] ={0, 1023};int axisLimits5[] ={0, 1023};// Achsen ein- oder ausschalten durch Setzen dieser Variablenbool a0Used =true;bool a1Used =true;bool a2Used =true;bool a3Used =true;bool a4Used =false;bool a5Used =false;// Einstellungsmodus druckt den Pinwert und den übersetzten Wert auf den seriellen Monitor // int Einstellung =-1; // kein Drucken auf dem seriellen Monitor // Int-Einstellung =2; // Werte 0 - 5, drucken Sie die Pin-Werte auf die serielle Monitorint-Einstellung =-1;void setup () { if (a0Used) pinMode (A0, INPUT); if(a1Used) pinMode(A1, INPUT); if(a2Used) pinMode(A2, INPUT); if(a3Used) pinMode(A3, INPUT); if(a4Used) pinMode(A4, INPUT); if(a5Used) pinMode(A5, INPUT); Joystick.begin(); if (Einstellung>=0) Serial.begin (9600);}void loop () { int value =0; int pos =0; if (a0Used) { Wert =analogRead (A0); pos =translateValue(value, axisLimits0[0], axisLimits0[1]); Joystick.setThrottle(pos); if(Einstellung ==0) EinstellungPrint(Wert, Pos); aufrechtzuerhalten. Wenn (a1 verwendet) { Wert =analogRead (A1); pos =translateValue(value, axisLimits1[0], axisLimits1[1]); Joystick.setRxAxis(pos); if(Einstellung ==1) EinstellungPrint(Wert, Pos); } if (a2Used) { Wert =analogRead (A2); pos =translateValue(value, axisLimits2[0], axisLimits2[1]); Joystick.setRyAxis(pos); if(Einstellung ==2) EinstellungPrint(Wert, Pos); } if (a3Used) { Wert =analogRead (A3); pos =translateValue(value, axisLimits3[0], axisLimits3[1]); Joystick.setRzAxis(pos); if(Einstellung ==3) EinstellungPrint(Wert, Pos); aufrechtzuerhalten. If (a4Used) { Wert =analogRead (A4); pos =translateValue(value, axisLimits4[0], axisLimits4[1]); Joystick.setXAxis(pos); if(Einstellung ==4) EinstellungPrint(Wert, Pos); } if (a5Used) { Wert =analogRead (A5); pos =translateValue(value, axisLimits5[0], axisLimits5[1]); Joystick.setYAxis(pos); if(Einstellung ==5) EinstellungPrint(Wert, Pos); } delay(5);}int translateValue(int v, int f1, int f2) {// übersetzt Werte in einen Bereich von 0 - 1023 int result =0; int start =0; Schwimmerbereich =0; if(f1Kundenspezifische Teile und Gehäuse
Eine ohne Lasche, falls du sie brauchstDie, die ich verwendeSketchfab wird noch verarbeitet.
Diese Datei enthält alle Teile als STEP-Datei freigegeben_u3k8QjPXzJ.stpSchaltpläne
Um weitere Steuerungen hinzuzufügen, schließen Sie 5V und GRD an und verwenden Sie die Pins A1 bis A5 quadrant_ZkMygPyRiE.fzzHerstellungsprozess
- LCD-Animation und -Spiele
- DIY-Voltmeter mit Arduino und Smartphone
- Temperatur- und Feuchtigkeitsdatenlogger
- FlightGear analoges Trimm-Tabrad
- Python3- und Arduino-Kommunikation
- Arduino- und OLED-basierte zelluläre Automaten
- FM-Radio mit Arduino und RDA8057M
- Anwesenheitssystem basierend auf Arduino und Google Spreadsheet
- IoT:Windows Remote Arduino und universelle Apps
- Radauswuchten und Achsvermessung verstehen