heim - Einrichten des Routers
Wie man mit Arduino einen Quadrocopter baut. So entwerfen Sie Ihren eigenen Quadcopter. Programmieren eines Quadcopters auf Arduino Teil 2 Habrahabr

Um zu Hause einen Quadcopter mit eigenen Händen zusammenzubauen, müssen Sie zunächst die Grundkomponenten des Quadcopters verstehen.

Teile zum Zusammenbau eines Quadcopters

  1. Quadrocopter-Rahmen Diatone Q450 Quad 450 V3 PCB Quadrocopter-Rahmensatz 450 mm (die letzten drei Ziffern im Namen Q450 geben den Abstand zwischen den Motoren in mm diagonal an). Es handelt sich um den Rumpf des Flugzeugs, in dem alle anderen Geräte und elektronischen Komponenten montiert werden. Besteht aus 4 Strahlen und Leiterplatte. Gewicht 295 Gramm.

    banggood.com

    Preis 922 Rubel.

  2. Motor DYS D2822-14 1450KV Bürstenloser Motor. 4 Stück.

    Verkauft im Online-Shop Banggood.com

    Preis 571 Rubel/Stück

  3. Regler DYS 30A 2-4S Bürstenloser Geschwindigkeitsregler ESC Simonk Firmware zur Geschwindigkeitsregulierung und Geschwindigkeitskontrolle. 4 Stück.

    Verkauft im Online-Shop Banggood.com

    Preis 438 Rubel/Stück

  4. Propeller DYS E-Prop 8x6 8060 SF ABS Slow Fly Propellerblatt für RC-Flugzeug, 4 Stück. Zwei rechtsdrehende und zwei linksdrehende Propeller.

    Verkauft im Online-Shop Banggood.com

    Preis 125 Rubel/Stück

  5. Quadcopter-Steuermodul KK2.1.5 kk21evo. 1 PC.

    Verkauft im Online-Shop Banggood.com

    Preis 1680 Rubel.

  6. Für den wiederaufladbaren Lithium-Polymer-Akku Turnigy Nano-Tech 2200 mAh 4S ~90C Lipo Pack müssen Sie mindestens zwei Teile vorbereiten, vorzugsweise vier, da diese schnell leer sind. 1 PC.

    Verkauft im Online-Shop Parkflyer.ru

    Preis 1268 RUR/Stück

  7. Hobby King Variable6S 50W 5A Batterieladegerät. 1 PC.

    Verkauft im Online-Shop Hobbyco.ru

    Preis 900 Rubel.

  8. Batterieanschluss XT60-Stecker 12 AWG 10 cm mit Kabel. 1 PC.

    Verkauft im Online-Shop Banggood.com

    Preis 144 Rubel.

  9. Klemmen zum Befestigen von Drähten am Quadrocopter-Körper. 1000 Stück 2,0 x 100 mm schwarz/weiße Nylon-Kabelbinder. 1 Paket.

    Verkauft im Online-Shop Banggood.com

    Preis 316 Rubel.

  10. Anschlüsse 20 Paare 3,5 mm Rundstecker Bananenstecker für RC-Batterie/Motor. Für Reglerkabel. 1 Paket.

    Verkauft im Online-Shop Banggood.com

    Preis 256 Rubel.

  11. Klettband zur Befestigung des Akkus am Quadrocopter-Gehäuse. 1 PC.

    Verkauft im Online-Shop Banggood.com

    Preis 79 Rubel.

  12. 50-teiliges Motorbefestigungsschrauben-Set für DJI F450 F550 HJ450 550 Quadcopter Multicopter. 1 Paket.

    Preis 217 Rubel.

  13. Fernbedienung für Quadrocopter Spektrum DX6 V2 mit AR610-Empfänger. Empfänger und Sender werden in einem Kit geliefert. 1 PC.

    Preis 9700 Rubel.

Insgesamt kostet eine Montageausrüstung 20.018 Rubel.

Merkmale bei der Auswahl der Komponenten


Grundlegende Eigenschaften des Senders:

  • Modi Mode1 oder Mode2. Im ersten Modus befindet sich der Gasgriff rechts, im zweiten Modus befindet sich der Gasgriff links.
  • Die Sendefrequenz beträgt 2,4 GHz.
  • Anzahl der Kanäle. Zur Steuerung des Flugzeugs sind mindestens vier Kanäle erforderlich. Die Steuerausrüstung von Spektrum DX6 V2 mit AR610-Empfänger enthält 6 Kanäle.

Schritt-für-Schritt-Anleitung zum Zusammenbau eines Quadcopters mit eigenen Händen

  1. Wir reduzieren die Länge der Kabel an den Reglern. Beim Anschluss des Reglers an die Motoren übersteigt die Länge der Drähte die Länge des Balkens, an dem die gesamte Struktur befestigt wird, deutlich.

  2. Wir löten die Anschlüsse an die Enden der Drähte am Regler, damit Sie den Regler in Zukunft an die Motoren anschließen können.

  3. Wir montieren die Motoren – wir schrauben 1 Motor an jeden Balken.

  4. Wir montieren den Rahmen. Schrauben Sie die Balken an das Brett.

  5. Wir verbinden die Reglerkabel mit den Motoren. Die Regler- und Motorkabel werden in beliebiger Reihenfolge angeschlossen. In Zukunft müssen Sie möglicherweise die Verbindungsreihenfolge ändern, wenn Sie die Drohnenkonfiguration abschließen. Wenn für jeden Motor eigene Regler verwendet werden, müssen die Plus- und Minuspole nur von einem Regler mit dem Regler verbunden werden.

  6. Wir befestigen das Steuermodul mit doppelseitigem Klebeband an der Karosserie. Es befindet sich am besten im mittleren Teil des Bahnsteigs.

  7. Wir befestigen den Empfänger mit doppelseitigem Klebeband am Gehäuse und verbinden ihn mit dem Steuermodul. Der Empfänger sollte möglichst nah am Modul platziert werden.

    Der Zweck der Kanäle ist im Handbuch des Empfängers beschrieben. Normalerweise ist ihre Reihenfolge wie folgt:

    1. Querruder – der Kanal, der für Links- und Rechtskurven verantwortlich ist;
    2. Aufzug – ein Kanal, der die Vorwärts- und Rückwärtsrichtung leitet;
    3. Gas ist ein Kanal, der Gas steuert. Verwaltet Start und Landung sowie Höhenänderungen;
    4. Gier – der Kanal ermöglicht es, den Quadrocopter um seine Achse zu drehen.

  8. Wir versorgen das Gerät mit Strom. Wir verbinden die Batterie mit dem Stecker.

Mit diesem Vorgang ist der Quadrocopter-Montageprozess abgeschlossen.

Aufstellen

  1. Wir starten die Motoren. Die Aktivierung von Motoren erfordert den Prozess des Startens von Motoren – Scharfschalten. Wie das geht, erklärt die Bedienungsanleitung ausführlich. Die Deaktivierung von Triebwerken erfordert eine Entschärfungsprozedur.
  2. Wir drehen das schwache Gas auf und stellen sicher, dass sich die Motoren drehen. Das Rotationsmuster muss mit dem im Diagramm im Controller-Handbuch angegebenen übereinstimmen. Wenn der Motor falsch dreht, müssen Sie lediglich die Pole der Kabel vom Motor zur Steuerung vertauschen.

  3. Wir schrauben die zweite Plattform an den Quadrocopter-Körper.

  4. Zur Sicherung des Akkus bringen wir am Gehäuse ein Klettband an.

    DIY-Quadcopter-Montage mit Arduino

    Abschluss

    Nur wer gerne komplexe Probleme löst, kann einen Quadrocopter selbst zusammenbauen. Dies sollten Personen sein, die Spaß an den verschiedenen Berechnungen und dem Zusammenbau des Geräts haben.

    Der Vorteil eines zusammengebauten Kopters mit meinen eigenen Händen die Tatsache, dass Sie es jederzeit durch Hinzufügen neuer Ausrüstung aufrüsten können.

Der Quadcopter verfügt außerdem über eine autonome Stromversorgung. Die Gesamtkosten für ein solches hausgemachtes Produkt betragen etwa 60 US-Dollar.

Wenn Sie über eine größere Menge verfügen, ist es erfolgsversprechender, Ihr selbstgebautes Produkt mit Motoren ohne Bürsten und entsprechenden Steuerungen auszustatten.

Zur Stabilisierung des Fluges werden ein Gyroskop und ein Beschleunigungsmesser eingesetzt. Um den Neigungswinkel des Quadrocopters relativ zur Erdanziehungskraft zu bestimmen, wird ein Gyroskop benötigt. Zur Berechnung der Beschleunigung wird ein Beschleunigungsmesser benötigt.

Materialien und Werkzeuge:
- Lithiumbatterien(bei 3,7 V);
- Drähte;
- Transistor ULN2003A Darlington-Transistor (es können leistungsstärkere Transistoren verwendet werden);
- Motoren Typ 0820 Coreless Motors;
- Arduino Uno-Mikrocontroller;
- MPU-6050-Platine (dies ist sowohl ein Gyroskop als auch ein Beschleunigungsmesser);
- Verfügbarkeit eines 3D-Druckers oder Zugang dazu;
- notwendige Werkzeuge.

Herstellungsprozess:

Schritt eins. Erstellen eines Quadcopter-Körpers
Der Körper ist sehr schnell und einfach hergestellt. Es wird mit einem 3D-Drucker gedruckt. Einen Rahmen auf diese Weise zu erstellen ist gut, weil er dank des Wabendrucks hell wirkt. Die Konstruktion der Teile erfolgte im Solidworks-Programm. Mit diesem Programm können Sie die Parameter des Falles bearbeiten und bei Bedarf eigene Änderungen daran vornehmen.




Nachdem der Quadrocopter-Rahmen gedruckt ist, können Sie die Motoren installieren und die Drähte daran anlöten.




Schritt zwei. Arduino anschließen
Wie Sie das MPU6050-Board anschließen, sehen Sie in der folgenden Abbildung. Es ist wichtig zu verstehen, dass die Arduino-Bibliothek eine Verbindung über diese Pins impliziert. Wird eine Schaltung eines anderen Herstellers verwendet, ist darauf zu achten, dass die Kontakte in der gleichen Reihenfolge angeordnet sind.


Für die Stromversorgung der Platine werden nur 3,3 V verwendet; wenn Sie sie mit 5 V versorgen, wird sie beschädigt. Einige MPU6050-Boards verfügen über eine Sicherung, die das System davor schützt Hochspannung, aber es ist besser, es nicht zu riskieren. Wenn die Platine über einen AD0-Pin verfügt, muss dieser mit Masse (GND) verbunden werden. In diesem Fall wird VIO direkt auf der Platine mit dem AD0-Pin verbunden, sodass kein Anschluss des AD0-Pins erforderlich ist.












Damit der Arduino die Motoren steuern kann, werden Transistoren benötigt, dank denen es möglich ist, die Motoren mit Hochspannung zu versorgen. Im Diagramm können Sie genauer sehen, wie alle Elemente miteinander verbunden sind.

Schritt drei. Skizze für Arduino
Sobald der MPU-6050 mit dem Arduino verbunden ist, müssen Sie ihn einschalten und die I2C-Scanner-Codeskizze herunterladen. Als nächstes müssen Sie den Programmcode kopieren und in eine leere Skizze einfügen. Danach müssen Sie den seriellen Arduino IDE-Monitor öffnen (Tools->Serial Monitor) und sicherstellen, dass der 9600 angeschlossen ist.
Wenn alles richtig gemacht ist, wird das I2C-Gerät erkannt, ihm wird die Adresse 0x68 oder 0x69 zugewiesen, es muss notiert werden.
Als nächstes wird eine Skizze geladen, die Informationen vom Gyroskop und Beschleunigungsmesser verarbeitet. Es gibt viele davon im Internet, aber es ist am besten, sie zu verwenden.


