Posts mit dem Label Quadrocopter werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Quadrocopter werden angezeigt. Alle Posts anzeigen

Dienstag, 1. Januar 2013

MPU6050 Sensor auslesen mit dem Netduino

image
Netduino mit Shield - Aufsatz, für Sensor und Reglern
Für mein Quadrocopter Projekt habe ich vor einigen Monaten einen zusätzlichen Sensor benötigt, da ich mit einem Beschleunigungssensor allein Schwierigkeiten hätte, das Gleichgewicht und die Lage festzustellen. Um dies etwas kompakter zu gestalten, fand ich im Internet das MPU6050 Sensor Modul, das einen Beschleunigungssensor und Gyroskopsensor auf einem Chip hat. Über Ebay erhält man das Modul zu einem günstigen Preis, man muss allerdings mit einer gewissen Wartezeit rechnen, so ca.. 3-4 Wochen.
image
MPU6050 (Die Platine selbst, scheint für verschieden Sensor Typen gedacht zu sein, wegen der Aufschrift MPU-x050)
Im Arduino Umfeld scheint der Sensor seine Verbreitung gefunden zu haben. Das dürfte auch an der fertigen Library liegen, womit sich in nur wenigen Codezeilen der Sensor für seine eigenen Projekte einbinden lässt . Eine bereitgestellte Lösung für Netduino gab es dafür nicht, was mich um so mehr dazu bewegt hat, hierfür eine Lösung zu finden.
image
Der Sensor verbunden mit dem Arduino Nano 3.0
Mein Ansatz war, den verfügbaren Code in C++ nach C# und .Net Micro Framework zu portieren. Das hieß viele Stunden Quellcode und Dokumentation zum Sensor lesen. Die Dokumentation befasst sich überwiegend mit den Befehlen des Mikroprozessors vom Sensor, was aber anhand der Beschreibung nur schwer nachvollziehbar ist. Überwiegend hat mir der Quellcode selbst am weitesten geholfen, um die Prozessreihenfolge zu verstehen. Am Anfang funktionierte der Code nur teilweise und ich bekam einfach keine brauchbaren Daten. Mehrmals kontrollierte und überarbeite ich das Initialisieren des Sensors über die Monate hinweg. Dazu muss ich hinzufügen, dass ich nur wenig Zeit hatte.
image
Unregelmäßige Werte vom Sensor. (Ausgabe Wert wird hier verkürzt dargestellt zwischen 0 bis 100)
Bis gestern dachte ich, dass ich mit dem Initialisieren den falschen Byte Wert verwendet habe. Es stellte sich heraus, dass ich bereits beim Einbinden des Sensors über den I²C Bus richtig gelegen hatte. Eine fehlende Codezeile, die ich an einer anderen Stelle gesetzt habe, wirkte Wunder. Also wichtiger Hinweis: “Bevor die Werte gelesen werden können, muss der erste Bytewert zunächst an den Sensor geschrieben werden.” Anschließend bekam ich endlich konstante und brauchbare Daten.
image
Stabile Werte, die sich erst verändern, wenn ich den Sensor bewege.
Nun käme normalweise der Punkt, wo ich nun endlich den Quellcode posten würde. Stattdessen hänge ich einen link an, und biete dieses als Download an, da sich der Blogeintrag zu sehr in die länge ziehen würde.
Beispiel Solution für den Sensor MPU6050

Hinweis zum Beispiel Quellcode:
  • Der Quellcode dient als Beispiel und ist daher keine Lösung
  • Soweit ich konnte, habe ich überall Kommentare eingetragen
  • Ich bin für Fragen und (sinnvolle) Kritik offen

Nachtrag (07.07.2013):

Zu dem Thema habe ich eine neuen Blog Post veröffentlicht

Donnerstag, 26. Juli 2012

Halterung für Netduino und Switch

image
Der 5 Port Switch links, und rechts der Netduino

Nachdem es mich zum X-ten mal gestört hat, dass mein Controller immer mit dem Klettband hin und her wackelte, beschloss ich, die erforderliche Halterung zu bauen. Die Kästchen hatte ich mir bereits vor Wochen gekauft. Damit diese auch Halt finden, müssen wieder ein paar Quadratrohre bearbeitet werden.

image
Unterseite, die später mit dem Rumpf vom Quadrocopter festgeschraubt wird.

Wie immer liegt der Aufwand eher am Werkzeug, so dass ich oftmals improvisieren musste, um meine Löcher zu bohren. Leider habe ich nur einen Kasten mitgenommen, sonst hätte ich die andere Hälfte ebenfalls bearbeitet. Schließlich gehört hier noch ein Access Point dazu und der kleine LiPo Akku für die Stromversorgung. Morgen kommen noch weitere Löcher, da z.B. der Netduino in der Position noch nicht erreichbar ist für Netzwerk oder USB.

