Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 952 → Rev 953

/branches/V0.70d Code Redesign killagreg/Hex-Files/Readme.txt
1,6 → 1,6
V0.70b Ausgangsversion.
V0.70d Ausgangsversion.
 
G.Stobrawa 18.07.2008:
G.Stobrawa 02.08.2008:
 
- Code stärker modularisiert und restrukturiert
- viele Kommentare zur Erklärug eingefügt
8,11 → 8,10
- PPM24 Support für bis zu 12 RC-Kanäle.
- Support für Kompass CMPS01, MK3MAG oder MM3
- 2. Uart wird nun unterstützt (MCU = atmega644p im Makefile)
- Ausertung des UBX-Protocols an 1. oder 2. Uart
- Auswertung des UBX-Protocols an 1. oder 2. Uart
- einige kleinere Bugfixes
- GPS-Hold-Funktion hinzugefügt
- GPS-Home-Funktion hinzugefügt (wird beim Motorstart gelernt, und bei Motorenstop wieder gelöscht)
- Poti3 steuert die GPS Funktionen (Poti3 < 70:GPS inaktiv, 70<=Poti3<160: GPS Hold, 160<=Poti3: GPS Home)
- GPS-Home-Funktion hinzugefügt (wird beim kalibrieren gelernt)
- Zusätzliche Punkte im Menü des KopterTool zur Anzeige des GPS-Status und der MM3-Kalibierparameter
 
 
41,15 → 40,46
Wenn die FC gültige Messages vom GPS empfängt, blinkt die rote LED mit 4 Hz.
 
 
- Konfiguration des MK.
Es sollte ein Haken bei GPS und Kompass gesetzt sein. Wenn nur GPS Aktiviert ist, wird intern immer auch der
Kompass aktiviert, da er für den GPS-Regler unbedingt notwendig ist.
- Konfiguration des MK
- Die Firmware 0.70d benötigt mindestens das Mikrokpter Tool 1.53
- Es sollte ein Haken bei GPS und Kompass gesetzt sein. Wenn nur GPS aktiviert ist, wird intern immer auch der
Kompass aktiviert, da er für den GPS-Regler unbedingt notwendig ist.
 
- Unter Sonstiges: Kompass-Wirkung etwa auf 50 bis 70.
- Unter Sonstiges: Kompass-Wirkung etwa auf ca. 127.
 
- User Parameters:
Parameter 3 --> Calibration factor for transforming Gyro Integrals to angular degrees (~170)
Parameter 4 --> Angle between the MM3 Board (Arrow) and the MK head (typical ~180)
- User Parameters: (nur notwendig wenn man den MM3 verwendet)
Parameter 3 --> Calibration factor for transforming Gyro Integrals to angular degrees (~170)
Parameter 4 --> Angle between the MM3 Board (Arrow) and the MK head (typical ~180)
 
- NaviCtrl Paramter: (werden benutzt um die GPS-Regelung zu parametrisieren)
- GPS Mode Control:
Setzt man normalerweise auf ein Poti um wärend des Fluges die GPS Funktion schalten zu können.
< 50 : --> aid mode (aktuelle Position wird gehalten, wenn keine Nick/Roll-Sticks in Mittenstellung)
50 ..180 : --> free mode (GPS-Regelung inaktiv)
> 180 : --> home mode (MK fliegt zur Home-Position, wenn diese nicht abgespeichert wurde -> aid mode)
Ein Wechsel des Modes wird durch einen kurzen Piep quitiert.
- GPS Gain:
Das ist der Verstärkungsfaktor mit dem die GPS-Regelung in die Steuerung eingreift.
Der typischer Wert ist 100. Man sollte diesen Wert anpassen, wenn nach einer einmal optimierten
Kombination aus P,I,D aufgrund eines veränderten Fluggewichts oder Motorleistung das Regelverhalten
zu stark (Wert verringern) oder zu schwach (Wert erhöhen) ausfällt.
- GPS Stick Threshold:
Dieser Wert legt fest, ab welchem Nick/Roll-Stickausschlag ein manueller Eingriff des Piloten erkannt wird,
und daher die GPS-Regelung abgeschatet wird. (Typicher Wert 10) Man sollte den Wert nicht zu kein wähen, da man durch Trimmung an der Funke meist einige Counts in Mittelstellug des Nick/Roll-Sticks vorliegen.
 
- Min. Sat.:
Dies ist die Mindestanzahl der Sateliten, die bei einem 3D-Satfix empfangen werden müssen,
damit die GPS-Regelung aktiv wird. Für einen 3-D Satfix sind mindestens 4 Sats notwendig. Ein typischer Wert
von 6 garantiert ausreichende GPS-Signalstabilität.
 