An letzte Stufe Sie müssen die Gyroskop- und Beschleunigungsmesserwerte kalibrieren. Dazu müssen Sie eine ebene Fläche finden und die MPU6050 darauf platzieren. Als nächstes wird die Kalibrierungsskizze gestartet, die resultierenden Abweichungsdaten werden aufgezeichnet und dann in der MPU6050_DMP6-Skizze verwendet.

Schritt vier. Programm für Arduino
Dank des bereitgestellten Programms stabilisiert sich der Quadcopter und hängt in einem stabilen Zustand. Als nächstes wird mit diesem Programm der Quadcopter gesteuert.


Zur Stabilisierung des Quadrocopters kommen zwei PID-Regler zum Einsatz. Einer wird für Pitch und der zweite für Roll benötigt. Der Controller misst die Drehzahl der Propeller und steuert auf dieser Grundlage den Quadrocopter.

Schritt fünf. Quadrocopter-Modifikation

Das Hauptproblem bei einem kleinen und günstigen Quadrocopter ist sein Gewicht. Um dieses Problem zu lösen, müssen Sie leistungsstärkere und leichtere Motoren einbauen; am besten eignen sich bürstenlose Motoren, sie werden auch Ventilmotoren genannt. Sie sind viel besser als Bürstenprodukte, aber Sie müssen auch Geschwindigkeitsregler dafür kaufen, sodass die Kosten für selbstgemachte Produkte stark steigen.

Hallo Leser!
In dieser Artikelserie werden wir den Deckel des Quadcopters etwas weiter öffnen, als es das Hobby erfordert, und außerdem ein eigenes Programm für den Flugcontroller schreiben, konfigurieren und starten, bei dem es sich um ein normales Arduino Mega 2560-Board handelt.

Wir haben vor uns:

  1. Grundlegendes Konzept.
  2. PID-Regler mit einer interaktiven Web-Demonstration der Funktionsweise eines virtuellen Quadcopters.
  3. Das eigentliche Programm für Arduino und das Konfigurationsprogramm für Qt.
  4. Gefährliche Tests eines Quadrocopters am Seil. Erstflüge.
  5. Absturz und Verlust auf dem Feld. Automatische Suche aus der Luft mit Qt und OpenCV.
  6. Abschließende erfolgreiche Tests. Zusammenfassend. Wo hin?

Das Material ist umfangreich, aber ich werde versuchen, es in 2-3 Artikel unterzubringen.
Heute erwarten wir: einen Spoiler mit einem Video, wie unser Quadrocopter geflogen ist; grundlegendes Konzept; PID-Regler und Praxis der Auswahl ihrer Koeffizienten.

Wozu dient das alles?

Akademisches Interesse, das übrigens nicht nur mich verfolgt (,). Und natürlich für die Seele. Ich hatte großen Spaß bei der Arbeit und empfand echtes, unbeschreibliches Glück, als „ES“ mit meinem Programm flog :-)

Für wen?

Dieses Material könnte auch für Menschen von Interesse sein, die weit weg sind oder gerade planen, sich mit Mehrrotorsystemen zu beschäftigen. Lassen Sie uns nun über den Zweck der Hauptkomponenten des Quadcopters sprechen, wie sie miteinander interagieren, über die Grundkonzepte und Prinzipien des Fluges. Natürlich ist das gesamte Wissen, das wir brauchen, im Internet zu finden, aber wir können nicht gezwungen werden, im riesigen Internet danach zu suchen.

Ohne Ihr Verständnis grundlegender Konzepte zu gefährden, können Sie alles, was Sie wissen, bis zum nächsten unbekannten Begriff überspringen. fett hervorgehoben, oder zu einer unverständlichen Illustration.

NEIN #1!

Schreiben Sie Ihr eigenes Flugsteuerungsprogramm erst, wenn Sie es ausprobiert haben. fertige Lösungen, von denen es mittlerweile ziemlich viele gibt (Ardupilot, MegapirateNG, MiltiWii, AeroQuad usw.). Erstens ist es gefährlich! Es erfordert Übung, einen Quadrocopter ohne GPS und Barometer zu steuern, und dies gilt umso mehr, wenn er eine Panne hat, überschlägt oder nicht genau dorthin fliegt, wo er hinfliegen soll – und das lässt sich bei den ersten Tests kaum vermeiden. Zweitens wird Ihnen das Programmieren um ein Vielfaches leichter fallen, wenn Sie verstehen, was programmiert werden muss und wie es am Ende funktionieren soll. Glauben Sie mir: Flugmathematik ist nur ein kleiner Teil des Programmcodes.

NEIN #2!

Nehmen Sie es nicht vor, ein eigenes Programm für einen Fluglotsen zu schreiben, wenn Sie kein akademisches Interesse verfolgen und nur das benötigen, was fertige Lösungen schon längst können (fliegen, fotografieren, Videos drehen, weiterfliegen). Aufgaben usw.) Während Sie alles selbst schreiben, wird es lange dauern, auch wenn Sie nicht allein sind.

Grundlegendes Konzept

Quadrocopter gibt es in verschiedenen Ausführungen, alle werden jedoch durch vier Hauptrotoren vereint:

Trotz der scheinbaren Symmetrie ist es für den Piloten sehr wichtig zu erkennen, wo sich die Vorderseite des Quadcopters befindet (angezeigt durch den Pfeil). Hier, so funkgesteuerte Modelle Autos: Wenn der Quadrocopter den Befehl „Vorwärts“ erhält, fliegt er nicht dorthin, wo der Pilot hinschaut, sondern dorthin, wo die imaginäre Nase des Quadrocopters zeigt. Dies birgt Gefahren: Für Anfänger kann es schwierig sein, ein Gerät, das vom Wind erfasst und irgendwie seitwärts gedreht wurde, wieder zu sich selbst zurückzubringen (wir sprechen hier natürlich nicht vom Fliegen in einer Ego-Kamera, sondern von „schlau“) (Flugmodi mit Kompass und GPS.) Lösung Dieses Problem kann teilweise durch Schrauben oder andersfarbige Balken an der Vorderseite, eine Art Kugel vorne oder andersfarbige LEDs behoben werden. Doch das alles erweist sich als nutzlos, als sich die Pepelats schnell in einen Punkt über dem Horizont verwandeln.

Wir werden mit einem „X“-förmigen Quadrocopterrahmen fliegen, weil mir das Aussehen besser gefällt. Jedes Design hat seine eigenen Vorteile und seinen eigenen Zweck. Neben Quadcoptern gibt es noch weitere Multicopter. Auch wenn man die exotischen Optionen nicht mitzählt, gibt es dennoch eine ganze Reihe davon!

Lassen Sie uns herausfinden, wie unser Quadcopter im Inneren aufgebaut ist und was der Flugcontroller tun soll, den wir programmieren möchten.


Winkel Nicken, Rollen und Gieren (Nicken, Rollen, Gieren)- Winkel, anhand derer üblicherweise die Ausrichtung des Quadrocopters im Raum bestimmt und eingestellt wird.

Manchmal wird das Wort „Winkel“ weggelassen und man sagt einfach: Nicken, Rollen, Gieren. Laut Wikipedia ist dies jedoch nicht ganz korrekt. Der Flug des Quadrocopters in die gewünschte Richtung wird durch die Änderung dieser drei Winkel erreicht. Um beispielsweise vorwärts zu fliegen, muss der Quadrocopter geneigt werden, da die hinteren Motoren etwas stärker drehen als die vorderen:

Gas-Quadrocopter- arithmetisches Mittel zwischen den Drehzahlen aller Motoren. Je mehr Gas, desto größer der Gesamtschub der Motoren, desto stärker ziehen sie den Quadrocopter hoch(NICHT VORWÄRTS!!! „Hausschuhe auf dem Boden“ bedeutet hier den schnellsten Aufstieg). Wird normalerweise in Prozent gemessen: 0 % – Motoren sind gestoppt, 100 % – drehen sich mit maximaler Geschwindigkeit. Gas schwebt- der minimale Gasfüllstand, der nötig ist, damit der Quadrocopter nicht an Höhe verliert.

Gas geben, Nicken, Rollen, Gieren – wenn Sie diese vier Parameter kontrollieren können, dann können Sie den Quadrocopter steuern. Sie werden manchmal auch als Steuerkanäle bezeichnet. Wenn Sie eine Zweikanal-Fernbedienung erworben haben, können Sie den Quadcopter nicht steuern. Der Dreikanal-Typ eignet sich besser für kleine Hubschrauber: Sie können ohne Rollkontrolle fliegen, aber auf einem Quadrocopter ist das nicht praktisch. Wer den Flugmodus ändern möchte, muss für eine Fünfkanal-Fernsteuerung bezahlen. Möchte man das Neigen und Schwenken der Kamera an Bord steuern, stehen zwei weitere Kanäle zur Verfügung, allerdings nutzen Profis hierfür eine separate Fernbedienung.

Es gibt viele Flugmodi. Zum Einsatz kommen GPS, Barometer und Entfernungsmesser. Aber wir wollen den grundlegenden Stabilisierungsmodus implementieren ( stechen, stabilisieren, in einem „Stummel“ fliegen, bei dem der Quadrocopter unabhängig von äußeren Faktoren die Winkel beibehält, die ihm von der Fernbedienung vorgegeben werden. In diesem Modus kann der Quadcopter bei Windstille fast an Ort und Stelle hängen. Der Pilot muss den Wind kompensieren.

Die Drehrichtung der Schrauben ist nicht zufällig gewählt. Würden sich alle Motoren in eine Richtung drehen, würde sich der Quadrocopter aufgrund der entstehenden Drehmomente in die entgegengesetzte Richtung drehen. Daher dreht sich immer ein Paar gegenläufiger Motoren in die eine Richtung und das andere Paar in die andere. Der Effekt des Auftretens von Drehmomenten wird genutzt, um den Gierwinkel zu verändern: Ein Motorenpaar beginnt sich etwas schneller zu drehen als das andere, und nun dreht sich der Quadrocopter langsam zu uns (was für ein Horror):

  • LFW - Drehung links vorne im Uhrzeigersinn (links vorne, Drehung im Uhrzeigersinn)
  • RFC – Drehung rechts vorne gegen den Uhrzeigersinn (rechts vorne, Drehung gegen den Uhrzeigersinn)
  • LBC – Linksrückwärtsdrehung gegen den Uhrzeigersinn (Linksrückwärtsdrehung, Gegenuhrzeigersinnsdrehung)
  • RBW – rechts hinten, Drehung im Uhrzeigersinn (rechts hinten, Drehung im Uhrzeigersinn)

Steuert die Drehzahl der Motoren Fluglotse (Controller, Gehirne). Normalerweise handelt es sich dabei um eine kleine Platine oder Box mit vielen Ein- und Ausgängen. Es gibt eine große Anzahl verschiedener Controller mit unterschiedlichen Fähigkeiten, unterschiedlicher Firmware, verschiedene Aufgaben. Hier sind nur einige davon:


Die allgemeine Aufgabe des Fluglotsen besteht darin, mehrere Dutzend Mal pro Sekunde einen Steuerzyklus durchzuführen, der Folgendes umfasst: Lesen von Sensorwerten, Lesen von Steuerkanälen, Verarbeiten von Informationen und Ausgeben von Steuersignalen an die Motoren, um die Befehle des Piloten auszuführen. Das werden wir programmieren.

Es gibt viele verschiedene Arten von Sensoren, die verwendet werden können. Wir werden diejenigen verwenden, die bei allen Quadrocoptern bereits fast zur Pflicht geworden sind dreiachsiges Gyroskop und dreiachsiger Beschleunigungsmesser. Der Beschleunigungsmesser misst die Beschleunigung, das Gyroskop misst die Winkelgeschwindigkeit. Dank ihnen kennt der Fluglotse die aktuellen Nick-, Roll- und Gierwinkel. Diese Sensoren können in den Flugcontroller eingebaut oder extern sein. Der Prozess der Berechnung von drei Winkeln basierend auf Sensormesswerten ist ein Thema für einen separaten Artikel. Aber das müssen wir hier nicht wissen: Die MPU-6050 erledigt alles für uns. Hierbei handelt es sich um eine kleine Platine, die intern die notwendigen Berechnungen und Filterungen durchführt und mithilfe des i2c-Protokolls nahezu fertige Winkel erzeugt. Wir müssen sie nur zählen, mit den restlichen Daten verarbeiten und Steuersignale an die Motoren senden.

Motoren von Multicoptern verbrauchen große Ströme, daher steuert der Flugcontroller sie nicht direkt, sondern über spezielle sogenannte Hardware-Treiber Geschwindigkeitsregler (ESC, Regler, Eska). Diese Regler werden von der Hauptbordbatterie gespeist, das Steuersignal wird vom Regler empfangen und am Ausgang verfügen sie über drei Drähte (A, B, C), die direkt zu den Motoren führen (jeder Motor hat seinen eigenen Regler). !)


