Projekte:Quadrocopter: Unterschied zwischen den Versionen

Aus ShortysFastLane.de
Wechseln zu: Navigation, Suche
(X-Bee)
(Platine)
 
Zeile 60: Zeile 60:
 
Das war Hardwareseitig schon alles, was zu tun ist um eine Kommunikation zu ermöglichen. Was und in welcher Form später Daten übertragen werden, muss ich mir natürlich noch überlegen.
 
Das war Hardwareseitig schon alles, was zu tun ist um eine Kommunikation zu ermöglichen. Was und in welcher Form später Daten übertragen werden, muss ich mir natürlich noch überlegen.
  
==Platine==
+
==Hauptplatine==
 
<gallery widths=300px>
 
<gallery widths=300px>
 
Bild:LoetpasteInfinityCopterV1.jpg|Auf die Platine wurde mit Hilfe von Laser-Stencil und Rakel die Lötpaste aufgetragen. Im Bild wurde die Platine schon teilweise bestückt.
 
Bild:LoetpasteInfinityCopterV1.jpg|Auf die Platine wurde mit Hilfe von Laser-Stencil und Rakel die Lötpaste aufgetragen. Im Bild wurde die Platine schon teilweise bestückt.
Zeile 68: Zeile 68:
 
Bild:InfinityCopterV1Platine.jpg|Fertige Platine (ohne XBee) mit allen THT Teilen.
 
Bild:InfinityCopterV1Platine.jpg|Fertige Platine (ohne XBee) mit allen THT Teilen.
 
</gallery>
 
</gallery>
 +
Hier ist zu sehen, wie die fertige Platine bestückt und im Reflow-Ofen gelötet wird. Im letzten Bild ist gut zu sehen, dass über den Elektronikteilen später das X-Bee Modul zur Kommunikation angebracht werden kann. Die Bestückung und Ausrichtung der QFN Gehäuse hat sich selbst mit relativ professionellen Mitteln (Bestückhilfe, Reflow-Ofen) als schwierig herausgestellt, nicht alle bestückten Platinen liefen am Ende einwandfrei.
  
 
=Software=
 
=Software=

Aktuelle Version vom 7. März 2014, 15:17 Uhr

So, hier möchte ich euch nun den Fortschritt meines Quadrocopter Projekts vorstellen.

Was ein Quadrocopter oder auch Quadrotor ist, könnt ihr hier https://de.wikipedia.org/wiki/Quadrocopter nachlesen.


Einleitung

Motivation

Schon lange spielte ich mit dem Gedanken ein Fluggerät zu bauen, bzw. einen Quadrotor, bin es aber nie angegangen. Jetzt hat mir ein Freund zugesichert, er wird mir bei der Reglerdimensionierung und mathematischen Auslegung ggf. helfen und das war dann der Auslöser es endlich anzugehen!

Ziele

Die Grundüberlegung war, die Elektronik und Regelung selbst zu entwerfen, sodass der Quadrotor irgendwann einmal selbstständig (autonom) fliegen kann. In einer späteren Version dann auch GPS gestützt.

Um mich voll auf diese Ziele konzentrieren zu können, habe ich den Ramen, die Motoren und die Motorregler sowie Sender und Empfänger im Modellbau-Handel gekauft. Entwickelt wird nur die Steuerplatine mit entsprechender Software.

Telemetrie

Bei den Vorüberlegungen wurde schnell klar, dass während des Fluges in jedem Fall Daten gesammelt werden müssen. Das wäre z.B. mit einer SD-Karte oder einem EEPROM gegangen. Doch es wäre auch gut, wenn man dem Quadrotor Daten schicken könnte, z.B. um Regelparameter zu ändern oder andere Befehle auszuführen, die über eine normale RC-Fernbedienung nicht möglich sind. Also musste eine Telemetrie mit Hin- und Rückkanal her.