Freitag, 20. Juli 2012

Defekter Brushless Motor

Brushless Motor, Regler und der Arduino zum programmieren des Reglers

Ärgerlich. Jetzt bin ich mit dem größten Teil der Programmierung durch, ist mir beim justieren ein Motor im wahrsten Sinne abgeraucht. Nach dieser neuesten Erfahrung musste ich feststellen, dass der Regler für Brushless Motor in einem schädlichen Bereich steuern kann. Vielleicht kann ich erst einmal einen Tricopter konfigurieren, um meine Tests fortzuführen und gegebenenfalls auch mal zu fliegen.

Dienstag, 10. Juli 2012

Fernsteuerung Entwickeln für Windows Phone 7

Windows Phone 7 und in Expression Blend entwickelte Controls.

Fast 2 Wochen habe ich keinen Blogeintrag getätigt, was allerdings nicht bedeutet, dass ich nicht weiter am Quadrocopter arbeite. Es ist vielleicht spannend, wie ich viele Tests durchführe, um die richtigen Einstellungen für die Rotorsteuerung herauszufinden. Jedoch habe ich dies ausgelassen und behalte das solange, bis ich fertig bin. Am Ende werde ich vielleicht auch eine kleine Dokumentation auf meinem Blog veröffentlichen in einer weiteren Kategorie.

Vorläufige Steuercontroller. Schubwerte (die 4 Kreise links), Gleichgewichtsanzeige (sieht aus wie ein Radar), Verzögerungsanzeige (Netzwerkverbindungverzögerung), Batterieanzeige. Zudem Anzeigen welche Bereiche Betriebsbereit sind.

Für die Programmierentwicklung reicht nicht nur die Entwicklung auf dem Microcontroller, sondern auch die Entwicklung für die Fernbedienung. Zudem war es für mich notwendig mich mit Expression Blend 4 auseinander zusetzen, dass ich nun in Zukunft immer verwenden werde, um meine Controls zu gestalten. Zuvor habe ich dies immer per Hand im Designer eingegeben, was ein gewissen Zeitaufwand benötigte.

Erste Version der Controllerseite.

Momentan sind erst mal die Seiten fertig, auf dem später die Steuerung des Quadrocopter vorgenommen werden kann. Zwar habe ich schon vor einen Monat bereits an der App programmiert, jedoch gefiel mir die Optik noch nicht. Jetzt komme ich schon der Sache näher und ich bekomme nun mit der Version wesentlich mehr auf eine Seite als zuvor. In der ersten Variante sah es recht klobig aus.

Einfacher Aufbau für die Netzwerkverbindung.

Nachdem ich meine erste Version für den Controller fertig entwickelt habe in einer Simulierten Programm, kompilierte ich den Code auf den Netduino und schloss es an die Regler für die Rotoren an. Leider war ich mit der Begrenzung der Schubkontrolle etwas zu großzügig, so das ich Schwierigkeiten hatte, die Stromversorgung für die Motoren abzutrennen, ohne das mir mein Quadrocopter aus der Handreißt. Für die nächsten Test ist nun der Rumpf am Tisch festgebunden.

Am Tisch gebunden. Einfach so ist die Gefahr zu groß für Beschädigungen.

Bevor ich also da weiter testen kann, muss die Software für das Windows Phone fertig werden. Und vielleicht ist ein Not aus für die Tests auch nicht verkehrt.

Sonntag, 24. Juni 2012

Neu Verkabeln

Kabel und Stecker

Zugegeben war ich unzufrieden, wie die Verkabelung auf meinem Quadrocopter aussah. Der Missbrauch  Steckersysteme zu verwenden, die Normalerweise im PC selbst zu finden sind, sah nicht schön aus. Daher besorgte ich im Conrad Shop entsprechendes Kabel und passende Stecker, die für den Modellbau geeignet sind.

 Stecker anlöten

Mit meinem anschlagenden Lötstation war das kein leichtes, alle Kabel so vernünftig wie möglich anzulöten. Schwierig waren die Stellen, wo zwei Kabel aneinander gelötet werden.

Schrumpfschlauch herum, nur nicht zu lange mit dem Feuerzeug behandeln

Ich hatte fast immer die passenden Schrumpfschläuche da. Ein wenig bunt wirkt es jedoch schon, da ich nicht immer die entsprechende Farbe wählen konnte.

Fertig ist der Verteiler

Das löten erwies sich als sehr langwierig, dafür ist es nun ordentlicher geworden. Jedoch stellte ich fest, dass mir meine Kabelbinder ausgegangen sind. Dies ist zwar nicht kritisch, da es gerade noch reichte die Regler festzuspannen, dennoch könnten es doch ein paar mehr sein. Wie dem auch sei...

