Hallo liebe Roboternetz-Community!
Sehr stolz darf ich verkünden, dass mein Nanocopter Projekt nach zwei Jahren mehr oder weniger intensivem Arbeiten endlich fertiggestellt ist. Der Grund für die lange Entwicklung war mein zeitintensives Studium und des Öfteren auch chronische Unlust, weil die ersten Erfolge so lange auf sich warten ließen. So gab es immer wieder Phasen, in denen ich sehr viel an meinem Projekt arbeitete und wirklich viel in dieser Zeit schaffte. Zu anderen Zeiten war die Motivation schwierig, doch letztendlich hat alles funktioniert.
Das Layout und der Schaltplan sind komplette Eigenentwicklungen, auch wenn ich mich an mehrere andere Projekte orientierte oder entlang hangelte. Viel zu ändern am grundlegenden Prinzip eines Quadrocopters gibt es ja eigentlich nicht, weshalb es auch nur sehr wenige große Änderungen zu bestehenden Projekten gibt. Die meisten Unterschiede kommen daher, dass ich die Ports meines Mikrocontrollers optimaler ausnutzen wollte, oder dass die Schnittstelle zu einem RC-Empfänger vorerst modular gedacht war. Hardwareseitig konnte ich drei verschiedene Protokolle von RC-Empfängern benutzen: PWM, PPM, UART. Allerdings entschied ich mich am Ende für einen Deltang Rx31 Empfängers (http://www.deltang.co.uk/rx31b.htm), der sehr leicht und Spektrum-kompatibel ist und das UART-Protokoll verwendet.
Eine Debug-Möglichkeit über eine USART-Schnittstelle und damit eine Verbindung zu einer GUI auf meinem PC kam erst sehr viel später dazu, als ich erkannte, dass ich ohne sie nicht weiterkomme.
Der Mikrocontroller ist ein AtXMega32A4u mit 32MHz Taktfrequenz. Mit ihm erreiche ich (trotz Fließkommaberechnungen im PID-Algorithmus) eine PID-Schleifenfrequenz von bis zu 800Hz, was zu einem sehr guten Regelverhalten führt. Bei der Entwicklung der Software habe ich mich ebenfalls an bestehende Projekte gehalten, letztendlich hat sich aber auch hier eine große Eigenleistung abgezeichnet. Der erste Einstieg geschah über die MultiWii-Software, da es allerdings (meines Wissens) keinen Arduino-Bootloader für Atmel XMega Mikrocontroller gibt, musste ich die Software für diesen Typ Mikrcontroller umschreiben. Dies klappte meistens leider nicht so gut, da die MultiWii-Software sehr groß und unübersichtlich ist und ich tatsächlich verstehen wollte, wie diese Software funktioniert.
Zeitweise arbeitete ich mit Harald Sattler (http://www.harald-sattler.de) zusammen, der auch das Bestreben hatte seinem xNQ die MultiWii-Software beizubringen. Diese Zusammenarbeit brachte mich ein großes Stück weiter, obwohl dadurch der Quadrocopter nicht flugfähig wurde.
Am Ende entschloss ich mich (nachdem auch Harald nicht so viel Erfolg hatte seinen Quadrocopter in die Luft zu bringen) den kompletten PID-Teil aus der MultiWii-Software zu entfernen und alle Algorithmen zur Winkelmessung (damit eingeschlossen die Integration der Sensordaten) und zur Regelung komplett selbst zu schreiben. Der entstandene Code ist meiner Meinung nach viel übersichtlicher und besser zu verstehen als der MultiWii Code. Die Fusion der Sensordaten (also das Zusammenbringen von Beschleunigungs- und Gyrosensor) geschieht in meinem Code wahlweise über einem Komplementärfilter zweiter Ordnung oder einem Kalmanfilter, wobei letzterer nicht so gute Flugeigenschaften beschert.
Übrig geblieben ist also nur das grobe Grundgerüst der MultiWii-Software, alles andere, das Lesen der Sensordaten, die Integration der Sensordaten, die Filterung der Daten, die PID-Regelung und die Motorsteuerung ist von mir selbst geschrieben.
Da ich zu faul war die serielle Kommunikation der MultiWii-Software zur GUI zu verstehen, habe ich eine GUI geschrieben, mit der man die Daten visualisieren und wichtige Werte des Quadrocopters ändern kann. Die GUI funktioniert bisher leider nur für Mac OSX, es sollte allerdings keine allzu großen Probleme bereiten die Software für Windows umzuschreiben.
Die Eckdaten des Nanocopters in Übersicht:
Technische Daten:
Bauart: Ein-Platinen Quadrocopter („PCB-Copter“)
Motorart: Coreless Brushed Motor, 0.5mNm Drehmoment
Motorbauart: 7mm Chassis-Durchmesser, 20mm Chassis-Länge, 1mm Achsdurchmesser
Sensoren (inertial measurement unit): 3 Achsen Accelerometer + 3 Achsen Gyrometer, MPU6050
Mikroprozessor: 32MHz ATXMega32A4U
Spannungsversorgung: 1S1P 3.7V Lithium Polymer Akku
Flugdauer: 7 bis 10 Minuten
Gewicht mit Akku: 30g
Dimension: 10cm x 10cm x 3cm
Empfängerart: Deltang Rx31c 2.4GHz DSM2 Miniaturempfänger
Debug- und Programmiermöglichkeit über UART
Programmierung:
Programmiersprache: C/C# (Mikroprozessor/Host-Software)
Anzahl Codezeilen: 3500 (1600 Mikroprozessor + 1900 Host-Software)
Reglertyp: PID (Proportional-Integral-Differentialregler)
PID-Schleifenfrequenz: 800Hz
Filter (Sensorfusion): wahlweise Kalman- oder Komplementärfilter erster oder zweiter Ordnung
Digital-Low-Pass Filter: 12.5Hz
Host-Software (Mac OSX >10.8 ) : QuadroCalibration GUI zur Einstellung der PID-Parameter, Debug-Möglichkeit, Visualisierung der Daten
Aktueller Download unter: https://github.com/MKesenheimer/QDC_MK1_Quadrocopter
Bilder:
Anhang 29811
Anhang 29812
Anhang 29813
Ich habe mit einer nicht sehr guten Videokamera versucht, den Jungfernflug meines Quadrocopters zu filmen. Die Qualität ist schlecht, aber man sieht wenigstens um was es geht und dass der Nanocopter fliegt. Das Video ist im Herbst 2014 entstanden - seither hat sich sogar noch ein bisschen was an der Performance verbessert.
Alle weiteren Informationen und der Fortschritt des Projekts sind auf meiner Homepage zu finden:
https://deralchemist.wordpress.com/2...-quadrocopter/
Die Software und die kompletten Entwicklerdaten (inkl. Schaltplan, Layout und Software) darf man hier herunterladen:
https://github.com/MKesenheimer/QDC_MK1_Quadrocopter
Ich hoffe ihr freut euch mit mir über mein erfolgreiches Projekt - und seid bitte gnädig mit den Kommentaren, ich bin bestenfalls ein Amateur was das alles angeht. Auch was das Schreiben betrifft
Ich habe keine Elektrotechnik, Elektronik oder Informatik studiert, einzig allein die Freude am Basteln und die Begeisterung für Miniaturisierung brachte mich zu diesem Projekt.
Vielleicht findet ja jemand dies alles hier nützlich und baut sich ebenfalls einen Quadrocopter mit der Hilfe meines Projekts.
Mich würde es jedenfalls freuen, wenn meine anstrengende (aber auch sehr lehrreiche und schöne) Arbeit an meinem Nanocopter nützlich für andere sein würde.
Geändert von Mattef (12.02.2015 um 10:52 Uhr)
Nanocopter Blog:
https://deralchemist.wordpress.com/
Lesezeichen