Stap 5: Uitvoering van basisfuncties
Eerste tabel waarden uit ontvanger, lezing is dezelfde als in stap 3 in deze tutorial. U kunt uw zender bijsnijden tot 1500 heks is midden positie (1ms is min 2ms max, 1500 = 1,5ms heks is center).
Status label toont als we zijn aangesloten op IOIO moederbord en als we in de modus gewapende of ontwapend zijn. Er is de code van de steekproef die overschakelen naar gewapende en ontwapend: } else if (ch3_val < throttle_min & & ch4_val > arm_pos) {}
als (ch3_val < throttle_min & & ch4_val < disarm_pos) {}
ontwapenen
gewapende = false;
arm
gewapende = true;
}
ch3_val waarde van gaspedaal en ch4_val is ruddler (yaw), bewapenen wordt getoond op hoofdbeeld dat ik gebruik mode3 op mi zender. throttle_min, arm_pos en disarm_pos zijn posities waar stok zijn moet te arm of te ontwapenen.
Tweede tabel verschijnen uitvoergegevens, waarde is exacte pulse lengte verzenden naar uitgangen.
In de eerste stap die ik heb geprobeerd om te vliegen zonder PID (we zullen bespreken PID later), was logica simpel:
-vanwege tricopter M1 en M2 (front motors) moeten werken op halve snelheid dan M3, omdat M3 eenzaam achterop is.
-Als ik ga naar de vooruit wil zal ik meer throttle aan achterzijde M3 en minder aan de voorkant van de M1 en M2 (achteruit is tegenovergestelde)
-Als ik wil gaan naar juiste breng ik meer throttle M1 en minder naar M2 (links is tegenovergestelde)
-yaw - rotatie wordt gecontroleerd door servo
Mijn implementatie ziet er als volgt (gebruik het niet ik zal later bespreken): controle van de gashendel Pitch controle Broodje van de controle
//yaw servo controle
servo_val = ch4_val;
m1_val = 1000 + (ch3_val - 1000) / 2;
m2_val = 1000 + (ch3_val - 1000) / 2;
m3_val = ch3_val;
m1_val += - (ch2_val - 1500) / 2;
m2_val += - (ch2_val - 1500) / 2;
m3_val += + (ch2_val - 1500);
m1_val += + (ch1_val - 1500);
m2_val += - (ch1_val - 1500);
mx_val en servo_val zijn output waarden berekend op basis van invoerwaarden. Probleem met deze implementatie is stick gevoeligheid, als je trek de lift naar het front in trage snelheid (throttle) de M1, M2 is daalde meer dan gasklep is ingesteld, zodat ze stoppen. Het gevoel in de test stand is echt agressief, je niet kunt vliegen met deze uitvoering. Zodat ik het selectievakje aan de GUI toevoegen, die overschakelen naar alleen incrementele modus. Dat betekent dat programma niet decrement motoren aan de ene kant, alleen een toename aan de andere kant. Gedrag van deze modi is weergegeven in de volgende video:
Dus zoals je kunt zien ik niet gelukt om te vliegen van testing zoals in stap 4, tijdens het testen van mijn stand met KK bord. De juiste manier is het gebruik van de versnellingsmeter en PID verordening.