Wii Copter: Unterschied zwischen den Versionen
Crizz (Diskussion | Beiträge) K (Quellenverweis hinzugefügt) |
|||
(25 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= | == Die Idee == | ||
Die Grundidee ist es mit günstigen und einfach zu beschaffenden Komponenten einem Multicopter zu bauen. | |||
Dabei ist [http://www.multiwii.com das ursprüngliche Projekt] als Open-Source gehalten, so dass es immer weitere Varianten gibt, wie z.B. das Projekt Ardu-Copter. | |||
Obwohl auch optional eine Stabilisierung für eine Kamera und die Möglichkeit einer Höhenregelung über einen Luftdrucksensor vorgesehen ist, liegt der Hauptanwendungsbereich bei der Fun-Fliegerei mit der Möglichkeit gelegentlich eine Kamera mit zu nehmen, aber auf Grund der fehlenden GPS-Navigation wohl weniger im Bereich der Luftbildfotografie. | |||
== Komponenten == | |||
=== Arduino === | |||
Herzstück dieser Multicopter-Steuerung bildet das Arduino-Board, für gewöhnlich kommt das "Arduino Pro Mini 328 - 5V/16MHz" zum Einsatz. | |||
Alternativ kann auch das "Arduino Nano V3.0" eingesetzt werden, was schon eine USB-Schnittstelle zum programmieren mitbringt oder das "Seeeduino Mega" welches mehr Ein- und Ausgänge zur Verfügung stellt. | |||
Die Arduino-Board werden i.d.R. mit betriebsfertigem Bootloader ausgeliefert, es muß lediglich die Firmware aufgespielt werden und die Parameter für den Betrieb eingestellt werden (Mittels GUI-Software (GUI: Grafical User Interface)). | |||
Die nötige Software findet man unter http://www.multiwii.com | |||
== Wii Motion Plus == | === Wii Motion Plus === | ||
Das Wii-Motion Plus ist ein Zubehörteil für die Wii-Spielekonsole das neben einem 3-Achsen-Gyroskop auch einen Microchip mit A/D-Wandler beinhaltet der die Sensoren ausliest und die Werte über einen I²C-Bus bereitstellt. | Das Wii-Motion Plus ist ein Zubehörteil für die Wii-Spielekonsole das neben einem 3-Achsen-Gyroskop auch einen Microchip mit A/D-Wandler beinhaltet der die Sensoren ausliest und die Werte über einen I²C-Bus bereitstellt. | ||
[[Bild:Wii_Motion_Plus.jpg|200px]] | [[Bild:Wii_Motion_Plus.jpg|200px]] | ||
== Wii Nunchuck (optional) == | === Wii Nunchuck (optional) === | ||
Ebenfalls ein Zubehörteil für die Wii-Spielekonsole das neben dem für den Betrieb im Wii-Copter überflüssigen Steuerstick einen 3-Achs-Beschleunigungssensor, der ebenfalls über den I²C-Bus abgefragt wird, bereitstellt. | Ebenfalls ein Zubehörteil für die Wii-Spielekonsole das neben dem für den Betrieb im Wii-Copter überflüssigen Steuerstick einen 3-Achs-Beschleunigungssensor, der ebenfalls über den I²C-Bus abgefragt wird, bereitstellt. | ||
Zeile 35: | Zeile 27: | ||
Weil es mit dem Sensor aus dem Nunchuck öfters zu Problemen gekommen ist, wird alternativ dazu der 3-Achsen-Beschleunigungssensor "BOSCH BMA020" der zudem auch noch günstiger ist. | Weil es mit dem Sensor aus dem Nunchuck öfters zu Problemen gekommen ist, wird alternativ dazu der 3-Achsen-Beschleunigungssensor "BOSCH BMA020" der zudem auch noch günstiger ist. | ||
Die Vorteile des BMA020 liegen im Vergleich zu anderen Beschleunigungssensoren wie dem ADXL345 und BMA180 im günstigerem Preis und darin das die Versorgungsspannung vom | Die Vorteile des BMA020 liegen im Vergleich zu anderen Beschleunigungssensoren wie dem ADXL345 und BMA180 im günstigerem Preis und darin das die Versorgungsspannung vom Regler-BEC verwendet werden kann. Die MultiWii Software unterstützt die oben genannten ACC ab der Version 1.6pre. | ||
=== Brushless-Regler (ESC) === | |||
==== Einstellungen für Multiwii ==== | |||
==== Alternative Firmware für ESC ==== | |||
Mittlerweile hat sich herum gesprochen, dass es alternative Firmwares für die ESCs gibt. | |||
Durch das Flashen einer alternativen Firmware ist der Regler in der Lage durch die höhere Auflösung auf dem Reglerweg den Motor feiner ansteuern zu können. | |||
Speziell wird hier auf die alternative Firmware von [https://github.com/sim-/tgy Simon Kirby@Github] eingegangen. | |||
== | ==== Tutorial: Pimp my ESC mit Simons Software ==== | ||
*; Was wird benötigt? | |||
: Unterstützter ESC mit Mikrocontroller (µC) [http://www.atmel.com/Images/doc8159.pdf Atmega8A] bzw. [http://www.atmel.com/Images/doc2486.pdf Atmega8] | |||
: AVR ISP Programmer (zum erstmaligen Flashen des µCs) | |||
: Möglichkeit die Pins vom µC mit Programmer zu verbinden (Löten, Nagel-Board usw.) | |||
: Software zum Flashen: [http://lazyzero.de/en/modellbau/kkmulticopterflashtool KKmulticopter Flash Tool] | |||
: [https://docs.google.com/spreadsheet/ccc?key=0AhR02IDNb7_MdEhfVjk3MkRHVzhKdjU1YzdBQkZZRlE#gid=0 Liste aller flashbaren ESCs] um die richtige Hex-Datei flashen zu können | |||
*; Verbinden von µC und Programmer | |||
: Es müssen MOSI, MISO, SCK, RST & GND zwischen µC und Programmer verbunden sein | |||
: D.h. MOSI mit MOSI, MISO mit MISO, SCK mit SCK, RST mit RST und GND mit GND | |||
: '''VCC am µC nicht anschließen, sondern den ESC mit einem Akku über die Akkuanschlusskabel versorgen''' | |||
: [[Datei:Atmega8_pinout.png]] | |||
*; Flashen des ESCs mit Hilfe des KKmulticopter Flash Tools inklusive Bootlader-Flash | |||
: Richtige Hex-Datei aus der [https://docs.google.com/spreadsheet/ccc?key=0AhR02IDNb7_MdEhfVjk3MkRHVzhKdjU1YzdBQkZZRlE#gid=0 Liste] ausfindig machen | |||
: Foto vom Flash Tool mit entsprechenden Voreinstellungen<br />[[Datei:KK FlashTool.png]] | |||
: Richtige Hex-Datei öffen entsprechend der oben genannten Liste | |||
=== Barometrischer Drucksensor (optional) === | |||
Will man das der Multicopter selbstständig die Höhe halten kann muss man diese messen, dazu wird der "BMP085" verwendet, der wie auch die anderen Sensoren über den IC2-Bus abgefragt wird. | Will man das der Multicopter selbstständig die Höhe halten kann muss man diese messen, dazu wird der "BMP085" verwendet, der wie auch die anderen Sensoren über den IC2-Bus abgefragt wird. | ||
Da dieser Sensor allerdings nur für Ca. 3,3V Betriebsspannug ausgelegt ist, aber die restliche Elektronik mit 5V arbeitet muss man entweder die Spannung über Dioden herabsetzen oder man setzt einen Pegelwandler (z.B. "Sparkfun BOB-08745") ein. | Da dieser Sensor allerdings nur für Ca. 3,3V Betriebsspannug ausgelegt ist, aber die restliche Elektronik mit 5V arbeitet muss man entweder die Spannung über Dioden herabsetzen oder man setzt einen Pegelwandler (z.B. "Sparkfun BOB-08745") ein. | ||
=Aufbau= | == Aufbau == | ||
== Allgemein == | === Allgemein === | ||
Grundverdrahtung eines Quadro Wii Copters | |||
==Tricopter== | |||
(hier soll was zum Anschluss der Regler und des Servos hin, incl. der möglichen Optionen was Zusatzfunktionen angeht ) | [[Bild:Grundverdrahtung.jpg]] | ||
==Quadrocopter== | |||
Die Verbindung zum Empfänger erfolgt mit Einzelleitungen, + und - des Empfängers werden an einem Ausgang abgegriffen und mit dem Arduino-Board verbunden. Die Verbindung des Wii Motion Plus (WMP) erfolgt mit 4 Leitungen (Vcc, Gnd, Data, Clock). Wird ein Nunchuk (NK) oder BMA020 Beschleunigungssensor verwendet, so wird dieser mit 4 Leitungen mit dem WMP verbunden. Durch den I²C-Bus, der durchgeschleift ist, erfolgt mittels der Firmware (Sketch) im Arduino die Auswertung aller am I²C-Bus angeschlossenen Sensoren. | |||
Genaue Schaltpläne für die Verdrahtung der verschiedenen Modellmöglichkeiten (Quad, Tri, Y6, usw.) findet man bei [http://www.rcgroups.com/forums/showthread.php?t=1340771 rcgroups.com]. | |||
=== Tricopter === | |||
(hier soll was zum Anschluss der Regler und des Servos hin, incl. der möglichen Optionen was Zusatzfunktionen angeht) | |||
=== Quadrocopter === | |||
(sinngemäß wie Tricopter) | (sinngemäß wie Tricopter) | ||
==Hexacopter== | |||
=== Hexacopter === | |||
(sinngemäß wie Tricopter) | (sinngemäß wie Tricopter) | ||
==Y-Hexacopter== | |||
=== Y-Hexacopter === | |||
(sinngemäß wie Tricopter) | (sinngemäß wie Tricopter) | ||
==Octocopter== | |||
=== Octocopter === | |||
(sinngemäß wie Tricopter) | (sinngemäß wie Tricopter) | ||
=Konfiguration= | == Konfiguration == | ||
(hier soll z.B was hin zum einstellen der Gaswerte ,des Senders, ...) | (hier soll z.B was hin zum einstellen der Gaswerte, des Senders, ...) | ||
== Setup == | |||
(hier soll was hin zum einstellen der Regelparameter & Co) | |||
=Setup | === PID - Was ist das, was macht es === | ||
Die PID-Werte (engl: proportional–integral–derivative, deu: proportional-integrierend-verzögernd) besteht aus den Anteilen des P-Gliedes, des I-Gliedes und des D-Gliedes. Diese drei Werte dienen zum Erfassen von sämtlichen für das System messbaren Einflüssen.<br/> | |||
Im Fall eines Multirotorsystems sind die Einflüsse Winkelveränderungen (Gyro), Beschleunigungen (ACC und Magnetometer) und Druckveränderungen (Barometer) existent, ständig durch die Sensoren zu erkennen und durch die PID-Regler auf die Lage stabilisierend zu wirken, um dabei ein nahezu schwingfreies Verhalten zu zeigen.<br/> | |||
Jedes Multirotorsystem reagiert durch seinen mechanischen und elektrischen Aufbau auf Einflüsse anders und benötigt daher eine ganz individuelle Einstellung. | |||
==== P-Wert ==== | |||
P ist die Korrekturkraft die den Copter wieder in seine Ausgangsposition bringt. Je höher der P-Wert ist, desto höher ist die Kraft mit der der Copter wieder in seine Ausgangsposition zurückkehren will. | |||
'''Erhöhung des P-Wertes:''' | |||
Der Copter ist immer stabil bis der P-Wert zu hoch ist. Dann beginnt der Copter zu schwingen und man beginnt die Kontrolle zu verlieren. | |||
'''Senkung des P-Wertes:''' | |||
Wird der P-Wert zu weit gesenkt, gerät der Copter ebenfalls außer Kontrolle. | |||
'''Praxiswerte:''' | |||
Bei Coptern mit 35 bis 40cm Achsabstand sind P-Werte von 3,0 bis 3,5 auf ROLL und PITCH empfehlenswert. Für weniger als 30cm Achsabstand sollte der Wert unter 3,0 liegen. | |||
==== I-Wert ==== | |||
I ist der Zeitraum, bei dem die Winkel- und/oder Änderung abgetastet und gemittelt wird. Der Ausschlag der Korrekturkraft wird somit bestimmt, um zur Ausgangsposition zurück zukehren. | |||
'''Erhöhung des I-Wertes:''' | |||
Wird der I-Wert erhöht, so erhöht man die Wahrscheinlichkeit die Ausgansposition zu halten und Drifts zu reduzieren. Ebenso steigt die Verzögerung für die Rückkehr in die Ausgansposition. | |||
'''Senkung des I-Wertes:''' | |||
Die Verzögerung der Veränderung wird verkleinert, der Drift erhöht sich, die Fähigkeit Position zu halten wird reduziert. | |||
'''Praxiswerte:''' | |||
Werte zwischen 0,010 und 0,050 sind in der Realität normal. Wert mit maximal 0,005 erhöhen oder senken. | |||
==== D-Wert ==== | |||
D ist die Geschwindigkeit mit der der Copter in seine ursprüngliche Position zurückkehren soll. Dies spielt auch mit der Wirkung des P-Wertes zusammen. Der Wert bei D ist ein Negativwert! | |||
'''Erhöhung des D-Wertes:''' | |||
Hier wird die Geschwindigkeit erhöht mit der der Copter in seine Ausgangsposition zurück will. Erhöhung des D-Wertes steigert die Wahrscheinlichkeit des Aufschwingens. | |||
'''Senkung des D-Wertes:''' | |||
Reduziert die Geschwindigkeit mit der der Copter in seine Ausgangsposition zurückkehren will. | |||
'''Praxiswerte:''' | |||
Werte zwischen 5 und 25 sind als normal anzusehen. | |||
=== Spannungsüberwachung === | |||
Für das Ausrechnen der ADC-Werte der Spannungsüberwachung gibt es eine kleine [http://www.rc-heli-fan.org/download/file.php?id=94426 Excel-Tabelle]. In der Tabelle einfach die gewünschte Warnschwelle (Spannung) eintragen und der ADC-Wert wird ausgerechnet. Ebenso ist eine Berechnung der Spannung eines ADC-Wertes möglich. | |||
== Betrieb == | |||
=== FAQ === | |||
==== Regler schalten nicht scharf, obwohl die Hardware die Scharfschaltung signalisiert ==== | |||
''Mögliche Ursachen:'' | |||
* Geberweg ist nicht korrekt eingestellt | |||
** zunächst mit Hilfe der GUI alle Geberwege prüfen und am Sender auf 1000µs (Low), 1500 µs (Mid), 2000µs (High) einstellen (TravelAdjus / Endpunkte bzw. Mittenverstellung / Subtrim) | |||
* Gasweg des Reglers paßt nicht zu dem eingestellten Bereich von 1000...2000 µs | |||
** Regler neu einlernen | |||
* Regler ab Werk fehlerbehaftet, z.b. keine oder fehlerhafte Firmware. | |||
** Schließt man am einfachsten aus, indem man die Regler und Motoren VOR der Verwendung im Copter provisorisch verdrahtet und direkt am Empfänger überprüft. Dabei empfiehlt es sich, vorher bereits die Sendereinstellungen (Geberweg-Abgleich) durchgeführt zu haben. Bei neuen Projekten kann man einfach einen Modellspeicher aufrufen, auf dem bereits ein Multicopter eingerichtet ist (dort hat man i.d.r. bereits die Geberwege abgeglichen). | |||
==== Permanentes diagonales Zittern des Copters im Schwebeflug, unregelmäßige Gasannahme, schwankende Drehzahlen ==== | |||
''Ursache:'' Die verwendeten Regler bzw. deren Firmware vertragen sich nicht mit der Ansteuerfrequenz von 490 Hz. | |||
''Lösung:'' Kompatible Regler verwenden oder, sofern möglich, mit [[Wii_Copter#Tutorial:_Pimp_my_ESC_mit_Simons_Software|Simon-K.-Firmware]] flashen. Eine Übersicht über dafür geeignete Regler findet man [https://docs.google.com/spreadsheet/ccc?key=0AhR02IDNb7_MdEhfVjk3MkRHVzhKdjU1YzdBQkZZRlE#gid=0 hier]. | |||
Ein komplettes Workaround zum Regler-Flashen findet sich im [http://www.rc-heli-fan.org/post1408183.html#p1408183 Forum]. | |||
==== Wie programmiere ich die verwendeten Regler? ==== | |||
''Lösung:'' | |||
Zunächst Grundeinstellung (Bremse: aus, Bat. Typ: Ni; Cut off: soft Cut; Cut off Volt: low; Start Mode: normal; Timing: entsprechend dem verw. Motor; Governer Mode: aus; PWM Frq: high) einstellen. Dazu je nach Typ entweder nach Regler-Anleitung mittels Setup-Funktion oder Programmierkarte verwenden. | |||
Sind die Regler nicht so umfangreich zu proggen auf jeden Fall die Bremse raus nehmen! | |||
( | # Gas Kanal der Anlage über die GUI auf 1000µs bis 2000µs einstellen (bei Graupner ist es meist ca. 125% Servoweg) | ||
# Regler am Gas Servo- Ausgang in einen normalen Empfänger stecken. | |||
# Gas Knüppel auf Vollgas stellen. | |||
# Regler mit Akku verbinden. | |||
# Initialisierung des Reglers abwarten (meist ein Piep od. Tonfolge) | |||
# Gas-Knüppel in 0-Gas Stellung bringen (zügig und gleichmässige Bewegung) und Quittungston abwarten. | |||
# Akku abstecken. | |||
Zur Kontrolle den Akku nochmal anstecken und den gleichmässigen Anlauf (über einen Adapter für alle Regler falls vorhanden) am normalen Empfänger-Ausgang testen und mit den anderen Reglern vergleichen. | |||
==== Was bedeuten die verschiedenen Bezeichnungen wie Acc. und dergleichen ? ==== | |||
''Antwort:'' | |||
;Acc | |||
: ist die Abkürzung für Accelerometer. Dieser Beschleunigungssensor sorgt im aktiven Zustand dafür, das der Multicopter nach Ende einer Steuereingabe wieder in eine neutrale Fluglage geht. Bei inaktivem Acc-Sensor verhält sich ein MultiCopter wie ein CP-Helikopter, d.h. er bleibt im angestellten Winkel solange, bis man gegensteuert, mti aktivem Acc-Sensor ist das Flugverhalten mit de eines Koax-Helis vergleichbar | |||
;Gyro | |||
( | : bezeichnet das Gyroskop, genau wie beim Helicopter. Mit diesem Sensor wird die Stabiliserung des Multicopters auf allen 3 Achsen ( Roll, Nick, Gier ) erreicht. | ||
;Baro | |||
: bezeichnet einen Barometrischen Sensor. Diese reagieren auf sich verändernden Luftdruck und werden zum Zweck der Höhenmessung / -Stabiliserung verwendet. | |||
;Mag | |||
: bezeichnet ein sogenanntes Magnetometer. Dieser Sensor misst die Feldlinien des Erdmagnetfeldes, die jeweils aktuelle Position im Raum wird als Referenz ( absolute Position ) verwendet, um Abweichungen auf einer Achse zu erkennen und entgegenwirken zu können. Diese Sensoren werden häufig in Verbindung mit GPS-Navigation verwendet, ebenso wie die baromterischen Sensoren. | |||
;GPS | |||
: kennt man bereits durch mobile Navigation. Mit einem GPS-Moduls und entsprechend leistungsfähiger und geeigneter FCU sind z.b. Funktionen wie Position Hold und Return to Home ( RTH / Rückkehr zum Startpunkt ) möglich. Mit entsprechender Zusatzsoftware sind einige Systeme auch in der Lage, autonom eine vordefinierte Strecke abzufliegen. Dies wird auch als Waypoint-Navigation bezeichnet. | |||
;FCU oder FC | |||
: die allgemeine Bezeichnung für Flight Control Unit. Die FCU ist salopp ausgedrückt die zentrale Einheit, in der alle Berechnungen durchgeführt werden, und die die Motoren entsprechend ansteuert. | |||
;IMU | |||
: Inertial Measurement Unit. Man findet den Begriff häufig z.b. in der Schreibweise 9-DoF-IMU oder 10-DoF-IMU oder ähnlich. Eine IMU verfügt über mehrere Sensoren auf einer Platine, die Zahl der insgesamt kontrollierten Achsen wird dann als Ziffer vorangestellt, 9-DoF bedeutet dabei 9 Degrees of Freedom, was sinngemeäß soviel bedeutet wie 9 Achsen Freiheit . Gemeint ist damit, das 3 Sensoren enthalten sind, die jeweils 3 Achsen ( Nick, Roll Gier ) mit ihrer FUnktion unterstützen. Dies kann z.b. ein Acc. + Gyro + Mag sein. Kommt ein Baro mit hinzu ergibt sich daraus eine 10-DoF-IMU, da der Barometer nur auf den Luftdruck und nicht auf achsenabhängige Veränderungen reagiert. | |||
== Links == | |||
* [http://www.multiwii.com Hauptseite des Ursprungs-Projektes] mit Links zu verwendeten Firmware und Prog.-Software | |||
* [http://openkopterframe.svn.sourceforge.net CAD-Dateien verschiedener Rahmen] (Opensource) | |||
== | === RHF-Forum === | ||
* [http://www.rc-heli-fan.org/viewtopic.php?f=255&t=79362 Der WII-Copter (Selbstbau-Projekt)] | |||
* [http://www.rc-heli-fan.org/viewtopic.php?f=255&t=82517 LED-Steuerung MWClight] | |||
* [http://www.rc-heli-fan.org/viewtopic.php?f=255&t=80336 MultiWiiKopter-Konfigurationsprogramm für Arduino (LCD)] | |||
* [http://www.rc-heli-fan.org/viewtopic.php?f=255&t=82034 Baudokumentation - Mini Wii-Copter] | |||
* [http://www.rc-heli-fan.org/viewtopic.php?f=255&t=81576 Baudokumentation - Wii-Y6] |
Aktuelle Version vom 25. Juli 2012, 15:28 Uhr
Die Idee
Die Grundidee ist es mit günstigen und einfach zu beschaffenden Komponenten einem Multicopter zu bauen.
Dabei ist das ursprüngliche Projekt als Open-Source gehalten, so dass es immer weitere Varianten gibt, wie z.B. das Projekt Ardu-Copter.
Obwohl auch optional eine Stabilisierung für eine Kamera und die Möglichkeit einer Höhenregelung über einen Luftdrucksensor vorgesehen ist, liegt der Hauptanwendungsbereich bei der Fun-Fliegerei mit der Möglichkeit gelegentlich eine Kamera mit zu nehmen, aber auf Grund der fehlenden GPS-Navigation wohl weniger im Bereich der Luftbildfotografie.
Komponenten
Arduino
Herzstück dieser Multicopter-Steuerung bildet das Arduino-Board, für gewöhnlich kommt das "Arduino Pro Mini 328 - 5V/16MHz" zum Einsatz. Alternativ kann auch das "Arduino Nano V3.0" eingesetzt werden, was schon eine USB-Schnittstelle zum programmieren mitbringt oder das "Seeeduino Mega" welches mehr Ein- und Ausgänge zur Verfügung stellt.
Die Arduino-Board werden i.d.R. mit betriebsfertigem Bootloader ausgeliefert, es muß lediglich die Firmware aufgespielt werden und die Parameter für den Betrieb eingestellt werden (Mittels GUI-Software (GUI: Grafical User Interface)).
Die nötige Software findet man unter http://www.multiwii.com
Wii Motion Plus
Das Wii-Motion Plus ist ein Zubehörteil für die Wii-Spielekonsole das neben einem 3-Achsen-Gyroskop auch einen Microchip mit A/D-Wandler beinhaltet der die Sensoren ausliest und die Werte über einen I²C-Bus bereitstellt.
Wii Nunchuck (optional)
Ebenfalls ein Zubehörteil für die Wii-Spielekonsole das neben dem für den Betrieb im Wii-Copter überflüssigen Steuerstick einen 3-Achs-Beschleunigungssensor, der ebenfalls über den I²C-Bus abgefragt wird, bereitstellt.
Weil es mit dem Sensor aus dem Nunchuck öfters zu Problemen gekommen ist, wird alternativ dazu der 3-Achsen-Beschleunigungssensor "BOSCH BMA020" der zudem auch noch günstiger ist.
Die Vorteile des BMA020 liegen im Vergleich zu anderen Beschleunigungssensoren wie dem ADXL345 und BMA180 im günstigerem Preis und darin das die Versorgungsspannung vom Regler-BEC verwendet werden kann. Die MultiWii Software unterstützt die oben genannten ACC ab der Version 1.6pre.
Brushless-Regler (ESC)
Einstellungen für Multiwii
Alternative Firmware für ESC
Mittlerweile hat sich herum gesprochen, dass es alternative Firmwares für die ESCs gibt. Durch das Flashen einer alternativen Firmware ist der Regler in der Lage durch die höhere Auflösung auf dem Reglerweg den Motor feiner ansteuern zu können. Speziell wird hier auf die alternative Firmware von Simon Kirby@Github eingegangen.
Tutorial: Pimp my ESC mit Simons Software
- Was wird benötigt?
- Unterstützter ESC mit Mikrocontroller (µC) Atmega8A bzw. Atmega8
- AVR ISP Programmer (zum erstmaligen Flashen des µCs)
- Möglichkeit die Pins vom µC mit Programmer zu verbinden (Löten, Nagel-Board usw.)
- Software zum Flashen: KKmulticopter Flash Tool
- Liste aller flashbaren ESCs um die richtige Hex-Datei flashen zu können
- Verbinden von µC und Programmer
- Es müssen MOSI, MISO, SCK, RST & GND zwischen µC und Programmer verbunden sein
- D.h. MOSI mit MOSI, MISO mit MISO, SCK mit SCK, RST mit RST und GND mit GND
- VCC am µC nicht anschließen, sondern den ESC mit einem Akku über die Akkuanschlusskabel versorgen
- Flashen des ESCs mit Hilfe des KKmulticopter Flash Tools inklusive Bootlader-Flash
- Richtige Hex-Datei aus der Liste ausfindig machen
- Foto vom Flash Tool mit entsprechenden Voreinstellungen
- Richtige Hex-Datei öffen entsprechend der oben genannten Liste
Barometrischer Drucksensor (optional)
Will man das der Multicopter selbstständig die Höhe halten kann muss man diese messen, dazu wird der "BMP085" verwendet, der wie auch die anderen Sensoren über den IC2-Bus abgefragt wird. Da dieser Sensor allerdings nur für Ca. 3,3V Betriebsspannug ausgelegt ist, aber die restliche Elektronik mit 5V arbeitet muss man entweder die Spannung über Dioden herabsetzen oder man setzt einen Pegelwandler (z.B. "Sparkfun BOB-08745") ein.
Aufbau
Allgemein
Grundverdrahtung eines Quadro Wii Copters
Die Verbindung zum Empfänger erfolgt mit Einzelleitungen, + und - des Empfängers werden an einem Ausgang abgegriffen und mit dem Arduino-Board verbunden. Die Verbindung des Wii Motion Plus (WMP) erfolgt mit 4 Leitungen (Vcc, Gnd, Data, Clock). Wird ein Nunchuk (NK) oder BMA020 Beschleunigungssensor verwendet, so wird dieser mit 4 Leitungen mit dem WMP verbunden. Durch den I²C-Bus, der durchgeschleift ist, erfolgt mittels der Firmware (Sketch) im Arduino die Auswertung aller am I²C-Bus angeschlossenen Sensoren.
Genaue Schaltpläne für die Verdrahtung der verschiedenen Modellmöglichkeiten (Quad, Tri, Y6, usw.) findet man bei rcgroups.com.
Tricopter
(hier soll was zum Anschluss der Regler und des Servos hin, incl. der möglichen Optionen was Zusatzfunktionen angeht)
Quadrocopter
(sinngemäß wie Tricopter)
Hexacopter
(sinngemäß wie Tricopter)
Y-Hexacopter
(sinngemäß wie Tricopter)
Octocopter
(sinngemäß wie Tricopter)
Konfiguration
(hier soll z.B was hin zum einstellen der Gaswerte, des Senders, ...)
Setup
(hier soll was hin zum einstellen der Regelparameter & Co)
PID - Was ist das, was macht es
Die PID-Werte (engl: proportional–integral–derivative, deu: proportional-integrierend-verzögernd) besteht aus den Anteilen des P-Gliedes, des I-Gliedes und des D-Gliedes. Diese drei Werte dienen zum Erfassen von sämtlichen für das System messbaren Einflüssen.
Im Fall eines Multirotorsystems sind die Einflüsse Winkelveränderungen (Gyro), Beschleunigungen (ACC und Magnetometer) und Druckveränderungen (Barometer) existent, ständig durch die Sensoren zu erkennen und durch die PID-Regler auf die Lage stabilisierend zu wirken, um dabei ein nahezu schwingfreies Verhalten zu zeigen.
Jedes Multirotorsystem reagiert durch seinen mechanischen und elektrischen Aufbau auf Einflüsse anders und benötigt daher eine ganz individuelle Einstellung.
P-Wert
P ist die Korrekturkraft die den Copter wieder in seine Ausgangsposition bringt. Je höher der P-Wert ist, desto höher ist die Kraft mit der der Copter wieder in seine Ausgangsposition zurückkehren will.
Erhöhung des P-Wertes: Der Copter ist immer stabil bis der P-Wert zu hoch ist. Dann beginnt der Copter zu schwingen und man beginnt die Kontrolle zu verlieren.
Senkung des P-Wertes: Wird der P-Wert zu weit gesenkt, gerät der Copter ebenfalls außer Kontrolle.
Praxiswerte: Bei Coptern mit 35 bis 40cm Achsabstand sind P-Werte von 3,0 bis 3,5 auf ROLL und PITCH empfehlenswert. Für weniger als 30cm Achsabstand sollte der Wert unter 3,0 liegen.
I-Wert
I ist der Zeitraum, bei dem die Winkel- und/oder Änderung abgetastet und gemittelt wird. Der Ausschlag der Korrekturkraft wird somit bestimmt, um zur Ausgangsposition zurück zukehren.
Erhöhung des I-Wertes: Wird der I-Wert erhöht, so erhöht man die Wahrscheinlichkeit die Ausgansposition zu halten und Drifts zu reduzieren. Ebenso steigt die Verzögerung für die Rückkehr in die Ausgansposition.
Senkung des I-Wertes: Die Verzögerung der Veränderung wird verkleinert, der Drift erhöht sich, die Fähigkeit Position zu halten wird reduziert.
Praxiswerte: Werte zwischen 0,010 und 0,050 sind in der Realität normal. Wert mit maximal 0,005 erhöhen oder senken.
D-Wert
D ist die Geschwindigkeit mit der der Copter in seine ursprüngliche Position zurückkehren soll. Dies spielt auch mit der Wirkung des P-Wertes zusammen. Der Wert bei D ist ein Negativwert!
Erhöhung des D-Wertes: Hier wird die Geschwindigkeit erhöht mit der der Copter in seine Ausgangsposition zurück will. Erhöhung des D-Wertes steigert die Wahrscheinlichkeit des Aufschwingens.
Senkung des D-Wertes: Reduziert die Geschwindigkeit mit der der Copter in seine Ausgangsposition zurückkehren will.
Praxiswerte: Werte zwischen 5 und 25 sind als normal anzusehen.
Spannungsüberwachung
Für das Ausrechnen der ADC-Werte der Spannungsüberwachung gibt es eine kleine Excel-Tabelle. In der Tabelle einfach die gewünschte Warnschwelle (Spannung) eintragen und der ADC-Wert wird ausgerechnet. Ebenso ist eine Berechnung der Spannung eines ADC-Wertes möglich.
Betrieb
FAQ
Regler schalten nicht scharf, obwohl die Hardware die Scharfschaltung signalisiert
Mögliche Ursachen:
- Geberweg ist nicht korrekt eingestellt
- zunächst mit Hilfe der GUI alle Geberwege prüfen und am Sender auf 1000µs (Low), 1500 µs (Mid), 2000µs (High) einstellen (TravelAdjus / Endpunkte bzw. Mittenverstellung / Subtrim)
- Gasweg des Reglers paßt nicht zu dem eingestellten Bereich von 1000...2000 µs
- Regler neu einlernen
- Regler ab Werk fehlerbehaftet, z.b. keine oder fehlerhafte Firmware.
- Schließt man am einfachsten aus, indem man die Regler und Motoren VOR der Verwendung im Copter provisorisch verdrahtet und direkt am Empfänger überprüft. Dabei empfiehlt es sich, vorher bereits die Sendereinstellungen (Geberweg-Abgleich) durchgeführt zu haben. Bei neuen Projekten kann man einfach einen Modellspeicher aufrufen, auf dem bereits ein Multicopter eingerichtet ist (dort hat man i.d.r. bereits die Geberwege abgeglichen).
Permanentes diagonales Zittern des Copters im Schwebeflug, unregelmäßige Gasannahme, schwankende Drehzahlen
Ursache: Die verwendeten Regler bzw. deren Firmware vertragen sich nicht mit der Ansteuerfrequenz von 490 Hz.
Lösung: Kompatible Regler verwenden oder, sofern möglich, mit Simon-K.-Firmware flashen. Eine Übersicht über dafür geeignete Regler findet man hier.
Ein komplettes Workaround zum Regler-Flashen findet sich im Forum.
Wie programmiere ich die verwendeten Regler?
Lösung: Zunächst Grundeinstellung (Bremse: aus, Bat. Typ: Ni; Cut off: soft Cut; Cut off Volt: low; Start Mode: normal; Timing: entsprechend dem verw. Motor; Governer Mode: aus; PWM Frq: high) einstellen. Dazu je nach Typ entweder nach Regler-Anleitung mittels Setup-Funktion oder Programmierkarte verwenden.
Sind die Regler nicht so umfangreich zu proggen auf jeden Fall die Bremse raus nehmen!
- Gas Kanal der Anlage über die GUI auf 1000µs bis 2000µs einstellen (bei Graupner ist es meist ca. 125% Servoweg)
- Regler am Gas Servo- Ausgang in einen normalen Empfänger stecken.
- Gas Knüppel auf Vollgas stellen.
- Regler mit Akku verbinden.
- Initialisierung des Reglers abwarten (meist ein Piep od. Tonfolge)
- Gas-Knüppel in 0-Gas Stellung bringen (zügig und gleichmässige Bewegung) und Quittungston abwarten.
- Akku abstecken.
Zur Kontrolle den Akku nochmal anstecken und den gleichmässigen Anlauf (über einen Adapter für alle Regler falls vorhanden) am normalen Empfänger-Ausgang testen und mit den anderen Reglern vergleichen.
Was bedeuten die verschiedenen Bezeichnungen wie Acc. und dergleichen ?
Antwort:
- Acc
- ist die Abkürzung für Accelerometer. Dieser Beschleunigungssensor sorgt im aktiven Zustand dafür, das der Multicopter nach Ende einer Steuereingabe wieder in eine neutrale Fluglage geht. Bei inaktivem Acc-Sensor verhält sich ein MultiCopter wie ein CP-Helikopter, d.h. er bleibt im angestellten Winkel solange, bis man gegensteuert, mti aktivem Acc-Sensor ist das Flugverhalten mit de eines Koax-Helis vergleichbar
- Gyro
- bezeichnet das Gyroskop, genau wie beim Helicopter. Mit diesem Sensor wird die Stabiliserung des Multicopters auf allen 3 Achsen ( Roll, Nick, Gier ) erreicht.
- Baro
- bezeichnet einen Barometrischen Sensor. Diese reagieren auf sich verändernden Luftdruck und werden zum Zweck der Höhenmessung / -Stabiliserung verwendet.
- Mag
- bezeichnet ein sogenanntes Magnetometer. Dieser Sensor misst die Feldlinien des Erdmagnetfeldes, die jeweils aktuelle Position im Raum wird als Referenz ( absolute Position ) verwendet, um Abweichungen auf einer Achse zu erkennen und entgegenwirken zu können. Diese Sensoren werden häufig in Verbindung mit GPS-Navigation verwendet, ebenso wie die baromterischen Sensoren.
- GPS
- kennt man bereits durch mobile Navigation. Mit einem GPS-Moduls und entsprechend leistungsfähiger und geeigneter FCU sind z.b. Funktionen wie Position Hold und Return to Home ( RTH / Rückkehr zum Startpunkt ) möglich. Mit entsprechender Zusatzsoftware sind einige Systeme auch in der Lage, autonom eine vordefinierte Strecke abzufliegen. Dies wird auch als Waypoint-Navigation bezeichnet.
- FCU oder FC
- die allgemeine Bezeichnung für Flight Control Unit. Die FCU ist salopp ausgedrückt die zentrale Einheit, in der alle Berechnungen durchgeführt werden, und die die Motoren entsprechend ansteuert.
- IMU
- Inertial Measurement Unit. Man findet den Begriff häufig z.b. in der Schreibweise 9-DoF-IMU oder 10-DoF-IMU oder ähnlich. Eine IMU verfügt über mehrere Sensoren auf einer Platine, die Zahl der insgesamt kontrollierten Achsen wird dann als Ziffer vorangestellt, 9-DoF bedeutet dabei 9 Degrees of Freedom, was sinngemeäß soviel bedeutet wie 9 Achsen Freiheit . Gemeint ist damit, das 3 Sensoren enthalten sind, die jeweils 3 Achsen ( Nick, Roll Gier ) mit ihrer FUnktion unterstützen. Dies kann z.b. ein Acc. + Gyro + Mag sein. Kommt ein Baro mit hinzu ergibt sich daraus eine 10-DoF-IMU, da der Barometer nur auf den Luftdruck und nicht auf achsenabhängige Veränderungen reagiert.
Links
- Hauptseite des Ursprungs-Projektes mit Links zu verwendeten Firmware und Prog.-Software
- CAD-Dateien verschiedener Rahmen (Opensource)