{{attachment:iKopter.png}}
<
><
>
----
{{{#!wiki caution
'''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.
<>
= 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:
1. Displayanzeige und zwar mit einfacher Möglichkeit zwischen NaviCtrl, FlightCtrl und 3DMAG umzuschalten.
1. Debug-Werte auch hier mit Umschalten
1. Settings
. ''Die Settings sind allerdings noch für 0.82f''
* Auswählen des aktuell verwendeten Settings.
* Anzeigen und Ändern der Settings
* Channels
* Compass
* NaviControl
* Stick
* Altitude
* Camera
* Gyro
* Coupling
* Looping
* Misc
* Anzeige der Mixer-Werte (editieren geht auch aber speichern is nich)
* Motortest
* Anzeige der Funk-Channels
1. Ein OSD.
1. 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 [[http://www.jailbreakguide.de/ijailbreak-unlock-anleitungen/|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 +~
----
{{attachment:IMG_0176a.png}} {{attachment:IMG_0177.PNG}} {{attachment:IMG_0178.PNG}}
----
== 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.
1. WLAN
1. Seriell über den DockConnector
1. 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 [[attachment: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 [[attachment:serproxy-0.1.3-3.bin.win32.zip]] und Mac [[attachment:serproxy-0.1.3-3.bin.macosx.zip]].
Um die einzelnen Parameter mal auszutesten ist auch der [[http://www.mylifesucks.de/oss/NCSimulator/|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 [[http://www.exp-tech.de/Shields/Sparkfun-RN-XV-WiFly-Module---Wire-Antenna.html|"Sparkfun RN-XV WiFly Module"]] in Kombination mit dem [[http://www.exp-tech.de/Shields/XBee-Explorer-Regulated-WRL-11373.html|"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 ||
[[http://gallery.mikrokopter.de/main.php/v/tech/XBeeExplorerRegulatedOberseite.png.html|{{https://dl.dropbox.com/u/1796802/XBeeExplorerRegulatedOberseite.png}}]]
Für den AdHoc Modus kann man eine Kabelbrücke zwischen "3.3V" und "RES" einsetzten. Es empfiehlt sich, hier einen Jumper zu verwenden.
[[http://gallery.mikrokopter.de/main.php/v/tech/XBeeExplorerRegulatedUnterseite.png.html|{{https://dl.dropbox.com/u/1796802/XBeeExplorerRegulatedUnterseite.png}}]]
Danach muss man nur noch das Modul auf das Shield setzten.
[[http://gallery.mikrokopter.de/main.php/v/tech/IMG_0707.JPG.html|{{http://gallery.mikrokopter.de/main.php?g2_view=core.DownloadItem&g2_itemId=132777}}]]
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 [[http://www.watterott.com/de/Leiterplatten/PodBreakout|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 [[http://www.watterott.com/de/Pegelwandler|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.
[[http://gallery.mikrokopter.de/main.php/v/tech/PodBreakout.jpg.html|{{http://gallery.mikrokopter.de/main.php?g2_view=core.DownloadItem&g2_itemId=81189|http://gallery.mikrokopter.de/main.php/v/tech/PodBreakout.jpg.html}}]]
Für die Version 1.0 - 1.3 und 1.5 gibt es dieses Bild
[[http://www.flickr.com/photos/finsprings/4403179910/|{{http://davidfindlay.org/weblog/files/page1_blog_entry81-ipodserial.jpg|http://www.flickr.com/photos/finsprings/4403179910/}}]]
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 ||