Eigentlich sollte das Hobby ja „Fliegen“ werden und nicht „Basteln“, aber letzteres ist bis jetzt auf jeden Fall der Hauptbestandteil. Ich habe also mal wieder herumgebastelt, nachdem der letzte Flugversuch mehr oder weniger misslang. Ich hoffe ich habe am Wochenende mal ein paar Stündchen Zeit auf ein offenes Feld zu gehen und mit mehr Auslauf zu testen wie die PID-Werte denn nun eingestellt werden sollten und ab wann der Beschleunigungssensor den Quadrocopter nicht mehr in irgendeine Richtung wegkippen lässt.
Was habe ich hinzugefügt? Ein kleiner Spannungsteiler um die Batteriespannung überwachen zu können und ein Buzzer um entsprechendes Feedback zu bekommen. Außerdem habe ich noch einen Zusatzakku mit 5000 mAh gekauft, der erstaunlich dicke Kabel hat (vielleicht sollen da mehr als 100 Ampere durch? Aufgedruckt ist jedenfalls 25C, also 75 Ampere Maximallast, wenn ich mich nicht verrechnet habe). 75 Ampere (900 Watt!!!) ist auch etwa der Strom, den die Motoren bei Vollast schlucken und mein Amperemeter zerstört haben (maximal 70 Ampere).
Wie auch immer. Das vorläufige Endgewicht (ohne LED-Streifen) ist 610 Gramm ohne Akkus. Die kleinen Akkus (2200 mAh) wiegen jeweil 190 Gramm und der große (5000 mAh) 400 Gramm. Abfluggewicht also unter einem Kilogramm bzw. ziemlich genau ein Kilogramm. Nicht schlecht.
Das nächste Posting ist dann hoffentlich mal ein kleines Video vom Erstflug aus Sicht des Copters, der länger als nur ein paar Sekunden fliegt, bevor ich Schiss habe einen Baum oder eine Wand zu treffen. Wünscht mir Glück ;-)
Mit dem Wind ist es im Garten eine leichte Katastrophe, auch weil ich scheinbar nicht der beste aller Piloten bin. Aber der kleine Quadrocopter hat sich als sehr robust bei kleineren Crashs herausgestellt und mit viel Gegensteuern bleibt er auch auf der Stelle … trotz der starken Böen. Was ist nun seit dem letzten Mal passiert?
Ich habe mir ein paar Ersatzmotoren bestellt und ein Flyduino Basisset (MWC Board, Flyduino, FreeIMU) bestellt um den Quadrocopter nochmal komplett neu zu bauen. Ohne Schnickschnack und ohne eigene Modifikationen. Ziel: es soll endlich fliegen und das tut er jetzt auch, aber ich brauche eine größere Fläche zum Üben bis ich so gut bin auch in engen Gärten zu navigieren ohne Schiss zu haben, dass er irgendwo hängen bleibt. Den Levelmodus muss ich mir auch noch mal anschauen. So ganz gerade war das nicht, denn er flog schräg in eine Hecke als ich mal kurz gelenkt habe. Vermutlich die PID-Werte nicht optimal.
Bis auf die empfindliche Steuerung (da gibt es eine Einstellung in der Fernsteuerung und auch bei Multiwii selbst) und ein paar Kleinigkeiten könnte ich also jetzt mal ausprobieren was er alles (auf freiem Feld) kann. Dann gibt es auch Bilder ;-)
Endlich ;-)
Die Kosten des Projekts so wie er jetzt nun fliegt:
MWC Board V2: 8 €
Flyduino: 15 €
FreeIMU 4.3 (Gyro, Acc, Kompass und Baro in einem): 84 €
QuadPPM (Summensignal aus den Einzelsignalen vom Empfänger generieren und ganz schön teuer finde ich, aber es ist schön klein, auch wenn es ein zweiter Flyduino für den Job ebenfalls getan hätte und flexibler gewesen wäre): 30 €
Rahmen (Mikrocopter.de): 60 €
Motoren (4x Turnigy 2830 BL) : ca. 43 €
ESCs (4x Turnigy 25 A): ca. 38 €
Propeller, Landegestell und Schutzhülle für die Elektronik (=Plastikzeugs): ca. 15 €
LiPo Akku (3S 2200 mAh): 31 €
8 Kanal Fernsteuerung mit Empfänger: ca. 42 €
Natürlich braucht man auch noch ein Ladegerät und diverse Ersatzteile (Propeller, Motoren) und Ersatzakkus. Aber ein flugfertiges Gerät bekommt man für 366 € hin. Nicht zu teuer und für weitere Modelle braucht man zumindest keine weiteren Akkus und keine Fernsteuerung (nur einen Empfänger mit Summensignal) mehr. Interessieren würde mich eine kleinere Version und vielleicht später auch noch eine größere (dann evtl. Hexacopter).
Was noch bleibt:
Ein Piepser für Akkuwarnung fehlt noch, dabei evtl. Stromverbrauch zusätzlich zur Spannung messen
LEDs an den Auslegern
Alles „schön“ verpacken (Kabelbinder, durchsichtiger Schrumpfschlauch)
P.S.: Der Adrenalinrush wenn etwas endlich mal funktioniert und fliegt ist großartig ;-)
Weiter geht’s (mit dem Quadrocopter). Die letzten 30 Minuten habe ich damit verbracht mal schnell den Magnetsensor einzubinden und ihn korrekt zu kalibrieren. Außerdem wieder umgestellt auf den anderen Beschleunigungssensor.
Dann ein kurzer Test ohne Propeller. Irgendwie sieht da immer alles ok aus. Die richtige Seite fährt hoch, wenn ich den Rahmen bewegen. Alles top und auch die Telemetriedaten sehen gut aus. Also Propeller angeschraubt und von oben haltend Tests mit geringem Schub gemacht. Warum halte ich ihn von oben fest? Weil es so leichter ist ihn am Boden zu halten, wenn doch zu viel Schub gegeben wird (z.B. Failsafe falsch eingestellt oder irgendetwas nicht ganz in Ordnung).
Tja … und was passiert? Plötzlich gibt ein Motor Vollgas und schneidet mir den Arm auf. Irgendwie kann ich dieser Steuersoftware nicht vertrauen, wenn sie solche eigenartigen Faxen macht! Was ist da nun wieder passiert? Ich habe keine Ahnung. Überhaupt habe ich das Gefühl, dass die Software oft überreagiert und zum Regeln Motoren komplett abstellt und auf der anderen Seite fast Vollgas gibt. Meine Motoren sind ziemlich kräftig und solche Schubänderungen führen sofort zum Looping.
Irgendetwas mache ich falsch und jetzt blute ich auch noch dafür. Für heute ist erstmal wieder gut.
P.S.: Ich habe auch die LED-Steuerung von den SPI-Pins getrennt und verwende jetzt doch die Hardware PWM von MultiWii um die Motoren zu steuern. Vielleicht ist da noch was faul?
Nachtrag:
Ich weiß was faul ist. Der Gyro spinnt und vergisst scheinbar seinen Offset? Jedenfalls denkt der Quadrocopter dann er würde sich sehr sehr schnell drehen um muss natürlich mit voller Kraft gegensteuern. Woran dieser Fehler nun wieder liegen mag? Meh.
Stunden später und einige lehrreiche Versuche später flog mein Quadrocopter dann doch. Wenn auch nur ziemlich kurz, weil jetzt alle Akkus leer sind. Was habe ich gemacht?
Erst einmal habe ich versucht die PID-Werte einzustellen, aber der Quad (ich habe ihn von oben mit der Hand festgehalten) wackelte wie blöd und ich habe keine guten Einstellungen finden können
Schlussendlich habe ich alle Werte auf 0 gesetzt und von da angefangen. Es stellte sich heraus, dass die YAW Korrektur für das Wackeln verantwortlich war.
Außerdem scheint der Beschleunigungssensor, den ich eigentlich verwenden wollte (ADXL345, der bei der IMU3000 mit dabei war), ein wenig empfindlich auf die Vibrationen zu reagieren. Mit dem anderen Sensor (LSM303) klappt es besser
So, nun fliegt es also halbwegs stabil. Nunja, wenn man das herumdriften ignoriert für das es sicher irgendwo eine Trimfunktion gibt. Was bleibt noch zu tun?
Akkus auffladen
Das YAW Problem irgendwie lösen oder erst einmal damit leben, vielleicht dreht er sich ja nicht zu krass um die eigene Achse
Beeper anschließen damit ich merke wann der Akku zur Neige geht
Draußen testen, wie es sich mit welchen Einstellungen fliegen lässt
Alles schön verstauen und mit Kabelbinder befestigen
Kamera dran und ein Video aufnehmen, das ganze „Erstflug“ nennen und auf Youtube hochladen
Mal sehen, ob morgen Nachmittag nochmal dazukomme. So schnelle Fortschritte hätte ich eigentlich nicht erwartet. Falls jemand einen Quadrocopter bauen will, nehmt lieber Sensoren und Grundplatinen, die von vorhandener Software unterstützt wird als selbst irgendetwas zu basteln. Heutzutage tut es ein kleiner Arduino (nano oder mini), eine IMU (z.B. FreeIMU für 84 Euro, inkl. Beschleunigungssensor, Gyro, Kompass und Barometer) und ein bisschen Hardware aus China und schon fliegt das Ding. Beim nächsten Redesign dann ;-)
Damit ich es nicht vergessen noch ein paar Todos für die mittlere Zukunft:
Defektes Amperemeter austauschen und wieder anschließen um Stromverbrauch messen zu können
Telemetrieübertragung per Bluetooth? Oder doch 800 MHz? Zigbee? Ich denke Bluetooth reicht erstmal und das geht immerhin direkt mit dem Handy
Ein richtiges Kameragestell für die GoPro
Möglichkeit zwei LiPos gleichzeitig zu benutzen (kleines Platzproblem, aber mal schauen)
Den Code aufräumen und einen Patch an das MultiWii Projekt zurückgeben. Vielleicht kann ja jemand Unterstützung des IMU3000 Boards und den LSM303 Kompasses gebrauchen (und Software PWM für die ersten 4 Motoren, wenn man die Hardware PWM Pins für SPI braucht.
Ok, das war einfacher als gedacht. Alle Sensoren bis auf den Kompass funktionieren ohne Probleme. Auch das Empfangen von Fernsteuerungssignalen klappt nach einigem Basteln. Das Problem ist jetzt die Motorenansteuerung. MultiWii verwendet dazu die Hardware PWMs an Pin 9, 10, 11 und 3. Das Problem ist, dass ich 10 und 11 (oder mindestens 11) für die SPI-Schnittstelle brauche. Es gibt auch eine Implementierung mit Software PWM (für mehr als 4 Motoren), die ich evtl. anpassen könnte.
Nachtrag 20:30 Uhr
Motoren funktionieren nun, aber der erste Flugversuch ist ein ziemlicher Fehlschlag. Irgendwie zucken die Motoren zu stark und beim Abheben hat er sich dann aufgeschaukelt und kippte um. Nicht schön … also herausfinden was genau diese PID-Werte machen und warum die Defaults so scheiße sind ;-)
Ok … den Rest des Tages (und vermutlich mehr als nur der Rest vom Sonnenlicht) opfere ich für mein kleines Quadrocopter Projekt, das bisher eher ein Fehlschlag war. Grund: Software von Grund auf selbst programmieren war/ist doch komplizierter als gedacht. Was ich nun mache? MultiWii 2.0 an meine Hardware anpassen und ihr seid live dabei ;-)
Das ist der Kern des Fluggerätes.
Die großen schwarzen ICs oben und links sind für die Ansteuerung von RGB LEDs gedacht und werden per SPI gesteuert.
Links oben befindet sich ein kleiner Spannungsteiler um die Spannung der Batterie mit dem Arduino direkt messen zu können.
Rechts oben sitzt ein Board mit dem gleichen Chip wie auf dem Arduino Nano unten in der Mitte und das Ding ist nur dazu da, die 8 Kanäle der Fernsteuerung auf einen zu verschmelzen. Ich habe das erst mit einem PIC ausprobiert, aber der hatte nicht genügend Interrupts um ein stabiles Signal für alle Kanäle zu bekommen. Die Lösung so funktioniert, ist aber Overkill, da es auch Empfänger gibt, die ein Summensignal von sich aus ausgeben können.
Der Empfänger befindet sich auf der Unterseite rechts
Das große, rote „Board“ in der Mitte ist ein IMU3000 von Sparkfun. Gyro und Beschleunigungssensor in einem
Darunter und rechts neben dem Arduino ist ein Pegelwandler für …
… den grünen Magnetfeldsensor (Kompass) direkt darunter. Der hat auch noch einen Beschleunigungssensor eingebaut. Overkill, die 2.
Rechts unten befindet sich schlussendlich noch ein Barometer um die Höhe des Quadrocopters feststellen zu können
Nur ein kleines Update. Alles ist verlötet und nach wie vor bereue ich es mir nicht vorher Gedanken über das endgültige Design gemacht zu haben und alles hübsch auf eine geätzten Platine gesetzt habe, aber hey … Lochraster geht schon irgendwie. Vielleicht für Version 2, man kann die Hardware ja wiederverwenden ;-)
Also was ist noch dazu gekommen? Ein neuer Chip von meinem Lieblingsbastelschuppen um Strom bis 75 Ampere messen zu können. Habe ich gleich mal angeschlossen und ausprobiert und einen maximalen Stromverbrauch von 65 A festgestellt. Bei ca. 8-10 Ampere beginnt er allerdings schon zu schweben, also alles im grünen Bereich.
Warum ein Amperemeter? Nun, die Spannung bricht trotz 35C Akku bei Belastung stark ein (bei 65 A sind es nur noch 8 Volt) und eignet sich nur bedingt um festzustellen wie leer der Akku denn nun ist. Deshalb sind verbrauchte mAh wohl die bessere Möglichkeit.
Das war’s auch schon. Ich bin noch nicht zu weiteren Flugtests gekommen … hoffentlich am Wochenende. Bis dann!
Ein kleiner Zwischenbericht über Bastelfortschritte. Mittlerweile hat der Quadrocopter ein Landegestell spendiert bekommen und steht jetzt sozusagen auf eigenen Beinen. Die Stromversorgung der Motoren ist nun getrennt von der Steuereinheit damit man beides auch unabhängig voneinander testen kann bzw. weil mich das Piepsen der Regler extrem genervt hat ;-)
Weil der Funkempfänger (Turnigy 8Ch) kein Summensignal für die Kanäle liefert und intern nur mit SPI arbeitet habe ich nun tatsächlich einen PIC Microcontroller (18F1230) dazu verdammt die einzelnen Kanäle auf einen zu summieren. Das stellte sich nach einigen Tests als leichter als gedacht heraus, denn erstaunlicherweise sind die Pulse der Kanäle am Empfänger trotz interner „Verwurstelung“ immer noch sequentiell. Das heißt vermutlich hätten es auch ein paar Dioden getan um die Signale an nur einem Arduino Pin auszulesen. Zu spät.
Geflogen ist der kleine übrigens auch schon. Zwar noch manuell ohne Steuereinheit, aber immer hin und natürlich hat er auch gleich einen Überschlag gemacht (meine Schuld, hatte kurz panisch einen kurzen Aussetzer und habe die Regler in die falsche Richtung gedreht). Daraufhin habe ich ein paar Flaschen Wein als Gewicht angebracht (ich weiß, nicht ideal) und mal mit maximalem Schub getestet: zwei Flaschen würden ihn nicht am Boden halten und Propeller so nah am Boden machen ordentlich Wind ;-)
Letzter Punkt für heute: der Akku. Zum einen ist mir aufgefallen, dass die 8 AA Zellen in der Fernsteuerung erstaunlich schnell leer werden. Aber das ist auch kein Wunder, denn intern braucht sie nur 5 Volt und „verbrennt“ den Rest an einem Spannungsregler. Eventuell wäre es hier schlauer einen 2 Zellen LiPo Akku einzusetzen.
Der andere Akku, also der im Copter, war nun auch zum ersten Mal leer geworden. Und zwar richtig leer, d.h. das Ladegerät wollte ihn bei 8,8 Volt nicht mehr aufladen. Ich musste ihn erst manuell auf 10 Volt hochbringen (direkt an ein strombegrenztes Netzteil mit 12 Volt anschließen) um ihn wieder laden zu können. Stellt sich nun die Frage, ob man die Akkus nun bis zum letzten Tropfen auslutscht und akustisch die Spannung mitteilt oder ob man eine automatische Notabschaltung bei einer höheren Spannung nutzt. Das eine schont die Akkus, das andere lässt den Copter nicht einfach so abstürzen. Hierbei stellt sich auch die Frage was man bei Verlust der Funkverbindung macht? Auf der Stelle stehen bleiben oder langsam landen oder zum Startpunkt zurückfliegen oder Motor ganz aus?
Ihr seht, es gibt noch einige Probleme zu lösen. Der nächste Schritt ist der feste Anschluss des Empfängers und der Motorregler an der Steuerplatine und erste „Flugversuche“ evtl. auf einem Stativ montiert um den „Gleichgewichtssinn“ des Quadrocopters zu testen. Denn so richtig kann ich mir nicht vorstellen, wie das ohne Kalibrierung ordentlich funktionieren soll? Die Achsen der Sensoren stimmen doch niemals exakt mit den Motorpositionen überein und es kann doch auch nicht förderlich sein die Beschleunigungswerte direkt in diesen DCM Algorithmus zu schmeißen ohne den dynamischen Teil wenigstens ein bisschen herausgerechnet zu haben. Nunja … Part III dann ;-)
Es ist schon eine Weile her, dass ich angefangen habe mir über einen eigenen Quadrocopter Gedanken zu machen. Fast 2 Monate später bin ich meinem Ziel nun um einiges näher und ich wollte hiermit mal einen kleinen Bericht über den Stand der Dinge verfassen.
Hardware aus vorherigen Projekten übernommen: 3x 74HC595 Shift-Register, 3x ULN2803A LED Treiber, 8x RGB-LED-Streifen a 5 cm für die Ausleger, ein Arduino Nano als Schaltzentrale und diverse Kleinteile (~ 50-60 € von überall her *g*)
Je nach Dollarkurs (mit Umsatzsteuer), aber ohne Versandkosten, kommt man also auf ca. 345 €410 € für den ganzen Spaß. Etwas teurer als vorgefertigte Modelle diverser Hersteller, aber wo liegt denn dann der Spaß? Und können die am Ende auch das was mein Quadrocopter kann (hoffentlich)? ;-)
Zusammengebaut und getestet habe ich das alles schon. Die Sensoren funktionieren einwandfrei, brauchen aber noch eine ordentliche Kalibrierung. Die Motoren drehen sich direkt am Empfänger angeschlossen und sorgen mit Propeller für ordentlichen Schub und das Gesamtgewicht ist mit 800g auch noch weit unter einem Kilo.
Ja was fehlt denn dann eigentlich noch? Zum einen sind die Shift-Register und LED-Treiber noch nicht vollständig montiert, zum anderen habe ich ein Problem mit dem Empfänger, denn ich müsste ihn über 8 Pins an den Arduino anschließen … ein paar zu viel. Deshalb denke ich gerade darüber nach noch einen alten PIC (18F1230) dazwischen zu klemmen. Der könnte die 8 Kanäle auf einen modulieren und an den Arduino weiterreichen. Mal sehen.
Was den Arduino angeht so scheint er ideal für eine Quadrocopter Schaltzentrale geeignet zu sein. Die Rechenpower reicht zwar nicht aus die RGB-LEDs schnell genug anzusprechen während die Lage-Berechnungen stattfinden, aber beides für sich klappt super und für eine simple Lichtshow mit nicht ganz so vielen Farben reicht es während dem Flug allemal.
Was noch? Ich würde ganz gerne ein Bluetooth oder Zigbee Modul für Telemetrie anschließen, wenn es an das Austesten der Funktionen geht. Außerdem vertraue ich den Propellermitnehmern nicht so richtig, allerdings lässt sich auf die Motoren kein richtiger montieren. Das heißt ich brauche im schlimmsten Fall nochmal andere Motoren, wenn das nichts wird (ich musste sie auch in einer Art befestigen, die so wohl nicht vorgesehen ist). Und das letzte Problem: Software! Es gibt mehrere auf Arduino basierende Autopiloten … da ich meine Hardware etwas zusammengewürfelt habe, ist eine Anpassung schwierig. Meinem Projekt am nächsten kommt wohl der Multiwii-Copter (eine ausführliche Anleitung zu dem aus Arduino und Wii-Fernsteuerung zusammengebauten Copter gibt es hier). Vom Aufwand her käme man mit solchen vorgefertigten Bastelsets wohl schneller zum Ziel, einige Sets sind aber unverhältnismäßig teuer (schon die Controller Platine mit ein paar Sensoren kostet im Mikrokopter Shop 360 €) … beim nächsten Copter dann ;-)
Bald dann hoffentlich Part II mit ersten Flugberichten und ich hoffe Nachbauer aus meinem Freundeskreis spendieren mir ein Eis, wenn ich ihnen Tipps beim Aufbau geben kann und von Fehlkäufen abhalte (in China ist es billig, aber bei mir hat die Lieferung ewig gedauert).
Einen gibt es umsonst: auf einer Lochrasterplatine alles zusammenlöten ist eine unglaublich fummelige und fehleranfällige Arbeit, für die nächste Version ätze ich mir wohl eine Platine.
Nachtrag: Habe beim Zusammenrechnen nicht beachtet, dass ich ja 4 Motoren und Steuerungen benutze. Dementsprechend habe ich die Endsumme aktualisiert.
So ein Hexacopter (oder simpler auch Quadrocopter) wäre doch eine nette Sache, dachte ich mir bzw. denke ich immer noch. Nur leider sind fertige Geräte ziemlich teuer oder nicht so ganz das Wahre und für alle braucht man dann noch teure Funksender und ggf. Erweiterungen für Navigation per GPS, etc.
Dann kam mir der Gedanke, dass moderne Smartphones eigentlich leistungsstark genug sein müssten so einen Quadrocopter fliegen zu können. Die Vorteile liegen auf der Hand:
Preiswert, da Massenware (Nexus S z.B. nur 285 Euro)
2 Digitalkameras für Blick nach unten und oben bzw. über Spiegel auch in andere Richtungen
Verbindung (zur Steuerung) über Wifi bzw. Bluetooth möglich oder für extreme Reichweiten auch mittels Mobilfunknetz
eigener Akku für mehrstündige Stromversorgung und somit auch leichtes Wiederauffinden des Fluggerätes, wenn der Akku für die Rotoren leer ist und das ganze abgestürzt ist
ach ja, wenn sich NFC durchsetzt könnte man so „im Vorbeiflug“ bezahlen ;-)))
Was meint ihr? Nexus S mit einer Motorsteuerung verbinden (jetzt dank Open Accessory Dev Kit möglich) und los geht’s? Bei dem Dev Kit wird schon ein Steuerungsboard verlinkt, welches so ein Smartphone mit der Steuerelektronik reden lässt, aber im Prinzip müsste es ausreichen die Motorsteuerung direkt zu verbinden und ggf. sogar den benötigten Strom dafür aus dem Handyakku zu beziehen.
Etwas ähnliches haben übrigens zwei Österreicher schon probiert. Steuerung eines Bausets von Mikrokopter (die teuren Dinger von oben) mittels Bluetooth von einem Androidgerät aus. Das geht so weit, dass man dieses Androidhandy dann mit dem Mikrocopter mitfliegen lassen kann und ihm über das Internet Steuersignale schicken kann. In etwa so habe ich mir das vorgestellt, nur ohne die unnötige Steuerelektronik im Mikrocopter selbst …
Möglich oder nicht? Kennt sich jemand unter meinen Lesern mit der Thematik aus? Rahmen, Motoren, Rotoren und BL-Steuerung kann doch nicht so teuer sein. Dazu noch ein Lipo mit Ladegerät und genanntes Nexus S mit vermutlich erheblichem Programmieraufwand und fertig ist das Ganze. Ich stelle mir das gerade wahrscheinlich zu simpel vor, oder?
Nachtrag:
Der Arducopter scheint mir ein interessanter Ausgangspunkt zu sein. Dieses Set bestehend aus Gestell, Motoren, Rotoren und Motoransteuerungen kostet mit Versand und Steuern um die 400 Euro. Vielleicht wird der Herbst ja warm? Mal sehen ;-)
Nachtrag 2:
Man könnte auch langsam anfangen und das Vorhaben erst einmal „theoretisch“ austesten. Mittels UavPlayground gibt es die Möglichkeit eine Drone zu simulieren und auch Daten von der Simulation zu lesen. Damit und mit dem Android Emulator bzw. einem richtigen Androidgerät könnte man auf jeden Fall schon mal die Steuersoftware testen bevor man echte Hardware verbaut und die Sackgasse bemerkt.