Das „Protokoll“ der Kommunikation zwischen Regler und Motor ist für uns nicht so wichtig wie das „Protokoll“ der Kommunikation zwischen Flugregler und Regler, da wir den Regler vom Regler aus programmgesteuert steuern müssen. Es gibt Regler, die über i2c gesteuert werden, aber die gebräuchlichsten werden durch ein Rechtecksignal mit einem Minimum von 0 Volt und einem Maximum von 3-5 Volt gesteuert (so heißt es). PWM oder PWM, und einige argumentieren, dass es richtiger ist - PPM. Weitere Details zum Beispiel).

„Protokoll“ ist ein starkes Wort: Um dem Motor zu befehlen, mit maximaler Geschwindigkeit zu drehen, muss die Steuerung Impulse mit einer Dauer von 2 Millisekunden senden, dazwischen eine logische Null mit einer Dauer von 10 bis 20 Millisekunden. Eine Impulsdauer von 1 Millisekunde entspricht einem Stoppen des Motors, 1,1 ms - 10 % davon maximale Geschwindigkeit, 1,2 ms - 20 % usw. In der Praxis spielt die Dauer des Nullpunkts keine Rolle; wichtig ist nur die Dauer des Impulses selbst.

Trotz aller scheinbaren Einfachheit gibt es hier einen Hinterhalt: Fluglotsen gibt es in verschiedenen Formen verschiedene Einstellungen, Regler sind unterschiedlich und das Minimum (1 ms) und das Maximum (2 ms) sind nicht universell. Abhängig von vielen Faktoren kann der Bereich von 1–2 ms tatsächlich 1,1–1,9 ms betragen. Damit Regulierungsbehörde und Controller absolut die gleiche Sprache sprechen, gibt es ein Verfahren Reglerkalibrierung. Während dieses Vorgangs werden die Bereiche der Steuerelemente geändert und entsprechen dem Bereich des Controllers. Das Verfahren ist fest im Programm jedes Controllers verankert und umfasst mehrere einfache Schritte(Schritte können je nach Hersteller variieren – Anleitung lesen!):

  • Schalten Sie die Stromversorgung des Reglers aus.
  • Entfernen Sie den Propeller vom Motor.
  • Legen Sie am Reglereingang ein der maximalen Drehzahl entsprechendes Signal an.
  • Legen Sie Strom an den Regler an. Der Motor muss ohne fremde Hilfe bewegungslos bleiben.
  • Legen Sie am Reglereingang ein der Mindestdrehzahl entsprechendes Signal an.
  • Halten Sie 1-2 Sekunden inne und warten Sie auf das charakteristische Quietschen.
  • Schalten Sie die Stromversorgung des Reglers aus.

Anschließend werden die entsprechenden Intervallgrenzen in den Controller eingegeben. Bei einem Startversuch mit nicht kalibrierten Reglern können die Folgen unerwartet sein: von einem plötzlichen Ruck des Quadrocopters in den nächsten Baum bis hin zur völligen Unbeweglichkeit der Motoren bei jedem Gaswert.

PWM verwendet genau das gleiche Prinzip Onboard-Empfänger. Das kleines Gerät, empfängt Funksteuersignale vom Boden und sendet sie an den Fluglotsen. Meistens verfügt der Flugregler für jeden Steuerkanal (Gas, Pitch, Roll usw.) über einen eigenen Eingang, an den PWM gespeist wird. Die Interaktionslogik ist einfach: Ein Befehl, zum Beispiel „70 % Gas“, geht kontinuierlich vom Boden zum Empfänger, wo er in PWM umgewandelt und über eine separate Leitung an den Flugcontroller gesendet wird. Das Gleiche gilt für Nicken, Rollen und Gieren.

Da der Empfänger und der Controller ihre eigene freundliche PWM-Beziehung haben, müssen sie auch kalibriert werden: Fernbedienungen mit Empfänger unterscheiden sich mit ihren eigenen Betriebsbereichen. Der Controller muss sich anpassen können. Verfahren Funkkalibrierung Im Gegensatz zur Kalibrierung von Reglern müssen wir sie im Rahmen des Flugprogramms selbst erstellen. Der allgemeine Kalibrierungsplan sieht wie folgt aus:

  • Entfernen Sie für alle Fälle die Propeller von den Motoren.
  • Versetzen Sie den Controller irgendwie in den Funkkalibrierungsmodus.
  • Der Controller beginnt einige zehn Sekunden lang mit der Funkkalibrierung.
  • Bewegen Sie innerhalb der vorgegebenen Zeit alle Fernbedienungsknüppel in alle Richtungen, bis sie anhalten.
  • Der Regler merkt sich dabei die Höchst- und Tiefstwerte für alle Steuerkanäle interner Speicher seit Jahrhunderten.

Also: Während der Funkkalibrierung merkt sich der Fluglotse die Empfängerbereiche für alle Steuerkanäle; Bei der ESC-Kalibrierung wird der Flugreglerbereich in alle ESCs eingegeben.

Zusätzlich zum Programm für den Flugregler wird noch ein weiteres Programm benötigt: Flugcontroller-Setup-Schnittstelle. Чаще всего им является программа для PC, которая соединяется с полетным контроллером по USB и позволяет пользователю настраивать и проверять полетную программу, например: запускать калибровку радио, настраивать параметры стабилизации, проверять работу датчиков, задавать маршрут полета на карте, определять поведение мультикоптера при потере сигнала und vieles mehr. Wir werden unsere Konfigurationsschnittstelle in C++ und Qt in Form eines Konsolen-Dienstprogramms schreiben. Hier ist es, wenn Sie in die Zukunft blicken:


Niemand ist vor Unfällen gefeit. Selbst 10-Zoll-Kunststoffpropeller an kleinen Motoren können blutige Flecken auf der Haut hinterlassen, die noch eine Woche lang schmerzen (persönlich getestet). Es ist ganz einfach, sich ein neues Make-up und eine neue Frisur zu verpassen, wenn Sie den Gashebel auf der Fernbedienung betätigen, während Sie den Quadrocopter eingeschaltet tragen. Daher muss der Fluglotse zumindest für eine gewisse Sicherheit sorgen: den Mechanismus bewaffnet/entwaffnet. Der „unscharfe“ Zustand des Quadrocopters bedeutet, dass die Motoren ausgeschaltet sind und selbst ein Vollgasbefehl über die Fernbedienung keine Wirkung hat, obwohl Strom zugeführt wird. Der „scharfgeschaltete“ Zustand des Quadrocopters bedeutet, dass Befehle der Fernbedienung vom Flugcontroller ausgeführt werden. In diesem Zustand starten, fliegen und landen Quadrocopter. Der Quadrocopter schaltet sich ein und sollte sofort in den entschärften Zustand wechseln, falls ein unaufmerksamer Pilot ihn einschaltet, wenn der Gashebel der Fernbedienung nicht auf Null steht. Um den Copter in den „scharfen“ Zustand zu versetzen, muss der Pilot eine vorher vereinbarte Geste mit den Steuerknüppeln ausführen. Oft besteht diese Geste darin, den linken Steuerknüppel einige Sekunden lang in der unteren rechten Ecke zu halten (Gas = 0 %, Gier = 100 %). Danach führt der Fluglotse zumindest einen minimalen Selbsttest durch und wenn dieser erfolgreich verläuft, „ bewaffnet sich„(Flugbereit!) Mit einer weiteren Geste (Gas = 0 %, Gier = 0 %) Quadrocopter“ wird entwaffnet„Eine weitere gute Sicherheitsmaßnahme ist automatische Entwaffnung, wenn das Gas 2-3 Sekunden lang auf Null stand.

Über Motoren, Batterien, Regler, Propeller

Die Auswahl der Komponenten für einen Multikopter ist Thema einer ganzen Artikelserie. Wenn Sie vorhaben, Ihren ersten Quadrocopter zu bauen, formulieren Sie, wofür Sie ihn benötigen, und lassen Sie sich von erfahrenen Leuten beraten oder nehmen Sie eine Liste von Komponenten mit, die jemand anderes zusammengestellt hat und damit erfolgreich fliegt.

Dennoch ist es für ein allgemeines Verständnis hilfreich, die wichtigsten Punkte zu kennen.

Batterien

Unter Amateuren und Profis von Mehrrotorsystemen sind Lithium-Polymer-Batterien als Hauptstromquellen für Bordelektronik und Motoren am häufigsten. Sie unterscheiden sich durch Kapazität, Spannung und maximale Stromabgabe. Die Kapazität wird wie üblich in Amperestunden oder Milliamperestunden gemessen. Die Spannung wird in der Anzahl der „Zellen“ der Batterie gemessen. Eine „Dose“ hat durchschnittlich 3,7 Volt. Eine voll aufgeladene „Dose“ hat eine Spannung von 4,2 Volt. Am gebräuchlichsten sind Akkus mit drei bis sechs Zellen. Die maximale Stromabgabe wird in Ampere gemessen und beispielsweise so gekennzeichnet: 25C. C ist die Batteriekapazität, 25 ist der Multiplikator. Bei einer Kapazität von 5 Ampere kann eine solche Batterie 25 * 5 = 125 Ampere liefern. Natürlich ist es besser, den aktuellen Leistungsparameter mit einer Reserve zu nehmen, aber grundsätzlich gilt: Je größer er ist, desto teurer ist die Batterie. Beschriftungsbeispiel: 25C 3S 4500mah.

Jede Bank ist eine separate Batterie. Sie sind alle in Reihe verlötet. Um alle Banken gleichmäßig zu belasten, ist ein Ausgleichsanschluss vorgesehen, der den Zugriff auf jede Bank separat und speziell ermöglicht Ladegerät.

Motoren, Propeller, Regler

Der Hauptparameter eines bürstenlosen Motors ist sein kv. Dies ist die Anzahl der Umdrehungen pro Minute für jedes angelegte Volt Spannung. Die gebräuchlichsten Motoren sind mit kv-Werten von 300 bis 1100. Für kleine Quadrocopter (1-2 Kilogramm plus 500 Gramm Nutzlast) wird normalerweise ein Kv-Wert näher an 1000 gewählt, und sie sind mit Kunststoffpropellern mit einem Durchmesser von bis zu 12 Zoll ausgestattet. Große Multikopter (zum Heben von guter und schwerer Foto-Video-Ausrüstung) oder Langstreckenflugzeuge (für Flugzeitrekorde) verfügen meist über Motoren mit niedrigem kv (300-500) und riesigen Carbonpropellern (15 - 20 Zoll Durchmesser). Kv ist nicht der Einzige wichtiger Parameter Motor: Oft findet man ganze Tabellen zur Abhängigkeit der Motorleistung und des Schubs von der zugeführten Spannung und dem verbauten Propellertyp. Darüber hinaus ist jeder Motor für seinen eigenen Spannungsbereich (Anzahl der Batteriezellen) und seinen eigenen maximalen Strom ausgelegt. Wenn der Hersteller 3-4S schreibt, sollten Sie es nicht mit 5S-Akkus verwenden. Gleiches gilt für Regulierungsbehörden.

