Using
low power radio modules type
HM-TRPxxx for sending GPS or other serial data.
Automatic translation by Google Translator:
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