Ardupilot an den RC Sender anpassen

Heliflo

Erfahrener Benutzer
#1
Da der "grosse" Ardupilot Thread m.M. nach langsam etwas unübersichtlich geworden ist erlaube ich mir für meine Frage einfach einen neues Thema aufzumachen...:rot:

Habe meinen Ardupilot soweit (nach dem Manual auf DiyDrones) aufgesetzt.

Einziger Punkt der mir noch fehlt aber nirgens beschrieben ist, ist das anlernen an die Fernsteuerung. Dabei geht es mir vorallem um den Schalter zum umschalten der Flugmodi (Manual,Stabilizie, Auto, etc...)

Ich kann im Arduino zwar gefunden wo ich die verschiedenen Modi's setzten kann aber irgendwie muss ich doch den Ardupilot an meinen 3-Fach Schalter anlernen - nur wie? Hat jemand einen Link auf diesen Einlernschritt oder mache ich da einen Denkfehler und das ist gar nicht nötig?

Danke schonmal im Voraus und Gruss
Flo
 

Rangarid

Erfahrener Benutzer
#2
Du brauchst garnicht einlernen. Wenn du einen 3-Wegeschalter hast ist der unterste Normal, der Mittlere der 2. und der oberste der dritte. Wenn du die Arduino IDE anmachst und in der Config-Datei auf Debugmodus "// 7 = Debug the Control Switch" ( also #define DEBUG_SUBSYSTEM 7) und dann nach dem hochladen den Serial Port Monitor startest bekommst du als Ausgabe, auf welchem Modus der Schalter grad steht.
 

Heliflo

Erfahrener Benutzer
#3
aha, dann bin ich beruhigt - habe also nichts übersehen..:cool:

Na dann werd ich am We mal schauen wie sich das ding so macht...
Danke
 

Rangarid

Erfahrener Benutzer
#4
Übrigens...du musst noch die Senderausschläge einstellen. Die Standardausschläge gehen zwar auch, aber es ist besser wenn alles genau angepasst ist. Dafür gibt es nen Debug Modus, da musst du alle Ruder voll ausschlagen und dann bekommst du die Min- und Maxwerte angezeigt die du dann hier eintragen kannst:
Code:
#define CH1_MIN 1000 			// (Microseconds) Range of Ailerons/ Rudder
#define CH1_MAX 2000 			// (Microseconds)
#define CH2_MIN 1000 			// (Microseconds) Range of Elevator
#define CH2_MAX 2000 			// (Microseconds)
#define CH3_MIN 1000 			// (Microseconds) Range of Throttle  - Important - please use debug mode to find your PWM values and set them here.
#define CH3_MAX 2000 			// (Microseconds)
#define CH4_MIN 1000 			// (Microseconds) Range of Rudder
#define CH4_MAX 2000 			// (Microseconds)
Mit den Debug Modi kannst du quasi schonmal die hälfte der Fehler ausschließen bevor du aufs Feld gehst.
 

Heliflo

Erfahrener Benutzer
#5
...danke genau sowas hab ich geneint. Habs wohl nicht gerafft, dass der Debug dafür ist...
alles andere hätte mich auch gewundert da nur schon mal zwischen dem Graupner und Futaba Signal ein Unterschied existiert (positive/negativ Werte....)

Gruss Flo
 

Heliflo

Erfahrener Benutzer
#6
Rangarid hat gesagt.:
Übrigens...du musst noch die Senderausschläge einstellen. Die Standardausschläge gehen zwar auch, aber es ist besser wenn alles genau angepasst ist. Dafür gibt es nen Debug Modus, da musst du alle Ruder voll ausschlagen und dann bekommst du die Min- und Maxwerte angezeigt die du dann hier eintragen kannst:
Code:
#define CH1_MIN 1000 			// (Microseconds) Range of Ailerons/ Rudder
#define CH1_MAX 2000 			// (Microseconds)
#define CH2_MIN 1000 			// (Microseconds) Range of Elevator
#define CH2_MAX 2000 			// (Microseconds)
#define CH3_MIN 1000 			// (Microseconds) Range of Throttle  - Important - please use debug mode to find your PWM values and set them here.
#define CH3_MAX 2000 			// (Microseconds)
#define CH4_MIN 1000 			// (Microseconds) Range of Rudder
#define CH4_MAX 2000 			// (Microseconds)
Mit den Debug Modi kannst du quasi schonmal die hälfte der Fehler ausschließen bevor du aufs Feld gehst.
irgendwie klappt das bei mir nicht. Wenn ich den debugmodus definiere (z.B.1) den upload mache und anschliessend auf den serial monitor gehe, folgen in der ersten zeile fortlaufend irgendwelche Hyeroglyphen:/: Bauderate ist richtig eingestellt....

Ich mag mich erinnern, dass ich vor einer weile mal irgend ein zipfile in ner anleitung gesehen habe, dass man im arduino zusätzlich platzieren muss damit das geht...kann die info aber leider nirgens mehr finden....

Gruss Flo
 

Heliflo

Erfahrener Benutzer
#8
..ok danke, werde mal schauen....
sind diese werte bei dir ein fortlaufender text? wie weiss mann da, wo der max ausschlag liegt? so schnell kann man ja nicht lesen....?
 

Rangarid

Erfahrener Benutzer
#9
Es gibt 2 Debugmodi für die Fernbedienung, bei dem einen zeigt er immer pro Kanal die erziehlten Max und Minwerte an, du musst also in jede Richtung drücken, dann siehst du ja den Max/Min Wert. Er gibt immer dann den aktuellen Wert und den maximalen/minimalen, der max/min ändert sich nicht mehr, den brauchst du nachher.
 

Heliflo

Erfahrener Benutzer
#10
habe den kompletted arduCode nocmals neu runtergeladen - den alten gelöscht. jetzt läuft alles so dass es auch für mich sinn macht....:wow:

eine sache bleibt jedoch....ist es normal, dass sich CH3 auch beim gasgeben nicht ändert? für ch1 und 2 hat es wunderbar geklappt...


Edit: habs grad gesehen: gibt einen separaten modus für ch3....

Danke nochmal...
 

Heliflo

Erfahrener Benutzer
#11
...mir ist grad aufgefallen, dass mein Ardupilot in beiden Modi :

#define POSITION_2 STABILIZE
#define POSITION_3 FLY_BY_WIRE_B

vollgas gibt. selbst wenn ich vors pitotrohr blase ändert sich nichts...

ist das normal, kann mir nicht vorstellen, dass das in der Luft anders sein soll - oder hat das mit den Thermopillen zu tun, die davon ausgehen sie sehen den boden (tests wurden im haus gemacht) und geben vollgas?
 

Rangarid

Erfahrener Benutzer
#12
Bei Stabilize sollte der Motor eigentlich nicht angehen, da ja da nur stabilisiert wird und nicht der Motor mit bearbeitet wird. Bei Fly_By_Wire ist das ne andere Geschichte. Du kannst in der Config irgendwo den Cruise Speed angeben, da stellst du quasi ein, wie schnell das Flugzeug sein soll. Wenn das auf einem relativ hohem Wert steht könnte es daran liegen, dass dein Blasen nicht viel bringt, oder bläst du mit 50-60km/h? Ich weiß nicht genau wie schnell man Blasen kann...^^

Code:
// NOTE - The range for throttle values is 0 to 125
// NOTE - For proper tuning the THROTTLE_CRUISE value should be the correct value to produce AIRSPEED_CRUISE in straight and level flight with your airframe
#define THROTTLE_MIN 0			// (0-100 %) Raise it if your plane falls too quickly when decending.
#define THROTTLE_CRUISE 35    	// (0-100 %) Default throttle value - Used for central value.
#define THROTTLE_MAX 60   	    // (0-100 %) Throttle (lower this if your plane is overpowered)

// For use in Fly By Wire B mode in meters per second
#define AIRSPEED_FBW_MIN 6		// meters/s : Minimum airspeed for Fly By Wire mode B, throttle stick at bottom
#define AIRSPEED_FBW_MAX 30		// meters/s : Maximum airspeed for Fly By Wire mode B, throttle stick at top
Oben gibst du in % an wieviel Power der Motor haben soll, unten die Geschwindigkeit.

Geschwindigkeit ist in m/s
 

Heliflo

Erfahrener Benutzer
#13
...danke für den Hinweis.
Dies ist aber schon alles ungefähr eingestellt.

Ich habe es heute einfach mal "riskiert" und das

#define POSITION_3 FLY_BY_WIRE_B durch auto ersetzt.:) Hat alles PERFEKT funktioniert und er ist die vorgegebene Route auf anhieb stabilerer als ich je zu träumen gewagt hätte und durchaus präzise abgeflogen...:D

auf #define POSITION_2 STABILIZE habe ich aber immer noch das Problem vom vollgas (auch im Flug...):???:

macht eigentlich auch nichts, da ich den Ardupiloten ja vorallem fürs AUTO habe. Interessieren woher der "Fehler" kommt würde es mich aber schon. Denn genau in dem Modi wo er das gas gar nicht regeln soll gibt er Vollgas...
Gruss Flo
 

Heliflo

Erfahrener Benutzer
#15
...habe ich ja zuerst auch gedacht - aber dann würde er im Automudus doch auch verkehrt rum gasgeben... dort funzt aber alles wie es soll... also physikalisch was falsch kann ich mir kaum vorstellen...
 
FPV1

Banggood

Oben Unten