Wenn der Motor für einen Strom von bis zu 30 A ausgelegt ist, sollte der Regler für einen Strom von bis zu 30 + 10 A ausgelegt sein, um eine Überhitzung zu verhindern. Minderwertige oder ungeeignete Regler können zu sogenannten „Synchronisationsschlupfen“ führen und den Motor im Flug abwürgen, und Sie kennen einen anderen Multirotor-Begriff: „ hat den Planeten gefangen." Noch eins wichtiger Punkt- Dicke und Qualität der Drähte. Ein falsch dimensionierter Draht oder ein schlechter Stecker können zu einem Brand in der Luft führen.

Wie Sie sehen, gibt es viele Nuancen. Ich habe noch nicht einmal die Hälfte davon aufgelistet, daher ist es ziemlich schwierig, die Komponenten für Ihren ersten Multicopter selbst auszuwählen.

Stabilisierungsmathematik, PID-Regler (PID)

Wenn Sie sich für den Einstieg in den Multikopter entscheiden, müssen Sie sich früher oder später mit der Einstellung des PID-Reglers auseinandersetzen, da dieses mathematische Gerät bei fast allen Stabilisierungsaufgaben eingesetzt wird: beim Stabilisieren der Winkel eines Quadrocopters in der Luft, beim Fliegen und beim Halten einer Position Verwendung von GPS, Halten der Höhe mithilfe eines Barometers, bürstenlose Mechanismen, Stabilisierung der Videokamera im Flug (Kamera-Gimbal).

Man kauft einen zweiachsigen Kamera-Gimbal, stellt dort zum Beispiel eine GoPro auf, schaltet sie ein und statt Stabilisierung bekommt man Krämpfe, Vibrationen und Zuckungen, obwohl alle Sensoren kalibriert sind und mechanische Probleme beseitigt sind. Der Grund sind falsche Parameter der PID-Regler.

Man baut einen Multikopter zusammen, kalibriert Sensoren, Regler, Funk, prüft alles, versucht abzuheben, und schon liegt er so dumpf in der Luft, dass schon eine leichte Brise ihn umwirft. Oder umgekehrt: Er ist so scharfsinnig, dass er plötzlich abhebt und ohne Erlaubnis einen Dreifachsalto macht. Der Grund ist immer noch derselbe: die Parameter von PID-Reglern.

Für viele Geräte mit PID-Reglern gibt es Anleitungen zum Einrichten, teilweise sogar mehrere zusätzlich zu zahlreichen Videoanleitungen der Anwender selbst. Um sich jedoch leichter in dieser Vielfalt zurechtzufinden, ist es hilfreich zu verstehen, wie diese Regulatoren im Inneren funktionieren. Darüber hinaus werden wir unser eigenes Quadrocopter-Stabilisierungssystem schreiben! Ich schlage vor, „neu zu erfinden“ und „an den Fingern“ zu verstehen Formel für den PID-Regler. Für diejenigen, die eine trockene mathematische Sprache bevorzugen, empfehle ich Wikipedia, weil... Auf Russisch ist das Material noch nicht so ausführlich dargestellt.

Wir betrachten einen Quadrocopter im zweidimensionalen Raum, wo er nur einen Winkel hat – den Rollwinkel – und zwei Motoren: links und rechts.


Der Fluglotse erhält kontinuierlich Befehle vom Boden: „30 Grad rollen“, „-10 Grad rollen“, „0 Grad rollen (Horizont halten)“; Seine Aufgabe besteht darin, sie mithilfe von Motoren so schnell und präzise wie möglich auszuführen und dabei Folgendes zu berücksichtigen: Wind, ungleichmäßige Gewichtsverteilung des Quadrocopters, ungleichmäßige Abnutzung der Motoren, Trägheit des Quadrocopters usw. Daher muss der Flugcontroller kontinuierlich das Problem lösen, welche Drehzahl auf jeden Motor anzuwenden ist, und dabei den aktuellen Wert des Querneigungswinkels und den erforderlichen Wert berücksichtigen. Kontinuierlich ist natürlich ein starkes Wort. Es hängt alles von den Rechenkapazitäten der jeweiligen Hardware ab. Auf Adruino ist es durchaus möglich, eine Iteration des Verarbeitungs- und Steuerungszyklus in 10 Millisekunden unterzubringen. Das bedeutet, dass alle 10 Millisekunden die Winkel des Quadrocopters ausgelesen und darauf basierend Steuersignale an die Motoren gesendet werden. Diese 10 Millisekunden werden aufgerufen Regulierungszeitraum. Es ist klar, dass die Regulierung umso häufiger und genauer erfolgt, je kleiner sie ist.

Der Gaspegel fließt vom Empfänger zum Regler. Bezeichnen wir es. Ich möchte Sie daran erinnern, dass dies der arithmetische Durchschnitt der Drehzahlen aller Motoren ist, ausgedrückt als Prozentsatz der maximalen Drehzahl. Wenn und die Drehzahlen des linken und rechten Motors sind, dann:

Wo ist die Reaktion des Quadcopters (Kraft), die ein Drehmoment erzeugt, weil sich der linke Motor schneller als das Gas dreht und der rechte Motor genauso viel langsamer dreht? kann auch negative Werte annehmen, dann dreht der rechte Motor schneller. Wenn wir lernen, diesen Wert bei jeder Iteration des Verarbeitungszyklus zu berechnen, können wir den Quadcopter steuern. Es ist klar, dass es mindestens vom aktuellen Rollwinkel () und dem gewünschten Rollwinkel () abhängen sollte, der vom Bedienfeld kommt.

Stellen wir uns eine Situation vor: Der Befehl „Horizont behalten“ ( = 0) wird empfangen und der Quadrocopter rollt nach links:


Der Unterschied (Fehler) zwischen und , den der Controller minimieren möchte.

Je größer der Unterschied zwischen dem gewünschten und dem aktuellen Rollwinkel ist, desto stärker sollte die Reaktion sein, desto schneller sollte sich der linke Motor relativ zum rechten drehen. Wenn wir dies in unserer Notation schreiben:

Dabei ist P der Proportionalitätskoeffizient. Je größer dieser ist, desto stärker ist die Reaktion, desto schärfer reagiert der Quadrocopter auf Abweichungen vom geforderten Rollwinkel. Diese intuitive und einfache Formel beschreibt die Arbeit Proportionalregler. Der Punkt ist einfach: Je mehr der Quadcopter von der gewünschten Position abweicht, desto stärker müssen Sie versuchen, ihn zurückzugeben. Leider muss diese Formel kompliziert sein. Der Hauptgrund ist Überschwingen.

Innerhalb weniger zehn Millisekunden (mehrere Iterationen des Verarbeitungszyklus) kehrt der Quadcopter unter dem Einfluss des Proportionalreglers in die erforderliche (in diesem Fall horizontale) Position zurück. Während dieser ganzen Zeit werden Fehler und Anstrengung das gleiche Vorzeichen haben, obwohl ihr Ausmaß immer geringer wird. Ab einer bestimmten Drehgeschwindigkeit (Winkelgeschwindigkeit) rollt der Quadrocopter einfach auf die andere Seite, da ihn niemand in der gewünschten Position stoppen kann. Es ist wie eine Feder, die immer in ihre ursprüngliche Position zurückkehren möchte, aber wenn man sie zurückzieht und wieder loslässt, schwingt sie, bis die Reibung überhand nimmt. Natürlich wird auch der Quadrocopter von der Reibung betroffen sein, aber die Praxis zeigt, dass das nicht ausreicht.

Aus diesem Grund muss dem Proportionalregler ein weiterer Begriff hinzugefügt werden, der die Drehung des Quadrocopters verlangsamt und ein Überschießen (Rollen in die entgegengesetzte Richtung) verhindert – eine Art Nachahmung der Reibung in einem viskosen Medium: Je schneller der Je mehr sich der Quadrocopter dreht, desto stärker müssen Sie versuchen, ihn natürlich innerhalb angemessener Grenzen zu stoppen. Wir bezeichnen die Rotationsgeschwindigkeit (Fehleränderungsrate) als, dann:

wobei D ein einstellbarer Koeffizient ist: Je größer er ist, desto stärker ist die Bremskraft. Aus einem Physikkurs in der Schule tauchen vage Erinnerungen auf, dass die Änderungsrate einer beliebigen Größe die Ableitung dieser Größe nach der Zeit ist:

.

Und nun wird aus dem Proportionalregler ein Proportional-Differentialregler (Proportionalterm und Differential):

Der Fehler ist leicht zu berechnen, da wir bei jeder Iteration wissen und ; P und D sind Parameter, die vor dem Start konfiguriert werden können. Um die Ableitung (Änderungsrate) zu berechnen, ist es notwendig, den vorherigen Wert zu speichern, den aktuellen Wert zu kennen und die Zeit zu kennen, die zwischen den Messungen vergangen ist (Kontrollzeitraum). Und hier ist es – Physik der sechsten Klasse (Geschwindigkeit = Distanz / Zeit):

Regulierungszeitraum; - Fehlerwert aus der vorherigen Iteration des Regulierungszyklus. Diese Formel lautet übrigens der einfachste Weg numerische Differenzierung, und sie ist für uns hier durchaus geeignet.

Jetzt haben wir einen proportionalen Differentialregler in einem flachen Bicopter, aber es gibt noch ein weiteres Problem. Lassen Sie die linke Kante etwas mehr wiegen als die rechte, oder was auch immer der Fall ist, der linke Motor arbeitet etwas schlechter als der rechte. Der Quadrocopter ist leicht nach links geneigt und dreht sich nicht zurück: Der Differentialterm ist Null, und der Proportionalterm reicht, obwohl er einen positiven Wert annimmt, nicht aus, um den Quadrocopter wieder in eine horizontale Position zu bringen, da die linke Kante leicht wiegt mehr als das Richtige. Dadurch zieht der Quadrocopter immer nach links.

Es bedarf eines Mechanismus, um solche Abweichungen zu überwachen und zu korrigieren. Ein charakteristisches Merkmal solcher Fehler ist, dass sie sich mit der Zeit selbst korrigieren. Abhilfe schafft der Integralterm. Es speichert die Summe aller Fehler über alle Iterationen der Verarbeitungsschleife. Wie wird das helfen? Wenn der Proportionalterm nicht ausreicht, um einen kleinen Fehler zu korrigieren, dieser aber dennoch vorhanden ist, gewinnt der Integralterm mit der Zeit allmählich an Stärke, wodurch die Reaktion zunimmt und der Quadcopter den erforderlichen Rollwinkel einnimmt.

Hier gibt es eine Nuance. Nehmen wir an, es beträgt 1 Grad, der Regelzyklus beträgt 0,1 s. Dann nimmt die Summe der Fehler in einer Sekunde den Wert von 10 Grad an. Und wenn der Verarbeitungszyklus 0,01 s beträgt, erhöht sich der Betrag um bis zu 100 Grad. Damit der Integralterm für verschiedene Regulierungsperioden im gleichen Zeitraum den gleichen Wert annimmt, multiplizieren wir den resultierenden Betrag mit der Regulierungsperiode selbst. Aus dem Beispiel lässt sich leicht berechnen, dass sich in beiden Fällen die Summe von 1 Grad ergibt. Hier ist er – der Integralterm (vorerst ohne einstellbaren Koeffizienten):

Dabei ist einer der konfigurierbaren Parameter, von denen es mittlerweile drei gibt: . Diese Formel ist einfach anzuwenden Programmcode, und hier ist die Formel, die in Lehrbüchern angegeben ist:

Es gibt mehrere Variationen davon, Sie können beispielsweise den Modul des Integralterms so begrenzen, dass er einen bestimmten zulässigen Schwellenwert nicht überschreitet (wir werden dies tun).

Üben