Natürlich eine Funklösung, aber welche? Auf der Embedded World Messe war ich am Digi Stand und hatte mir dort XBee Module angesehen, die ziemlich genau das können, was ich brauche, nämlich eine serielle Datenübertragung via Funk. Die Verbindung beruht auf dem ZigBee Protokoll(http://de.wikipedia.org/wiki/ZigBee).

X-Bee Pro

Stand Feb. 2014:

X-Bee ist endlich im Einsatz, leider jedoch nicht mit dem Quadrocopter, sondern mit einem anderen Projekt, nämlich meiner hydroponischen Chili-Zucht.

X-Bee Pro ist der Markenname einer mit Zig-Bee betriebenen Plattform von Digi-Europe. Die Module nutzen dabei den IEEE 802.15.4 Übertragungsstandard für WPAN (Wireless Personal Area Netzworks). Dieser Standard ist dem W-LAN sehr ähnlich, aber nicht kompatibel. Es funkt auf dem selben Frequenzband, kann aber ohne Probleme parallel zu WLAN und Bluetooth verwendet werden.

Was macht das X-Bee Modul eigentlich genau? Im Grunde ist es sehr sehr simpel. Das Modul verhält sich wie ein Modem oder ein anderes, seriell ansprechbares Gerät (DTE). Die Module haben zwei Modi. Im normalen Modus werden alle an das X-Bee gesendeten Daten drahtlos an die anderen im Netz befindlichen Clients geschickt. Diese erhalten dann die seriellen Daten, als wären sie z.B. mit einem RS232 Kabel verbunden. Im zweiten Modus, den sog. Command-Mode, kann das Modem bzw. das Funk-Modul konfiguriert werden. Es können Dinge eingestellt werden, wie z.B. Verschlüsselung, Netzwerk-ID usw.

Ein Modul kann in verschiedenen Positionen arbeiten. Es kann z.B. ein Router sein, dieser darf Daten weitersenden, es kann ein Coordinator sein, der Master unter den X-Bees oder ein End-Device welches nur Daten empfangen darf. Um die Funktion eines Moduls zu ändern ist ein Tool von Digi nötig, welches die Firmware entsprechend konfiguriert und auch auf den neusten Stand bringt.

Im Falle des Quadrocopters ist es z.B. nur nötig eine p2p Verbindung aufzubauen. Dies geht sehr leicht über die XCTU von Digi einstellen (XBee-Modul muss dafür z.B. über FTDI Chip mit USB des Rechners verbunden werden). Ist alles konfiguriert, behält jedes Modul diese Einstellung auch nach dem Trennen der Versorgung. Wenn die Module also einmal manuell konfiguriert wurden, können Sie sprichwörtlich wie ein W-LAN Kabel verwendet werden :-D - Alles was ein Modul sendet, erhält das andere und umgekehrt. Die Verbindung ist dabei sogar noch verschlüsselt.

Mechanik / Elektromechanik

Rahmen

Motoren und Regler

Sender/Empfänger

Elektronik

X-Bee

Um die Kommunikation zwischen Kopter und PC aufzubauen, benötigen natürlich beide Systeme eine Schnittstelle zum X-Bee Modul. Da das X-Bee Modul seriell kommuniziert, gestaten sich beide Schnittstellen sehr einfach.

PC seitig wird einfach ein UART-USB umsetzer von FTDI verwendet, der FT232RL ist leicht zu beschalten und stellt unter Windows eine virtuelle COM-Schnittstelle zur Verfügung, über die serielle Befehle versendet und empfangen werden.

Auf der anderen Seite muss natürlich im Hardware-Layout das X-Bee Modul vorgesehen werden. Hier kann es direkt mit dem UART-Pins vom Mikrocontroller verbunden werden.

Das war Hardwareseitig schon alles, was zu tun ist um eine Kommunikation zu ermöglichen. Was und in welcher Form später Daten übertragen werden, muss ich mir natürlich noch überlegen.

Hauptplatine

Hier ist zu sehen, wie die fertige Platine bestückt und im Reflow-Ofen gelötet wird. Im letzten Bild ist gut zu sehen, dass über den Elektronikteilen später das X-Bee Modul zur Kommunikation angebracht werden kann. Die Bestückung und Ausrichtung der QFN Gehäuse hat sich selbst mit relativ professionellen Mitteln (Bestückhilfe, Reflow-Ofen) als schwierig herausgestellt, nicht alle bestückten Platinen liefen am Ende einwandfrei.

Software

Die beste Hardware funktioniert heutzutage ohne Software nicht mehr. Für eine Platine bzw. Embedded Device spricht man eher von einer Firmware. Es gab hier verschiedene Möglichkeiten, z.B. hätte man die Firmware-Library von ST nutzen können. Das ist eine Basistreiber-Library die zur freien Verfügung steht, allerdings mit einigen Fehlern behaftet sein soll. Eine weitere Möglichkeit wäre natürlich wirklich von Grund auf alles selbst zu schreien, d.h. Basistreiber schreiben oder wirklich alles auf Registerebene fummeln. Nicht wirklich spassig bei dem geforderten Funktionsumfang - klar wenn man 8 Std. am Tag Zeit hat kann man schon mal in einigen Wochen ein paar verbuggte Basistreiber auf die Reihe bringen, aber in einem privat Projekt ist das wohl etwas zu aufwändig.

Und prompt bin ich im Internet auf ein phantastisches Projekt namens Chibi-OS gestoßen. Ein Echtzeitbetriebssystem mit integriertem HAL (Hardware Abstraction Layer), oder anders gesagt mit integrierten Basistreibern. Als Port direkt für den STM32F1xx verfügbar! Sehr gut.

Ich wollte sowieso schon lange Erfahrung mit einem RT-OS bekommen und da sich ein Echtzeitbetriebssystem für einen Quadrocopter mit so vielen Aufgaben quasi mehr als anbietet, war die Entscheidung schnell getroffen. Die Firmware wird mit Hilfe von Chibi-OS programmiert werden.

Programmierumgebung

Das OS lässt sich relativ leicht in eine Eclipse IDE integrieren. Debugg-Fähigkeit (Threads etc.) ist dank eines verfügbaren Plugins gegeben. Ich konnte innerhalb eines Abends alles in meine Eclipse IDE integrieren. Die Makefile habe ich mir aus einem Demo-Projekt kopiert und etwas angepasst und dank GNU GCC Kompatibilität hatte ich das erste Kompilat nach wenigen Stunden vor mir.

Für Leute die Eclipse nur für Chibi-OS nutzen (oder eine zweite Insallation dafür nicht scheuen) gibt es auch ein All-In-One Paket "Chibi-Studio" direkt auf der Chibi-OS Seite zum download. Hier soll alles "Out-Of-The-Box" funktionieren.