Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
772 | killagreg | 1 | V0.68d Ausgangsversion. |
2 | |||
3 | G.Stobrawa 06.03.2008: |
||
4 | |||
5 | - Code stärker modularisiert und restrukturiert |
||
6 | - viele Kommentare zur Erklärug eingefügt |
||
7 | - konsequent englische Variablennamen |
||
8 | - PPM24 Support für bis zu 12 RC-Kanäle. |
||
9 | - Support für Kompass CMPS01 oder MM3 (mit verbesserte Neigungskompensation, stabilere Kommunikation) (Option im Makefile) |
||
10 | - 2. Uart wird nun unterstützt (MCU = atmega644p im Makefile) |
||
11 | - Ausertung des UBX-Pprotocols an 1. oder 2. Uart |
||
12 | - einige kleinere Bugfixes |
||
13 | - GPS-Hold-Funktion hinzugefügt |
||
14 | - GPS-Home-Funktion hinzugefügt (wird beim Motorstart gelernt, und bei Motorenstop wieder gelöscht) |
||
15 | - Poti3 steuert die GPS Funktionen (Poti3 < 70:GPS inaktiv, 70<=Poti3<160: GPS Hold, 160<=Poti3: GPS Home) |
||
777 | killagreg | 16 | - LED Steuerung an J16, parametrierbar durch die User Parameter 7 & 8. UserParam7 legt die |
17 | LEDOnTime in Vielfachen von 2ms fest und UserParam 8 die LEDOffTime. |
||
772 | killagreg | 18 | - Zusätzliche Punkte im Menü des KopterTool zur Anzeige des GPS-Status und der MM3-Kalibierparameter |
19 | |||
20 | |||
21 | - Hardware Configuration: |
||
22 | |||
23 | - Die PWM des CMPS03 wird wie bisher standard über den Port PC4 (Pin5 an SV1 der FC) eingelesen. |
||
24 | - Der MM3 wird wie folgt verbunden. |
||
25 | |||
26 | FC 1.0/1.1/1.2 Level Shifter MM3 |
||
27 | SCK (Pin1 SV5) ---> SCK (Pin1) |
||
28 | MISO (Pin3 SV5) <--- MISO (Pin2) |
||
29 | MOSI (Pin5 SV5) ---> MOSI (Pin3) |
||
30 | GND (Pin6 SV5) ---> GND (Pin7 / Pin14) |
||
31 | PC4 (Pin5 SV1) ---> SS (Pin4) |
||
32 | PC5 (Pin6 SV1) ---> RESET (Pin6) |
||
33 | |||
775 | killagreg | 34 | Zusätzlich benötigt der MM3 noch eine 3V oder 3V3 Versorgung an VDD (Pin12). |
772 | killagreg | 35 | |
775 | killagreg | 36 | - Für das UBLOX-Modul muss noch GPS-GND mit FC-GND (Pin7 SV1) und |
37 | die GPS-TXD Leitung mit FC-RXD (Pin1 SV1) verbunden werden, |
||
38 | wenn man die FC 1.0 mit dem Atmega644 verwendet. |
||
39 | Für die FC 1.1/1.2 mit Atmega644p-Bestückung benötigt man FC-RXD1 (Pin3 SV1). |
||
40 | Zusätzlich benötigt das UBLOX-Modul noch eine 5V-Versorgung die ggf. von |
||
774 | killagreg | 41 | der FC (an Pin2 SV1) abgegriffen werden kann. |
777 | killagreg | 42 | Wenn die FC gültige Messages vom GPS empfängt, blinkt die rote LED mit 4 Hz. |
772 | killagreg | 43 | |
44 | |||
45 | - Konfiguration des MK. |
||
780 | killagreg | 46 | Es sollte ein Haken bei GPS und Kompass gesetzt sein. Wenn nur GPS Aktiviert ist, wird intern immer auch der |
47 | Kompass aktiviert, da er für den GPS-Regler unbedingt notwendig ist. |
||
772 | killagreg | 48 | |
794 | killagreg | 49 | - Unter Sonstiges: Kompass-Wirkung etwa auf 50 bis 70. |
50 | |||
772 | killagreg | 51 | - User Parameters: |
52 | Parameter 3 --> Calibration factor for transforming Gyro Integrals to angular degrees (~170) |
||
53 | Parameter 4 --> Angle between the MM3 Board (Arrow) and the MK head (typical ~180) |
||
54 | Parameter 5 --> P-Factor for GPS PD controller (~100) |
||
55 | Parameter 6 --> D-Factor for GPS PD controller (~80) |
||
790 | killagreg | 56 | Parameter 7 --> LED1Time for J16 |
57 | Parameter 8 --> LED2Time for J17 |
||
58 | |||
59 | - LED-Steuerung an J16/J17 |
||
60 | Das Verhalten der über einen Transistor gegen Masse geschalteten Ausgänge J16/J17 wird mit |
||
61 | Hilfe der Userparameter 7 und 8 angepasst. |
||
62 | Es gilt: |
||
63 | UP7/8 < 20: Ausgang liegt dauerhaft auf Masse. |
||
64 | UP7/8 > 220: Ausgang ist dauerhaft hochohmig. |
||
65 | Sonst wird geblinkt, wobei sich die Frequenz mit dem Userparameter zwischen 2 bis 25 Hz einstellen lässt. |
||
66 | |||
772 | killagreg | 67 | |
68 | - Zusätzliche akustische Signale: |
||
775 | killagreg | 69 | |
70 | Signale die eine Fehlfunktion anzeigen: |
||
772 | killagreg | 71 | |
777 | killagreg | 72 | Dauerton: Eine GPS-Funktion ist aktiviert und es werden keine oder |
772 | killagreg | 73 | unvollständige GPS-Daten via UART empfangen. |
74 | Hier ist zu berücksichtigen, dass die folgenden UBX Messages am UBLOX |
||
783 | killagreg | 75 | aktiviert wurden: NAV-POSLLH, NAV-SOL, NAV-VELNED. |
772 | killagreg | 76 | Fehlt eine dieser Messages wird breits der Dauerton gesetzt. |
77 | |||
807 | killagreg | 78 | 5Hz Piepen: Ist eine der GPS Funktion aktiviert, zeigt dass den Empfang valider UBX-Daten, |
775 | killagreg | 79 | wenn noch kein 3D-Satfix vorliegt. Die Pausen zwischen den 4Hz Pieps werden |
772 | killagreg | 80 | immer länger je mehr Satelitten das GPS empfängt. |
777 | killagreg | 81 | Liegt ein 3D Fix vor, so verstummt der Pieper dann endgültig egal wie viele Satelitten |
772 | killagreg | 82 | beteiligt sind (es müssen dafür aber mindesten 4 sein). |
775 | killagreg | 83 | |
84 | Ist die Comming Home Funktion aktiv (Poti3>160) und konnte keine Home-Position beim |
||
777 | killagreg | 85 | Einschalten der Motoren eingelernt werden, so ertönt ebenfalls ein 4Hz-Piepen. |
772 | killagreg | 86 | |
87 | 10Hz Piepen: Die Kommunikation zum Kompassmodul ist gestört. (Funktioniert bei beiden Kompassmodulen) |
||
88 | Der CompassValue in den Debugs vom Koptertool zeigt dann -1 an. |
||
775 | killagreg | 89 | |
90 | Signale die eine Aktion bestätigen. |
||
772 | killagreg | 91 | |
92 | 1s Piepen: Ertönt dieses Signal nach dem Einschalten der Motoren wird die erfolgreiche |
||
775 | killagreg | 93 | Übernahme der Home-Position bestätigt. |
772 | killagreg | 94 | |
95 | |||
96 | - Inbetriebnahme: |
||
97 | |||
98 | Nach dem Flashen des Codes sollte man die Kalibrierung für den MM3 wiederholen, da diese Daten |
||
774 | killagreg | 99 | an einer anderen Position im EEProm der FC abgelegt und wieder gelesen werden. |
772 | killagreg | 100 | |
774 | killagreg | 101 | - Kopter ausschalten |
772 | killagreg | 102 | - den Gas/Gierstick in die obere linke Ecke stellen |
775 | killagreg | 103 | - Kopter einschalten (Periodisches Piepen zeigt aktive Kalibrierroutine an |
104 | und der Gierstick kann wieder in die Giermittelstellung.) |
||
772 | killagreg | 105 | - den Kopter fleißig umherwürfeln, damit jeder der 3 Magnetfeldsensoren einmal den Minimal. bzw. Maximalwert |
106 | des Erdmagnetfeldes gemessen hat. Man kann das etwas gezielter machen, denn die Richtung des Erdmagnetfeldes zeigt |
||
107 | in etwa nach Norden und taucht ca. mit 70° bzgl. des Horizonts in in die Erde ein. |
||
790 | killagreg | 108 | Die Messwerte werden auf dem Terminal des Koptertoolswärend der Kalibrierung angezeigt. |
109 | Legt man den Gierstick bei der Kalibrierung nach links, so werden die bis dahin gefundenen Maximalwerte |
||
110 | auf 0 zurückgesetzt und man muß von neuem Würflen. Ich habe das eingebaut, weil ich festgestellt habe, das bei |
||
111 | mir die +z-Achse des Kompass am anfang durch einen Spike nach dem Einschalten oder ähnliches erhöht war. |
||
775 | killagreg | 112 | - am Ende den Gasstick nach unten drücken, damit die Kalibrierung beendet wird, und die Daten |
113 | im EEProm gesichter werden (Piepen beendet). |
||
772 | killagreg | 114 | - Zur Sicherheit kann man die Kalibrierdaten im Menü des Koptertools unter Punkt 13 den Offset aller Achsen und unter |
775 | killagreg | 115 | Punkt 14 den Range aller Achsen des MM3 anschauen. Bei mir sind die Werte der Offsets |
777 | killagreg | 116 | nur wenige Counts von 0 verschieden und die Ranges fast gleich bei Werten um die 400-500 Counts. |
772 | killagreg | 117 | |
118 | Zur Bestimmung des User Parameters 3 (Umrechnungsfaktor zwischen dem Gyrointegral und dem zugehörigen Neigungswinkel) |
||
119 | hat sich folgendes Vorgehen bewehrt. |
||
120 | |||
775 | killagreg | 121 | - Man bestimmt den Wert des Roll- und Nick-Integrals für einen Neigungswinkel von 45° |
122 | über die Ausgaben des Koptertools. |
||
772 | killagreg | 123 | - Aus diesem Wert kann man den benötigten UserParam3 berechnen. |
124 | |||
775 | killagreg | 125 | UserParam3 = (Nick-Integral(45°)+Roll-Integral(45°))/2*GyroACCFaktor/45°/8. (typisch 170) |
772 | killagreg | 126 | |
127 | - Nachdem dieser Wert über die Settings des Koptertools im MK abgepeichert ist, sollte sich der CompassValue bei |
||
128 | Verkippungen nur unwesentlich verändern. |
||
777 | killagreg | 129 | |
130 | - Preflight GPS Test: |
||
131 | Ist der Kopter eingeschaltet, so kann man den GPS-Empfang überprüfen, in dem man Poti3 > 70 setzt. |
||
132 | Erhält man ein Dauerpiepen besteht keine Kommunikation zum GPS oder eine der benötigten UBX-Messseages fehlt. |
||
133 | Blinkt die rote LED der FC, so werden grundsätzlich valide Daten vom GPS empfangen. Abhilfe schafft dann die |
||
783 | killagreg | 134 | Einstellung des GPS-Moduls via USB und u-Center sodass die UBX Messages NAV-POSLLH, NAV-SOL, NAV-VELNED |
807 | killagreg | 135 | mit 57600 baud auf zum Target 1 (RS232) gesendet werden. Es empfiehlt sich alle anderen Sendungen inkl. NMEA |
777 | killagreg | 136 | abzuschalten, da diese sonst durch den UBX-Parser auf der FC laufen und sinnlose Rechenzeit beanspruchen. |
778 | killagreg | 137 | Am einfachsten geht das mit dem Konfigurationsfile "Conrad LEA-4H Config.txt". Dazu verbindet man das |
138 | UBLOX-Modul via USB mit dem PC und started das u-Center. Dan wählt man im Menü: |
||
139 | "Tools->GPS Configuration" dieses File aus und klickt auf den Button "File >> GPS". |
||
807 | killagreg | 140 | Hat man diese Hürde genommen (Dauerpiepsen ist Weg), wird wahrscheinlich ein 5Hz piepen zu hören sein. |
777 | killagreg | 141 | Dieses zeigt den korrekten Empfang aller UBX-Messages an. Je mehr Satelitten empfangen werden, desto länger werden |
142 | die Pausen zwischen den Pieps, bis sie schleißlich ganz verschwinden, was einen 3D-Satfix signalisiert. |
||
143 | Die GPS-Funktionen können ggf. nun wieder abgeschaltet werden (Poti3<70). |
||
144 | |||
145 | - Setzen der Home Position: |
||
146 | Startet man die Motoren, so ertönt in diesem Moment eine 1s-langer Piep, der die erfolgreiche Übernahme |
||
147 | der Home-Position bestätigt. Dies passiert immer, auch wenn keine GPS-Funktion aktiviert wurde (Poti3<70). |
||
148 | Es kann jedoch sein, dass das Signal nicht ertönt. In diesem Fall konnte keine Home Position |
||
807 | killagreg | 149 | 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 |
777 | killagreg | 150 | wenigstens ein Position Hold. Schaltet man die Motoren ab, so wird auch die ggf. |
151 | gespeicherte Home-Position gelöscht. |
||
152 | |||
153 | - Dynamishes Position Hold: |
||
154 | Ist 70 < Poti3 < 160 so ist die dynamische Position Hold Funktion aktiv. Solange sich der Nick- & Roll-Stick |
||
155 | in Zentralposiotion befinden (genauer Auschlag < 20 Counts) wird die laterale (XY)-Position durch das GPS- |
||
156 | Signal geregelt. Dabei wird versucht die Abweichung der aktuellen GPS-Position von der zum Zeitpunkt |
||
157 | der letzen Nick/Roll-Stickbewegung gespeicherten Position zu minimieren. (Siehe dazu auch D- & P-Parameter |
||
158 | des GPS-Reglers). Dadurch kann man den MK zu einer bestimmten Position steuern und behält diese bei. |
||
159 | |||
160 | Es kann vorkommen, das bei extremer Timmerstellung an Nick und Roll der Funke der |
||
161 | zugehörige Stickwert bereits eine Auslenkung > 20 zeigt. In diesem Fall wird das Position Hold |
||
162 | leider nicht aktiviert. Durch die automatische Abschaltung des GPS-Reglers für den Fall einer manuellen |
||
163 | Bedienung kann man jederzeit in das Flugverhalten eingreifen. |
||
164 | |||
165 | - Comming Home: |
||
166 | Ist Poti3 > 160 so ist die Comming Home Funktion aktiv. Das verhalten ist analog dem Position Hold, |
||
167 | jedoch ist das Regelziel nicht die zuletzt gespeichwerte GPS-Position sondern die zum Zeitpunkt des |
||
168 | Einschaltens der MOtoren gespeicherte Home Position. Eine manualle Bedienung von Nick- und Roll-Stick |
||
780 | killagreg | 169 | unterbricht auch hier sofort den GPS-Regler und die Steuerung erfolgt manuell. |
777 | killagreg | 170 | |
171 | |||
172 |