Stat mit dem "wie das andere hieß", sind die Regler mit Kabelbinder festgezogen

Wo schon bereits der Rumpf, die Verkabelung und Elektronik bereits platz gefunden haben, fehlt es immer noch am Programmcode. Es zieht sich hin, das auf Grund verschiedener Einwirkungen mich daran hindern damit zügig fertig zu werden.
Bei einigen Sachen wie zum Beispiel mit dem Stabilisieren könnte ich sicherlich etwas fertiges im Internet finden, aber dann wäre dies nur halb so herausfordernd.

Sonntag, 17. Juni 2012

Brushless Motoren montieren

WP_000208 WP_000211
Brushless Motor und entsprechende Teile
WP_000210
Motor mit Propeller und Fahrtenregler
Nach über einem Monat habe ich endlich die Motoren zu meinem Projekt “Quadrocopter” erhalten. Ärgerlich war, dass das Paket beim Zollamt abgeholt werden musste, weil die entsprechende Rechnung am Paket nicht vorhanden war. Somit hat sich die Montage um eine Woche verzögert.
Quadrocopter_08 Quadrocopter_10
Motor am Rumpf montiert und verkabelt
Nachdem ich wieder die Stellen markiert, gekörnt, angebohrt und gebohrt habe, konnte ich die Motoren montieren. Anschließend kam die Verkabelung dran. Da mir die entsprechenden Y-Verbindungen für die Fahrtenregler fehlten, lötete ich einige Stecker zusammen. Folgend kam die Verkabelung und die Verbindungen auf dem Rumpf. Leider finde ich die Verkabelung noch nicht ganz gelungen, und ich denke, das mache ich am nächsten Wochenende nochmal.
Quadrocopter_09
Mit dem Arduino Nano 3.0 wurde durch geprüft
Nachdem ich alles mehr oder wenig provisorisch verkabelt hatte, schrieb ich für den Arduino ein kleines Programm zum regulieren des PWM Signals. Mit einem Potentiometer konnte ich die Ansteuerung des Fahrtenreglers vornehmen. Zuerst habe ich ein kleines Netzteil verwendet, das sich aber nach dem Anschluss des zweiten Fahrtenreglers als zu schwach herausstellte, und nahm daher den Akku. Mit Vorsicht drehte ich langsam am Potentiometer und staunte, dass ich bereits bei ca. 20% erst einmal anhalten musste, da mir sonst auf dem Tisch weggeflogen wäre. Gemessen an einem Rotor, könnte man schon meinen, dass einer  reichen würde, den ganzen Rumpf hochzuziehen. Später habe ich dann auf dem Boden im Wohnzimmer weiter getestet und drehte auf ca. 50%. Es flatterten schon die Gardinen und meiner Freundin wurde kalt, durch den starken Wind von den Rotoren.
Quadrocopter_11
Passt gerade so auf dem Schreibtisch
Inzwischen hat mein Projekt eine gewisse Größe erreicht. Auf dem Bild zu sehen: mein Quadrocopter auf meinem Schreibtisch.
Nun bleibt noch die Programmierung der Steuerung übrig.

Sonntag, 10. Juni 2012

Landestützen und Halterung für den Akku

Quadrocopter_07
Akku-Halter, Access Point und Mikrocontroller
Allmählich nimmt mein Quadrocopter Gestalt an. Leider sind meine Motoren noch nicht eingetroffen, habe jedoch erfahren, dass ich sie vom Zoll abholen darf. Da hat wohl der Versender versäumt, erforderliche Rechnungen an das Paket zu kleben. Wie dem auch sei, habe ich zunächst weiter am Rumpf gearbeitet. Diesmal überlegte ich, wo ich eigentlich alles platzieren soll. Also Akku, Mikrocontroller und Access Point. Nach einigem Überlegen sägte, schleifte und bohrte ich an einer Halterung für den Akku. Anschließend kümmerte ich mich um ein fehlendes Teil, dass für die Landestütze notwendig war.
WP_000201
Provisorische Ladestation für den Akku von meiner Bohrmaschine
Etwas geplagt hat mich mein Akku für die Bohrmaschine, bis ich darauf kam einfach den Lipo Akku zu verwenden. Jetzt ist die stufenlose Kontrolle weg, dafür habe ich viel Power an der Bohrspitze.
WP_000200
Lipo Akku an meiner Bohrmaschine. Nicht zum Nachammen geeignet
Nachdem ich eine etwas umständliche Lösung hatte, konnte ich mit den fehlenden Teilen fortfahren. Hier ein Loch, dort noch eins und die Landestützen waren fertig. Nun kam das Licht, damit ich in der Luft erkenne, wo rechts und links ist. Als ich nach den passenden LEDs suchte, stellte ich fest, dass ich keine entsprechenden Farben habe. Über 100 LEDs sind in meiner Kiste und man sollte meinen, alles zu haben, was man braucht.
WP_000206
Lichttest
Nun stehe ich noch vor der Steuerung, die ich noch nicht fertig programmiert habe. Mit der App für das Handy kann man derzeitig nur eine LED ein- und ausschalten, und die Anwendung zum kalibrieren steht auch noch nicht.

