Mini-Zeppelin

 

Arbeitsplan:

In diesem Projekt wird eine ca. 100g schwere Gondel für ein ca. 1m langes Luftschiff entwickelt. Es ist geplant die Gondel mit drei Motoren auszustatten, welche von einem PIC32 Microcontroller (µC) jeweils vorwärts und rückwärts gesteuert werden sollen. Dazu ist zum einen die Anfertigung einer Treiberplatine und zum anderen die Entwicklung einer Software für den µC nötig. Nachdem die Motoren vom µC gesteuert werden können soll die Gondel um einen Luftdrucksensor erweitert werden. Die Messdaten des Sensor werden dabei über einen I2C-Bus vom µC gelesen um dort die aktuelle Flughöhe zu bestimmen und um diese per Motor zu regeln. In einem weiteren Schritt soll die Gondel mit einem Drehratensensor ausgestattet werden. Dieser Drehratensensor lässt sich ebenfalls über einen I2C-Bus auslesen und soll eine Regelung der Drehrate um die Hochachse des Luftschiffs ermöglichen.

Verwendete Bauteile:



Probleme:

Gewicht:
Bereits vor Beginn der Ingenieurspraxis wurde mit einer recht günstigen Waage ermittelt, dass das Zeppelin ein Gewicht von 100g gerade noch tragen kann. Nachdem eine 100g schwere Gondel fertiggestellt war stellte sich jedoch heraus, dass das Zeppelin nur 80g trägt. Um Gewicht einzusparen wurden 2 weitere Gondeln gebaut, eine aus Depron/Kohlefaser und eine aus Styropor.

Kompass vs Motoren:
Es hat sich herausgestellt, dass der Magnetfeldsensor hmc5883l sehr empfindlich ist und durch die Motoren so sehr gestört wird, dass eine Nutzung als Kompass nicht möglich ist. Indem der Sensor mit einem ca 50cm langen Kabel an die Zeppelin-Oberseite (und damit 40cm von den Motoren entfernt) verlegt wurde konnte dieses Problem gelöst werden.

PIC32-Board und Magnetfeldsensor kaputt:
In der zweiten Praktikumswoche ging der Magnetfeldsensor ohne ersichtliche Gründe kaputt. Der Sensor stellte einen Kurzschluss zwischen VCC und GND und den I2C Leitungen her was wohl dazu führte, dass der I2C-Pins des µC-Boards kaputt gingen.

PIC32-Board Schaltplan fehlerhaft:
Nachdem sich die Motoren nicht steuern ließen verbrachte ich mehre Stunden damit den Fehler in meinem Aufbau zu suchen bis sich herausstellte, dass im Schaltplan des PIC32 Pinguino Boards mehrere Pins falsch beschriftet sind.

Little Endian vs Big Endian:
Da mir nicht bewusst war, dass es in der Byte-Reihenfolge unterschiede gibt verbrachte ich einen ganzen Tag damit Fehler in meinem Code zu suchen bis sich herausstellte, dass die Daten des hmc5883l-Sensors genau andersherum eingelesen werden müssen als dieser sie ausgibt.


Durchgeführte Tätigkeiten
- 3x Gondel bauen
- Auslesen zweier Sensoren (hmc5883l und bmp085)
- Drahtlose Datenübertragung mit XBee
- Drahtlose Steuerung der Motoren über XBee mit PC und Joystick
- Visualisierung der übertragenen Daten mit Octave
- Kalmanfilterung der Druck-Messungen des BMP085
- Höhenregelung mit Hilfe der Druck-Messungen
- Regelung der Blickrichtung mit Hilfe der Kompass-Messungen