Verwendung von Transceivermoduln der Serie HM-TRP zur
Funkübertragung serieller ( GPS- ) Daten

2. September 2014

Using low power radio modules type HM-TRPxxx for sending GPS or other serial data.
Automatic translation by Google Translator:     
https://translate.google.de/translate?sl=de&tl=en&js=y&prev=_t&hl=de&ie=UTF-8&u=http%3A%2F%2Fwww.kh-gps.de%2Fsrd.htm&edit-text=

Es gibt eine Vielzahl von Anwendungen, die eine Funkübertragung serieller Daten erfordern. Dabei genügt es häufig, mit relativ geringen Raten wie z.B. 9600bps zu arbeiten. Die dabei im Rahmen von Allgemeinzulassungen erzielbaren Reichweiten sind abhängig von den jeweiligen Standorten ( Indoor oder Outdoor und dabei Geländebeschaffenheit ), von den technischen Parametern der zur Funkübertragung verwendeten Geräte, sowie den benutzten Antennen. Grundsätzlich möglich sind hier Reichweiten bis zu einigen Kilometern.

Auf der Suche nach geeigneten Funkbausteinen bin ich auf die Serie HM-TRP der Firma HOPE [1,[2],[3],[15] gestossen. Die Verwendung des Spread-Spectrum-Verfahrens ( FHSS ) ermöglicht dabei eine vergleichbar hohe Übertragungssicherheit. Für einen Einsatz in Europa kommen hier nur die Versionen für das 433MHz- und das 868MHz-Band infrage. Die Bausteine sind mit einer universell konfigurierbaren, bidirektional einsetzbaren UART-Schnittstelle ausgestattet, wobei defaultmäßig ( = Lieferzustand ) eine Datenrate von 9600bps vorgewählt ist. Weitere im Lieferzustand eingestellte Parameter sind 105 KHz Empfängerbandbreite und 35 KHz Senderhub. Für die Sendeseite besteht die Einstellmöglichkeit für verschiedene Leistungsstufen, wobei der ( defaultmäßig bereits vorgewählte ) Maximalwert bei +20dBm = 100mW liegt. 


Abb.1   Blick auf ein HM-TRP-Modul ( Abm.: 16x20x2mm )

Zum Aufbau von Funkverbindungen zwischen 2 Teilnehmern genügt es im einfachsten Fall, zwei für das gleiche Frequenzband bestimmte, noch im Lieferzustand befindliche Bausteine jeweils mit Betriebsspannung zu versorgen. Dabei muss allerdings erwähnt werden, dass eine auf diese Weise aufgebaute Verbindung nicht den für Europa gültigen fermeldetechnischen Vorschriften entspricht. So ist im 433MHz-Band beispiesweise nur eine max. Sendeleistung von +10dBm = 10mW zulässig. In der Praxis bedeutet es, dass der voreingestellte Wert von +20dBm vor Inbetriebanhme via Konfigurationseinstellung noch auf +8dBm umzustellen ist ( Die Anwahl eines Wertes von +10dBm ist an dieser Stelle nicht möglich, sodass für regulären Betrieb stattdessen die Einstellung +8dBm zu verwenden ist ).
Wer bei Verwendung der 868MHz-Bausteinvariante den Wunsch hat, die maximal mögliche und im Lieferzustand bereits vorgewählte Sendeleistung von +20dBm legal zu nutzen, der muss vor Betriebsaufnahme noch einen Frequenzwechsel von den voreingestellten 869.000MHz auf 869.525MHz vornehmen.
Wie die erwähnten Einstellungsänderungen im Einzelnen vorzunehmen sind, wird weiter unten noch näher zu beschreiben sein.


( GPS- ) DATENAUSSENDUNG

Über die UART-Ein- und Ausgänge der Transceiverbausteine können die unterschiedlichsten seriellen Protokolle oder auch nur Folgen von z.B. ASCII-Zeichen übertragen werden. Hierbei kann es sich beispielsweise um beliebige Textformate handeln. An anderer Stelle [9] hatte ich mich bereits schon einmal mit der Erzeugung und Auswertung entsprechender Textformate beschäftigt. Interessant kann auch die Übertragung von GPS-Daten sein. Entsprechende Anwendungen gibt es beispielsweise im Modellbaubereich, bei der Kleintierbeobachtung oder beim Geocaching.
Zum Empfang der von Navigationssatelliten empfangenen Daten stehen miniaturisierte GPS-Empfängermoduln zur Verfügung. Im Gegensatz zu früheren Versionen hat sich der für sie erforderliche Energiebedarf und auch die benötigte Vorlaufzeit bis zu Bereitstellung gültiger Daten inzwischen deutlich reduziert. Diese Bausteine sind üblicherweise mit einer seriellen Schnittstelle ausgestattet, über die eine kontinuierliche Ausgabe serieller Datenprotokolle erfolgt. Das erfordert eine vorherige interne Aufbereitung der von mehreren GPS-Satelliten ( sie umkreisen den Erdball in ca. 20000Km Höhe ) empfangenen Signale. Hierzu gehören neben Standortdaten ( aktuelle Werte von Längen- und Breitengrad ) u.a. auch Angaben über Zeit, Datum, Höhe, sowie von Bewegungsrichtung und Bewegungsgeschwindigkeit. Zusammengefasst werden diese Daten üblicherweise in Protokollen nach NMEA-0183. Bei der NMEA handelt es sich um eine Organisation, die sich vorzugsweise mit der Festlegung von Datenformaten für den maritimen Bereich beschäftigt.
Besagte NMEA-Datenprotokolle setzen sich in der Regel aus einer Folge von etwa 40-80 ASCII-Zeichen zusammen, wobei die einzelnen Werte jeweils durch Kommata abgetrennt sind. Nachdem diese Protokolle bei den meisten im Handel erhältlichen Empfängerbausteinen defaultmäßig bereits mit einer Datenrate von 9600bps bereitgestellt werden, könnten sie den UART-Eingängen unserer HM-TRP-Bausteine in vielen Fällen direkt zugeführt werden. In der Praxis ist die Übertragung ALLER von den GPS-Empfängern bereitgestellten Daten allerdings nur in seltenen Fällen erforderlich. Im Sinne einer möglichst weitgehenden Entlastung der jeweils benutzten Funkkanäle, sollte der Datenfluss an dieser Stelle aber auch auf das Notwendige beschränkt werden. Für einzelne Frequenzbereiche gibt es zudem auch von Seiten des Gesetzgebers Restriktionen hinsichtlich deren zeitlicher Belegung.
Eine Reduktion der zu übertragenden ( NMEA-) Daten kann grundsätzlich auf mehrerlei Weise erreicht werden. Zum Ersten bieten alle in den GPS-Empfängern verbauten Chips grundsätzlich auch eine Möglichkeit zur Selektion der zur Aussendung kommenden Protokolltypen und auch ihrer Sendefolge. Dazu ist allerdings das vorherige Zusenden entsprechender Steuerbefehle erforderlich. Hierbei ergibt sich allerdings das Problem, dass die verschiedenen Hersteller bei ihren GPS-Chipfamilien dazu unterschiedliche Datenformate verwenden.


Abb.2   Baugruppenanordnung zum Empfang, zur Datenfilterung und zur Funkaussendung von GPS-Daten

Besser und auf jeden Fall universeller scheint mir deshalb ein zweiter Weg zu sein. Dabei wird eine zusätzlich zwischen GPS-Empfänger und Datensender geschaltete kleine Mikrocontrollereinheit benutzt, um eine Filterung der zur Funkübertragung kommenden Protokolltypen zu bewirken. Darüberhinaus kann hierüber auch noch deren Ausgabefolge gesteuert werden.
Nachdem sowohl die meisten GPS-Empfängermoduln, als auch die HM-TRP-Funkbausteine mit Betriebsspannungen um 3.3V arbeiten, lag es nahe, die entsprechende Mikrocontrollereinheit auch mit diesem Spannungswert betreiben zu lassen, womit eventuelle zusätzliche Pegelwandleranordnungen entfallen können. Die Wahl fiel dabei auf den Typ ARDUINO Pro Mini in der 3V-Version. Im realisierten Fall werden aus dem an seinem seriellen Dateneingang anstehenden Angebot an unterschiedlichsten NMEA-Protokollen nur diejenigen des Typs GGA weiterverarbeitet. Neben den Positionsdaten beinhalt dieser Protokolltyp u.a. auch noch Zeit-, Datums- und Höhenwerte. Damit dürfte eine Beschränkung auf Übertragung nur dieses Protokolltyps in den meisten Fällen ausreichend sein. Die zeitliche Folge der Aussendungen wird dabei über einem Analogeingang des Prozessors gesteuert. Mithilfe der von einem angeschlossenen Einstellwiderstand abgenommenen Gleichspannung sind Verzögerungszeiten zwischen 0 und 120 Sec. anwählbar. Eine unter genannten Gesichtspunkten erstellte Baugruppenanordnung ist in Abb.2 dargestellt.


Abb.3  Funkbaustein für die auswertende Seite


( GPS- ) DATENEMPFANG UND AUSWERTUNG

Am UART-Ausgang DTX des auf der auswertenden Seite verwendeten HM-TRP-Bausteins stehen die via Funk übertragenen GGA-Protokolle wieder zur Verfügung (Abb.3). Hinsichtlich ihrer Weiterverarbeitung ergeben sich unterschiedlichste Möglichkeiten. So kann zu ihrer Auswertung und Anzeige z.B. ein über einen weiteren ARDUINO-Mikrocontroller angeschlossenes LC-Display verwendet werden. Im einfachen Fall genügt dabei eine Standardversion mit 2 Zeilen a 16 Zeichen. Denkbar sind aber auch komfortablere Anzeigelösungen mit z.B. grafikfähigen TFT- oder OLED-Displays. Interessant ist in diesem Zusammenhang auch der Baustein MicroView [14]. Bei ihm handelt es sich um eine ARDUINO-kompatible miniaturisierte Kombination aus Atmega328P-Prozessor und einfarbigem OLED-Display. Mit seiner Hilfe lassen sich besonders kompakte Auswert- und Anzeigeeinheiten realisieren. Es ist vorgesehen, an dieser Stelle demnächst noch einige entsprechende Lösungsmöglichkeiten vorzustellen.

Eine weitere interessante Auswertmöglichkeit ergibt sich durch Weiterleitung empfangener ( GGA-) Daten in Richtung von z.B. PC's oder auch ( ANDROID- ) Smartphones. Dazu muss der UART-Ausgang unseres auf der auswertenden Seite verwendeten Funkbausteins lediglich mit dem Dateneingang eines kleinen Bluetooth-Moduls verbunden werden
( siehe dazu auch weiter unten ). Wurde auf einem ANDROID-Gerät z.B. das Programm ROCKET LOCATOR ( aus dem PlayStore kostenlos herunterladbar ) installiert und ausgehend von ihm eine Bluetoothverbindung in Richtung des BT-Moduls auf der Gegenseite aufgebaut, so wird das Smartphones ankommende GGA-Daten empfangen und mithilfe der darin enthaltenen Standortdaten eine Anzeige von  Fremdpositionen auf Karten von Google-Maps ermöglichen.

KONFIGURATION DER HM-TRP-FUNKBAUSTEINE

Vor der Durchführung irgendwelcher Konfigurationseinstellungen sind die HM-TRP-Bausteine entsprechend vorzubereiten. Dazu ist aber lediglich der mit CONFIG bezeichnete Pin ( siehe Abb.4 ) gegen Masse zu legen. Die Steuerung erfolgt dann üblicherweise mithilfe eines PC's. Um die Bausteine von hier aus via USB ansprechen zu können, ist ein zusätzlicher USB<>TTL-Adapter erforderlich. Ich verwende an dieser Stelle den UM2102 von ELV [7] ( siehe auch Abb.5 ), aber es gibt auch Versionen mit z.B. dem FT232RL der Firma FTDI. Gem. Abb.4 und 5 werden die seriellen Ein-und Ausgangsleitungen mit dem Funkbaustein verbunden. Ein 3.3V-Spannungsausgang des benutzten Adapters kann zur Betriebsspannungsversorgung des Funkmoduls herangezogen werden..


Abb.4  Baugruppenanordnung zur Konfiguration der HM-TRP-Bausteine

Um von PC aus mit dem Funkmodul kommunizieren und Konfigurationseinstellungen vornehmen zu können, eignen sich dort installierte Terminalprogramme. Nachdem die dabei mit den  HM-TRP-Bausteinen auszutauschenden Daten aus Folgen von HEX-Zeichen bestehen, ist an dieser Stelle nicht jedes der verfügbaren Terminalprogramme geeignet. Gut bewährt hat sich beispielsweise das Programm HTerm [9], welches u.a. auch sowohl sende,- als auch empfangsmäßig im HEX-Mode arbeiten kann.
Die im Einzelnen möglichen Konfigurationskommandos können dem Datenblatt [1] für die HM-TRP-Bausteine entnommen werden.
So lässt sich über die Befehlsfolge: AA FA E1 die aktuelle Bausteinkonfiguration abfragen. Bevor man irgendwelche weiteren Einstellungen ändert, sollte man durch Eingabe dieser Zeichenfolge zuerst einmal die grundsätzliche Kommunikationbereitschaft getestet haben. Zur Umstellung auf eine Sendeleistung von +8dBm genügt es danach ansonsten, die Zeichenfolge: AA FA 96 03 zu übertragen- Ein Wechsel auf die Frequenz 869.525MHz ist über die Folge: AA FA D2 33 D3 E6 08 zu erreichen.


Abb.5  USB/TTL-Adapter von ELV


SEEEDSTUDIO-VERSION DES BAUSTEINS HM-TRP433

Neben dem HM-TRP433 als Basisboard, gibt es den gleichen Baustein auch in der sog. GROVE-Serial RF Pro-Version von SEEEDSTUDIO [4]. Zusätzlich geboten werden dabei eine Steckverbindung für die Versorgungs- und Datenanschlüsse, sowie ein integrierter Spannungsregler, der den Betriebsspannungsbereich auf ca. 3.7 - 12V ( nominal: 5V ) erweitert. Für die HM-TRP-Anschlüsse CONFIG und ENABLE, sowie auch den Antennenanschluss sind gesonderte Zugangspins auf der Platine vorgesehen.


Abb.6 HM-TRP433 in der GROVE-Version

Interessant ist dabei auch das von der Lieferfirma zu diesem Baustein herausgegebene ( und grösstenteils auch für die Basisversionen gültige ) WIKI [5]. 
Die Baugruppen können bei SEEEDSTUDIO in China bestellt werden. Hier [6]
gibt es aber auch eine inländische Bezugsquelle.

ARDUINO PRO MINI

Bei dem ProMini ( Abb.7 ) handelt es sich um eine ARDUINO Miniaturversion mit dem Prozessor ATMEGA328P. Dabei unterscheiden wir zwischen der mit 5V und 16MHz-Taktfrequenz arbeitenden Version und einer 3V-Variante mit 8MHz-Takt. Da in beiden Fällen aber der auch von z.B. dem UNO und dem NANO benutzte Prozessortyp verwendet wird, sind hier in der Regel auch die für sie erstellten Programme bzw. Sketche lauffähig. Was dem ProMini allerdings fehlt, ist eine integrierte USB-Schnittstelle, so dass zum Hochladen von Programmsketches noch ein externer USB<>TTL-Adapter benötigt wird. Beispielsweise geeignet ist dabei wieder der schon weiter oben einmal erwähnte ELV-Baustein UM2102 [7]. Eine zum Hochladen von Programmen in Richtung ProMini geeignete Schaltunganordnung zeigt Abb.8. Zu beachten ist dabei die je nach Boardvariante anzuwählende unterschiedliche Betriebsspannung.     

eb
Abb.7  ARDUINO ProMini


Abb.8  Anordnung zum Hochladen von Programmen/Sketches auf Bausteine des Typs ProMini

Das INO-Sketch für die Filteranordnung und Zeitsteuerung gem. Abb.2 wird hier in Kürze abrufbar sein. 

GEEIGNETE GPS-BAUSTEINE

Grundsätzlich geeignet sind an dieser Stelle alle GPS-Empfängerbausteine, die NMEA-Datenprotokolle ( incl. GGA )  mit einer seriellen Datenrate von 9600bps und TTL-Pegelwerten bereitstellen. Die meisten aktuellen Typen sind dabei bereits ab etwa 3V Versorgungsspannung betreibbar und erlauben teilweise auch noch den Betrieb mit 5V. Im Gegensatz zu älteren Versionen ist ein Strombedarf von nur etwa 20mA inzwischen auch keine Seltenheit mehr.
Da die maximale Einsatzhöhe mancher Modulversionen vom Hersteller bewusst eingeschränkt wurde, sollte man sich für den Einsatz bei z.B. Ballonprojekten vorher vergewissern, dass  ein gewählter Typ auch die zu erwartende maximale Flughöhe tatsächlich abdeckt. Infos hierzu findet man z.B. hier [10].
Hier die Links zu einigen von mir in letzter Zeit erfolgreich benutzten Moduln [11],[12]

PC- ODER SMARTPHONE-ANBINDUNG
VIA BLUETOOTH


Zur Weiterleitung der von z.B. via HM-TRP-Baustein empfangenen seriellen Daten ( z.B. GGA-Protokolle ) in Richtung PC's oder Smartphone bietet sich die Verwendung preiswert erhältlicher Bluetooth-Moduln aus Fernost an. Besonders einfach ist dabei der Typ  JY-MCU [13] einsetzbar. Auf einer kleinen Platine befindet sich bei ihm ein BT-Modul HC-06 plus zusätzlichem Spannungsregler. Dieser Modultyp lässt sich dabei ausschliesslich als Slave verwenden, was bedeutet, dass sich BT-Verbindungen zu ihm nur von der Gegenseite ( also z.B. vom Smartphone ) aufbauen lassen. Im vorliegenden Anwendungsfall ist damit aber kein Nachteil verbunden.
Da seine serielle Datenschnittstelle defaultmäßig bereits auf 9600bps konfiguriert ist, ist an den Baustein im einfachsten Fall nur eine Versorgungsspannung im Bereich von 3.6-6V zu legen und seinem RxD-Eingang das vom HM-TRP bereitgestellte serielle Datensignal zuzuführen. Nachdem ausgehend von der Gegenseite die schon erwähnte Verbindung zum Modul hergestellt wurde ( identifiziert sich mit der Kennung: "invor" ) sollten dort die via BT übertragenen seriellen Daten eintreffen. Die Funkreichweite des Bausteins liegt übrigens bei etwa 15-20m.   


Abb.9  Bluetoothmodul JY-MCU

Linkliste

[1]  http://www.hoperf.com/upload/rf_app/HM-TRP.pdf
[2]  http://www.octamex.de/shop/?page=shop/flypage&product_id=1741
[3]  http://www.octamex.de/shop/?page=shop/flypage&product_id=1740
[4]  http://www.seeedstudio.com/depot/grove-serial-rf-pro-p-794.html?cPath=139_140
[5]  http://www.seeedstudio.com/wiki/Grove_-_Serial_RF_Pro
[6]  http://www.exp-tech.de/Shields/Seeedstudio-Grove---Serial-RF-Pro.html
[7]  http://www.elv.de/mini-usb-modul-um2102-komplettbausatz.html 
[8]  http://www.kh-gps.de/miniterm.htm
[9]  http://www.der-hammer.info/terminal/
[10] http://ukhas.org.uk/guides:gps_modules
[11] http://www.ebay.de/itm/Ublox-NEO-6M-GPS-Modul-Flight-Controller-Flugregler-fuer-Arduino-IMU-SE04001-G21-/281353518663
[12] http://www.qrp-labs.com/index.php?route=product/product&path=67&product_id=51
[13]  http://arduino-hannover.de/tag/jy-mcu/
[14]  https://www.kickstarter.com/projects/1516846343/microview-chip-sized-arduino-with-built-in-oled-di
[15]  http://www.octamex.de/shop/?page=shop/browse&category_id=44963f0fdda6ad2bdf98e07a9177fc9b&/Funkmodule_/_GPS_/_GSM_kaufen.html

E-Mail contact via: