Hallo!
Heute habe ich ein wenig an meiner App programmiert. Mittlerweile kann sie schon als einfaches Telemetrie-Display für M-Link dienen und sie kann sogar die Sensorwerte schon anzeigen.
Erhältlich ist die App im Google Play Store:
Hier zum Download in Google Play
Google braucht leider immer einige Stunden um eine neue Version auch tatsächlich auszuliefern. Aber spätestens morgen früh sollte die aktuelle Version verfügbar sein.
Alles Weitere zur App, zur weiteren Entwicklung und die Gelegenheit zur Mitarbeit gibt es im rc-network.de. Einfach mal reinschauen und auf dem Laufenden bleiben.
Ciao, Udo
Freitag, 15. März 2013
Mittwoch, 13. März 2013
Meine Royal Pro spricht zu mir...
Hallo zusammen!
Nachdem der Serial-Bluetooth-Adapter ja prinzipiell funktioniert hat, habe ich mir eben eine kleine Android App geschrieben. Als Basis diente mir die Bluetooth-Chat App aus den Android SDK Sample die mit dem SDK installiert werden können.
Auch wenn ich so eine fertige Bluetooth-App als Basis hatte, habe ich doch einige Stunden damit verbracht das Ganze dazu zu überreden zu funktionieren. Schließlich ist es mir dann gelungen. Mein Android 2.3.3 Smartphone kann sich nun problemlos mit dem Bluetooth-Adapter den ich in meiner Royal Pro 16 untergebracht habe verbinden. Es werden auch tatsächlich Daten gelesen...
Die Auswertung fehlt allerdings noch fast vollständig. Aktuell ermittelt die App lediglich die Version des HF-Moduls im Sender und wertet die Servokanäle 1-4 aus. Dabei erfolgt jeweils eine Sprachansage, wenn diese Servokanäle abwechselnd an einen Endausschlag bewegt werden. Das HF-Modul wertet nur die Endstellungen aus und überträgt mit einem einzelnen Bit pro Kanal die letzte Stellung (maximal oder minimal) der Servokanäle. Die aktuelle Miniversion meiner App zeigt aber schon, dass man mit diesem Mechanismus eine Sprachausgabe vom Sender aus tatsächlich fernsteuern kann.
Jetzt muss ich wohl einige Zeit in mich gehen und mir überlegen, wie ich eine sinnvolle Benutzeroberfläche aufbaue und welche Funktionen (insbesondere Alarme, Alarmschwellen und Intervalle für die Sprachausgabe) ich einbaue. Auch für die Bildschirmdarstellung der Sensorwerte gibt es viele Möglichkeiten. Dabei muss man allerdings beachten, dass die meisten Android-Geräte keine Rechenleistung im Überfluss bereitstellen. Durch das zu Grunde liegende Java-System und die Komplexität des gesamten Systems stehen nur relativ begrenzte Ressourcen zur Verfügung.
Was ich auf jeden Fall implementieren möchte:
In diesem Sinne: Bis die Tage und
Ciao, Udo
Nachdem der Serial-Bluetooth-Adapter ja prinzipiell funktioniert hat, habe ich mir eben eine kleine Android App geschrieben. Als Basis diente mir die Bluetooth-Chat App aus den Android SDK Sample die mit dem SDK installiert werden können.
Auch wenn ich so eine fertige Bluetooth-App als Basis hatte, habe ich doch einige Stunden damit verbracht das Ganze dazu zu überreden zu funktionieren. Schließlich ist es mir dann gelungen. Mein Android 2.3.3 Smartphone kann sich nun problemlos mit dem Bluetooth-Adapter den ich in meiner Royal Pro 16 untergebracht habe verbinden. Es werden auch tatsächlich Daten gelesen...
Die Auswertung fehlt allerdings noch fast vollständig. Aktuell ermittelt die App lediglich die Version des HF-Moduls im Sender und wertet die Servokanäle 1-4 aus. Dabei erfolgt jeweils eine Sprachansage, wenn diese Servokanäle abwechselnd an einen Endausschlag bewegt werden. Das HF-Modul wertet nur die Endstellungen aus und überträgt mit einem einzelnen Bit pro Kanal die letzte Stellung (maximal oder minimal) der Servokanäle. Die aktuelle Miniversion meiner App zeigt aber schon, dass man mit diesem Mechanismus eine Sprachausgabe vom Sender aus tatsächlich fernsteuern kann.
Jetzt muss ich wohl einige Zeit in mich gehen und mir überlegen, wie ich eine sinnvolle Benutzeroberfläche aufbaue und welche Funktionen (insbesondere Alarme, Alarmschwellen und Intervalle für die Sprachausgabe) ich einbaue. Auch für die Bildschirmdarstellung der Sensorwerte gibt es viele Möglichkeiten. Dabei muss man allerdings beachten, dass die meisten Android-Geräte keine Rechenleistung im Überfluss bereitstellen. Durch das zu Grunde liegende Java-System und die Komplexität des gesamten Systems stehen nur relativ begrenzte Ressourcen zur Verfügung.
Was ich auf jeden Fall implementieren möchte:
- Einigermaßen angenehmer Varioton
- Alarm für geringen LQI-Wert
- Ansage von Sensorwerten über einen oder mehrere Schalter am Sender
- Einstellbare "Namen" für die Sensoren
- Unterschiedliche Prioritäten für die Sprachausgabe (Höhenansagen können dann z.B. von Unterspannungswarnungen unterbrochen werden)
In diesem Sinne: Bis die Tage und
Ciao, Udo
Bluetooth und M-Link
So. Heute ist mein Bluetooth-Serial Wandler endlich angekommen. Bestellt habe ich ihn bei Flyduino. An dieser Stelle meinen herzlichen Dank für die schnelle Lieferung. Man bekommt dort (einfach im Shop nach Bluetooth suchen) einen bereits auf 115.200 Baud eingestellten Bluetooth Adapter.
Der Anschluss an z.B. die Royal Pro (ans HFM4) ist einfach. Man muss nur Masse, und Vcc (Plus-Symbol am HFM4) verbinden. Außerdem den Anschluss RxD vom Bluetooth-Adapter mit dem Signalanschluss des HFM4 verbinden. Passende Kabel werden praktischerweise mitgeliefert.
Jetzt noch nach eigenem Ermessen ein hübsches Plätzchen im Sender für die winzige Platine finden und das war es an Installationsarbeiten auch schon. Wenn man nun den Sender einschaltet geht der Adapter offenbar sofort in den Bindemodus. Ich konnte jedenfalls mit der App Bluetooth SPP sofort eine Verbindung aufbauen. Mit dieser App lässt sich dann der empfangene Datenstrom hexadezimal anzeigen. Bereits auf den ersten Blick erkennt man, wenn man sich mit dem Protokoll etwas auskennt, dass die Daten passen. Toll! Ich bin begeistert!
Der nächste Schritt wird nun sein eine erste kleine Android App zu programmieren mit der sich diese Daten auslesen und anzeigen lassen. Darauf aufbauend kann ich dann hoffentlich eine leistungsfähige und benutzerfreundliche App programmieren.
Mehr dazu - wie immer - später an dieser Stelle.
P.S.: An meiner Cockpit SX funktioniert der Adapter übrigens nicht. Der Sender ist aber auch noch auf dem alten Hardwarestand und liefert an der COM-Schnittstelle offenbar nicht genug Strom. Das deckt sich mit den im Netz zu findenden Angaben über einen Widerstand der dort in Reihe mit dem +-Pin liegt und der beim Hardware-Upgrade entfernt oder ersetzt wird. Wenn ich das Modul aber z.B. über einen eigenen einzelligen Lipo versorge und die Masseleitung von Cockpit SX COM-Port und Lipo verbinde, klappt es auch dort. Dazu muss man sich halt ein spezielles Kabel löten. Oder man sucht sich in der Cockpit SX eine andere Stelle an der man mindestens 3,3 Volt abgreifen kann. Oder man schickt seinen Sender zu Multiplex und lässt dort für wenig Geld das Upgrade machen.
So. Das war es aber jetzt wirklich - jetzt geht's an Eclipse und das Android SDK um meine erste Live-Datenübertragung von der Royal Pro zu meinem Smartphone zu ermöglichen.
Der Anschluss an z.B. die Royal Pro (ans HFM4) ist einfach. Man muss nur Masse, und Vcc (Plus-Symbol am HFM4) verbinden. Außerdem den Anschluss RxD vom Bluetooth-Adapter mit dem Signalanschluss des HFM4 verbinden. Passende Kabel werden praktischerweise mitgeliefert.
Jetzt noch nach eigenem Ermessen ein hübsches Plätzchen im Sender für die winzige Platine finden und das war es an Installationsarbeiten auch schon. Wenn man nun den Sender einschaltet geht der Adapter offenbar sofort in den Bindemodus. Ich konnte jedenfalls mit der App Bluetooth SPP sofort eine Verbindung aufbauen. Mit dieser App lässt sich dann der empfangene Datenstrom hexadezimal anzeigen. Bereits auf den ersten Blick erkennt man, wenn man sich mit dem Protokoll etwas auskennt, dass die Daten passen. Toll! Ich bin begeistert!
Der nächste Schritt wird nun sein eine erste kleine Android App zu programmieren mit der sich diese Daten auslesen und anzeigen lassen. Darauf aufbauend kann ich dann hoffentlich eine leistungsfähige und benutzerfreundliche App programmieren.
Mehr dazu - wie immer - später an dieser Stelle.
P.S.: An meiner Cockpit SX funktioniert der Adapter übrigens nicht. Der Sender ist aber auch noch auf dem alten Hardwarestand und liefert an der COM-Schnittstelle offenbar nicht genug Strom. Das deckt sich mit den im Netz zu findenden Angaben über einen Widerstand der dort in Reihe mit dem +-Pin liegt und der beim Hardware-Upgrade entfernt oder ersetzt wird. Wenn ich das Modul aber z.B. über einen eigenen einzelligen Lipo versorge und die Masseleitung von Cockpit SX COM-Port und Lipo verbinde, klappt es auch dort. Dazu muss man sich halt ein spezielles Kabel löten. Oder man sucht sich in der Cockpit SX eine andere Stelle an der man mindestens 3,3 Volt abgreifen kann. Oder man schickt seinen Sender zu Multiplex und lässt dort für wenig Geld das Upgrade machen.
So. Das war es aber jetzt wirklich - jetzt geht's an Eclipse und das Android SDK um meine erste Live-Datenübertragung von der Royal Pro zu meinem Smartphone zu ermöglichen.
Montag, 11. März 2013
Multiplex M-Link Display, Teil 2
Lange habe ich mich nicht mehr mit der Telemetrie beschäftigt. Ich nutze sie zwar ständig - insbesondere zur Rückmeldung der Akkuspannungen und für die Kapazitätsüberwachung - aber sie funktioniert halt problemlos und unauffällig.
Dennoch gibt es natürlich Verbesserungspotential. So ist zum Beispiel der Piepser in meiner Cockpit SX sehr leise, wenn er Telemetriealarme ausgibt. Die Darstellung der Werte auf dem Display ist auch nur wenig hilfreich, weil man beim Fliegen schlicht nicht auf's Display schauen kann. Man braucht also eigentlich eine bessere akustische Rückmeldung. Nach Möglichkeit mit Sprachausgabe. Nachdem ich mir nun noch eine Royal Pro 16 angeschafft habe, habe ich wieder angefangen mich damit zu beschäftigen.
Die HF Module in Cockpit SX und Royal Pro haben in der aktuellen Version eine serielle Schnittstelle. An dieser werden unter Anderem die Telemetriedaten die vom Empfänger im Modell an den Sender geschickt werden ausgegeben. Das Protokoll an dieser Stelle legt Multiplex allerdings - im Gegensatz zum Protokoll am Empfänger - leider nicht offen. Man kann aber mit dem Multiplex USB-Interface für Empfänger an dieser Schnittstelle mithören. Dabei habe ich zunächst festgestellt, dass sich die gesendeten Daten im Laufe der Zeit offenbar deutlich entwickelt haben. Ab Firmwareversion 0.44 der HF-Module sind die Daten deutlich umfangreicher als vorher. Im Netz findet man einige Beschreibungen dieser Daten, die sich aber alle auf ältere Versionen der HF-Module beziehen. Also war etwas eigene Fleißarbeit angesagt.
Das genaue Protokoll werde ich hier mit Rücksicht auf Multiplex nicht offenlegen. Nur einige kurze Infos:
Es werden einzelne Pakete übertragen die jeweils zwei Sensordaten enthalten. Hat man eine Sensoradresse im Empfänger priorisiert, so sind die Daten für diesen Sensor in jedem Paket enthalten. Zusätzlich findet sich im Datenstrom die Versionsnummer des HF-Moduls und der Status des Senders (Binding, Reichweite, Normal) sowie die Info ob ein Downlink vom Empfänger empfangen wird.
Weiterhin sind alle (maximal 16) Servokanäle des Senders im Datenstrom jeweils mit einem Bit abgebildet. Mit Vollausschlägen/Minimalausschlägen lässt sich dieses Bit umschalten. Damit werden z.B. Schalterstellungen des Senders an ein angeschlossenes Telemetriedisplay übertragen. Das von Multiplex mittlerweile erhältliche Telemetrie-Display nutzt diese Information beispielsweise zum Ein- und Ausschalten des Variotons.
Ursprünglich war alles anders...
Eigentlich wollte ich mir ja ein eigenes Display mit einem Arduino bauen. Meine alte Cockpit SX hätte aber laut Multiplex ein Hardware-Upgrade benötigt um kompatibel zum Telemetrie-Display zu sein. Insofern habe ich es erstmal gelassen, da ich nicht genau wusste was bei diesem Upgrade passiert und wie lange der Sender dann weg gewesen wäre.
Mittlerweile zeigt sich aber eine neue Möglichkeit:
Einige Telemetrie-Systeme bieten seit einiger Zeit die Möglichkeit Telemetriedaten drahtlos per Bluetooth an ein Smartphone zu übertragen und die Daten dann dort anzuzeigen bzw. auszuwerten. Im rc-network Forum gab es einen kurzen Beitrag, dass sowas auch mit M-Link möglich ist. Man braucht einfach nur einen Serial2Bluetooth-Konverter und ein passendes Smartphone. Außerdem natürlich die passende Software.
Mittlerweile habe ich auch erste Erfolge erzielt. Das Protokoll welches das HF-Modul an der seriellen Schnittstelle bereitstellt konnte ich zumindest soweit entschlüsseln das ich die für mich interessanten Daten herausfinden kann.
Leider habe ich aktuell noch kein Serial2BT-Modul. Ist aber bestellt. In der Zwischenzeit musste mein PC als "Schnittstelle" herhalten und die Daten halt via WLAN an mein Handy setzen. So konnte ich eine erste, einfach App schreiben mit der ich schon die Telemetriedaten anzeigen kann. Die Umstellung dieser App vom WLAN auf Bluetooth sollte kein wirkliches Problem sein. Eher schon eine sinnvolle Fehlerbehandlung z.B. im Falle von Verbindungsabbrüchen. Da lauert viel Arbeit. Mehr dazu demnächst an dieser Stelle.
Dennoch gibt es natürlich Verbesserungspotential. So ist zum Beispiel der Piepser in meiner Cockpit SX sehr leise, wenn er Telemetriealarme ausgibt. Die Darstellung der Werte auf dem Display ist auch nur wenig hilfreich, weil man beim Fliegen schlicht nicht auf's Display schauen kann. Man braucht also eigentlich eine bessere akustische Rückmeldung. Nach Möglichkeit mit Sprachausgabe. Nachdem ich mir nun noch eine Royal Pro 16 angeschafft habe, habe ich wieder angefangen mich damit zu beschäftigen.
Die HF Module in Cockpit SX und Royal Pro haben in der aktuellen Version eine serielle Schnittstelle. An dieser werden unter Anderem die Telemetriedaten die vom Empfänger im Modell an den Sender geschickt werden ausgegeben. Das Protokoll an dieser Stelle legt Multiplex allerdings - im Gegensatz zum Protokoll am Empfänger - leider nicht offen. Man kann aber mit dem Multiplex USB-Interface für Empfänger an dieser Schnittstelle mithören. Dabei habe ich zunächst festgestellt, dass sich die gesendeten Daten im Laufe der Zeit offenbar deutlich entwickelt haben. Ab Firmwareversion 0.44 der HF-Module sind die Daten deutlich umfangreicher als vorher. Im Netz findet man einige Beschreibungen dieser Daten, die sich aber alle auf ältere Versionen der HF-Module beziehen. Also war etwas eigene Fleißarbeit angesagt.
Das genaue Protokoll werde ich hier mit Rücksicht auf Multiplex nicht offenlegen. Nur einige kurze Infos:
Es werden einzelne Pakete übertragen die jeweils zwei Sensordaten enthalten. Hat man eine Sensoradresse im Empfänger priorisiert, so sind die Daten für diesen Sensor in jedem Paket enthalten. Zusätzlich findet sich im Datenstrom die Versionsnummer des HF-Moduls und der Status des Senders (Binding, Reichweite, Normal) sowie die Info ob ein Downlink vom Empfänger empfangen wird.
Weiterhin sind alle (maximal 16) Servokanäle des Senders im Datenstrom jeweils mit einem Bit abgebildet. Mit Vollausschlägen/Minimalausschlägen lässt sich dieses Bit umschalten. Damit werden z.B. Schalterstellungen des Senders an ein angeschlossenes Telemetriedisplay übertragen. Das von Multiplex mittlerweile erhältliche Telemetrie-Display nutzt diese Information beispielsweise zum Ein- und Ausschalten des Variotons.
Ursprünglich war alles anders...
Eigentlich wollte ich mir ja ein eigenes Display mit einem Arduino bauen. Meine alte Cockpit SX hätte aber laut Multiplex ein Hardware-Upgrade benötigt um kompatibel zum Telemetrie-Display zu sein. Insofern habe ich es erstmal gelassen, da ich nicht genau wusste was bei diesem Upgrade passiert und wie lange der Sender dann weg gewesen wäre.
Mittlerweile zeigt sich aber eine neue Möglichkeit:
Einige Telemetrie-Systeme bieten seit einiger Zeit die Möglichkeit Telemetriedaten drahtlos per Bluetooth an ein Smartphone zu übertragen und die Daten dann dort anzuzeigen bzw. auszuwerten. Im rc-network Forum gab es einen kurzen Beitrag, dass sowas auch mit M-Link möglich ist. Man braucht einfach nur einen Serial2Bluetooth-Konverter und ein passendes Smartphone. Außerdem natürlich die passende Software.
Mittlerweile habe ich auch erste Erfolge erzielt. Das Protokoll welches das HF-Modul an der seriellen Schnittstelle bereitstellt konnte ich zumindest soweit entschlüsseln das ich die für mich interessanten Daten herausfinden kann.
Leider habe ich aktuell noch kein Serial2BT-Modul. Ist aber bestellt. In der Zwischenzeit musste mein PC als "Schnittstelle" herhalten und die Daten halt via WLAN an mein Handy setzen. So konnte ich eine erste, einfach App schreiben mit der ich schon die Telemetriedaten anzeigen kann. Die Umstellung dieser App vom WLAN auf Bluetooth sollte kein wirkliches Problem sein. Eher schon eine sinnvolle Fehlerbehandlung z.B. im Falle von Verbindungsabbrüchen. Da lauert viel Arbeit. Mehr dazu demnächst an dieser Stelle.
Abonnieren
Posts (Atom)