Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 292 → Rev 293

/branches/salvo_gps/GPS.c
16,7 → 16,7
Auswertung der Daten vom GPS im ublox Format
Hold Modus mit PID Regler
Rückstuerz zur Basis Funktion
Stand 12.10.2007
Stand 13.10.2007
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*/
#include "main.h"
506,15 → 506,13
 
if (hold_fast > 0) // wegen Sollpositionsspruengen im Fast Mode Differenzierer daempfen
{
diff_east_f = ((diff_east_f *3)/4) + (diff_east *1/4); //Differenzierer filtern
diff_north_f = ((diff_north_f *3)/4) + (diff_north*1/4); //Differenzierer filtern
diff_east_f = ((diff_east_f *2)/3) + (diff_east *1/3); //Differenzierer filtern
diff_north_f = ((diff_north_f *2)/3) + (diff_north*1/3); //Differenzierer filtern
}
else // schwache Filterung
{
// diff_east_f = diff_east;
// diff_north_f = diff_north;
diff_east_f = ((diff_east_f *2)/4) + (diff_east *2/4); //Differenzierer filtern
diff_north_f = ((diff_north_f *2)/4) + (diff_north*2/4); //Differenzierer filtern
diff_east_f = ((diff_east_f * 1)/4) + ((diff_east *3)/4); //Differenzierer filtern
diff_north_f = ((diff_north_f * 1)/4) + ((diff_north*3)/4); //Differenzierer filtern
}
 
#define GPSINT_MAX 30000 //neuer Wert ab 7.10.2007 Begrenzung
/branches/salvo_gps/README_Gps.txt
1,6 → 1,6
*********************************************************************
GPS Implementierung von Peter Muehlenbrock ("Salvo") für Mikrokopter/FlightCrtl
Stand 13.10.2007
Stand 14.10.2007
Verwendung der SW ohne Gewaehr. Siehe auch die Lizenzbedingungen in File Licensce_LPGL.txt und Licensce_GPL.txt
*********************************************************************
Hardware-Voraussetzungen:
9,10 → 9,12
mussen mit 4 HZ Updaterate aktiviert sein. Anschluss an RX Port der FlightCRtl. Baudrate ist 57600 wie beim Kopter Tool.
 
Software-Voraussetzungen:
in fc.h müsen die Neutralwerte ACC_X_NEUTRAL und ACC_Y_NEUTRAL
in fc.h müsen die Neutralwerte ACC_NICK_NEUTRAL und ACC_ROLL_NEUTRAL
eingetragen werden. Hierzu den Kopter waagrecht ausrichten (Wasserwaage) und mit dem Mikrokoptertool
die Neutralwerte ermitteln.
In timer0.h muess die Ausrichtung des Kompasses bezogen auf die Nordachse des Kopters
die Neutralwerte (Fenster ACC Sensor, jeweils die dargestellten Werte ohne Klammern) ermitteln.
Alternativ kann die Variable ACC_NEUTRAL_FIXED auf 0 gesetzt werden, dann wird die Lage beim Kalibrieren als Neutrallage
genommen (wie bei Holgers SW).
In timer0.h muss die Ausrichtung des Kompasses bezogen auf die Nordachse des Kopters
eingetragen sein. KOMPASS_OFFSET legt diesen Wert fest.
 
Hexfiles:
61,7 → 63,7
 
Weitere Änderungen:
Bei Unterschreiten der eingestellten Warnschwelle für UBAT ertönt zunächst wie gewohnt der Piepser. Geht die Spannung weiter
runter wird zwansgweise die Gas einstellung langsam reduziert um den Kopter zum Landen zu bringen
runter wird zwangsweise die Gaseinstellung langsam reduziert um den Kopter zum Landen zu bringen
 