Nun ist es an der Zeit, die Auswahl der Koeffizienten zu üben. Den Lesern wird eine JavaScript-Seite mit einem virtuellen Quadrocopter angeboten, den sie bereits in Bildern gesehen haben: Auswahl der PID-Reglerparameter für einen Quadcopter(JSFiddle). Beim ersten Start ist sofort ein Überschwingen sichtbar – Pendeln um die Sollposition. Wenn die Schwingungen aufhören, können Sie den Effekt beobachten, dass der Proportionalkoeffizient den Fehler aufgrund des „asymmetrischen“ Quadrocopters (eingestellt durch das Kontrollkästchen „Asymmetrie“) nicht bewältigen kann. Die zur Konfiguration verfügbaren Parameter sind P, I, D. Jetzt wissen Sie, was Sie damit machen sollen. Das „Scrollen“ unter dem Quadrocopter kann über den gewünschten Rollwert gesteuert werden. „Intervall (ms):“ – Regulierungsintervall. Es zu reduzieren ist Betrug, aber zu sehen, wie es sich auf die Qualität der Stabilisierung auswirkt, ist sehr nützlich.

Für Liebhaber der „reinen“ Mathematik können wir Folgendes anbieten Konfigurieren Sie den abstrakten PID-Regler

Die eingegebenen Parameter werden nicht automatisch angewendet: Sie müssen auf „Übernehmen“ klicken. Ein paar kleine Tipps: Wenn Sie den Eindruck haben, dass der Quadrocopter zu langsam ist, um auf die Steuerung zu reagieren, können Sie P erhöhen, aber ein zu großer P-Wert kann zu Überschwingen führen. Parameter D hilft bei der Bewältigung von Überschwingern, aber zu große Werte führen zu häufigen Schwankungen oder erneut zu Überschwingern. Der I-Parameter ist normalerweise 10- bis 100-mal kleiner als der P-Parameter, weil Seine Stärke liegt in der Akkumulation im Laufe der Zeit, nicht in der schnellen Reaktion.

Das manuelle Einstellen von PID-Parametern erfordert Übung. Es gibt analytische Methoden zu ihrer Berechnung, aber sie erfordern eine gute Vorbereitung und genaue Kenntnis vieler Parameter des spezifischen Systems, das angepasst werden soll. Als Mittelweg zwischen manueller Auswahl und analytischer Berechnung gibt es eine breite Palette empirischer Methoden, die von verschiedenen Forschern vorgeschlagen werden.

Bei unserem 2D-Quadrocopter ändert sich nur ein Winkel – der Rollwinkel. Beim Tuning eines 3D-Quadrocopters sind für jeden Winkel drei unabhängige PID-Regler erforderlich, und die Steuerung eines bestimmten Motors ist die Summe der Anstrengungen aller Regler.

Fazit des ersten Teils

In diesem Artikel haben wir uns mit den Grundkonzepten vertraut gemacht: Quadrocopter und Flugprinzip, Nicken, Rollen, Gieren, Gas, Schwebedrossel, Stabilisierungsflugmodus, Flugregler, Gyroskop, Beschleunigungsmesser, Geschwindigkeitsregler, PWM, Reglerkalibrierung, Funkkalibrierung, On-Board-Empfänger, Schnittstelle zum Einrichten des Flugcontrollers, scharf/unscharf-Zustände, automatische Entwaffnung.

Danach haben wir die Formel neu erfunden PID-Regler ein wenig berühren numerische Differentiation und Integration, und erlebte auf die harte Tour, wie man die Parameter konfiguriert P, I, D An virtueller Quadcopter .

Wenn Sie sich jetzt mit der Programmierung von Lichtschwertern auskennen, können Sie Ihr eigenes Quadrocopter-Stabilisierungsprogramm starten oder, noch besser, bestehende Open-Source-Projekte mit frischen Ideen einbinden. Nun, in ein oder zwei Wochen werde ich die Geschichte fortsetzen, wie alles programmiert, getestet, abgestürzt ist, mir die Finger geschnitten hat und völlig in eine unbekannte Richtung davongeflogen ist.

Zum Abschluss dieses Teils muss ich einfach die Person erwähnen, die mir bei der Auswahl der Komponenten und der Einrichtung des komplexesten (ersten!) Quadrocopters auf der MegapirateNG-Firmware geholfen und geduldig Hunderte von Fragen dazu beantwortet hat grundlegendes Konzept: SovGVD, danke! :-)

Als Belohnung für diejenigen, die dieses ganze Blatt verschwenden konnten, poste ich das versprochene kleine Video, wie unser Quadcopter mit unseren „erfundenen“ PID-Reglern auf unserem Programm für Arduino Mega 2560 fliegt:

Natürlich fehlt ihm GPS, wie bei kommerziellen und massenproduzierten Produkten, es mangelt ihm ein wenig an Stabilität, aber es ist UNSER, und wir kennen es in- und auswendig, bis hin zum letzten Faktor des Integralkoeffizienten! Und es ist wirklich cool, dass uns solche Technologien heute zur Verfügung stehen.



Hallo, Habro-Bewohner!
In dieser Artikelserie werden wir den Deckel des Quadcopters etwas weiter öffnen, als es das Hobby erfordert, und außerdem ein eigenes Programm für den Flugcontroller schreiben, konfigurieren und starten, bei dem es sich um ein normales Arduino Mega 2560-Board handelt.

Wir haben vor uns:

  1. Grundkonzepte (für Anfänger-Copterpiloten).
  2. PID-Regler mit einer interaktiven Web-Demonstration der Funktionsweise eines virtuellen Quadcopters.
  3. Das eigentliche Programm für Arduino und das Konfigurationsprogramm für Qt.
  4. Gefährliche Tests eines Quadrocopters am Seil. Erstflüge.
  5. Absturz und Verlust auf dem Feld. Automatische Suche aus der Luft mit Qt und OpenCV.
  6. Abschließende erfolgreiche Tests. Zusammenfassend. Wo hin?

Das Material ist umfangreich, aber ich werde versuchen, es in 2-3 Artikel unterzubringen.
Heute erwarten wir: einen Spoiler mit einem Video, wie unser Quadrocopter geflogen ist; grundlegendes Konzept; PID-Regler und Praxis der Auswahl ihrer Koeffizienten.

Wozu dient das alles?

Akademisches Interesse, das übrigens nicht nur mich verfolgt (,). Und natürlich für die Seele. Ich hatte großen Spaß bei der Arbeit und empfand echtes, unbeschreibliches Glück, als „ES“ mit meinem Programm flog :-)

Für wen?

Dieses Material könnte auch für Menschen von Interesse sein, die weit weg sind oder gerade planen, sich mit Mehrrotorsystemen zu beschäftigen. Lassen Sie uns nun über den Zweck der Hauptkomponenten des Quadcopters sprechen, wie sie miteinander interagieren, über die Grundkonzepte und Prinzipien des Fluges. Natürlich ist das gesamte Wissen, das wir brauchen, im Internet zu finden, aber wir können nicht gezwungen werden, im riesigen Internet danach zu suchen.

Ohne Ihr Verständnis grundlegender Konzepte zu gefährden, können Sie alles, was Sie wissen, bis zum nächsten unbekannten Begriff überspringen. fett hervorgehoben, oder zu einer unverständlichen Illustration.

NEIN #1!

Beginnen Sie nicht damit, Ihr eigenes Programm für einen Flugcontroller zu schreiben, bevor Sie fertige Lösungen ausprobiert haben, von denen es mittlerweile ziemlich viele gibt (Ardupilot, MegapirateNG, MiltiWii, AeroQuad usw.). Erstens ist es gefährlich! Es erfordert Übung, einen Quadrocopter ohne GPS und Barometer zu steuern, und dies gilt umso mehr, wenn er eine Panne hat, überschlägt oder nicht genau dorthin fliegt, wo er hinfliegen soll – und das lässt sich bei den ersten Tests kaum vermeiden. Zweitens wird Ihnen das Programmieren um ein Vielfaches leichter fallen, wenn Sie verstehen, was programmiert werden muss und wie es am Ende funktionieren soll. Glauben Sie mir: Flugmathematik ist nur ein kleiner Teil des Programmcodes.

NEIN #2!

Nehmen Sie es nicht vor, ein eigenes Programm für einen Fluglotsen zu schreiben, wenn Sie kein akademisches Interesse verfolgen und nur das benötigen, was fertige Lösungen schon längst können (fliegen, fotografieren, Videos drehen, weiterfliegen). Aufgaben usw.) Während Sie alles selbst schreiben, wird es lange dauern, auch wenn Sie nicht allein sind.

Grundlegendes Konzept


Quadrocopter gibt es in verschiedenen Ausführungen, alle werden jedoch durch vier Hauptrotoren vereint:
Trotz der scheinbaren Symmetrie ist es für den Piloten sehr wichtig zu erkennen, wo sich die Vorderseite des Quadcopters befindet (angezeigt durch den Pfeil). Hier ist es wie bei funkgesteuerten Automodellen: Wenn der Befehl „Vorwärts“ gegeben wird, fliegt der Quadrocopter nicht dorthin, wo der Pilot hinschaut, sondern dorthin, wo die imaginäre Nase des Quadrocopters zeigt. Dies birgt Gefahren: Für Anfänger kann es schwierig sein, ein Gerät, das vom Wind erfasst und irgendwie seitwärts gedreht wurde, wieder zu sich selbst zurückzubringen (wir sprechen hier natürlich nicht vom Fliegen in einer Ego-Kamera, sondern von „schlau“) (Flugmodi mit Kompass und GPS.) Lösung Dieses Problem kann teilweise durch Schrauben oder andersfarbige Balken an der Vorderseite, eine Art Kugel vorne oder andersfarbige LEDs behoben werden. Doch das alles erweist sich als nutzlos, als sich die Pepelats schnell in einen Punkt über dem Horizont verwandeln.

Wir werden mit einem „X“-förmigen Quadrocopterrahmen fliegen, weil mir das Aussehen besser gefällt. Jedes Design hat seine eigenen Vorteile und seinen eigenen Zweck. Neben Quadcoptern gibt es noch weitere Multicopter. Auch wenn man die exotischen Optionen nicht mitzählt, gibt es dennoch eine ganze Reihe davon!



Lassen Sie uns herausfinden, wie unser Quadcopter im Inneren aufgebaut ist und was der Flugcontroller tun soll, den wir programmieren möchten.




Winkel Nicken, Rollen und Gieren (Nicken, Rollen, Gieren)- Winkel, anhand derer üblicherweise die Ausrichtung des Quadrocopters im Raum bestimmt und eingestellt wird.


Manchmal wird das Wort „Winkel“ weggelassen und man sagt einfach: Nicken, Rollen, Gieren. Laut Wikipedia ist dies jedoch nicht ganz korrekt. Der Flug des Quadrocopters in die gewünschte Richtung wird durch die Änderung dieser drei Winkel erreicht. Um beispielsweise vorwärts zu fliegen, muss der Quadrocopter geneigt werden, da die hinteren Motoren etwas stärker drehen als die vorderen:

Gas-Quadrocopter- arithmetisches Mittel zwischen den Drehzahlen aller Motoren. Je mehr Gas, desto größer der Gesamtschub der Motoren, desto stärker ziehen sie den Quadrocopter hoch(NICHT VORWÄRTS!!! „Hausschuhe auf dem Boden“ bedeutet hier den schnellsten Aufstieg). Wird normalerweise in Prozent gemessen: 0 % – Motoren sind gestoppt, 100 % – drehen sich mit maximaler Geschwindigkeit. Gas schwebt- der minimale Gasfüllstand, der nötig ist, damit der Quadrocopter nicht an Höhe verliert.

Gas geben, Nicken, Rollen, Gieren – wenn Sie diese vier Parameter kontrollieren können, dann können Sie den Quadrocopter steuern. Sie werden manchmal auch als Steuerkanäle bezeichnet. Wenn Sie eine Zweikanal-Fernbedienung erworben haben, können Sie den Quadcopter nicht steuern. Der Dreikanal-Typ eignet sich besser für kleine Hubschrauber: Sie können ohne Rollkontrolle fliegen, aber auf einem Quadrocopter ist das nicht praktisch. Wer den Flugmodus ändern möchte, muss für eine Fünfkanal-Fernsteuerung bezahlen. Möchte man das Neigen und Schwenken der Kamera an Bord steuern, stehen zwei weitere Kanäle zur Verfügung, allerdings nutzen Profis hierfür eine separate Fernbedienung.

