Gaskwadrant en trimwiel
Componenten en benodigdheden
| × | 1 | ||||
| × | 3 | ||||
| × | 1 |
Benodigde gereedschappen en machines
| ||||
|
Apps en online services
|
Over dit project
Inleiding
Nadat ik onlangs mijn pc had geüpgraded om MS FS2020 te kunnen gebruiken, werd ik geïnspireerd om de bedieningselementen die ik gebruikte te verbeteren. Een toetsenbord heeft niet echt het juiste gevoel om te vliegen en ik wilde de ervaring upgraden naar iets beters. Ik ben geen fulltime flight sudder en kan de ruimte of het geld niet betalen om veel te besteden aan het maken van een volledige cockpit of zelfs een gekochte set bedieningselementen.
Ontwerp
Ik begon met het ontwerpen van een set besturingselementen in CAD die gemaakt konden worden met de tools die ik heb en die een redelijke ervaring geven van hoe ik me voorstel dat een echt vliegtuig zou voelen. Ik heb nog nooit de bedieningselementen van een vliegtuig aangeraakt, dus het is gebaseerd op wat Ik denk dat ze zoiets zouden zijn.
Ik besloot dat de bedieningselementen die ik zou willen, enkele enkele hendels zijn voor gas, kleppen, landingsgestel en een trimwiel voor de lift. Ik vlieg meestal met de kleine, lichte eenmotorige vliegtuigen in de sim, dus daar concentreerde ik me op.
Het trimwiel was de grootste uitdaging om te ontwerpen en het kostte dagenlang verschillende geschetste ideeën om tot een ontwerp te komen waarvan ik dacht dat het de look en feel zou geven die ik wilde.
Bouw
Alle onderdelen zijn 3D geprint in ABS op mijn UP! printer, ze werden vervolgens geverfd en aangesloten op een Arduino, een Leonardo om mee te beginnen en vervolgens omgewisseld naar een Micro. Om te eindigen met een plug-and-play-eenheid die gemakkelijk kan worden opgeborgen wanneer deze niet in gebruik is.
Onderdelen
3D-geprinte onderdelenlijst
Elke hendelmodule vereist
Elke wielmodule vereist
Backbox-onderdelen kunnen worden gebruikt om de Arduino en bedrading te huisvesten.
Conclusie
Een zeer plezierige constructie, heel eenvoudig vanuit het oogpunt van codering, de echte uitdaging in deze build was het ontwerp, vooral het trimwiel en het gevoel krijgen juist.
Code
- Quadrant.ino
Quadrant.inoArduino
Gebruik de instellingsvariabele en de seriële monitor om de eindpuntwaarden voor elke potentiometer te vinden, voer ze in de axisLimits array#includeJoystick_ Joystick;// plaats de max en min waarden van de analogRead in deze arrays// deze worden vertaald naar een bereik van 0 - 1023int axisLimits0[] ={686, 338};int axisLimits1[] ={345, 695};int axisLimits2[] ={327, 678};int axisLimits3[] ={342, 692};int axisLimits4[] ={0, 1023};int axisLimits5[] ={0, 1023};// zet assen aan of uit door deze variabelen in te stellen bool a0Used =true;bool a1Used =true;bool a2Used =true;bool a3Used =true;bool a4Used =false;bool a5Used =false;// instellingsmodus drukt de pin-waarde en vertaalde waarde af naar de seriële monitor// int-instelling =-1; // niet afdrukken naar de seriële monitor// int-instelling =2; // waarden 0 - 5, print de pin-waarden naar de seriële monitorint-instelling =-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(instelling>=0) Serial.begin(9600);}void loop() {int value =0; int pos =0; if (a0Used) {waarde =analogRead (A0); pos =translateValue(waarde, axisLimits0[0], axisLimits0[1]); Joystick.setThrottle(pos); if(setting ==0) settingPrint(value, pos); } if(a1Used){ waarde =analogRead(A1); pos =translateValue(waarde, axisLimits1[0], axisLimits1[1]); Joystick.setRxAxis(pos); if(setting ==1) settingPrint(value, pos); } if(a2Used){ waarde =analogRead(A2); pos =translateValue(waarde, axisLimits2[0], axisLimits2[1]); Joystick.setRyAxis(pos); if(setting ==2) settingPrint(value, pos); } if(a3Used){ waarde =analogRead(A3); pos =translateValue(waarde, axisLimits3[0], axisLimits3[1]); Joystick.setRzAxis(pos); if(setting ==3) settingPrint(value, pos); } if(a4Used){ waarde =analogRead(A4); pos =translateValue(waarde, axisLimits4[0], axisLimits4[1]); Joystick.setXAxis(pos); if(setting ==4) settingPrint(value, pos); } if(a5Used){ waarde =analogRead(A5); pos =translateValue(waarde, axisLimits5[0], axisLimits5[1]); Joystick.setYAxis(pos); if(setting ==5) settingPrint(value, pos); } delay(5);}int translateValue(int v, int f1, int f2){ // vertaalt waarden naar een bereik van 0 - 1023 int resultaat =0; int start =0; vlotterbereik =0; if(f1 1023) resultaat =1023; resultaat retourneren;} ongeldige instellingPrint (int-waarde, int pos) { Serial.print (waarde); Serieel.print(" "); Serial.println(pos);}
Aangepaste onderdelen en behuizingen
Een zonder het tabblad voor het geval je het nodig hebtDegene die ik gebruikSketchfab nog bezig.
Dit bestand bevat alle onderdelen als een STEP-bestand vrijgegeven_u3k8QjPXzJ.stpSchema's
Om meer bedieningselementen toe te voegen, sluit u 5V en GRD aan en gebruikt u pinnen A1 tot A5 quadrant_ZkMygPyRiE.fzzProductieproces
- LCD-animatie en gaming
- DIY voltmeter met Arduino en smartphone
- Temperatuur- en vochtigheidsdatalogger
- FlightGear Analog Trim Tab Wheel
- Python3- en Arduino-communicatie
- Arduino en OLED-gebaseerde mobiele automaten
- FM-radio met Arduino en RDA8057M
- Aanwezigheidssysteem op basis van Arduino en Google Spreadsheet
- IoT:Windows Remote Arduino en universele apps
- MKR1000 temperatuur- en vochtigheidssensor
- Inzicht in wielbalancering en wieluitlijning