4201
Kommentar:
|
16014
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 1: | Zeile 1: |
||<tablewidth="200px" tablestyle="text-align: center;"bgcolor="#ffffa0">Page in [:en/FlightCtrl:english] || siehe auch: FlightCtrlAnleitung, [:BL-Ctrl Anleitung:BL-Ctrl_Anleitung], [:UmbauFlightCtrl:Änderung V1.0 auf V1.1] |
##||<tablewidth="200px" tablestyle="text-align: center;"bgcolor="#ffffa0">Page in [:en/FlightCtrl:english] || |
Zeile 6: | Zeile 4: |
= Flight-Ctrl: Was ist das? = Die Flight-Ctrl-Platine ist die Hauptsteuerung des MikroKopter. Auf dieser Platine befindet sich der Mikrocontroller, sowie alle zum Flug erforderlichen Sensoren (3 GyroScope, BeschleunigungsSensor und LuftdruckSensor). |
= Einleitung = Die folgende Seite enthält allgemeine Informationen zur Hauptplatine des MikroKopter-Projekts, der Flight-Control. |
Zeile 11: | Zeile 7: |
Der LuftdruckSensor ist optional und für die Grundfunktion nicht erforderlich. | = Die Flight-Ctrl: Was ist das? = Die Flight-Ctrl ist die Hauptplatine des MikroKopter. Auf ihr befinden sich sämtliche Sensoren, die zum Fliegen erforderlich sind, sowie der Mikrocontroller. |
Zeile 13: | Zeile 10: |
Bis auf einige Spezialteile sind die Bauteile bei einem Elektronikhändler verfügbar. | (GyroScope, BeschleunigungsSensor und LuftdruckSensor).Der LuftdruckSensor ist optional und für die Grundfunktion nicht erforderlich. |
Zeile 15: | Zeile 12: |
Die erforderlichen Spezialteile bieten wird bei uns im [https://www.mikrocontroller.com/ Shop] an … | Abbildung V1.0 |
Zeile 17: | Zeile 14: |
Zur Programmierung benötigt man einen ISP-Adapter (z.B. unseren SerCon). | http://mikrocontroller.cco-ev.de/images/kopter/FlightCtrl1.jpg [[BR]] http://mikrocontroller.cco-ev.de/images/kopter/FlightCtrl_unten.jpg |
Zeile 19: | Zeile 16: |
== Leiterkarte == http://mikrocontroller.cco-ev.de/images/kopter/FlightCtrl1.jpg |
##[[BR]] Abildung V1.1 TODO [[BR]] Abildung V1.2 TODO = Versionen = Es gibt insgesamt drei Versionen der Flight-Ctrl: V1.0, V1.1, V1.2 . Zwischen den Versionen gibt es nur kleine/minimale Unterschiede.[[BR]][[BR]] Bestückte und unbestückte Platinen unterscheiden sich in erster Linie in der Farbe: |
Zeile 22: | Zeile 20: |
http://mikrocontroller.cco-ev.de/images/kopter/FlightCtrl_unten.jpg | . rot - bestückt . grün - unbestückt [[BR]]'''Eine umfassende Übersicht der FlightCtrl Versionen/Historie befinden sich auf der Seite [:Ctrl History:Ctrl_History]. (Stand: 25.03.2008)''' |
Zeile 24: | Zeile 24: |
== Technische Daten == | = Technische Daten = == Version V1.0 == |
Zeile 26: | Zeile 27: |
* Sensoren: 3x [:GyroScope:Gyros (ENBC-03JA)], 3-Achsen-Beschleunigungsssensor (LIS3L02AS4), [:Höhensensor:Luftdrucksensor (MPX4115)] * Ausgabe: 2 LEDs (rot+grün) , 2 Transistorausgänge (z.B. für LEDs), Elektromagnetischer Summer (z.B. für Unterspannung, Ortung, Funkausfall…) Achtung, Störeinflüsse auf evtl. eingebauten Kompass möglich! * Anschlüsse: Eingang für ["RC-Empfänger"], I2C-Bus für Motor-Regler, ISP-Stecker, universeller Erweiterungsstecker (Debugging, GPS, …) |
* Sensoren: 3x [:GyroScope:Gyros (ENBC-03JA)], 3-Achs-Beschleunigungsssensor (LIS3L02AS4), [:Höhensensor:Luftdrucksensor (MPX4115)] * Statusanzeige: 2 LEDs (rot,grün), Elektromagnetischer Summer (z.B. für Unterspannung, Ortung, Funkausfall,...) * Ausgänge: 2 Transistorausgänge (z.B. für zusätzliche LEDs), * Anschlüsse: Eingang für ["RC-Empfänger"], I2C-Bus für Motor-Regler, ISP-Stecker, universeller Erweiterungsstecker (Debugging, GPS,...) |
Zeile 33: | Zeile 35: |
. z.B. GPS, Datenlogger … = Einbau und Inbetriebnahme = Metallseite des Sensors zeigt im eingebauten Zustand Richtung Mikrokontroller. Eine ausführliche Inbetriebnahme-Anweisung findet man unter FlightCtrlAnleitung. |
. z.B. GPS, Datenlogger,... * UmbauFlightCtrl auf v1.1 möglich. == Version V1.1/V1.2 == (Es werden nur Unterschiede aufgeführt) |
Zeile 37: | Zeile 40: |
== Allgemeines == Der Flight-CTRL sollte möglichst geschützt eingebaut werden. Das bedeutet zum einen, dass er vor Schlägen und Stößen bewahrt wird und zum anderen auch, dass keine leitenden Verbindungen Störungen hervorrufen dürfen. Metallschrauben sollten nur zusammen mit isolierende Unterlegscheiben eingesetzt werden. Auch der optionale Kompass kann von zu nahe an den Sensoren verbauten metallischen Gegenständen gestört werden. |
* Controller: AVR Atmel ATMEGA644P @20MHz * Sensoren: 3x GyroScope (ENBC-03JA,ENBC-03JB oder ENBC-03JR) '''Hinweise:''' |
Zeile 40: | Zeile 44: |
== Höhensensor == Der Höhensensor reagiert auch auf Licht. Deshalb sollte er mit einem Klebestreifen abgedeckt werden. Ein kleines Loch im Streifen ermöglicht weiterhin die Höhenreglung. Nach dem Einschalten sollte vor der ersten Inbetriebnahme am Mikrokopter-Tool die Funktionalität überprüft werden. Der Wert Luftdruck sollte zwischen 800 und 900 liegen. '''Erstflug mit Höhensensor: '''Das Höhenreglerpoti auf ca. 20–30% drehen. MikroKopter starten und so hoch fliegen, bis der Höhenregler kein weiteres Steigen zulässt (Gas dabei bis ca. 80% aufdrehen). Jetzt Höhenregler herunterdrehen, Gas oben lassen. Nun muss das Modell in der Höhe stabil fliegen. |
* Bezüglich der GyroScope gibt es verschiedene Bauformen und Versionen. Von den bedrahteten Gyros gibt es den ENBC-03JA und den ENBC-03JB. Der ENBC-03JR ist in SMD-Bauform. Elektrisch unterscheiden sie sich nicht voneinander. Allerdings ist die innere Taktfrequenz der Gyros leicht unterschiedlich. Aufgrund des grossen mechanischen Abstand zueinander sind unterschiedliche Gyrosfrequenzen nicht unbedingt erforderlich - stören aber auch nicht. |
Zeile 43: | Zeile 47: |
'''Höhensensor mit Schalter''' Beim Erreichen der gewünschten Höhe einfach den Schalter umlegen. Gas weiter aufdrehen, auch Vollausschlag ist möglich. Der MikroKopter hält nun präzise, bis auf wenige cm die Höhe. '''Achtung: '''Beim Deaktivieren des Höhenreglers anschliessend sofort Gas auf Schwebegas reduzieren. Sonst wird er sehr schnell, sehr klein. :) | * Zur akustischen Anzeige wird ein Mikrolautsprecher verwendet. Dieser enthält einen Magneten. Sollte ein Kompass integriert werden, muss der Summer möglichst weit entfernt am Rahmen angebracht werden. Sonst beeinflusst dieser die Messung des Kompasses. == Abmessungen == Lochabstand: 45mm (63mm in der Diagonale)[[BR]] Höhe: TODO |
Zeile 45: | Zeile 51: |
'''Höhensensor in sehr großer Höhe:''' Wenn man mit dem Mikrokopter in sehr hochgelegenen Gebieten (zB 2500 Meter über dem Meeresspiegel) fliegt, dann ist es möglich, daß der Höhensensor nicht mehr richtig funktioniert. Die Widerstände sind für einen Luftdruck von 850 - 1100 hpa ausgelegt, bei 2500 Metern beträgt der Luftdruck jedoch etwa 750 hpa. Um das zu korrigieren muß man einen Widerstand von 1,5 bis 4,7 kOhm (Werte abhängig von der Höhe) mit R21 parallel schalten. | = Aufgaben = * Messen der Drehgeschwindigkeiten der drei Achsen * Messen von Beschleunigungswerten der drei Achsen * Messen des Luftdrucks für die Höhenstabilisierung (Optional) * Auswerten eines digitalen Kompass-Signals (Optional, externes Navi-Ctrl bald verfügbar) * Messen der Batteriespannung mit Unterspannungserkennung * Auswerten des Fernbedinungssignals (RC-Signal) * Verarbeiten der Sensordaten und Berechnung der aktuellen Fluglage * Ansteuern der vier BL-Regler zur Motoransteuerung = Auswahl der Bauelemente = == Mikrocontroller == Die Kriterien bei der Auswahl des Controllers waren: |
Zeile 47: | Zeile 64: |
[:Höhensensor:Übersicht der Settings im MikroKopter-Tool für den Höhensensor.] | * ausreichende Performance * gute Verfügbarkeit * geringer Preis * gut zu löten * kostenlose Entwicklungssoftware verfügbar Deshalb fiel die Wahl auf einen ATMega 644(P) == GyroScope == Die GyroScope (Gyros) messen die Winkelgeschwindigkeit (Drehgeschwindigkeit) um jeweils eine Achse. Es werden drei dieser Sensoren benötigt, um alle drei Achsen zu stabilisieren. Diese Sensoren sind die elementarsten Bauelemente. (--> GyroScope) Die Gyros arbeiten intern mit einer Frequenz. Gleicher Index = gleiche Frequenz. Damit Gyros auf engen Raum keine "Schwebungen" durch Frequenzmischung erzeugen, kann man Gyros unterschiedlicher Frequenzen verwenden, z.B. Typ A + Typ B. |
Zeile 49: | Zeile 72: |
= Dateien = Alle Dateien für die Flight-Ctrl befinden unter [:DownloadSeite:Downloads]. |
Beim MikroKopter ist designbedingt keine Beeinflussung nachweisbar. Deswegen geht auch 3x A, oder 3x B, bzw. 3x C. Ideal wäre 1x A, 1x B, 1x C. Der A-Typ arbeitet mit 22kHz und der B-Typ mit 24kHz. |
Zeile 52: | Zeile 74: |
* ENC-03RA und ENC-03RB der SMD-Typ mit 8x4mm der gerade einmal 0,2g wiegt * ENC-03MA und ENC-03MB mit 12,2x7mm mit 0,4g * ENC-03JA und ENC-03JB mit 15,44x8mm mit 1g == Beschleunigungs-Sensor (ACC-Sensor) == Die Hauptfunktion der Beschleunigungssensoren ist, die aktuelle Neigung des !MikroKopters zu messen und die Höhenregelung zu unterstützen. Hier wird ein Drei-Achsen-Sensor verwendet. Theoretisch kann auf diese Sensoren verzichtet werden, wenn der Quadrokopter im sog. Heading-Hold-Modus (TODO: Link) betrieben werden soll. Weitere Informationen: BeschleunigungsSensor == Luftdrucksensor == Er dient zur Stabilisierung der Flughöhe. Dieser Sensor ist optional. Die Drucköffnungen können mit Klebeband abgeklebt werden, in das mit einer kleinen Nadel ein kleines Loch gestossen wird. Das schützt vor Wind und Licht. (--> LuftdruckSensor) = Schnittstellen = == PPM-Anschluss == Hier wird der Empfänger angeschlossen. Über zwei Leitungen wird der Empfänger versorgt und über die dritte liefert er das RC-Summensignal zurück. Im Gegensatz zu einem normalen Servo-PPM-Signal sind in dem Summensignal alle von der Fernbedienung gesendeten Kanäle enthalten. In jedem Empfänger ist dieses Signal vorhanden, allerdings liefern nur wenige dieses Signal zum direkten Abgriff an einen Stecker (z.B. der RX3 Multi von ACT). (--> ["RC-Empfänger"]) == I2C-Bus == An diesem Bus werden die BL-Regler angeschlossen, über den sie die Steuerbefehle erhalten. Die Flight-Ctrl erfordert unseren speziellen [:BrushlessCtrl:Brushless-Motor-Regler], damit eine schnelle Kommunikation per I2C-Bus möglich ist. Standard-Motor-Regler können '''nicht''' verwendet werden, weil sie nicht schnell genug angesteuert werden können. Der I2C-Bus verfügt über eine Taktleitung (SCL) und eine Datenleitung (SDA). Im Bus werden alle SCL-Leitungen und alle SDA-Leitungen miteinander verschaltet. == Serielle Schnittstelle (SIO) == Hier wird zum Testen und Parametrieren z.B. ein PC angeschlossen. Der Pegel ist TTL-Pegel(0/+5V) und nicht V24(-10/+10V). Aus diesem Grund muss ein Schnittstellenkonverter angeschlossen werden, falls mit der Seriellen Schnittstelle des PCs kommuniziert werden soll. Später kann diese Schnittstelle auch zur Kommunikation (asynchron) mit anderen Controllern verwendet werden. == ISP-Schnittstelle (synchron) == Der ATMEL-Controller wird darüber mittels eines ISP-Interfaces programmiert. Später kann diese Schnittstelle auch zur schnellen Kommunikation (synchron Seriell) mit anderen Controllern verwendet werden. == Kompass-Anschluss == Ein digitaler Kompass kann an den PC4-Eingang des universellen Steckers angeschlossen werden. Weitere Hinweise: TODO: Link = Aufbau = Der Aufbau ist abhängig, ob die Platine bestückt oder unbestückt ist. Bei der bestückten Version müssen nur zwei Kondensatoren, ein Schalter, die Stiftleisten sowie die Kabel aufgelötet werden. Die Software ist bereits aufgespielt. Weitere Informationen sind hier zu finden:[[BR]] ["FCAufbauBestueckt"] Der Aufbau der unbestückten Platine dauert länger und ist fehleranfälliger, allerdings auch kostengünstiger. Und man lernt die Platine, den Aufbau und die Funktion besser kennen. Es lohnt sich also für die technisch Interessierten. Der genaue Aufbau wird hier beschrieben:[[BR]] ["FCAufbauUnbestueckt"] = Verkabelung = Zum Thema Verkabelung gibt es eine eigene Wiki-Seite: [[BR]] ElektronikVerkabelung = Schaltpläne = !FlightCtrl V1.0: [[ImageLink(FlightCtrl_Schaltplan_kl.gif,attachment:FlightCtrl_Schaltplan.gif)]] (Klicken für hohe Auflösung) [[BR]] [[BR]] !FlightCtrl V1.1: [[ImageLink(FlightCtrl_V1_1_Schaltplan_klein.gif,attachment:FlightCtrl_V1_1_Schaltplan.gif)]] (Klicken für hohe Auflösung) [[BR]] = Software = Die Software ist für alle Versionen geschrieben. Die Hardwareversionen werden anhand der Polarität der roten (???) LED erkannt.[[BR]] Download der Hexfiles und des Quellcodes: [http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=FlightCtrl&path=/tags/&rev=0&sc=0 SVN-System] = Softwareentwicklug = Das Downloaden und Compilieren eines im SVN abgelegten Quelltextes wird im Folgenden beschrieben. Zuerst wird das komplette Projekt incl. aller Files sauber auf den lokalen Computer übertragen, um selber compilieren zu können. Es hat sich folgende Vorgehensweise als vorteilhaft erwiesen: 1. download und install von [http://downloads.sourceforge.net/winavr/WinAVR-20071221-install.exe?modtime=1198191629&big_mirror=0 WinAVR (LINK)] (gegebenfalls auch zukünftig [http://sourceforge.net/project/showfiles.php?group_id=68108 neuerer Versionen (LINK)] nicht den Release Candidate, sondern iaktuell die 20071221 2. dann noch download und install von z.B. [http://tortoisesvn.net/downloads Tortoise (LINK)] Nachdem beides installiert wurde und ein Neustart des Rechners stattgefunden hat muß nun noch "Tortoise" konfiguriert werden. "Tortoise" ist nach der Installation am einfachsten über den Fileexplorer (Windows) als Kontextmenü (anwählen eines Verzeichnissses oder Datei, dann RECHTE Maustaste drücken) erreichbar. Um nun die aktuellen Sourcen aus dem "Mikrokopter SVN" zu ziehen muß man "Tortoise" mitteilen wo sich dieses befindet und wohin lokal auf dem eigenen Computer diese abgelegt werden sollen. Das muß man nur einmal machen, später reicht es dann einfach für den jeweiligen Pfad "SVN Update" anzuwählen und schon hat man die neuen Sourcen des jeweiligen Pfades auf dem Computer. Wir klicken im Fileexplorer mit der RECHTEN Maustaste auf das Laufwerk in welchem wir das lokale SVN anlegen möchten z.b. "C:/" so das sich das Kontextmenü öffnet. Dort sieht man nun neue Einträge welche da z.B. "SVN Checkout.." und "TortoiseSVN" heißen, hier wählen wir "SVN Checkout" aus, worauf sich ein Dialog öffnet in welchem wir ein paar Kleinigkeiten angeben müßen. a) wo liegt das Host SVN b) wohin genau soll es lokal angelegt werden a) Die Sourcen der Flight-CTRL liegen unter {{{ http://mikrocontroller.cco-ev.de/mikrosvn/FlightCtrl/}}} ,diese trägt man bei "URL of repository" ein b) Lokal würde ich z.B. folgende vorschlagen {{{ C:\MKSVN\FlightCtrl}}} was bei "Checkout directory" rein muß. Die beiden Checkboxen bleiben "aus", die Option auf "HEAD Revision" stehen. Dann "OK" Button klicken, worauf man gefragt wird ob das Lokal Verzeichnis angelegt werden soll , was wir bestätigten. Nun wird die komplette "Flight Controll SVN" auf den lokalen Rechner kopiert, was je nach Internetverbindung schon etwas dauern kann (sind derzeit etwa 28Mbyte in zig kleinen Einzelfiles) Man kann aber auch ein einziges bestimmtes Projekt auswählen. Nachdem das fertig ist befindet sich unter "C:\MKSVN\FlightCtrl" eine komplette Kopie des "Mikrokopter FlightCtrl SVN" Ordners. Wenn jetzt von jemandem Änderungen im "Mikrokopter FligthCtrl SVN" gemacht werden, reicht es mit der rechten Maustaste im Kontextmenü "C:\MKSVN\FlightCtrl" anzuklicken und dort "SVN Update" anzuwählen, und schwuppdiwupp sind alle Änderungen auf dem lokalen Computer syncronisiert. '''VORSICHT beim Anwählen des Menüpunkt "SVN Commit"''', denn hiermit trägt man seine eigenen lokalen Änderungen ins "Mikrokopter FlightCtrl SVN" ein. 1. Das Hochladen funktioniert nur durch Eingabe von User/Password aus dem Forum. Man kann also nicht einfach so mal versehentlich draufklicken. 2. Der Autor kann einzelne oder auch alle Dateien Sperren. Damit können sie von keinem Anderen mehr verändert werden. Der Sinn und Zweck eines solchen Source-Code-Verwaltungssystems ist der, das mehrere Programmierer an dem Code arbeiten können. Die selbe Vorgehensweise läst sich natürlich auch für das "Mikrokopter BL-CTRL SVN" durchführen, hier wäre der Pfad {{{ http://mikrocontroller.cco-ev.de/mikrosvn/BL-Ctrl/}}} , lokal würde ich dann z.B. {{{ C:\MKSVN\BL-CTRL}}} nehmen Das "Mikrokopter Projects SVN" bekommt man über {{{ http://mikrocontroller.cco-ev.de/mikrosvn/Projects/}}} , lokal dann z.B. {{{ C:\MKSVN\Projects}}} nehmen. Weiter gehts mit dem Compilieren was jetzt nur noch ein paar Klicks sind. Zum Compilieren starten wir "Programmers Notepad" welches mit "WinAVR" installiert wurde. Im "Programmers Notepad" öffnen wir unter "File" -> "Open Projetc(s)..." die jeweilige Projectdatei der Sourcen welche compiliert werden sollen und welche sich z.B. durch Tortoise ja nun auch lokal auf der Festplatte befinden. Also angenommen es sollen Jokos Sourcen kompiliert werden, dann wählt man {{{ C:\MKSVN\FlightCtrl\branches\Flight-Ctrl_V0_xx_GPS_Joko\Quellen_Flight-Ctrl_V0_68d_4_GPS_CMPS_MM3FP_FREEUART\flight.pnproj}}} aus. Nun muß im "Programmers Notepad" nur noch unter "Tools" der Punkt "Make All" ausgewählt werden. Nachdem der Compiler fertig ist und im "Output" Fenster (unten) ein {{{ Errors: none -------- end --------}}} zeigt, steht das neue Hexfile zur verfügung, Fertig. Die erzeugten Hexfiles werden üblicherweise im Stammverzeichnis der jeweiligen Sourcdateien erzeugt, auch wenn bei manchen Sourcen extra Verzeichnise wie z.B. "Hex-Files" vorhanden sind. Wer nicht sicher ist prüft das Datum der Files. Um den Dateiwust nach einer Compilierung etwas aufzuräumen empfiehlt es sich nach einem "Make All" ein "Make Clean" aufzurufen, da hiermit sämmtliche Zwischendateien welche beim Compilieren entstehen wieder entfernt werden, die hex bleibt erhalten. = Einbau = Der Pfeil auf der einen Ecke der Platine zeigt in Flugrichtung. Dementsprechend muss die Platine in den Rahmen eingebaut werden. Zur Befestigung haben sich Stehbolzen aus Kunststoff bewährt. Sie isolieren die Platine gegen den Rahmen und verhindern somit Kurzschlüsse und Störungen. TODO: Bild = Allgemeine Sicherheitshinweise: = Wir garantieren nicht für fehlerfreies Verhalten der Elektronik oder Software. Trotz sorgfältiger Erstellung und Überprüfung, übernehmen wir keinerlei Garantie oder Haftung (direkter oder indirekter Art) für die Fehlerfreiheit der Software, der Hardware oder Informationen. Sie benutzen die Elektronik auf eigene Gefahr (dies gilt auch für dazugehörige PC-Programme). Weiterhin übernehmen wir keinerlei Haftung für Folgeschäden an Sachwerten oder Personen, die durch Anwendung entstehen. Es liegt in ihrer Verantwortung, einen vollständigen Systemtest durchzuführen. Der MikroKopter ist kein Kinderspielzeug! Dafür ist er zu teuer und zu gefährlich. Nicht über Personen fliegen! Eine Modellbauversicherung sollte auf jeden Fall vor dem ersten Flug abgeschlossen werden, weil die meisten Haftpflichtversicherungen nicht die Schäden abdecken, die durch Flugmodelle entstehen können. = Nutzungsbedingungen = Es gilt für das gesamte MikroKopter-Projekt (Hardware, Software und Dokumentation), dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns Kontakt bzgl. der Nutzungsbedingungen aufzunehmen. = Weiterführende Links = * [:FCAufbauUnbestueckt:FC Aufbauanleitung für unbestückte Platinen] * [:FCAufbauBestueckt:FC Aufbauanleitung für vorbestückte Platinen] * [:Ctrl History:Versions-Historie] * [:UmbauFlightCtrl:Umbau 1.0 auf 1.1] * [:BL-Ctrl Anleitung:BL-Ctrl_Anleitung] * ["3V Update"] * MikroKopterEinstieg |
|
Zeile 53: | Zeile 197: |
KategorieHardware | . KategorieHardware |
Einleitung
Die folgende Seite enthält allgemeine Informationen zur Hauptplatine des MikroKopter-Projekts, der Flight-Control.
Die Flight-Ctrl: Was ist das?
Die Flight-Ctrl ist die Hauptplatine des MikroKopter. Auf ihr befinden sich sämtliche Sensoren, die zum Fliegen erforderlich sind, sowie der Mikrocontroller.
(GyroScope, BeschleunigungsSensor und LuftdruckSensor).Der LuftdruckSensor ist optional und für die Grundfunktion nicht erforderlich.
Abbildung V1.0
http://mikrocontroller.cco-ev.de/images/kopter/FlightCtrl1.jpg BR http://mikrocontroller.cco-ev.de/images/kopter/FlightCtrl_unten.jpg
Versionen
Es gibt insgesamt drei Versionen der Flight-Ctrl: V1.0, V1.1, V1.2 . Zwischen den Versionen gibt es nur kleine/minimale Unterschiede.BRBR Bestückte und unbestückte Platinen unterscheiden sich in erster Linie in der Farbe:
- rot - bestückt
- grün - unbestückt
BREine umfassende Übersicht der FlightCtrl Versionen/Historie befinden sich auf der Seite [:Ctrl History:Ctrl_History]. (Stand: 25.03.2008)
Technische Daten
Version V1.0
- Controller: AVR Atmel ATMEGA644 @20MHz
Sensoren: 3x [:GyroScope:Gyros (ENBC-03JA)], 3-Achs-Beschleunigungsssensor (LIS3L02AS4), [:Höhensensor:Luftdrucksensor (MPX4115)]
- Statusanzeige: 2 LEDs (rot,grün), Elektromagnetischer Summer (z.B. für Unterspannung, Ortung, Funkausfall,...)
- Ausgänge: 2 Transistorausgänge (z.B. für zusätzliche LEDs),
- Anschlüsse: Eingang für ["RC-Empfänger"], I2C-Bus für Motor-Regler, ISP-Stecker, universeller Erweiterungsstecker (Debugging, GPS,...)
- Sonstiges: unbenutzte Portpins auf Lötpads geführt (für eigene Erweiterungen)
- Abmessungen: ca. 50 x 50mm
- Gewicht (bestückt): 23g
- weitere Komponenten extern anschliessbar
- z.B. GPS, Datenlogger,...
UmbauFlightCtrl auf v1.1 möglich.
Version V1.1/V1.2
(Es werden nur Unterschiede aufgeführt)
- Controller: AVR Atmel ATMEGA644P @20MHz
Sensoren: 3x GyroScope (ENBC-03JA,ENBC-03JB oder ENBC-03JR)
Hinweise:
Bezüglich der GyroScope gibt es verschiedene Bauformen und Versionen. Von den bedrahteten Gyros gibt es den ENBC-03JA und den ENBC-03JB. Der ENBC-03JR ist in SMD-Bauform.
Elektrisch unterscheiden sie sich nicht voneinander. Allerdings ist die innere Taktfrequenz der Gyros leicht unterschiedlich. Aufgrund des grossen mechanischen Abstand zueinander sind unterschiedliche Gyrosfrequenzen nicht unbedingt erforderlich - stören aber auch nicht.
- Zur akustischen Anzeige wird ein Mikrolautsprecher verwendet. Dieser enthält einen Magneten. Sollte ein Kompass integriert werden, muss der Summer möglichst weit entfernt am Rahmen angebracht werden. Sonst beeinflusst dieser die Messung des Kompasses.
Abmessungen
Lochabstand: 45mm (63mm in der Diagonale)BR Höhe: TODO
Aufgaben
- Messen der Drehgeschwindigkeiten der drei Achsen
- Messen von Beschleunigungswerten der drei Achsen
- Messen des Luftdrucks für die Höhenstabilisierung (Optional)
- Auswerten eines digitalen Kompass-Signals (Optional, externes Navi-Ctrl bald verfügbar)
- Messen der Batteriespannung mit Unterspannungserkennung
- Auswerten des Fernbedinungssignals (RC-Signal)
- Verarbeiten der Sensordaten und Berechnung der aktuellen Fluglage
- Ansteuern der vier BL-Regler zur Motoransteuerung
Auswahl der Bauelemente
Mikrocontroller
Die Kriterien bei der Auswahl des Controllers waren:
- ausreichende Performance
- gute Verfügbarkeit
- geringer Preis
- gut zu löten
- kostenlose Entwicklungssoftware verfügbar Deshalb fiel die Wahl auf einen ATMega 644(P)
GyroScope
Die GyroScope (Gyros) messen die Winkelgeschwindigkeit (Drehgeschwindigkeit) um jeweils eine Achse. Es werden drei dieser Sensoren benötigt, um alle drei Achsen zu stabilisieren. Diese Sensoren sind die elementarsten Bauelemente. (--> GyroScope) Die Gyros arbeiten intern mit einer Frequenz. Gleicher Index = gleiche Frequenz. Damit Gyros auf engen Raum keine "Schwebungen" durch Frequenzmischung erzeugen, kann man Gyros unterschiedlicher Frequenzen verwenden, z.B. Typ A + Typ B.
Beim MikroKopter ist designbedingt keine Beeinflussung nachweisbar. Deswegen geht auch 3x A, oder 3x B, bzw. 3x C. Ideal wäre 1x A, 1x B, 1x C. Der A-Typ arbeitet mit 22kHz und der B-Typ mit 24kHz.
- ENC-03RA und ENC-03RB der SMD-Typ mit 8x4mm der gerade einmal 0,2g wiegt
- ENC-03MA und ENC-03MB mit 12,2x7mm mit 0,4g
- ENC-03JA und ENC-03JB mit 15,44x8mm mit 1g
Beschleunigungs-Sensor (ACC-Sensor)
Die Hauptfunktion der Beschleunigungssensoren ist, die aktuelle Neigung des MikroKopters zu messen und die Höhenregelung zu unterstützen. Hier wird ein Drei-Achsen-Sensor verwendet. Theoretisch kann auf diese Sensoren verzichtet werden, wenn der Quadrokopter im sog. Heading-Hold-Modus (TODO: Link) betrieben werden soll. Weitere Informationen: BeschleunigungsSensor
Luftdrucksensor
Er dient zur Stabilisierung der Flughöhe. Dieser Sensor ist optional. Die Drucköffnungen können mit Klebeband abgeklebt werden, in das mit einer kleinen Nadel ein kleines Loch gestossen wird. Das schützt vor Wind und Licht. (--> LuftdruckSensor)
Schnittstellen
PPM-Anschluss
Hier wird der Empfänger angeschlossen. Über zwei Leitungen wird der Empfänger versorgt und über die dritte liefert er das RC-Summensignal zurück. Im Gegensatz zu einem normalen Servo-PPM-Signal sind in dem Summensignal alle von der Fernbedienung gesendeten Kanäle enthalten. In jedem Empfänger ist dieses Signal vorhanden, allerdings liefern nur wenige dieses Signal zum direkten Abgriff an einen Stecker (z.B. der RX3 Multi von ACT). (--> ["RC-Empfänger"])
I2C-Bus
An diesem Bus werden die BL-Regler angeschlossen, über den sie die Steuerbefehle erhalten. Die Flight-Ctrl erfordert unseren speziellen [:BrushlessCtrl:Brushless-Motor-Regler], damit eine schnelle Kommunikation per I2C-Bus möglich ist. Standard-Motor-Regler können nicht verwendet werden, weil sie nicht schnell genug angesteuert werden können. Der I2C-Bus verfügt über eine Taktleitung (SCL) und eine Datenleitung (SDA). Im Bus werden alle SCL-Leitungen und alle SDA-Leitungen miteinander verschaltet.
Serielle Schnittstelle (SIO)
Hier wird zum Testen und Parametrieren z.B. ein PC angeschlossen. Der Pegel ist TTL-Pegel(0/+5V) und nicht V24(-10/+10V). Aus diesem Grund muss ein Schnittstellenkonverter angeschlossen werden, falls mit der Seriellen Schnittstelle des PCs kommuniziert werden soll. Später kann diese Schnittstelle auch zur Kommunikation (asynchron) mit anderen Controllern verwendet werden.
ISP-Schnittstelle (synchron)
Der ATMEL-Controller wird darüber mittels eines ISP-Interfaces programmiert. Später kann diese Schnittstelle auch zur schnellen Kommunikation (synchron Seriell) mit anderen Controllern verwendet werden.
Kompass-Anschluss
Ein digitaler Kompass kann an den PC4-Eingang des universellen Steckers angeschlossen werden. Weitere Hinweise: TODO: Link
Aufbau
Der Aufbau ist abhängig, ob die Platine bestückt oder unbestückt ist. Bei der bestückten Version müssen nur zwei Kondensatoren, ein Schalter, die Stiftleisten sowie die Kabel aufgelötet werden. Die Software ist bereits aufgespielt. Weitere Informationen sind hier zu finden:BR ["FCAufbauBestueckt"]
Der Aufbau der unbestückten Platine dauert länger und ist fehleranfälliger, allerdings auch kostengünstiger. Und man lernt die Platine, den Aufbau und die Funktion besser kennen. Es lohnt sich also für die technisch Interessierten. Der genaue Aufbau wird hier beschrieben:BR ["FCAufbauUnbestueckt"]
Verkabelung
Zum Thema Verkabelung gibt es eine eigene Wiki-Seite: BR ElektronikVerkabelung
Schaltpläne
FlightCtrl V1.0:
ImageLink(FlightCtrl_Schaltplan_kl.gif,attachment:FlightCtrl_Schaltplan.gif)
(Klicken für hohe Auflösung) BR BR
FlightCtrl V1.1:
ImageLink(FlightCtrl_V1_1_Schaltplan_klein.gif,attachment:FlightCtrl_V1_1_Schaltplan.gif)
(Klicken für hohe Auflösung) BR
Software
Die Software ist für alle Versionen geschrieben. Die Hardwareversionen werden anhand der Polarität der roten (???) LED erkannt.BR Download der Hexfiles und des Quellcodes: [http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=FlightCtrl&path=/tags/&rev=0&sc=0 SVN-System]
Softwareentwicklug
Das Downloaden und Compilieren eines im SVN abgelegten Quelltextes wird im Folgenden beschrieben.
Zuerst wird das komplette Projekt incl. aller Files sauber auf den lokalen Computer übertragen, um selber compilieren zu können. Es hat sich folgende Vorgehensweise als vorteilhaft erwiesen:
1. download und install von [http://downloads.sourceforge.net/winavr/WinAVR-20071221-install.exe?modtime=1198191629&big_mirror=0 WinAVR (LINK)] (gegebenfalls auch zukünftig [http://sourceforge.net/project/showfiles.php?group_id=68108 neuerer Versionen (LINK)] nicht den Release Candidate, sondern iaktuell die 20071221
2. dann noch download und install von z.B. [http://tortoisesvn.net/downloads Tortoise (LINK)]
Nachdem beides installiert wurde und ein Neustart des Rechners stattgefunden hat muß nun noch "Tortoise" konfiguriert werden. "Tortoise" ist nach der Installation am einfachsten über den Fileexplorer (Windows) als Kontextmenü (anwählen eines Verzeichnissses oder Datei, dann RECHTE Maustaste drücken) erreichbar. Um nun die aktuellen Sourcen aus dem "Mikrokopter SVN" zu ziehen muß man "Tortoise" mitteilen wo sich dieses befindet und wohin lokal auf dem eigenen Computer diese abgelegt werden sollen. Das muß man nur einmal machen, später reicht es dann einfach für den jeweiligen Pfad "SVN Update" anzuwählen und schon hat man die neuen Sourcen des jeweiligen Pfades auf dem Computer. Wir klicken im Fileexplorer mit der RECHTEN Maustaste auf das Laufwerk in welchem wir das lokale SVN anlegen möchten z.b. "C:/" so das sich das Kontextmenü öffnet. Dort sieht man nun neue Einträge welche da z.B. "SVN Checkout.." und "TortoiseSVN" heißen, hier wählen wir "SVN Checkout" aus, worauf sich ein Dialog öffnet in welchem wir ein paar Kleinigkeiten angeben müßen. a) wo liegt das Host SVN b) wohin genau soll es lokal angelegt werden a) Die Sourcen der Flight-CTRL liegen unter
http://mikrocontroller.cco-ev.de/mikrosvn/FlightCtrl/
,diese trägt man bei "URL of repository" ein b) Lokal würde ich z.B. folgende vorschlagen
C:\MKSVN\FlightCtrl
was bei "Checkout directory" rein muß. Die beiden Checkboxen bleiben "aus", die Option auf "HEAD Revision" stehen. Dann "OK" Button klicken, worauf man gefragt wird ob das Lokal Verzeichnis angelegt werden soll , was wir bestätigten. Nun wird die komplette "Flight Controll SVN" auf den lokalen Rechner kopiert, was je nach Internetverbindung schon etwas dauern kann (sind derzeit etwa 28Mbyte in zig kleinen Einzelfiles) Man kann aber auch ein einziges bestimmtes Projekt auswählen.
Nachdem das fertig ist befindet sich unter "C:\MKSVN\FlightCtrl" eine komplette Kopie des "Mikrokopter FlightCtrl SVN" Ordners. Wenn jetzt von jemandem Änderungen im "Mikrokopter FligthCtrl SVN" gemacht werden, reicht es mit der rechten Maustaste im Kontextmenü "C:\MKSVN\FlightCtrl" anzuklicken und dort "SVN Update" anzuwählen, und schwuppdiwupp sind alle Änderungen auf dem lokalen Computer syncronisiert. VORSICHT beim Anwählen des Menüpunkt "SVN Commit", denn hiermit trägt man seine eigenen lokalen Änderungen ins "Mikrokopter FlightCtrl SVN" ein.
1. Das Hochladen funktioniert nur durch Eingabe von User/Password aus dem Forum. Man kann also nicht einfach so mal versehentlich draufklicken.
2. Der Autor kann einzelne oder auch alle Dateien Sperren. Damit können sie von keinem Anderen mehr verändert werden. Der Sinn und Zweck eines solchen Source-Code-Verwaltungssystems ist der, das mehrere Programmierer an dem Code arbeiten können.
Die selbe Vorgehensweise läst sich natürlich auch für das "Mikrokopter BL-CTRL SVN" durchführen, hier wäre der Pfad
http://mikrocontroller.cco-ev.de/mikrosvn/BL-Ctrl/
, lokal würde ich dann z.B.
C:\MKSVN\BL-CTRL
nehmen Das "Mikrokopter Projects SVN" bekommt man über
http://mikrocontroller.cco-ev.de/mikrosvn/Projects/
, lokal dann z.B.
C:\MKSVN\Projects
nehmen. Weiter gehts mit dem Compilieren was jetzt nur noch ein paar Klicks sind. Zum Compilieren starten wir "Programmers Notepad" welches mit "WinAVR" installiert wurde. Im "Programmers Notepad" öffnen wir unter "File" -> "Open Projetc(s)..." die jeweilige Projectdatei der Sourcen welche compiliert werden sollen und welche sich z.B. durch Tortoise ja nun auch lokal auf der Festplatte befinden. Also angenommen es sollen Jokos Sourcen kompiliert werden, dann wählt man
C:\MKSVN\FlightCtrl\branches\Flight-Ctrl_V0_xx_GPS_Joko\Quellen_Flight-Ctrl_V0_68d_4_GPS_CMPS_MM3FP_FREEUART\flight.pnproj
aus. Nun muß im "Programmers Notepad" nur noch unter "Tools" der Punkt "Make All" ausgewählt werden. Nachdem der Compiler fertig ist und im "Output" Fenster (unten) ein
Errors: none -------- end --------
zeigt, steht das neue Hexfile zur verfügung, Fertig. Die erzeugten Hexfiles werden üblicherweise im Stammverzeichnis der jeweiligen Sourcdateien erzeugt, auch wenn bei manchen Sourcen extra Verzeichnise wie z.B. "Hex-Files" vorhanden sind. Wer nicht sicher ist prüft das Datum der Files. Um den Dateiwust nach einer Compilierung etwas aufzuräumen empfiehlt es sich nach einem "Make All" ein "Make Clean" aufzurufen, da hiermit sämmtliche Zwischendateien welche beim Compilieren entstehen wieder entfernt werden, die hex bleibt erhalten.
Einbau
Der Pfeil auf der einen Ecke der Platine zeigt in Flugrichtung. Dementsprechend muss die Platine in den Rahmen eingebaut werden. Zur Befestigung haben sich Stehbolzen aus Kunststoff bewährt. Sie isolieren die Platine gegen den Rahmen und verhindern somit Kurzschlüsse und Störungen.
TODO: Bild
Allgemeine Sicherheitshinweise:
Wir garantieren nicht für fehlerfreies Verhalten der Elektronik oder Software. Trotz sorgfältiger Erstellung und Überprüfung, übernehmen wir keinerlei Garantie oder Haftung (direkter oder indirekter Art) für die Fehlerfreiheit der Software, der Hardware oder Informationen. Sie benutzen die Elektronik auf eigene Gefahr (dies gilt auch für dazugehörige PC-Programme). Weiterhin übernehmen wir keinerlei Haftung für Folgeschäden an Sachwerten oder Personen, die durch Anwendung entstehen. Es liegt in ihrer Verantwortung, einen vollständigen Systemtest durchzuführen.
Der MikroKopter ist kein Kinderspielzeug! Dafür ist er zu teuer und zu gefährlich. Nicht über Personen fliegen! Eine Modellbauversicherung sollte auf jeden Fall vor dem ersten Flug abgeschlossen werden, weil die meisten Haftpflichtversicherungen nicht die Schäden abdecken, die durch Flugmodelle entstehen können.
Nutzungsbedingungen
Es gilt für das gesamte MikroKopter-Projekt (Hardware, Software und Dokumentation), dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns Kontakt bzgl. der Nutzungsbedingungen aufzunehmen.
Weiterführende Links
[:FCAufbauUnbestueckt:FC Aufbauanleitung für unbestückte Platinen]
[:FCAufbauBestueckt:FC Aufbauanleitung für vorbestückte Platinen]
[:Ctrl History:Versions-Historie]
[:UmbauFlightCtrl:Umbau 1.0 auf 1.1]
[:BL-Ctrl Anleitung:BL-Ctrl_Anleitung]
- ["3V Update"]