Es gibt viele Flugmodi. Zum Einsatz kommen GPS, Barometer und Entfernungsmesser. Aber wir wollen den grundlegenden Stabilisierungsmodus implementieren ( stechen, stabilisieren, in einem „Stummel“ fliegen, bei dem der Quadrocopter unabhängig von äußeren Faktoren die Winkel beibehält, die ihm von der Fernbedienung vorgegeben werden. In diesem Modus kann der Quadcopter bei Windstille fast an Ort und Stelle hängen. Der Pilot muss den Wind kompensieren.

Die Drehrichtung der Schrauben ist nicht zufällig gewählt. Würden sich alle Motoren in eine Richtung drehen, würde sich der Quadrocopter aufgrund der entstehenden Drehmomente in die entgegengesetzte Richtung drehen. Daher dreht sich immer ein Paar gegenläufiger Motoren in die eine Richtung und das andere Paar in die andere. Der Effekt des Auftretens von Drehmomenten wird genutzt, um den Gierwinkel zu verändern: Ein Motorenpaar beginnt sich etwas schneller zu drehen als das andere, und nun dreht sich der Quadrocopter langsam zu uns (was für ein Horror):



  • LFW - Drehung links vorne im Uhrzeigersinn (links vorne, Drehung im Uhrzeigersinn)
  • RFC – Drehung rechts vorne gegen den Uhrzeigersinn (rechts vorne, Drehung gegen den Uhrzeigersinn)
  • LBC – Linksrückwärtsdrehung gegen den Uhrzeigersinn (Linksrückwärtsdrehung, Gegenuhrzeigersinnsdrehung)
  • RBW – rechts hinten, Drehung im Uhrzeigersinn (rechts hinten, Drehung im Uhrzeigersinn)

Steuert die Drehzahl der Motoren Fluglotse (Controller, Gehirne). Normalerweise handelt es sich dabei um eine kleine Platine oder Box mit vielen Ein- und Ausgängen. Es gibt eine große Anzahl verschiedener Controller mit unterschiedlichen Fähigkeiten, unterschiedlicher Firmware und unterschiedlichen Aufgaben. Hier sind nur einige davon:




Die allgemeine Aufgabe des Fluglotsen besteht darin, mehrere Dutzend Mal pro Sekunde einen Steuerzyklus durchzuführen, der Folgendes umfasst: Lesen von Sensorwerten, Lesen von Steuerkanälen, Verarbeiten von Informationen und Ausgeben von Steuersignalen an die Motoren, um die Befehle des Piloten auszuführen. Das werden wir programmieren.

Es gibt viele verschiedene Arten von Sensoren, die verwendet werden können. Wir werden diejenigen verwenden, die bei allen Quadrocoptern bereits fast zur Pflicht geworden sind dreiachsiges Gyroskop und dreiachsiger Beschleunigungsmesser. Der Beschleunigungsmesser misst die Beschleunigung, das Gyroskop misst die Winkelgeschwindigkeit. Dank ihnen kennt der Fluglotse die aktuellen Nick-, Roll- und Gierwinkel. Diese Sensoren können in den Flugcontroller eingebaut oder extern sein. Der Prozess der Berechnung von drei Winkeln basierend auf Sensormesswerten ist ein Thema für einen separaten Artikel. Aber das müssen wir hier nicht wissen: Die MPU-6050 erledigt alles für uns. Hierbei handelt es sich um eine kleine Platine, die intern die notwendigen Berechnungen und Filterungen durchführt und mithilfe des i2c-Protokolls nahezu fertige Winkel erzeugt. Wir müssen sie nur zählen, mit den restlichen Daten verarbeiten und Steuersignale an die Motoren senden.

Motoren von Multicoptern verbrauchen große Ströme, daher steuert der Flugcontroller sie nicht direkt, sondern über spezielle sogenannte Hardware-Treiber Geschwindigkeitsregler (ESC, Regler, Eska). Diese Regler werden von der Hauptbordbatterie gespeist, das Steuersignal wird vom Regler empfangen und am Ausgang verfügen sie über drei Drähte (A, B, C), die direkt zu den Motoren führen (jeder Motor hat seinen eigenen Regler). !)




Das „Protokoll“ der Kommunikation zwischen Regler und Motor ist für uns nicht so wichtig wie das „Protokoll“ der Kommunikation zwischen Flugregler und Regler, da wir den Regler vom Regler aus programmgesteuert steuern müssen. Es gibt Regler, die über i2c gesteuert werden, aber die gebräuchlichsten werden durch ein Rechtecksignal mit einem Minimum von 0 Volt und einem Maximum von 3-5 Volt gesteuert (so heißt es). PWM oder PWM, und einige argumentieren, dass es richtiger ist - PPM. Weitere Details zum Beispiel).

„Protokoll“ ist ein starkes Wort: Um dem Motor zu befehlen, mit maximaler Geschwindigkeit zu drehen, muss die Steuerung Impulse mit einer Dauer von 2 Millisekunden senden, dazwischen eine logische Null mit einer Dauer von 10 bis 20 Millisekunden. Eine Impulsdauer von 1 Millisekunde entspricht einem Stoppen des Motors, 1,1 ms – 10 % der Maximalgeschwindigkeit, 1,2 ms – 20 % usw. In der Praxis spielt die Dauer des Nullpunkts keine Rolle; wichtig ist nur die Dauer des Impulses selbst.

Trotz aller scheinbaren Einfachheit gibt es hier einen Hinterhalt: Flugsteuerungen unterscheiden sich mit unterschiedlichen Einstellungen, Regler sind unterschiedlich und das Minimum (1 ms) und das Maximum (2 ms) sind nicht universell. Abhängig von vielen Faktoren kann der Bereich von 1–2 ms tatsächlich 1,1–1,9 ms betragen. Damit Regulierungsbehörde und Controller absolut die gleiche Sprache sprechen, gibt es ein Verfahren Reglerkalibrierung. Während dieses Vorgangs werden die Bereiche der Steuerelemente geändert und entsprechen dem Bereich des Controllers. Das Verfahren ist in das Programm jedes Atemreglers integriert und umfasst mehrere einfache Schritte (die Schritte können je nach Hersteller variieren – lesen Sie die Anweisungen!):

  • Schalten Sie die Stromversorgung des Reglers aus.
  • Entfernen Sie den Propeller vom Motor.
  • Legen Sie am Reglereingang ein der maximalen Drehzahl entsprechendes Signal an.
  • Legen Sie Strom an den Regler an. Der Motor muss ohne fremde Hilfe bewegungslos bleiben.
  • Legen Sie am Reglereingang ein der Mindestdrehzahl entsprechendes Signal an.
  • Halten Sie 1-2 Sekunden inne und warten Sie auf das charakteristische Quietschen.
  • Schalten Sie die Stromversorgung des Reglers aus.

Anschließend werden die entsprechenden Intervallgrenzen in den Controller eingegeben. Bei einem Startversuch mit nicht kalibrierten Reglern können die Folgen unerwartet sein: von einem plötzlichen Ruck des Quadrocopters in den nächsten Baum bis hin zur völligen Unbeweglichkeit der Motoren bei jedem Gaswert.

PWM verwendet genau das gleiche Prinzip Onboard-Empfänger. Dabei handelt es sich um ein kleines Gerät, das Funksteuersignale vom Boden empfängt und an den Fluglotsen übermittelt. Meistens verfügt der Flugregler für jeden Steuerkanal (Gas, Pitch, Roll usw.) über einen eigenen Eingang, an den PWM gespeist wird. Die Interaktionslogik ist einfach: Ein Befehl, zum Beispiel „70 % Gas“, geht kontinuierlich vom Boden zum Empfänger, wo er in PWM umgewandelt und über eine separate Leitung an den Flugcontroller gesendet wird. Das Gleiche gilt für Nicken, Rollen und Gieren.

Da der Empfänger und der Controller ihre eigene freundliche PWM-Beziehung haben, müssen sie auch kalibriert werden: Fernbedienungen mit Empfänger unterscheiden sich mit ihren eigenen Betriebsbereichen. Der Controller muss sich anpassen können. Verfahren Funkkalibrierung Im Gegensatz zur Kalibrierung von Reglern müssen wir sie im Rahmen des Flugprogramms selbst erstellen. Der allgemeine Kalibrierungsplan sieht wie folgt aus:

  • Entfernen Sie für alle Fälle die Propeller von den Motoren.
  • Versetzen Sie den Controller irgendwie in den Funkkalibrierungsmodus.
  • Der Controller beginnt einige zehn Sekunden lang mit der Funkkalibrierung.
  • Bewegen Sie innerhalb der vorgegebenen Zeit alle Fernbedienungsknüppel in alle Richtungen, bis sie anhalten.
  • Der Regler speichert die Höchst- und Mindestwerte für alle Steuerkanäle über Jahrhunderte hinweg im internen Speicher.
Also: Während der Funkkalibrierung merkt sich der Fluglotse die Empfängerbereiche für alle Steuerkanäle; Bei der ESC-Kalibrierung wird der Flugreglerbereich in alle ESCs eingegeben.

Zusätzlich zum Programm für den Flugregler wird noch ein weiteres Programm benötigt: Flugcontroller-Setup-Schnittstelle. Чаще всего им является программа для PC, которая соединяется с полетным контроллером по USB и позволяет пользователю настраивать и проверять полетную программу, например: запускать калибровку радио, настраивать параметры стабилизации, проверять работу датчиков, задавать маршрут полета на карте, определять поведение мультикоптера при потере сигнала und vieles mehr. Wir werden unsere Konfigurationsschnittstelle in C++ und Qt in Form eines Konsolen-Dienstprogramms schreiben. Hier ist es, wenn Sie in die Zukunft blicken:




Niemand ist vor Unfällen gefeit. Selbst 10-Zoll-Kunststoffpropeller an kleinen Motoren können blutige Flecken auf der Haut hinterlassen, die noch eine Woche lang schmerzen (persönlich getestet). Es ist ganz einfach, sich ein neues Make-up und eine neue Frisur zu verpassen, wenn Sie den Gashebel auf der Fernbedienung betätigen, während Sie den Quadrocopter eingeschaltet tragen. Daher muss der Fluglotse zumindest für eine gewisse Sicherheit sorgen: den Mechanismus bewaffnet/entwaffnet. Der „unscharfe“ Zustand des Quadrocopters bedeutet, dass die Motoren ausgeschaltet sind und selbst ein Vollgasbefehl über die Fernbedienung keine Wirkung hat, obwohl Strom zugeführt wird. Der „scharfgeschaltete“ Zustand des Quadrocopters bedeutet, dass Befehle der Fernbedienung vom Flugcontroller ausgeführt werden. In diesem Zustand starten, fliegen und landen Quadrocopter. Der Quadrocopter schaltet sich ein und sollte sofort in den entschärften Zustand wechseln, falls ein unaufmerksamer Pilot ihn einschaltet, wenn der Gashebel der Fernbedienung nicht auf Null steht. Um den Copter in den „scharfen“ Zustand zu versetzen, muss der Pilot eine vorher vereinbarte Geste mit den Steuerknüppeln ausführen. Oft besteht diese Geste darin, den linken Steuerknüppel einige Sekunden lang in der unteren rechten Ecke zu halten (Gas = 0 %, Gier = 100 %). Danach führt der Fluglotse zumindest einen minimalen Selbsttest durch und wenn dieser erfolgreich verläuft, „ bewaffnet sich„(Flugbereit!) Mit einer weiteren Geste (Gas = 0 %, Gier = 0 %) Quadrocopter“ wird entwaffnet„Eine weitere gute Sicherheitsmaßnahme ist automatische Entwaffnung, wenn das Gas 2-3 Sekunden lang auf Null stand.

Über Motoren, Batterien, Regler, Propeller

Die Auswahl der Komponenten für einen Multikopter ist Thema einer ganzen Artikelserie. Wenn Sie vorhaben, Ihren ersten Quadrocopter zu bauen, formulieren Sie, wofür Sie ihn benötigen, und lassen Sie sich von erfahrenen Leuten beraten oder nehmen Sie eine Liste von Komponenten mit, die jemand anderes zusammengestellt hat und damit erfolgreich fliegt.

Dennoch ist es für ein allgemeines Verständnis hilfreich, die wichtigsten Punkte zu kennen.

Batterien


Unter Amateuren und Profis von Mehrrotorsystemen sind Lithium-Polymer-Batterien als Hauptstromquellen für Bordelektronik und Motoren am häufigsten. Sie unterscheiden sich durch Kapazität, Spannung und maximale Stromabgabe. Die Kapazität wird wie üblich in Amperestunden oder Milliamperestunden gemessen. Die Spannung wird in der Anzahl der „Zellen“ der Batterie gemessen. Eine „Dose“ hat durchschnittlich 3,7 Volt. Eine voll aufgeladene „Dose“ hat eine Spannung von 4,2 Volt. Am gebräuchlichsten sind Akkus mit drei bis sechs Zellen. Die maximale Stromabgabe wird in Ampere gemessen und beispielsweise so gekennzeichnet: 25C. C ist die Batteriekapazität, 25 ist der Multiplikator. Bei einer Kapazität von 5 Ampere kann eine solche Batterie 25 * 5 = 125 Ampere liefern. Natürlich ist es besser, den aktuellen Leistungsparameter mit einer Reserve zu nehmen, aber grundsätzlich gilt: Je größer er ist, desto teurer ist die Batterie. Beschriftungsbeispiel: 25C 3S 4500mah.

Jede Bank ist eine separate Batterie. Sie sind alle in Reihe verlötet. Um alle Bänke gleichmäßig aufzuladen, ist ein Ausgleichsstecker mit separatem Zugang zu jeder Bank vorgesehen und es kommen spezielle Ladegeräte zum Einsatz.

Motoren, Propeller, Regler


Der Hauptparameter eines bürstenlosen Motors ist sein kv. Dies ist die Anzahl der Umdrehungen pro Minute für jedes angelegte Volt Spannung. Die gebräuchlichsten Motoren sind mit kv-Werten von 300 bis 1100. Für kleine Quadrocopter (1-2 Kilogramm plus 500 Gramm Nutzlast) wird normalerweise ein Kv-Wert näher an 1000 gewählt, und sie sind mit Kunststoffpropellern mit einem Durchmesser von bis zu 12 Zoll ausgestattet. Große Multikopter (zum Heben von guter und schwerer Foto-Video-Ausrüstung) oder Langstreckenflugzeuge (für Flugzeitrekorde) verfügen meist über Motoren mit niedrigem kv (300-500) und riesigen Carbonpropellern (15 - 20 Zoll Durchmesser). Kv ist nicht der einzige wichtige Motorparameter: Oft findet man ganze Tabellen zur Abhängigkeit der Motorleistung und des Schubs von der zugeführten Spannung und dem verbauten Propellertyp. Darüber hinaus ist jeder Motor für seinen eigenen Spannungsbereich (Anzahl der Batteriezellen) und seinen eigenen maximalen Strom ausgelegt. Wenn der Hersteller 3-4S schreibt, sollten Sie es nicht mit 5S-Akkus verwenden. Gleiches gilt für Regulierungsbehörden.

Wenn der Motor für einen Strom von bis zu 30 A ausgelegt ist, sollte der Regler für einen Strom von bis zu 30 + 10 A ausgelegt sein, um eine Überhitzung zu verhindern. Minderwertige oder ungeeignete Regler können zu sogenannten „Synchronisationsschlupfen“ führen und den Motor im Flug abwürgen, und Sie kennen einen anderen Multirotor-Begriff: „ hat den Planeten gefangen„Ein weiterer wichtiger Punkt ist die Dicke und Qualität der Drähte. Ein falsch berechneter Drahtquerschnitt oder ein schlechter Stecker können zu einem Brand in der Luft führen.“

Wie Sie sehen, gibt es viele Nuancen. Ich habe noch nicht einmal die Hälfte davon aufgelistet, daher ist es ziemlich schwierig, die Komponenten für Ihren ersten Multicopter selbst auszuwählen.

Stabilisierungsmathematik, PID-Regler (PID)


Wenn Sie sich für den Einstieg in den Multikopter entscheiden, müssen Sie sich früher oder später mit der Einstellung des PID-Reglers auseinandersetzen, da dieses mathematische Gerät bei fast allen Stabilisierungsaufgaben eingesetzt wird: beim Stabilisieren der Winkel eines Quadrocopters in der Luft, beim Fliegen und beim Halten einer Position Verwendung von GPS, Halten der Höhe mithilfe eines Barometers, bürstenlose Mechanismen, Stabilisierung der Videokamera im Flug (Kamera-Gimbal).

Man kauft einen zweiachsigen Kamera-Gimbal, stellt dort zum Beispiel eine GoPro auf, schaltet sie ein und statt Stabilisierung bekommt man Krämpfe, Vibrationen und Zuckungen, obwohl alle Sensoren kalibriert sind und mechanische Probleme beseitigt sind. Der Grund sind falsche Parameter der PID-Regler.

Man baut einen Multikopter zusammen, kalibriert Sensoren, Regler, Funk, prüft alles, versucht abzuheben, und schon liegt er so dumpf in der Luft, dass schon eine leichte Brise ihn umwirft. Oder umgekehrt: Er ist so scharfsinnig, dass er plötzlich abhebt und ohne Erlaubnis einen Dreifachsalto macht. Der Grund ist immer noch derselbe: die Parameter von PID-Reglern.

Für viele Geräte mit PID-Reglern gibt es Anleitungen zum Einrichten, teilweise sogar mehrere zusätzlich zu zahlreichen Videoanleitungen der Anwender selbst. Um sich jedoch leichter in dieser Vielfalt zurechtzufinden, ist es hilfreich zu verstehen, wie diese Regulatoren im Inneren funktionieren. Darüber hinaus werden wir unser eigenes Quadrocopter-Stabilisierungssystem schreiben! Ich schlage vor, „neu zu erfinden“ und „an den Fingern“ zu verstehen Formel für den PID-Regler. Für diejenigen, die eine trockene mathematische Sprache bevorzugen, empfehle ich Wikipedia, weil... Auf Russisch ist das Material noch nicht so ausführlich dargestellt.

Wir betrachten einen Quadrocopter im zweidimensionalen Raum, wo er nur einen Winkel hat – den Rollwinkel – und zwei Motoren: links und rechts.




Der Fluglotse erhält kontinuierlich Befehle vom Boden: „30 Grad rollen“, „-10 Grad rollen“, „0 Grad rollen (Horizont halten)“; Seine Aufgabe besteht darin, sie mithilfe von Motoren so schnell und präzise wie möglich auszuführen und dabei Folgendes zu berücksichtigen: Wind, ungleichmäßige Gewichtsverteilung des Quadrocopters, ungleichmäßige Abnutzung der Motoren, Trägheit des Quadrocopters usw. Daher muss der Flugcontroller kontinuierlich das Problem lösen, welche Drehzahl auf jeden Motor anzuwenden ist, und dabei den aktuellen Wert des Querneigungswinkels und den erforderlichen Wert berücksichtigen. Kontinuierlich ist natürlich ein starkes Wort. Es hängt alles von den Rechenkapazitäten der jeweiligen Hardware ab. Auf Adruino ist es durchaus möglich, eine Iteration des Verarbeitungs- und Steuerungszyklus in 10 Millisekunden unterzubringen. Das bedeutet, dass alle 10 Millisekunden die Winkel des Quadrocopters ausgelesen und darauf basierend Steuersignale an die Motoren gesendet werden. Diese 10 Millisekunden werden aufgerufen Regulierungszeitraum. Es ist klar, dass die Regulierung umso häufiger und genauer erfolgt, je kleiner sie ist.

Der Gaspegel fließt vom Empfänger zum Regler. Bezeichnen wir es. Ich möchte Sie daran erinnern, dass dies der arithmetische Durchschnitt der Drehzahlen aller Motoren ist, ausgedrückt als Prozentsatz der maximalen Drehzahl. Wenn und die Drehzahlen des linken und rechten Motors sind, dann:




Wo ist die Reaktion des Quadcopters (Kraft), die ein Drehmoment erzeugt, weil sich der linke Motor schneller als das Gas dreht und der rechte Motor genauso viel langsamer dreht? kann auch negative Werte annehmen, dann dreht der rechte Motor schneller. Wenn wir lernen, diesen Wert bei jeder Iteration des Verarbeitungszyklus zu berechnen, können wir den Quadcopter steuern. Es ist klar, dass es mindestens vom aktuellen Rollwinkel () und dem gewünschten Rollwinkel () abhängen sollte, der vom Bedienfeld kommt.

Stellen wir uns eine Situation vor: Der Befehl „Horizont behalten“ ( = 0) wird empfangen und der Quadrocopter rollt nach links:




- der Unterschied (Fehler) zwischen und , den der Verantwortliche minimieren möchte.

Je größer der Unterschied zwischen dem gewünschten und dem aktuellen Rollwinkel ist, desto stärker sollte die Reaktion sein, desto schneller sollte sich der linke Motor relativ zum rechten drehen. Wenn wir dies in unserer Notation schreiben:



Dabei ist P der Proportionalitätskoeffizient. Je größer dieser ist, desto stärker ist die Reaktion, desto schärfer reagiert der Quadrocopter auf Abweichungen vom geforderten Rollwinkel. Diese intuitive und einfache Formel beschreibt die Arbeit Proportionalregler. Der Punkt ist einfach: Je mehr der Quadcopter von der gewünschten Position abweicht, desto stärker müssen Sie versuchen, ihn zurückzugeben. Leider muss diese Formel kompliziert sein. Der Hauptgrund ist Überschwingen.

Innerhalb weniger zehn Millisekunden (mehrere Iterationen des Verarbeitungszyklus) kehrt der Quadcopter unter dem Einfluss des Proportionalreglers in die erforderliche (in diesem Fall horizontale) Position zurück. Während dieser ganzen Zeit werden Fehler und Anstrengung das gleiche Vorzeichen haben, obwohl ihr Ausmaß immer geringer wird. Ab einer bestimmten Drehgeschwindigkeit (Winkelgeschwindigkeit) rollt der Quadrocopter einfach auf die andere Seite, da ihn niemand in der gewünschten Position stoppen kann. Es ist wie eine Feder, die immer in ihre ursprüngliche Position zurückkehren möchte, aber wenn man sie zurückzieht und wieder loslässt, schwingt sie, bis die Reibung überhand nimmt. Natürlich wird auch der Quadrocopter von der Reibung betroffen sein, aber die Praxis zeigt, dass das nicht ausreicht.

Aus diesem Grund muss dem Proportionalregler ein weiterer Begriff hinzugefügt werden, der die Drehung des Quadrocopters verlangsamt und ein Überschießen (Rollen in die entgegengesetzte Richtung) verhindert – eine Art Nachahmung der Reibung in einem viskosen Medium: Je schneller der Je mehr sich der Quadrocopter dreht, desto stärker müssen Sie versuchen, ihn natürlich innerhalb angemessener Grenzen zu stoppen. Wir bezeichnen die Rotationsgeschwindigkeit (Fehleränderungsrate) als, dann:



wobei D ein einstellbarer Koeffizient ist: Je größer er ist, desto stärker ist die Bremskraft. Aus einem Physikkurs in der Schule tauchen vage Erinnerungen auf, dass die Änderungsrate einer beliebigen Größe die Ableitung dieser Größe nach der Zeit ist:

.

Und nun wird aus dem Proportionalregler ein Proportional-Differentialregler (Proportionalterm und Differential):

.