Bekannte Schwächen:
Bei längerer Neigung weicht der Ersatzkompass ab, was zu Lageregelungsfehlern bis zum Ausbrechen führen kann.
/branches/salvo_gps/fc.c
162,13 → 162,13
// Salvo 1.9.2007 ACC mit festen neutralwerten *****
if (ACC_NEUTRAL_FIXED > 0)
{
NeutralAccX = ACC_X_NEUTRAL;
NeutralAccY = ACC_Y_NEUTRAL;
NeutralAccX = ACC_NICK_NEUTRAL;
NeutralAccY = ACC_ROLL_NEUTRAL;
}
else
{ // Automatisch bei Offsetabgleich ermitteln
NeutralAccY = abs(Mittelwert_AccRoll) / ACC_AMPLIFY;
NeutralAccX = abs(Mittelwert_AccNick) / ACC_AMPLIFY;
NeutralAccX = abs(Mittelwert_AccNick) / ACC_AMPLIFY;
NeutralAccY = abs(Mittelwert_AccRoll) / ACC_AMPLIFY;
}
// Salvo End
NeutralAccZ = Aktuell_az;
468,10 → 468,10
ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
if (UBat <= EE_Parameter.UnterspannungsWarnung - 2) //Unterhalb der Piepser Schwelle aktivieren
{
if (ubat_cnt > 800)
if (ubat_cnt > 700)
{
ubat_cnt = 0;
if (gas_actual > ((gas_mittel*13)/15)) gas_actual--;
if (gas_actual > ((gas_mittel*12)/15)) gas_actual--;
}
else ubat_cnt++;
if (GasMischanteil > gas_actual) GasMischanteil = gas_actual;
/branches/salvo_gps/fc.h
8,8 → 8,8
//Salvo 1.9.2007 Neutralwerte fuer ACC Sensor fest einstellen. Startausrichtung ist dann egal ! *****
// Laut Datenblatt sind die Werte ueber Zeit und Temperatur sehr stabil.
#define ACC_NEUTRAL_FIXED 1 // wenn eins werden die Neutralwerte fuer den ACC Sensor festeingestellt
#define ACC_X_NEUTRAL 518 // ADC Wandler Wert in Neutrallage (0g): Vom individuellen Sensor abhaengig
#define ACC_Y_NEUTRAL 516 // ADC Wandler wert in Neutrallage (0g)
#define ACC_NICK_NEUTRAL 518 // ADC Wandler Wert in Neutrallage (0g): Vom individuellen Sensor abhaengig
#define ACC_ROLL_NEUTRAL 516 // ADC Wandler wert in Neutrallage (0g)
 
#define ACC_WAAGRECHT_LIMIT 100 // Nick und Roll kleiner als dieser Wert gelten als Kriterium fuer waagrechte Lage
// Salvo End
/branches/salvo_gps/gps.h
114,8 → 114,8
// Differenzierer Kennwerte fuer von Distanz abhaengige Verstaerkung, abhaengig vom Modus.
#define GPS_DIFF_NRML_MAX_V 20 //maximale Verstaerkung * 10
#define GPS_DIFF_NRML_MAX_D 30 //Entfernung bei der maximale Verstaerkung erreicht wird in 10cm
#define GPS_DIFF_FAST_MAX_V 10 //maximale Verstaerkung * 10 im Fast mode
#define GPS_DIFF_FAST_MAX_D 80 //Entfernung bei der maximale Verstaerkung erreicht wird in 10cm im Fast mode
#define GPS_DIFF_FAST_MAX_V 15 //maximale Verstaerkung * 10 im Fast mode
#define GPS_DIFF_FAST_MAX_D 50 //Entfernung bei der maximale Verstaerkung erreicht wird in 10cm im Fast mode
// P-Regler Verstaerkung
#define GPS_PROP_NRML_V 2 //maximale Verstaerkung * 2
#define GPS_PROP_FAST_V 2 //maximale Verstaerkung * 2 im Fast mode
123,9 → 123,9
// GPS G2T /Go to Target Regler
#define GPS_G2T_DIST_MAX_STOP 50 // Ab dieser Entfernung vom Zielpunkt soll die Geschwindigkeit runtergeregelt werden( in 10 cm)
#define GPS_G2T_DIST_HOLD 30 // Ab dieser Entfernung vom Zielpunkt wird mit Minimaler Geschwindigkeit eingeregelt
#define GPS_G2T_V_MAX 10 // Maximale Geschwindigkeit (in 10cm/0.25 Sekunden) mit der der Sollpunkt geaendert wird.
#define GPS_G2T_V_RAMP_DWN 4 // Geschwindigkeit (in 10cm/0.25ekunden) in der Naehe der Home Position um abzubremsen
#define GPS_G2T_V_MIN 2 // Minimale (in 10cm/0.25 Sekunden) ganz nahe an Homeposition.
#define GPS_G2T_V_MAX 12 // Maximale Geschwindigkeit (in 10cm/0.25 Sekunden) mit der der Sollpunkt geaendert wird.
#define GPS_G2T_V_RAMP_DWN 6 // Geschwindigkeit (in 10cm/0.25ekunden) in der Naehe der Home Position um abzubremsen
#define GPS_G2T_V_MIN 3 // Minimale (in 10cm/0.25 Sekunden) ganz nahe an Homeposition.
#define GPS_G2T_FAST_TOL 60 // Bei grosser Entfernung vom Ziel: Der Sollwert wird nur geaendert wenn die aktuelle Position nicht mehr als diesem Wert vom Sollwert abweicht
#define GPS_G2T_NRML_TOL 40 // Bei kleiner Entfernung vom Ziel: Der Sollwert wird nur geaendert wenn die aktuelle Position nicht mehr als diesem Wert vom Sollwert abweicht
 
/branches/salvo_gps/makefile
4,7 → 4,7
F_CPU = 20000000
#-------------------------------------------------------------------
HAUPT_VERSION = 0
NEBEN_VERSION = 01
NEBEN_VERSION = 02
VERSION_KOMPATIBEL = 4 # PC-Kompatibilität
#-------------------------------------------------------------------