- GPS-P: ca. 90
- GPS-I: ca. 5
- GPS-D: ca 90
- GPS Acc: unused
 
- Zusätzliche akustische Signale:
62,28 → 92,28
aktiviert wurden: NAV-POSLLH, NAV-SOL, NAV-VELNED.
Fehlt eine dieser Messages wird breits der Dauerton gesetzt.
5Hz Piepen: Ist eine der GPS Funktion aktiviert, zeigt dass den Empfang valider UBX-Daten,
wenn noch kein 3D-Satfix vorliegt. Die Pausen zwischen den 4Hz Pieps werden
immer länger je mehr Satelitten das GPS empfängt.
Liegt ein 3D Fix vor, so verstummt der Pieper dann endgültig egal wie viele Satelitten
beteiligt sind (es müssen dafür aber mindesten 4 sein).
2Hz Piepen: Ist eine der GPS-Modi Aid oder Home aktiviert, zeigt dass den Empfang valider UBX-Daten,
wenn noch kein 3D-Satfix vorliegt. Liegt ein 3D-SatFix vor und werden ausreichend Satelliten
enpfangen, so verstummt der Pieper.
Ist die Comming Home Funktion aktiv (Poti3>160) und konnte keine Home-Position beim
Einschalten der Motoren eingelernt werden, so ertönt ebenfalls ein 4Hz-Piepen.
5Hz Piepen: Ist der Comming Home Mode aktiv (GPS Mode Control>180) und wurde keine Home-Position
gespeichert, so ertönt ein 5Hz-Piepen.
10Hz Piepen: Die Kommunikation zum Kompassmodul ist gestört. (Funktioniert bei beiden Kompassmodulen)
Der CompassValue in den Debugs vom Koptertool zeigt dann -1 an.
 
Signale die eine Aktion bestätigen.
1s Piepen: Ertönt dieses Signal nach dem Einschalten der Motoren wird die erfolgreiche
Übernahme der Home-Position bestätigt.
1s Piepen: Ertönt nach dem Kalibrieren wenn die Home-Position erfolgreich gespeichert wurde.
kurzer Piep: Ertönt bei einem Wechsel des GPS Control Modes.
 
 
 
- Inbetriebnahme:
 
Nach dem Flashen des Codes sollte man die Kalibrierung für den MK3MAG/MM3 wiederholen, da diese Daten
an einer anderen Position im EEProm der FC abgelegt und wieder gelesen werden.
Nach dem Flashen der FC auf die Verison 0.70d sollte man zur Sicherheit den EEProm reseten und die Kalibrierung
für den MK3MAG/MM3 wiederholen, da diese Daten an einer anderen Position im EEProm der FC abgelegt
und wieder gelesen werden.
 
Das Vorgehen erfolgt beim MM3 und MK3MAG exakt gleich wie hier beschrieben.
http://www.mikrokopter.de/ucwiki/MK3Mag?highlight=%28mk3mag%29
101,45 → 131,42
Verkippungen nur unwesentlich verändern.
 
- Preflight GPS Test:
Ist der Kopter eingeschaltet, so kann man den GPS-Empfang überprüfen, in dem man Poti3 > 70 setzt.
Ist der Kopter eingeschaltet, so kann man den GPS-Empfang überprüfen, in dem man GPS Mode Control < 50 setzt.
Erhält man ein Dauerpiepen besteht keine Kommunikation zum GPS oder eine der benötigten UBX-Messseages fehlt.
Blinkt die rote LED der FC, so werden grundsätzlich valide Daten vom GPS empfangen. Abhilfe schafft dann die
Einstellung des GPS-Moduls via USB und u-Center sodass die UBX Messages NAV-POSLLH, NAV-SOL, NAV-VELNED
mit 57600 baud auf zum Target 1 (RS232) gesendet werden. Es empfiehlt sich alle anderen Sendungen inkl. NMEA
abzuschalten, da diese sonst durch den UBX-Parser auf der FC laufen und sinnlose Rechenzeit beanspruchen.
Am einfachsten geht das mit dem Konfigurationsfile "Conrad LEA-4H Config.txt". Dazu verbindet man das
Am einfachsten geht das mit dem Konfigurationsfile "Conrad LEA-5H Config.txt". Dazu verbindet man das
UBLOX-Modul via USB mit dem PC und started das u-Center. Dan wählt man im Menü:
"Tools->GPS Configuration" dieses File aus und klickt auf den Button "File >> GPS".
Hat man diese Hürde genommen (Dauerpiepsen ist Weg), wird wahrscheinlich ein 5Hz piepen zu hören sein.
Dieses zeigt den korrekten Empfang aller UBX-Messages an. Je mehr Satelitten empfangen werden, desto länger werden
die Pausen zwischen den Pieps, bis sie schleißlich ganz verschwinden, was einen 3D-Satfix signalisiert.
Die GPS-Funktionen können ggf. nun wieder abgeschaltet werden (Poti3<70).
Die GPS-Funktionen können ggf. nun wieder abgeschaltet werden (50<GPS Mode Control<180).
- Aid Mode (Position Hold):
Ist 50 < GPS Mode Control < 180 so ist die dynamische Position Hold Funktion aktiv.
Solange sich der Nick- & Roll-Stick in Zentralposiotion befinden (genauer Auschlag < GPS Stick Threshold)
wird die laterale (XY)-Position durch die GPS-Regelung kontrolliert. Dabei wird versucht die Abweichung
der aktuellen GPS-Position von der zum Zeitpunkt der letzen Nick/Roll-Stickbewegung gespeicherten Position zu minimieren. (Siehe dazu auch Gain-, D- & P-Parameter des GPS-Reglers).
Dadurch kann man den MK manuell zu einer bestimmten Position steuern und behält diese dann bei.
 
