Zwischenbericht – Januar Maturaklasse 2014/2015 Technologischer Fachoberschule Meran
Projekt:
Quadrocopter
Projektmanager:
Markus Müller
©96MueMar 2014
Zwischenbericht-4-Januar
Seite 1 von 13
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
Inhalt 1.
Projektbeschreibung ................................................................................................................... 2
2.
Elektronik..................................................................................................................................... 3
3.
Software ...................................................................................................................................... 4
3.1.
Teil 1: Serielle Kommunikation................................................................................................ 4
3.1.1.
Bodenstation ....................................................................................................................... 4
3.1.1.1.
Übertragungsprotokoll PC zu µC ..................................................................................... 5
3.1.1.2.
Übertragungsprotokoll µC zu PC ..................................................................................... 5
3.1.1.3.
Grafische Oberfläche ....................................................................................................... 5
3.1.2.
„Serial“ Include für den Quadrocopter ............................................................................... 7
1.1.
Teil 2: Gyro und Beschleunigungssensor MPU 6050 ............................................................... 7
1.2.
Teil 3: Motorsteuerung............................................................................................................ 7
1.3.
Teil 4: PDI Regler...................................................................................................................... 7
2.
Zukünftige Schritte ...................................................................................................................... 8 3.
Gantt Diagramm ...................................................................................................................... 8
4.
Projektstatusberichte .............................................................................................................. 9
4.1.
Woche 17................................................................................................................................. 9
4.2.
Woche 18............................................................................................................................... 10
4.3.
Woche 19............................................................................................................................... 11
4.4.
Woche 20............................................................................................................................... 12
4.5.
Woche 21............................................................................................................................... 13
1. Projektbeschreibung Mein Maturaprojekt im heurigen Schuljahr für das Fach TPS ist ein selbstkreierter Quadrocopter. Ein Quadrocopter ist ein Flugobjekt ähnlich wie ein Helikopter, der Unterschied liegt dabei bei den Propellern. Ein Helikopter hat zwei, einen ober für den auftrieb und einen an der Seite, um eine Rotation um der eigenen Achse zu verhindern. Bei einem Quadrocopter gibt es diesen Propeller nicht. Dafür sind, statt den einen an der Oberseite, vier aufzufinden. Durch variieren des Drehmomentes der Propeller kann der Quadrocopter gesteuert werden. Die Steuerung erfolgt durch meiner Bodenstation, mit anderen Worten meinen Laptop. Dabei wird der Quadrocopter entweder durch der Tastatur oder einen eingesteckten Controller bedient. An der Bodenstation erkennt man auch den Akkustand des LithiumPolymer-Akkumulator angezeigt und die ungefähre restliche Flugzeit. ©96MueMar 2014
Zwischenbericht-4-Januar
Seite 2 von 13
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
2. Elektronik Mitte dieses Monats heben wir alle unsere Platinen bekommen. Ich habe meine Hauptplatine selbst zuhause schon zusammengelötet und dabei bei jeden Bauteil was dazukommt ein Foto geschossen. Damit will ich so eine Art Stopp Motion Film machen, hatte aber bis jetzt noch keine Zeit. Bis nächsten Monat werde ich in fertig haben und auf Vimeo uploaden. Bei der Nebenplatine ist mir das Lötzinn ausgegangen und konnte dadurch sie nicht fertigstellen. Dies werde ich so schnell wie möglich nachholen. Bei dieser Platine werde ich auch ein Stopp Motion Film drehen und dies auch auf Vimeo stellen.
2.1.Hauptplatine
Hier sieht man meine Momentane Hauptplatine. Sie ist großteils schon fertig, es fehlen nur noch die Kabel zur Stromversorgung (rechts oben) und noch einige 0Ω Widerstände momentan noch Teile der Platine entkoppeln. Die Kabel die herausragen sind dazu da Signale zu Kontrolliren. Der Schwarze ist die Masse, hingegen das Grüne und das Blaue sind bei der I2C Schnittstelle die serielle Datenleitung (SDA) und die serielle Clockleitung (SCL). Diese drei Leitungen benötige ich um die Kommunikation zwischen den µC und den Gyro-Beschleunigungssensor MPU 6050 nach zu kontrollieren und die Software zu debuggen.
©96MueMar 2014
Zwischenbericht-4-Januar
Seite 3 von 13
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
3. Software Diesen Monat habe ich fast ausschließlich programmiert und das Programmierte entweder simuliert oder direkt getestet. Ich konnte leider nicht so viel Programme ausprogrammiert wie ich erhofft hatte, deswegen werde ich nächsten Monat auch noch viel programmieren müssen. Die Momentane Situation sieht so aus, dass ich meine Hauptsoftware in viel Untereilungen aufgeteilt habe. Von den vier Unterteilungen habe ich drei davon begonnen zu programmieren, habe aber nur eines fertig programmieren können. Dies werde ich in dem nächsten Unterkapitel genauer erklären.
3.1. Teil 1: Serielle Kommunikation Von den vier Unterprogramen kann ich nur die Serielle Kommunikation zwischen PC und µC (oder später Bodenstation und Quadrocopter) als fertig ansehen. Die Serielle Kommunikation besteht wiederrum aus zwei getrennten Programmen. Auf der einen Seite das C# Programm namens „Bodenstation“ und auf der anderen Seite das Asembler Programm mit der Include „Serial“.
3.1.1. Bodenstation Das Bodenstation Programm sendet in regelmäßigen Abständen die Stellgrößen Throttle (Schub nach oben/unten), Nick (Neigung vorne/hinten), Roll (Neigung links/rechts) und Gier (Drehung um eigene Achse). Ich habe 4 Verschiedene Versionen geschrieben, die Unterschiedliche Zwecke verfolgen. Version 0.1: Grafische Oberfläche mit der Visualisierung aller benötigen Tasten Version 0.2: mehrere Taste und Boxen wurden hinzugefügt um das Übertragungsprotokoll zu senden Version 0.2.1: Beim Senden des Übertragungsprotokolls wurde erweitert und verbessert Version 0.3 ist die Endgültige Version für der Übertragung. Es erfüllt alles war wichtig ist, wird aber verbessert und erweitert wenn ich genügend Zeit finde.
©96MueMar 2014
Zwischenbericht-4-Januar
Seite 4 von 13
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
3.1.1.1. Übertragungsprotokoll PC zu µC Bevor ich zur Grafischen Oberfläche der Bodensattion_V0.3 komme erkläre ich noch was alles im Übertragungsprotokoll befindet. Im Übertragungsprotokoll PC zu µC ist festgelegt was für Bytes die Bodenstation an den Quadrocopter sendet. Es besteht aus 12 Bytes die nacheinander gesendet werden. Beginnen tut das Protokoll mit einen Startsignal, nämlich dem Buchstaben Tilde (~). Es folgen noch die Adresse des Absenders und des Empfängers um sicherzustellen, dass ich nicht Bytes von Andere empfangt habe. Um beide Adressen nicht zu vergessen habe ich Buchstaben verwändet, nämlich „B“ für Bodenstation und „Q“ für den Quadrocopter. Diese entsprechen den Zahlenwert 66 und 81. Bis hierher sind es 3 Bytes und die nächsten 4 Bytes beinhalten die Stellgrößen Throttel, Nick, Roll und Gier. Daraufhin folgen 3 Bytes die für Reservezwecke bereitstehen und keinen Wert beinhalten. Die letzten beiden Bytes sind wiederrum zur Überprüfung. Sie Kontrolliren ob alle Bytes richtig empfangen wurden und nicht ein Fehler während der Übertragung aufgetreten ist. Dies geschieht durch die beiden Bytes „CRS Summe“ und CRC XOR“. CRS Summe summiert alle gesendeten Bytes. Das CRC XOR erstellt eine Exklusiv-Oder-Verknüpfung aller gesendeten Bytes. Stimmen diese beiden Bytes überein so ist kein Fehler aufgetreten und die gesendeten Stellgrößen können vom Quadrocopter übernommen werden.
3.1.1.2. Übertragungsprotokoll µC zu PC Das Übertragungsprotokoll µC zu PC legt fest wie die serielle Kommunikation vom Quadrocopter zur Bodenstation ablaufen soll. Ich habe aber noch kein Protokoll dafür geschrieben, einerseits weil ich noch nicht weis wie viele Bytes ich ungefähr brauchen werde und weil das Senden von Informationen vom Quadrocopter zur Bodenstation nicht essenziel ist. Es wird aber Informationen beinhalfen wie der Akkustand und wahrscheinlich auch die momentanen Gyro und Beschleunigungswerte. Wenn ich später Zeit habe werde ich das Protokoll sicherlich festlegen und alle Programme dafür modifizieren.
3.1.1.3. Grafische Oberfläche Wie schon zuvor erwähnt ist dies nur Version 0.3 und ich werde es Updaten wenn ich Zeit habe, deswegen ist es nicht ein Augenschmaus, es enthalt aber alle relevanten Funktionen. (Das Bild befindet sich auf der nächsten Seite)
©96MueMar 2014
Zwischenbericht-4-Januar
Seite 5 von 13
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
Roter Bereich: Die Buttons auf der rechten Seite sind zur Visualisierung der gedrückten Tasten der Tastatur. Die Labes im rechten unteren Eck sind zur Visualisierung der momentanen Stellgrößen. Grüne Bereich: Dieser Teil Startet die Kommunikation. Der Knopf „Verbinden“ baut eine Verbindung zum COM-Port, der in der danebenliegenden Combo Box ausgesucht werden kann. „Trennen“ löst die Verbindung und gibt den Port wieder frei. Der Button „Start Senden“ startet einen Timer in regelmäßigen Abständen das Übertagungsprotokoll sendet, momentan ist dieser fix auf 500ms eingestellt. Gelber Bereich: Die Text Box war zum Debuggen, hat jetzt aber keine große Bedeutung mehr. Die Labels mit der Aufschrift „CRC Summe“ & „CRC xOR“ geben Auskunft über die Momentanen Prüfbytes des Übertragungsprotokoll. Das Label mit der Aufschrift „last received byte“ war auch nur zum Debuggen und hat das letzte Byte angezeigt, was empfangen wurde.
©96MueMar 2014
Zwischenbericht-4-Januar
Seite 6 von 13
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
3.1.2. „Serial“ Include für den Quadrocopter Die Serial Include ist das Gegenstück zur Bodenstation. Es empfangt alle gesendeten Bytes und kontrolliert ob die CRCs übereinstimmen, indem er sie selbst berechnet und sie mit den Empfangenen vergleicht. Stimmen sie überein, so werden die gesendeten Bytes übernommen. Um die Übertragung zu verbessern habe ich noch einen Timeout programmiert. Wenn der Quadrocopter für eine gewisse Zeit kein Byte mehr empfang, so wird die Übertragung zurückgesetzt und gewartet bis das Startbyte, die Tilde „~“ kommt.
1.1.Teil 2: Gyro und Beschleunigungssensor MPU 6050 Für den Sensor MPU 6050 habe ich diesen Monat wahrscheinlich die meiste Zeit benötigt und habe trotzdem kein richtiges Ergebnis erzieht. Das Problem bei dem Sensor ist die Kommunikation über I2C, ein serieller Datenbus mit nur zwei Leitungen. Da noch nie jemand die I2C Schnittstelle des µC benutzt hat, so musste ich meine Include vom Grund auf selber programmieren, dies bedeutet viele Seiten des µC Degenblätter durchlesen und auf gut Glück das Programm testen.
1.2.Teil 3: Motorsteuerung Als ich mein PWM Programm, was ich noch von letzten Schuljahr habe, bei den Motoren getestet habe ist mir aufgefallen, dass es nicht funktioniert hat. Erst als ich ein wenig recherchiert habe ist mir aufgefallen das ich nicht ein PWM (Puls With Modulation) Signal brauch sondern ein PPM (Puls Pausen Modulation) Signal brauche um die Motoren anzusteuern. Für das ausprogrammieren einer PPM-Include habe ich nicht sehr lange gebraucht, nur 2/3 Tage. Als ich es aber getestet habe hat es trotzdem nicht funktioniert. Ich habe aber das Signal am Oszilloskop überprüft und alles schien in Ordnung zu sein. Ich bin mir nicht sicher was fehlt, ich habe schon eine Ahnung warum es nicht funktioniert. Ich bin dieser Theorie aber nicht nachgegangen, da ich meinen Fokus aus den Sensor MPU 6050 legte und deswegen noch keine Zeit gefunden habe im Bereich der Motorsteuerung weiter zu machen.
1.3.Teil 4: PDI Regler Der letzte und wahrscheinlich komplizierteste Teil meiner Software ist eine Include für den PDI Regler. Er verbindet alle anderen 3 Teilprogramme miteinander und ist ausschlaggebend für die Stabilisierung des Quadrocopters beim Fliegen. Um die Funktion kurz zu beschreiben, er vergleich die momentane Position des Quadrocopters in der Luft mit der die er habe sollte und bestimmt wie stark welcher Motor sich drehen muss um diese Wunschposition zu erreichen. Ich habe dieses Programm noch überhaupt nich angefangen zu programmieren, da ich erster jeden anderen Teil der Software abgeschlossen haben will, bevor ich diesen anfange. ©96MueMar 2014
Zwischenbericht-4-Januar
Seite 7 von 13
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
2. Zukünftige Schritte Die 3 fehlenden Teilprograme abschließen. Dazu gehören die MPU6050 Include, PID Regler Include und die Motorsteuerung mit PPM Include Platinen bestücken und testen. Sobald die Platine ankommt werde ich alle Bauteile rauflöten und daraufhin mit der Testsoftware testen.
3. Gantt Diagramm
©96MueMar 2014
Zwischenbericht-4-Januar
Seite 8 von 13
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
5. Klasse Elektronik / Elektrotechnik
4. Projektstatusberichte
Unterlage der TFO „Oskar von Miller“ – Meran
4.1.Woche 17
Optionen
PROJEKTSTATUSBERICHT Woche 17 Projekttitel:
Quadrocopter
ProjektmanagerIn:
Markus Müller
Aktuelles Datum:
04.01.2015
Berichtszeitraum:
von 29.12 bis 04.01
Status: teilweise kritisch
Kurzbeschreibung Status:
Viele Teileaufgaben sind immer noch nicht abgeschlossen und solange läuft die Zeit davon.
Letzter Wochenplan erfüllt?
30.12-Di 01.01-Do 04.01-So Wenn Zeit
Gyro mit Arduino auslesen I2C Include für µC schreiben Zwischenbericht Dezember schreiben Gyro Include beginnen zu schreiben
Wochenplan:
06.01-Di 07.01-Mi 10.01-Sa
Gyro mit Arduino auslesen (letzter Versuch) PPM Include anfangen PPM Include Großteiles fertig
Geleistete Stunden und evt. Ausgaben
10:55 h, davon 0:00 h in der Schule Keine Ausgaben
Zukünftige Schritte:
PPM Include schreiben Flussdiagramm des PDI Reglers PDI Regler Include
Probleme, Kompromisse und Entscheidungen:
MPU 6050 funktioniert immer noch nicht, werde mir sobald als möglich eine Stiftleiste rauflöten und erneut testen So langsam läuft die Zeit davon, deswegen muss ich mich beeilen
Markus Müller, 04.01.2015
©96MueMar 2014
Zwischenbericht-4-Januar
Seite 9 von 13
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
4.2.Woche 18
Optionen
PROJEKTSTATUSBERICHT Woche 18 Projekttitel:
Quadrocopter
ProjektmanagerIn:
Markus Müller
Aktuelles Datum:
11.01.2015
Berichtszeitraum:
von 05.01 bis 11.01
Status:
planmäßig Kurzbeschreibung Status:
Momentan mach ich recht gute Fortschritte im Bereich der Software. Kann nur hoffen, dass es so weiter geht.
Letzter Wochenplan erfüllt?
06.01-Di 07.01-Mi 10.01-Sa
Gyro mit Arduino auslesen (letzter Versuch) PPM Include anfangen PPM Include Großteiles fertig
Wochenplan:
15.01-Do 18.01-So Optional
PPM Signal im Labor testen Bodenstation Programm fast fertig schreiben Bodenstation mit RS232 testen
Geleistete Stunden und evt. Ausgaben
9:55 h, davon 2:10 h in der Schule ~40€ für Bauteile
Zukünftige Schritte:
PPM Signalmit den Oszilloskop aufnehmen C# Programm für die Bodenstation schreiben Flussdiagramm des PDI Reglers und Include schreiben
Probleme, Kompromisse und Entscheidungen:
Nächste Woche habe ich nicht viel Zeit, da ich viel mit der TUM um die Ohren habe Mein Problem liegt darin, da ich nicht große Möglichkeiten haben die I2C Include zu debuggen
Markus Müller, 11.01.2015
©96MueMar 2014
Zwischenbericht-4-Januar
Seite 10 von 13
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
4.3.Woche 19
Optionen
PROJEKTSTATUSBERICHT Woche 19 Projekttitel:
Quadrocopter
ProjektmanagerIn:
Markus Müller
Aktuelles Datum:
18.01.2015
Berichtszeitraum:
von 12.01 bis 18.01
Status: teilweise kritisch
Kurzbeschreibung Status:
Ich bin diese Woche nicht mit meinen Leistungen zufrieden, ich hätte (vor allem am Wochenende) viel mehr tun können.
Letzter Wochenplan erfüllt?
15.01-Do 18.01-So Optional
PPM Signal im Labor testen Bodenstation Programm fast fertig schreiben Bodenstation mit RS232 testen
Wochenplan:
20.01-Di 21.01-Mi 23.01-Sa
MPU 6050 Include nochmal verbessern Include mit Lehrer durchtesten Bodenstation Programm weiterschreiben und mit RS232 durchtesten
Geleistete Stunden und evt. Ausgaben
3:25 h, davon 0:30 h in der Schule Keine Ausgaben
Zukünftige Schritte:
Platine löten, da dieser bald kommen wird Software vervollständigen, dazu gehören MPU6050 Inc, PPM Generator Inc, Bodenstation C# und PDI Regler Inc
Probleme, Kompromisse und Entscheidungen:
Keine Motivation und auch nicht viel Zeit gefunden, deswegen bin ich momentan mit den Zeitplan hinten Mein RS232 zu USB Adapter kann nicht direkt mit meiner Platine verbunden werden, brauche deshalb einen Kabel von der Schule
Markus Müller, 18.01.2015
©96MueMar 2014
Zwischenbericht-4-Januar
Seite 11 von 13
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
4.4.Woche 20
Optionen
PROJEKTSTATUSBERICHT Woche 20 Projekttitel:
Quadrocopter
ProjektmanagerIn:
Markus Müller
Aktuelles Datum:
25.01.2015
Berichtszeitraum:
von 19.01 bis 25.01
Status:
planmäßig Kurzbeschreibung Status:
Ich bin selber von meiner Motivation letztes Wochenende überrascht. Habe ziemlich viel Zeit gut gemacht.
20.01-Di 21.01-Mi 23.01-Sa
Wenn Zeit:
29.01-Mi
30.01-Do 01.02-So
Geleistete Stunden und evt. Ausgaben
23:05 h, davon 4:20 h in der Schule 23€ für Netzteil
Zukünftige Schritte:
Motoren zum Laufen bringen MPU 6050 mit HC08 auslesen
Probleme, Kompromisse und Entscheidungen:
Konnte den RS232 nicht mit meinen Laptop ansprechen, da der Treiber nicht funktionierte. Lösung: Arduino Programm das die seriellen Informationen, die ankommen, wieder zurückschicken. Konnte dadurch nur das Bodensation Programm testen und nicht Serielle Include. Konnte MPU immer noch nicht auslesen, werde es aber versuchen sobald ich dafür Zeit habe.
Letzter Wochenplan erfüllt?
Wochenplan:
©96MueMar 2014
MPU 6050 Include nochmal verbessern Include mit Lehrer durchtesten Bodenstation Programm weiterschreiben und mit RS232 durchtesten (aber mit Arduino) MPU Include weitermachen Serielle Include testen und Kompatibilität mit Bodenstation Programm überprüfen Inventar an Bauteilen für Platine machen. Platine Löten und Stopp-Motion Film drehen
Zwischenbericht-4-Januar
Seite 12 von 13
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
5. Klasse Elektronik / Elektrotechnik Unterlage der TFO „Oskar von Miller“ – Meran
4.5.Woche 21
Optionen
PROJEKTSTATUSBERICHT Woche 21 Projekttitel:
Quadrocopter
ProjektmanagerIn:
Markus Müller
Aktuelles Datum:
01.02.2015
Berichtszeitraum:
von 26.01 bis 01.02
Status: teilweise kritisch
Kurzbeschreibung Status:
Habe nun die Platine fertig gelötet, konnte aber noch nicht testen. Diese Woche fokussiere ich mich auf den Gyrosensor MPU6050 um ihn so schnell wie möglich fertig zu bekommen.
29.01-Mi
30.01-Do 01.02-So Wenn Zeit:
Wochenplan:
07.02-Sa 08.02-So
Geleistete Stunden und evt. Ausgaben
19:00 h, davon 3:20 h in der Schule Keine Ausgaben
Zukünftige Schritte:
Motoren zum Laufen bringen (nächstes Wochenziel) Stopp Motion Filme zusammenschneiden
Probleme, Kompromisse und Entscheidungen:
Habe den µC noch nicht auf die Hauptplatine löten können, da ich ihn nicht mehr fand. Konnte deswegen die Funktion der Platine nicht testen Ich habe mir von der Schule ein Oszylop ausgeliehen um auch zuhause den MPU effizienter programmieren zu können
Letzter Wochenplan erfüllt?
Serielle Include testen und Kompatibilität mit Bodenstation Programm überprüfen Inventar an Bauteilen für Platine machen. Platine Löten und Stopp-Motion Film drehen MPU Include weitermachen große Fortschritte mit MPU Include machen Nebenplatine löten und wieder Stopp-Motion Film machen
Markus Müller, 01.02.2015
©96MueMar 2014
Zwischenbericht-4-Januar
Seite 13 von 13