Sonntag, 3. Juni 2012

Gelötet, Löcher gebohrt und zusammengeschraubt

Das Wetter draußen zeichnete sich mehr mit Regen als Sonnenschein, was mich dazu bewegte, mich weiter mit meinem Sommerprojekt zu beschäftigen.
Diese Woche stellte ich fest, dass ich keine richtigen Kabelverbindung für den Netduino habe. So konnte ich nur beschränkt auf dem Arduino mit den Sensoren und Servos entwickeln. Daher dachte ich, dass ich einen eigenen Shield für den Netduino löte. Nach hin und her überlegen, was ich gebrauchen könnte an Steckaufsätzen und wie ich später die Sensoren miteinander verbinde, habe ich es geschafft, etwas passendes zu entwickeln.
Quadrocopter_02
Shield für den Netduino
Eigentlich habe ich relativ lange daran gelötet, dennoch denke ich, dass es ich gelohnt hat. Endlich mal wieder was tun, was nicht am Computer erledigt werden kann!
Quadrocopter_03
Netduino mit meinem Shield. Passt prima, jetzt erst mal testen
Erst wollte ich den Beschleunigungssensor extra auf dem Rumpf montieren. Später entschied ich mich, den Sensor mit auf den Shield anzubringen.
Quadrocopter_04
Der von Bosch BMA 020 Beschleunigungssensor
Und zu guter Letzt schaffte ich es, am Sonntag alle erforderlichen Löcher zu bohren und könnte endlich meinen Rumpf zusammen schrauben. Jetzt fehlen im Grunde nur noch die Löcher für die Motoren. Ich hoffe die kommen nun bald an.
Quadrocopter_05
Der Rumpf für den Quadrocopter

Mittwoch, 30. Mai 2012

Rumpf für den Quadrocopter

Nach zwei Einkäufen im Baumarkt hatte ich das notwendige Material, um endlich den Rumpf herzustellen. Zunächst hatte ich alles im Kopf, entschied mich jedoch auch mal etwas auf Papier zu bringen, damit ich kein Teil vergesse zurecht zu schneiden. Auch wenn man nicht viele Teile für den Rumpf braucht, so dachte ich das es für die Orientierung sehr nützlich sein kann.
Also nahm ich meinen Zeichenblog, Stift, Lineal und einen Radiergummi. Der Anspitzer blieb mal wieder unberührt. Ich skizzierte das typische Kreuz, dass die meisten für Quadrocopter verwenden. Entscheidend war der Maßstab, damit ich die Abmessungen und Proportionen abbilden konnte. Aus meiner Skizze ging schließlich folgende Teile hervor:
  • 4xQuadratrohre mit jeweils 300mm Länge (für die Rotoren)
  • 4xQuadratrohre mit jeweils 84mm Länge (wird nicht gebraucht)
  • 2xFlächen mit einem Durchmesser von 200mm (für die Elektronik)
image
Angefertigte Skizze für die Teile
Die vier 84mm Quadratrohre habe ich später nicht geschnitten. Dafür ein weiteres Schmaleres Rohr von 200mm um zwei der langen 300mm Quadratrohre zu verbinden. Damit dürfte sich die Stabilität erhöhen.
Für den Entwicklungsstand habe provisorisch weitere Teile zugeschnitten, dass dafür da ist, erst mal am Boden die Feinjustierung vor zunehmen. Da noch Material übrig blieb, habe ich mir zusätzlich die teile für die Landestützen angefertigt. Vielleicht bekomme ich das hin, dass die mit einem Servo auch eingeklappt werden können.
image
Alle Teile für den Rumpf, und die zum Kalibrieren
Leider ist meine Kamera defekt und die Bilder mit dem Handy sind nicht gerade die besten. Dabei macht die prima HD Videos. Das sollte jedoch zum Dokumentieren reichen.

Gehäuseentwurf für Signalleuchten (ESP32)

RGB LEDs und LIPO Akkus sind bestellt. Weil ich bereits die Abmessungen habe, kann ich schon mal mit dem Gehäuseentwurf in Blender anfangen....