- Setzen der Home Position:
Startet man die Motoren, so ertönt in diesem Moment eine 1s-langer Piep, der die erfolgreiche Übernahme
der Home-Position bestätigt. Dies passiert immer, auch wenn keine GPS-Funktion aktiviert wurde (Poti3<70).
Es kann jedoch sein, dass das Signal nicht ertönt. In diesem Fall konnte keine Home Position
abgespeichert werden, da zu diesem Zeitpunkt kein 3D-Fix vorlag. Aktiviert man dann später während des Fluges Comming Home (Poti3>160) wird dieser Zustand mit einem 5Hz Piepen angezeigt. Der Kopter versucht dann
wenigstens ein Position Hold. Schaltet man die Motoren ab, so wird auch die ggf.
gespeicherte Home-Position gelöscht.
- Dynamishes Position Hold:
Ist 70 < Poti3 < 160 so ist die dynamische Position Hold Funktion aktiv. Solange sich der Nick- & Roll-Stick
in Zentralposiotion befinden (genauer Auschlag < 20 Counts) wird die laterale (XY)-Position durch das GPS-
Signal geregelt. Dabei wird versucht die Abweichung der aktuellen GPS-Position von der zum Zeitpunkt
der letzen Nick/Roll-Stickbewegung gespeicherten Position zu minimieren. (Siehe dazu auch D- & P-Parameter
des GPS-Reglers). Dadurch kann man den MK zu einer bestimmten Position steuern und behält diese bei.
 
Es kann vorkommen, das bei extremer Timmerstellung an Nick und Roll der Funke der
zugehörige Stickwert bereits eine Auslenkung > 20 zeigt. In diesem Fall wird das Position Hold
Stick Threshold bereits überschritten wird. In diesem Fall wird das Position Hold
leider nicht aktiviert. Durch die automatische Abschaltung des GPS-Reglers für den Fall einer manuellen
Bedienung kann man jederzeit in das Flugverhalten eingreifen.
 
- Comming Home:
Ist Poti3 > 160 so ist die Comming Home Funktion aktiv. Das verhalten ist analog dem Position Hold,
jedoch ist das Regelziel nicht die zuletzt gespeichwerte GPS-Position sondern die zum Zeitpunkt des
Einschaltens der MOtoren gespeicherte Home Position. Eine manualle Bedienung von Nick- und Roll-Stick
unterbricht auch hier sofort den GPS-Regler und die Steuerung erfolgt manuell.
- Home Mode (Comming Home):
Man kann die Home Position setzen, indem man bei ausgeschateten Motoren den Gas/Gier-Stick nach oben rechts oder
links drückt. (Also während des Kalibrierens) Es kann sein, das zu diesem zeitpunkt noch kein SatFix vorliegt.
In diesem Fall wird die Home-Position nicht gespeichert. Aktiviert man dann später während des Fluges den Home Mode (GPS Mode Control > 180) wird dieser Zustand mit einem 5Hz Piepen angezeigt. Der Kopter versucht dann
wenigstens ein AID Mode.
Das Comming Home ist analog dem Position Hold,
Jedoch ist das Regelziel nicht die zuletzt gespeichwerte GPS-Position sondern die gespeicherte Home Position.
Eine manualle Bedienung von Nick/Roll-Stick unterbricht auch hier sofort den GPS-Regler und die Steuerung erfolgt
manuell.
 