Der Fehler ist leicht zu berechnen, da wir bei jeder Iteration wissen und ; P und D sind Parameter, die vor dem Start konfiguriert werden können. Um die Ableitung (Änderungsrate) zu berechnen, ist es notwendig, den vorherigen Wert zu speichern, den aktuellen Wert zu kennen und die Zeit zu kennen, die zwischen den Messungen vergangen ist (Kontrollzeitraum). Und hier ist es – Physik der sechsten Klasse (Geschwindigkeit = Distanz / Zeit):

.

- Regulierungszeitraum; - Fehlerwert aus der vorherigen Iteration des Regulierungszyklus. Diese Formel ist übrigens die einfachste Art der numerischen Differenzierung und für uns hier durchaus geeignet.

Jetzt haben wir einen proportionalen Differentialregler in einem flachen Bicopter, aber es gibt noch ein weiteres Problem. Lassen Sie die linke Kante etwas mehr wiegen als die rechte, oder was auch immer der Fall ist, der linke Motor arbeitet etwas schlechter als der rechte. Der Quadrocopter ist leicht nach links geneigt und dreht sich nicht zurück: Der Differentialterm ist Null, und der Proportionalterm reicht, obwohl er einen positiven Wert annimmt, nicht aus, um den Quadrocopter wieder in eine horizontale Position zu bringen, da die linke Kante leicht wiegt mehr als das Richtige. Dadurch zieht der Quadrocopter immer nach links.

Es bedarf eines Mechanismus, um solche Abweichungen zu überwachen und zu korrigieren. Ein charakteristisches Merkmal solcher Fehler ist, dass sie sich mit der Zeit selbst korrigieren. Abhilfe schafft der Integralterm. Es speichert die Summe aller Fehler über alle Iterationen der Verarbeitungsschleife. Wie wird das helfen? Wenn der Proportionalterm nicht ausreicht, um einen kleinen Fehler zu korrigieren, dieser aber dennoch vorhanden ist, gewinnt der Integralterm mit der Zeit allmählich an Stärke, wodurch die Reaktion zunimmt und der Quadcopter den erforderlichen Rollwinkel einnimmt.

Hier gibt es eine Nuance. Nehmen wir an, es beträgt 1 Grad, der Regelzyklus beträgt 0,1 s. Dann nimmt die Summe der Fehler in einer Sekunde den Wert von 10 Grad an. Und wenn der Verarbeitungszyklus 0,01 s beträgt, erhöht sich der Betrag um bis zu 100 Grad. Damit der Integralterm für verschiedene Regulierungsperioden im gleichen Zeitraum den gleichen Wert annimmt, multiplizieren wir den resultierenden Betrag mit der Regulierungsperiode selbst. Aus dem Beispiel lässt sich leicht berechnen, dass sich in beiden Fällen die Summe von 1 Grad ergibt. Hier ist er – der Integralterm (vorerst ohne einstellbaren Koeffizienten):

.

Diese Formel ist nichts anderes als ein numerisches Integral einer Funktion über die Zeit im Intervall von Null bis zum aktuellen Zeitpunkt. Deshalb heißt der Begriff Integral:

,

wobei T der aktuelle Zeitpunkt ist.
Es ist Zeit, die endgültige Formel für den Proportional-Integral-Differential-Regler aufzuschreiben:

,

Dabei ist einer der konfigurierbaren Parameter, von denen es mittlerweile drei gibt: . Diese Formel lässt sich bequem im Programmcode verwenden, aber hier ist die Formel, die in Lehrbüchern angegeben ist:

.

Es gibt mehrere Variationen davon, Sie können beispielsweise den Modul des Integralterms so begrenzen, dass er einen bestimmten zulässigen Schwellenwert nicht überschreitet (wir werden dies tun).

Üben

Nun ist es an der Zeit, die Auswahl der Koeffizienten zu üben. Den Lesern wird eine JavaScript-Seite mit einem virtuellen Quadrocopter angeboten, den sie bereits in Bildern gesehen haben: Auswahl der PID-Reglerparameter für einen Quadcopter(JSFiddle). Beim ersten Start ist sofort ein Überschwingen sichtbar – Pendeln um die Sollposition. Wenn die Schwingungen aufhören, können Sie den Effekt beobachten, dass der Proportionalkoeffizient den Fehler aufgrund des „asymmetrischen“ Quadrocopters (eingestellt durch das Kontrollkästchen „Asymmetrie“) nicht bewältigen kann. Die zur Konfiguration verfügbaren Parameter sind P, I, D. Jetzt wissen Sie, was Sie damit machen sollen. Das „Scrollen“ unter dem Quadrocopter kann über den gewünschten Rollwert gesteuert werden. „Intervall (ms):“ – Regulierungsintervall. Es zu reduzieren ist Betrug, aber zu sehen, wie es sich auf die Qualität der Stabilisierung auswirkt, ist sehr nützlich.

Für Liebhaber der „reinen“ Mathematik können wir Folgendes anbieten Konfigurieren Sie den abstrakten PID-Regler

Die eingegebenen Parameter werden nicht automatisch angewendet: Sie müssen auf „Übernehmen“ klicken. Ein paar kleine Tipps: Wenn Sie den Eindruck haben, dass der Quadrocopter zu langsam ist, um auf die Steuerung zu reagieren, können Sie P erhöhen, aber ein zu großer P-Wert kann zu Überschwingen führen. Parameter D hilft bei der Bewältigung von Überschwingern, aber zu große Werte führen zu häufigen Schwankungen oder erneut zu Überschwingern. Der I-Parameter ist normalerweise 10- bis 100-mal kleiner als der P-Parameter, weil Seine Stärke liegt in der Akkumulation im Laufe der Zeit, nicht in der schnellen Reaktion.

Das manuelle Einstellen von PID-Parametern erfordert Übung. Es gibt analytische Methoden zu ihrer Berechnung, aber sie erfordern eine gute Vorbereitung und genaue Kenntnis vieler Parameter des spezifischen Systems, das angepasst werden soll. Als Mittelweg zwischen manueller Auswahl und analytischer Berechnung gibt es eine breite Palette empirischer Methoden, die von verschiedenen Forschern vorgeschlagen werden.

Bei unserem 2D-Quadrocopter ändert sich nur ein Winkel – der Rollwinkel. Beim Tuning eines 3D-Quadrocopters sind für jeden Winkel drei unabhängige PID-Regler erforderlich, und die Steuerung eines bestimmten Motors ist die Summe der Anstrengungen aller Regler.

Fazit des ersten Teils

In diesem Artikel haben wir uns mit den Grundkonzepten vertraut gemacht: Quadrocopter und Flugprinzip, Nicken, Rollen, Gieren, Gas, Schwebedrossel, Stabilisierungsflugmodus, Flugregler, Gyroskop, Beschleunigungsmesser, Geschwindigkeitsregler, PWM, Reglerkalibrierung, Funkkalibrierung, On-Board-Empfänger, Schnittstelle zum Einrichten des Flugcontrollers, scharf/unscharf-Zustände, automatische Entwaffnung.

Danach haben wir die Formel neu erfunden PID-Regler ein wenig berühren numerische Differentiation und Integration, und erlebte auf die harte Tour, wie man die Parameter konfiguriert P, I, D An virtueller Quadcopter .

Wenn Sie sich jetzt mit der Programmierung von Lichtschwertern auskennen, können Sie Ihr eigenes Quadrocopter-Stabilisierungsprogramm starten oder, noch besser, bestehende Open-Source-Projekte mit frischen Ideen einbinden. Nun, in ein oder zwei Wochen, wenn ich die Kraft und Zeit habe, die Qualität zu erreichen, werde ich die Geschichte fortsetzen, wie alles programmiert, getestet, abgestürzt ist, mir die Finger geschnitten hat und völlig in eine unbekannte Richtung davongeflogen ist. Wenn du wirklich weitermachen willst, kannst du mich hier kontaktieren oder zum Beispiel auf Vkontakte: Das gibt einen kleinen Anreiz.

Zum Abschluss dieses Teils muss ich einfach die Person erwähnen, die mir bei der Auswahl der Komponenten und der Einrichtung des komplexesten (ersten!) Quadrocopters auf der MegapirateNG-Firmware geholfen und geduldig Hunderte von Fragen zu diesen sehr grundlegenden Konzepten beantwortet hat: Vielen Dank! :-)

Als Belohnung für diejenigen, die dieses ganze Blatt verschwenden konnten, poste ich das versprochene kleine Video, wie unser Quadcopter mit unseren „erfundenen“ PID-Reglern auf unserem Programm für Arduino Mega 2560 fliegt:



Natürlich fehlt ihm GPS, wie bei kommerziellen und massenproduzierten Produkten, es mangelt ihm ein wenig an Stabilität, aber es ist UNSER, und wir kennen es in- und auswendig, bis hin zum letzten Faktor des Integralkoeffizienten! Und es ist wirklich cool, dass uns solche Technologien heute zur Verfügung stehen.

ACHTUNG, der Artikel ist veraltet, kann aber dennoch zu Informationszwecken verwendet werden
Wie versprochen werde ich, sobald ich fliege, einen ausführlichen Beitrag über den Zusammenbau meiner Flugeinheit schreiben. Sicherlich haben viele längst gesehen, wie ein „normaler“ Büroangestellter das in 2 Stunden zusammenbaut. Ich merke sofort, dass ich kein „normaler“ Büroangestellter bin, also noch kein großer Pilot, aber das ist wichtig Der Quadrocopter fliegt und reagiert angemessen auf Steuerungen. Wenn Sie sich für das Sammeln entscheiden, sollten Sie zunächst und vor allem kein Geld sparen und nicht denken, dass Sie schlauer sind als diejenigen, die bereits fliegen. Denken Sie auch daran, dass die Theorie etwas im Widerspruch zur Praxis steht.
Es gibt eine große Anzahl an Firmware, vorgefertigten Controllern, Sensoroptionen, Motoren usw. usw. - Es gibt eine große Auswahl, aber in diesem Artikel werde ich mich nur auf eine Option konzentrieren, die auf Arduino Mega, MegaPirate-Firmware und relativ günstigen Sensoren basiert.

Ergebnis

Um dich nicht zu quälen, %username%, so fliegt es ohne besondere Einstellungen, Kalibrierungen und Balancing in ungeschickten Händen:

Was brauchen wir nun dafür...

Fortsetzung
PS: Ich hoffe, dass mir die Leute im RC-Thema die Ungenauigkeiten verzeihen und mich gegebenenfalls korrigieren.



 


Lesen:



Verwendung der Funktion isnull()

Verwendung der Funktion isnull()

27.06.2017 NULL, ISNULL() und IS NULL in 1C-Abfragen Was ist NULL NULL als Ergebnis einer Abfrage bedeutet das Fehlen eines Werts (dies ist nicht leer...

Fälle zu pädagogischen Situationen. Fallaufgabe zur Pädagogik

Fälle zu pädagogischen Situationen. Fallaufgabe zur Pädagogik

MINISTERIUM FÜR BILDUNG UND WISSENSCHAFT DER RUSSISCHEN Föderalen Bildungseinrichtung für höhere Berufsbildung „Chakass State...“

Pratchett-Wache. (übersetzt von S. Zhuzhunava, herausgegeben von A. Zhikarentsev) fb2 herunterladen. Zitate aus dem Buch „Guards! Wachen! Terry Pratchett

Pratchett-Wache.  (übersetzt von S. Zhuzhunava, herausgegeben von A. Zhikarentsev) fb2 herunterladen.  Zitate aus dem Buch „Guards!  Wachen!  Terry Pratchett

2. Februar 2017 Wache! Wachen! Terry Pratchett (Noch keine Bewertungen) Titel: Guard! Wachen! Autor: Terry Pratchett Jahr: 1989 Genre: Ausländisch...

Nomenklatur in 1er Buchhaltung 8

Nomenklatur in 1er Buchhaltung 8

Wo ändern sich die Postenbuchhaltungskonten (1C Accounting 8.3, Edition 3.0) 2016-12-08T11:33:27+00:00 Immer häufiger fragen mich Buchhalter, wo...

Feed-Bild RSS