INFO
"iKopter" ist ein privates Projekt und wurde nicht von Mikrokopter.de entwickelt.
MikroKopter / Hisystems GmbH übernimmt keine Gewährleistung bei Nutzung dieser APP / dem Programm
Bei Fragen zu dieser APP / zu diesem Programm wenden Sie sich an den Author.
iKopter ist eine iPhone-App um Aufgaben rund um den MikroKopter zu erfüllen.
Inhaltsverzeichnis
Was kann die App?
Kommunikation mit dem MK. Hier sind bis auf die 3d Geschichte alle Kommandos der FC0.82f und NC0.22a eingebaut. Es ist so aufgebaut, dass verschiedene "Lowlevel" Module für die Verbindung zum Kopter möglich sind.
Zur Zeit habe ich eine WLAN-Anbindung, Unterstützung des DockConnectors (seriell), Bluetooth und eine Fake-Connection.
In der Oberfläche habe ich dann folgendes:
Displayanzeige und zwar mit einfacher Möglichkeit zwischen NaviCtrl, FlightCtrl und 3DMAG umzuschalten.
- Debug-Werte auch hier mit Umschalten
- Settings
Die Settings sind allerdings noch für 0.82f
- Auswählen des aktuell verwendeten Settings.
- Anzeigen und Ändern der Settings
- Channels
- Compass
- Stick
- Altitude
- Camera
- Gyro
- Coupling
- Looping
- Misc
- Anzeige der Mixer-Werte (editieren geht auch aber speichern is nich)
- Motortest
- Anzeige der Funk-Channels
- Ein OSD.
- Wegpunkte
Voraussetzungen
Als erstes braucht ihr ein iPhone oder iPad mit der iOS Version 4.0.1 oder höher. Getestet ist allerdings nur mit 4.3.1. Dann der Knackpunkt: Für die meisten Anschlußarten muss zwingend ein Jailbreak (JB) vorhanden sein. Für WiFly und den Redpark-Adapter ist zwar kein JB nötig, allerdings wird die iKopter-App z.Zt. nur über die JB-App "Cydia" zur Verfügung gestellt, so daß man nur dann um den JB herumkommt, wenn man den Source-Code selbst übersetzt, was wiederum Programmierkenntnisse (mit Apples Xcode) sowie enen kostenpflichtigen Entwickler-Account bei Apple erfordert.
Die unterstützten Softwareversionen für den MK sind:
FC: 0.82 und 0.84
NC:0.22 und 0.24
Wo finde ich es?
Installation
Die neueste Version kann jetzt auch über die serielle Schnittstelle des DockConnectors mit dem Kopter reden. Dafür ist allerdings ein Jailbreak notwendig. Wer den schon durchgeführt hat kann die App über Cydia installieren. Dazu muss eine weiter Quelle eingetragen werden.
Die URL ist http://frankblumenberg.de/repo
Sourcecode
Den Sourcecode gibt es bei https://github.com/fblumenberg/iKopter. Man muss allerdings bedenken, dass für ein auf dem iPhone laufendes Programm eine Apple Developer-Lizenz notwendig ist oder es müsste in den App-Store. Zum ausprobieren kann man es aber auch im iPhone Simulator laufen lassen.
Wie schließe ich es an
Das Hauptproblem bei der Verwendung eines iPhones ist das Fehlen einer Seriellen Schnittstelle für die Kommunikation. Zwar ist elektronisch wohl alles notwendige vorhanden, aber Apple hält das ganze unter Verschluss. Daher geht nur ein mit einm Jailbreak versehenes Gerät.
Um das iPhone mit dem MK zu verbinden gibt es drei Möglichkeiten.
- WLAN
Seriell über den DockConnector
- Seriell über Bluetooth
WLAN
Eine Möglichkeit ist die Verwendung eines WLAN-Moduls (z.B. von Avisaro). Die andere Möglichkeit ist die Verwendung eines Seriell zu LAN Proxy. Beispiele und ein Paar Ideen finden sich im zugehörigen Forumsthread.
http://forum.mikrokopter.de/topic-9730-2.html
Als Proxy hat sich serproxy-0.1.4.src_.zip als ganz praktisch erwiesen. Folgende Konfiguration hat schon funktioniert
newlines_to_nils=false # Comm ports used comm_ports=1 # Default settings comm_baud=57600 comm_databits=8 comm_stopbits=1 comm_parity=none # Idle time out in seconds timeout=300 # Port 1 settings (ttyS0) net_port1=64400 serial_device1=/dev/cu.usbserial-A2002Qzh
Beim Device-Namen muss man allerdings noch nachschauen, ob der wirklich so heißt.
Von der Version 0.1.3 gibt es auch schon fertige Executables für Windows serproxy-0.1.3-3.bin.win32.zip und Mac serproxy-0.1.3-3.bin.macosx.zip.
Um die einzelnen Parameter mal auszutesten ist auch der NCSimulator eine gute Alternative.
WiFly-Modul
Eine weitere Alternative sind die WiFly-Module von Roving Networks: RN-134 und RN-174 (z.B. bei Mouser.com zu bekommen). Die Module können mit 5V versorgt werden, sodaß man sie direkt an den Debug-Port vom FlightCtrl oder NaviCtrl anschließen kann. Diese Module können auch einen Adhoc-Accesspoint stellen, so dass man keinen extra Router benötigt, um sich vom iOS-Gerät mit dem Modul am Kopter zu verbinden.
Zur Reichweite: RN-134 (hat eine leicht größere Sendeleistung als RN-174) mit externer Antenne kam 85m weit bei direkter Verbindung (Adhoc-Modus des RN-Moduls) mit dem iPhone4, und 250m weit mit einem iPad2 - dann brach die Verbindung ab. Allerdings flog der Kopter beim iPhone-Test direkt über dem iPhone, und die Antenne am Kopter war fast senkrecht ausgerichtet, also in einem ziemlich ungünstigen Winkel zum Empfänger.
Bei dem Test wurde das RN-Modul auf 1Mbps eingestellt für max. Reichweite, und zur Steuerung eine 2,4GHz-Funke von Futaba (T8FG) eingesetzt - d.h., dass beides auf dem selben Frequenzband (2,4GHz) arbeitete und sich dennoch kaum störte). Um größere Reichweiten zu erhalten, müßte man wohl einen WLAN-Router einsetzen. Die meisten portablen WLAN-Router sind jedoch eher auf geringe Reichweite ausgelegt, man müßte also eher einen stationären Router verwenden.
Aufbau
Als eine relativ einfach Variante der WiFly Module hat sich das "Sparkfun RN-XV WiFly Module" in Kombination mit dem "XBee Explorer Regulated WRL-11373" erwiesen. Hier müssen nur vier Kabel angelötet werden und für den AdHoc Modus eine Kabelbrücke.
Anschluß an das XBee Shield:
MK |
MK-Pin |
Shield |
GND |
7 |
GND |
5V |
2 |
5V |
TXD |
1 |
DOUT |
RXD |
9 |
DIN |
Für den AdHoc Modus kann man eine Kabelbrücke zwischen "3.3V" und "RES" einsetzten. Es empfiehlt sich, hier einen Jumper zu verwenden.
Danach muss man nur noch das Modul auf das Shield setzten.
Im AdHoc Modus ist das Modul dann unter 169.254.1.1:2000 z.B. mittels Telnet zu erreichen und kann hier konfiguriert werden.
telnet 169.254.1.1 2000
Die Dokumentation für das Modul findet sich unter Anderem auf der Produktwebseite.
Der wichtigste Punkt für die Konfiguration ist die Baudrate.
*HELLO* $$$ CMD set uart baudrate 57600 save reboot
Das ""save"" Kommando am Ende ist wichtig!
DockConnector
Das iPhone hat eine serielle Schnittstelle und wenn man einen Jailbreak durchgeführt hat, dann kann eine App diese auch verwenden. Allerdings brauch man logischerweise einen Dock-Connector. Für die ersten Versuche kann man den PodBreakout verwendet. Man kann leichter Messen und es lötet sich einfacher.Wenn man direkt an die serielle Schnittstelle des FC/NC geht muss man aber aufpassen. Das iPhone verwendet 3,3V,man braucht einen Pegelwandler von 3,3V auf 5V.
ACHTUNG! Wenn man hier nicht aufpasst zerstört man u.U. die Schnittstelle im iPhone. Daher sind alle weiteren Angaben ohne Gewähr.
Das folgende Bild zeigt die Anschlüsse, die benötigt werden. Wichtig! die Nummern gelten für die Version 1.4 des PodBreakout. Bei den Versionen 1.0 - 1.3 und 1.5 sind die Nummern anders.
Für die Version 1.0 - 1.3 und 1.5 gibt es dieses Bild
Hier nochmal die Belegung für den Stecker von PodBreakout: http://www.kineteka.com/PodBreakout-v1.aspx
|
V1.0 - 1.3 und 1.5 |
V1.4 |
3,3V |
18 |
17 |
GND |
15 |
16 |
Rx |
12 |
11 |
Tx |
13 |
14 |
Belegung Dockconnector Apple:
|
PIN |
3,3V |
18 |
GND |
1 |
RX |
13 |
TX |
12 |
Offizielle Belegung nach Apple: http://pinouts.ru/PortableDevices/ipod_pinout.shtml Dieser Stecker stimmt 1:1 mit diesem Layout überein: http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=370467683410&ssPageName=STRK:MEWNX:IT#ht_717wt_1156
Redpark/SkyWire-Adapter
Eine Alternative ist die Verwendung eines fertigen RS232-Adapters für das iPhone, z.B. das SkyWire-Kabel oder Redpark-Kabel. So ein Adapter ist von Apple zertifiziert und kann ohne Jailbreak verwendet werden. Allerdings verwenden diese Adapter V24-Pegel, so daß man diese Pegel noch umwandeln muss, um es an z.B. ein Wi.232-Modul oder direkt an den Debug-Port des MK anschließen zu können. Weiterhin fehlt z.Zt. noch der Code zur Ansteuerung dieser Adapter in der iKopter-App.
Wi.232
Das Wi.232 Modul aus dem Shop kann man auch direkt an den Connector hängen, da es ja sowieso mit 3,3V läuft. Empfehlenswert ist, den iPhone Anschluss zusätzlich zum Flachbandkabel auszuführen. Das benötigt man sowieso für die Programmierung des Moduls.
Natürlich kann man sich auch einen tollen Stecker kaufen und das Ganze stylish verpacken. Es geht aber auch rustikaler.
Folgenden Stecker kann man auch benutzen:
Die Belegung für den Anschluss ist dann wie folgt:
GND geht an Pin 1 Dockconnector, 3,3V geht an Pin18 am DC, RX geht an Pin12(TX), und TX an Pin13(RX)am DC. Achtung: dieses Pinout kann abweichend sein. Bitte vorher kontrollieren (Podbreakout etc)
Bluetooth
Die App unterstützt eine Verbindung zum BT-Modul aus dem Shop. Voraussetzung hierfür ist die Installation der BTStack Pakets über Cydia.
Wegpunktlisten und Wegpunkte erstellen
Zunächst wird entweder eine vorhandene Wegpunktliste bearbeitet oder duch Tippen auf das "+" (unten rechts) eine neue Wegpunktliste erstellt. Der Name der Liste ist beliebig.
Wegpunkte erstellen
- Ist noch kein Wegpunkt in der Liste und wird der erste Wegpunkt durch das "+" (unten rechts) erstellt, so wird er standardmäßig auf der in den Einstellungen ("i"-Menü) definiterten Position erstellt. Gleiches gillt für den zweiten WP.
- Wird ein Wegpunt per "+ mit Pfeil" erstellt, wird der Wegpunkt immer auf der Ist-Position des iDevice erstellt.
- Ab zwei Wegpunkten in der Liste, wird ein über das "+" (unten rechts) erstellter Wegpunkt im Zentrum der anderen Wegpunkte erstellt.
Wegpunkte verschieben
Jeder Wegpunkt kann in der Kartenansicht verschoben werden. Dazu wird der zu verschiebende Wegpunkt angetippt, so dass die Wegpunktbezeichnung erscheint.
Dann wird der betreffende Wegpunkt erneut angetippt und fest gehalten - Die Stecknadel wird aus der Karte heraus gezogen und ist nun frei verschiebbar.
Loslassen "befestigt" den Wegpunkt.
Wegpunkte manuell verändern
Durch antippen eines Wegpunktes in der Listenansicht, können die Eigenschaften mauell verändert werden.
- Breite: Breitenkoordinate des Wegpunktes [Dezimal]
- Länge: Längenkoordinate des Wegpunktes [Dezimal]
- Typ: gibt an ob die Position ein Wegpunkt oder ein POI ist. (POI erkennbar an Lila Stecknadel)
- Höhe: gibt die Höhe des Punktes an [Meter]
- Radius: gibt den Radius an, in dem der WP als "getroffen" gillt. (Bei Angabe einer Höhe ist der Radius als Radius einer Kugel im Raum zu verstehen)
- Richtung: gibt die Himmelsrichtung an, in die sich der MK ausrichten soll
Wert
Zahlenwert
Blickrichtung
"--"
0
freie Richtung; bzw. letzte eingenommene Richtung
1-360
1-360
feste Himmelsrichtung
"POI"
-1
zeigt auf den POI
WP1..WP9
-2...-x
zeigt auf einen Wegpunkt
- Als Blickrichtung verwendet der MK die Kamerarichtung - wenn man ggf. die Kamera verdreht montiert hat (Setting: Camera-direction), gilt das als Blickrichtung.
- Wartezeit: gibt die Wartezeit auf dem WP an, bevor zum nächsten WP geschaltet wird. [Sekunden]
Ereignis: WP-Event
- Steigrate: gibt die Steig/ Sinkrate an, um die eingestellte Höhe des WP zu erreichen. WICHTIG: Dafür muss der Höhenregler eingeschaltet und auf "Vario-Höhe" stehen! [0,1M/s)
- Kamera Nick Steuerung: Schaltet die Kamera-Nick-Steuerung für POI ein oder aus.