/branches/V0.70d Code Redesign killagreg/fc.c
629,7 → 629,7
}
else
{
if((ParamSet.GlobalConfig & CFG_COMPASS_ACTIVE))
if(ParamSet.GlobalConfig & (CFG_COMPASS_ACTIVE|CFG_GPS_ACTIVE))
{
// if roll stick is centered and nick stick is down
if (abs(PPM_in[ParamSet.ChannelAssignment[CH_ROLL]]) < 20 && PPM_in[ParamSet.ChannelAssignment[CH_NICK]] < -70)
1132,7 → 1132,7
// Compass
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// compass code is used if Compass option is selected
if((ParamSet.GlobalConfig & CFG_COMPASS_ACTIVE))
if(ParamSet.GlobalConfig & (CFG_COMPASS_ACTIVE|CFG_GPS_ACTIVE))
{
int16_t w, v, r,correction, error;
 
1202,7 → 1202,7
}
}
 
#if defined (USE_KILLAGREG) || defined (USE_MK3MAG)
#if (defined (USE_KILLAGREG) || defined (USE_MK3MAG))
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// GPS
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/branches/V0.70d Code Redesign killagreg/main.c
191,6 → 191,7
#ifdef USE_KILLAGREG
printf("\n\rSupport for MicroMag3 Compass");
#endif
 
#ifdef USE_MK3MAG
printf("\n\rSupport for MK3MAG Compass");
#endif
197,7 → 198,7
 
 
 
#if defined (USE_KILLAGREG) || defined (USE_MK3MAG)
#if (defined (USE_KILLAGREG) || defined (USE_MK3MAG))
#if defined (__AVR_ATmega644P__)
if(BoardRelease == 10)
{
/branches/V0.70d Code Redesign killagreg/menu.c
18,7 → 18,7
#ifdef USE_KILLAGREG
#include "mm3.h"
#endif
#if defined (USE_KILLAGREG) || defined (USE_MK3MAG)
#if (defined (USE_KILLAGREG) || defined (USE_MK3MAG))
#include "ubx.h"
#endif
#include "_Settings.h"
/branches/V0.70d Code Redesign killagreg/timer0.c
148,8 → 148,9
else PORTC &= ~(1<<PORTC7);// Speaker at PC7
}
 
#ifndef USE_NAVICTRL
// update compass value if this option is enabled in the settings
if(ParamSet.GlobalConfig & CFG_COMPASS_ACTIVE)
if(ParamSet.GlobalConfig & (CFG_COMPASS_ACTIVE|CFG_GPS_ACTIVE))
{
#ifdef USE_KILLAGREG
MM3_Update(); // read out mm3 board
158,6 → 159,7
MK3MAG_Update(); // read out mk3mag pwm
#endif
}
#endif
}
 
 
/branches/V0.70d Code Redesign killagreg/uart.c
206,7 → 206,7
 
c = UDR0; // catch the received byte
 
#if defined (USE_KILLAGREG) || defined (USE_MK3MAG)
#if (defined (USE_KILLAGREG) || defined (USE_MK3MAG))
// If the FC 1.0 cpu is used the ublox module should be conneced to rxd of the 1st uart.
// The FC 1.1 /1.2 has the ATMEGA644p cpu with a 2nd uart to which the ublox should be connected.
#if defined (__AVR_ATmega644P__)
/branches/V0.70d Code Redesign killagreg/uart1.c
142,7 → 142,7
{
uint8_t c;
c = UDR1; // get data byte
#if defined (USE_KILLAGREG) || defined (USE_MK3MAG)
#if (defined (USE_KILLAGREG) || defined (USE_MK3MAG))
if (BoardRelease > 10) ubx_parser(c); // and put it into the ubx protocol parser
#endif
}
/branches/V0.70d Code Redesign killagreg/version.txt
174,8 → 174,9
- Ausertung des UBX-Protocols an 1. oder 2. Uart
- GPS-Hold-Funktion hinzugefügt
- GPS-Home-Funktion hinzugefügt (wird beim Motorstart gelernt, und bei Motorenstop wieder gelöscht)
- Poti3 steuert die GPS Funktionen (Poti3 < 70:GPS inaktiv, 70<=Poti3<160: GPS Hold, 160<=Poti3: GPS Home)
- Zusätzliche Punkte im Menü des KopterTool zur Anzeige des GPS-Status und der MM3-Kalibierparameter
 
Weiter Detail siehe Readme.txt im Verzeichnis Hex-Files.