------- V0.53 27.04.2007 H.Buss - erste öffentliche Version V0.53b 29.04.2007 H.Buss - der FAKTOR_I war versehentlich auf Null, dann liegt der MikroKopter nicht so hart in der Luft V0.53c 29.04.2007 H.Buss - es gib ein Menü, in dem die Werte der Kanäle nach Nick, Roll, Gas,... sortiert sind. Die angezeigten Werte waren nicht die Werte der Funke V0.54 01.05.2007 H.Buss - die Paramtersätze können jetzt vor dem Start ausgewählt werden Dazu wird beim Kalibrieren der Messwerte (Gashebel oben links) der Nick-Rollhebel abgefragt: 2 3 4 1 x 5 - - - Bedeutet: Nick-Rollhebel Links Mitte = Setting:1 Links Oben = Setting:2 usw. - der Faktor_I für den Hauptregler ist hinzugekommen. Im Heading-Hold-Modus sollte er vergössert werden, was Stabilität bringt V0.55 14.05.2007 H.Buss - es können nun Servos an J3,J4,J5 mit den Kanälen 5-7 gesteuert werden V0.56 14.05.2007 H.Buss - es gab Probleme mit Funken, die mehr als 8 Kanäle haben, wenn mehrere Kanäle dann auf Null waren - Funken, die nicht bis +-120 aussteuern können, sollten jetzt auch gehen V0.57 24.05.2007 H.Buss - Der Höhenregler kann nun auch mittels Schalter bedient werden - Bug im Gier-Algorithmus behoben; Schnelles Gieren fürhrte dazu, dass der MK zu weit gedreht hat - Kompass-Einfluss dämpfen bei Neigung - Man kann zwischen Kompass FIX (Richtung beim Kalibrieren) und Variabel (einstellbar per Gier) wählen - Der Motortest vom Kopter-Tool geht jetzt - Man kann den Parametersätzen einen Namen geben - Das Kamerasetting ist unter Setting 2 defaultmässig integriert V0.58 30.05.2007 H.Buss - Der Höhenregler-Algorithmus wird nun umgangen, wenn der Höhenreglerschalter aus ist V0.60 17.08.2007 H.Buss - "Schwindel-Bug" behoben - Die Poti-Werte werden jetzt auf Unterlauf (<0) überprüft - Poti4 zugefügt - Es werden jetzt 8 Kanäle ausgewertet - Kamera-Servo (an J7) - Die Settings müssen überschrieben werden V0.61 - V0.63 H.Buss 27.09.2007 - Poti 4 und Kanal 8 werden im Menü angezeigt - ein paar Kleinigkeiten bei den DefaultKonstanten2 bereinigt - Analog.c: Aktuell_ax korrigiert - auf 32 Debug-Kanäle erweitert - Loopings sind jetzt möglich und einzeln im KopterTool freischaltbar - leichte Anpassungen im Gier - Geschwindigkeit und Drift - die Hardwareversion V1.1 wird erkannt und das Programm stellt sich auf die geänderte Gyroverstärkung und die geänderten Portpins ein - die Software startet nach dem Einschalten schneller, weil der Luftdruckoffset schneller gefunden wird - die PPM-Ausgänge liegen wieder an den Pins an - Details an der Sensordatenverarbeitung -> es fliegt sich geringfügig anders - der MK ist bei wenig Gas nicht mehr so giftig -> soll das Landen vereinfachen - I2C-Bus läuft jetzt sicher nach einer Störung wieder an - Sticksignale werden präziser ausgewertet - Stick-Kanäle werden ans Kopter-Tool übertragen - Es muss die Version V1.47 des Kopter-Tool verwendet werden - Die Settings werden auf Default zurückgesetzt - am Piepen kann man die Fehlerart unterscheiden 1. einzelnes Piepen beim Einschalten und Kalibrieren 2. langsames Intervall mindestens 1 Sek -> Empfangsausfall 3. schnelleres Intervall mindestens 1 Sek -> Akku 4. sehr schnelles Intervall mindestens 1 Sek -> Kommunikation zu den Reglern gestört V0.64 H.Buss 30.09.2007 - beim Gieren wurden die Achsen nicht hart genug geregelt V0.65a H.Buss 15.10.2007 - Integral im Mischer wieder integriert - Feinabstimmung im ACC/Gyro Abgleich -> 1/32 & 100 - ACC/Gyro Abgleich auch bei HH V0.66a H.Buss 3.11.2007 - Messwertverarbeitung aus dem Analog-Interrupt entfernt - Analogmessung hängt jetzt am FC-Timing - Looping-Stick-Hysterese eingebaut - Looping-180°-Umschlag einstellbar - Achsenkopplung: Gierbewegung verkoppelt Nick und Roll - Lageregelung nach ACC-Sensor verbessert - zusätzlicher I-Anteil in der Lageregelung verbessert die Neutrallage - Gyrodriftkompensation überarbeitet - Bug in der Gier-Stick-Berechnung behoben - Gyro-Messung auf 1kHz beschleunigt V0.67a H.Buss 16.11.2007 - der Hauptregler-I-Anteil wirkt jetzt nur noch auf den Winkel (ausser im HH-Mode) - Gyro-Acc-Abgleich jetzt wieder in jedem Zyklus - Feinabstimmung - Beim HH-Modus gab es noch Bugs V0.67e H.Buss 29.11.2007 - Parameter: Dynamic Stability und Driftfaktor eingeführt - Die Namen der Analogwerte werden jetzt zum Koptertool übertragen - Kompatibilität zum Koptertool erhöht V0.67f H.Buss 04.12.2007 - Das Integral des Hauptreglers wird jetzt linear entladen und nicht mehr proportional - Schub für Gier wird jetzt auf den Gaswert begrenzt, dadurch steigt der MK nicht mehr beim Gieren. Gier ist allerdings nicht mehr so agressiv - Die ACC-Nullwerte können jetzt dauerhaft im EEPROM gespeichert werden (Stick:Vollgas und Gier rechts) V0.68a I.Busker 28.12.2007 - SPI.c & SPI.h ins Projekt aufgenommen SPI-Kommuikation kann in SPI.h aktiviert/deaktivert werden V0.68c H.Buss 05.01.2008 - Stickauswertung verbessert -> träger und präziser - Alle Settings angepasst V0.68d Ausgangsversion. G.Stobrawa 06.03.2008: - Code stärker modularisiert und restrukturiert - viele Kommentare zur Erklärug eingefügt - konsequent englische Variablennamen - PPM24 Support für bis zu 12 RC-Kanäle. - Support für Kompass CMPS01 oder MM3 (mit verbesserte Neigungskompensation, stabilere Kommunikation) (Option im Makefile) - 2. Uart wird nun unterstützt (MCU = atmega644p im Makefile) - Ausertung des UBX-Pprotocols 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) - LED Steuerung an J16, parametrierbar durch die User Parameter 7 & 8. UserParam7 legt die LEDOnTime in Vielfachen von 2ms fest und UserParam 8 die LEDOffTime. - Zusätzliche Punkte im Menü des KopterTool zur Anzeige des GPS-Status und der MM3-Kalibierparameter - Hardware Configuration: - Die PWM des CMPS03 wird wie bisher standard über den Port PC4 (Pin5 an SV1 der FC) eingelesen. - Der MM3 wird wie folgt verbunden. FC 1.0/1.1/1.2 Level Shifter MM3 SCK (Pin1 SV5) ---> SCK (Pin1) MISO (Pin3 SV5) <--- MISO (Pin2) MOSI (Pin5 SV5) ---> MOSI (Pin3) GND (Pin6 SV5) ---> GND (Pin7 / Pin14) PC4 (Pin5 SV1) ---> SS (Pin4) PC5 (Pin6 SV1) ---> RESET (Pin6) Zusatzlich benötigt der MM3 noch eine 3V oder 3V3 Versorgung an VDD (Pin12). Für das UBLOX-Modul muss noch GPS-GND mit FC-GND (Pin7 SV1) und die GPS-TXD Leitung mit FC-RXD (Pin1 SV1) verbunden werden, wenn man die FC 1.0 verwendet. Für die FC 1.1/1.2 mit Atmega644p-Bestückung benötigt man mit FC-RXD1 (Pin3 SV1) bei der FC1.1/1.2 wenn der Atmega 644p verbaut ist. Zusaätzlich bentigt das UBLOX-Modul noch eine 5V-Versorgung die ggf. von der FC (an Pin2 SV1) abgegriffen werden kann. - Konfiguration des MK. Es sollte ein Haken bei GPS und Kompass gesetzt sein. - 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) Parameter 5 --> P-Factor for GPS PD controller (~100) Parameter 6 --> D-Factor for GPS PD controller (~80) Parameter 7 --> LEDOffTime for J16 Parameter 8 --> LEDOnTime for J16 - Zusätzliche Akustische Signale: Dauerton: Eine GPS-Funktion is aktiviert und es werden keine oder unvollständige GPS-Daten via UART empfangen. Hier ist zu berücksichtigen, dass die folgenden UBX Messages am UBLOX aktiviert wurden: NAV - POSLLH, NAV-SOL, NAV-VELNED. Fehlt eine dieser Messages wird breits der Dauerton gesetzt. 4Hz Piepen: Ist eine der GPS Funktion aktiviert, zeigt dass den Empfang valider UBX-Daten, jedoch liegt noch kein 3D-Satfix vor. Die Pausen zwischen den 4Hz Pieps werden immer länger je mehr Satelitten das GPS empfängt. Liegt ein 3D Fix vor verstummt der Pieper dann endgültig egal wie viele Satelitten beteiligt sind (es müssen dafür aber mindesten 4 sein). 10Hz Piepen: Die Kommunikation zum Kompassmodul ist gestört. (Funktioniert bei beiden Kompassmodulen) Der CompassValue in den Debugs vom Koptertool zeigt dann -1 an. 1s Piepen: Ertönt dieses Signal nach dem Einschalten der Motoren wird die erfolgreiche Übernahme der Home Position bestätigt. - Inbetriebnahme: Nach dem Flashen des Codes sollte man die Kalibrierung für den MM3 wiederholen, da diese Daten an einer anderen Position im EEProm der FC abgelegt werden. - Kotper ausschalten - den Gas/Gierstick in die obere linke Ecke stellen - Kopter einschalten (Periodisches Piepen zeigt aktive Kalibrierroutine an und der Gierstick kann wieder in die Giermittelstellung.) - den Kopter fleißig umherwürfeln, damit jeder der 3 Magnetfeldsensoren einmal den Minimal. bzw. Maximalwert des Erdmagnetfeldes gemessen hat. Man kann das etwas gezielter machen, denn die Richtung des Erdmagnetfeldes zeigt in etwa nach Norden und taucht ca. mit 70° bzgl. des Horizonts in in die Erde ein. - am Ende den Gasstick nach unten drücken, damit die Kalibrierung beendet wird, und die Daten im EEProm gesichter werden (Piepen beendet). - Zur Sicherheit kann man die Kalibrierdaten im Menü des Koptertools unter Punkt 13 den Offset aller Achsen und unter Punkt 14 den Range aller Achsen des MM3 anschauen. Bei mir sind die Werte der Offsets nur wenige Counts von 0 verschieden um die Ranges fast gleich bei werten um die 500 counts. Zur Bestimmung des User Parameters 3 (Umrechnungsfaktor zwischen dem Gyrointegral und dem zugehörigen Neigungswinkel) hat sich folgendes Vorgehen bewehrt. - Man bestimmt den Wert des Roll- und Nick-Integrals für einen Neigungswinkel von 90° über die Ausgaben des Koptertools. - Aus diesem Wert kann man den benötigten UserParam3 berechnen. UserParam3 = (Nick-Integral(90°)+Roll-Integral(90°))/2*GyroACCFaktor/90/8. (typisch 170) - Nachdem dieser Wert über die Settings des Koptertools im MK abgepeichert ist, sollte sich der CompassValue bei Verkippungen nur unwesentlich verändern. - Zum Makefile: Der Code so gestrickt, dass man für den Atemga644p oder den Atmega644 kompilieren kann. (im Makefile MCU=atmega644 / MCU=atmega644p) Falls der 644p verwendet wird, wird immer der Code für die 2. Uart mit compiliert. Diese wird aber nur initialisiert, wenn die FC 1.1/1.2 erkannt wurde. In diesem Fall werden die GPS-Daten auch dort erwartet. Bei der FC 1.0 wird die 2. Uart nicht initialisiert und die GPS-Daten an der 1. UART erwartet. Wird der Code für den 644 erzeugt entfällt der gesamte Code für die 2. Uart. Die GPS-Daten werden immer über die 1. Uart gelesen. Damit sollte jede Kombination von FC-Version und Prozessorbestückung funktionieren. Unabhängig von diesen Harwarevoraussetzungen kann man den Code für den MM3 oder CMPS03 Kompass einbinden. (im Makefile: COMAPSS=MM3 / COMPASS = CMPS03)