APRSPEAK2 mit dem ARDUINO oder
"Was tut sich auf der APRS-Frequenz 144.8 MHz ?"
APRS is registered Trademark by Bob Bruninga, WB4APR
11. Juli 2014

Mein Wunsch war die laufende Beobachtung von Aktivitäten auf der APRS-Frequenz 144.8 MHz und das vorzugsweise im heimischen Shack. Deshalb habe ich mich schon seit einiger Zeit mit der Decodierung der auf dieser Frequenz von anderen Amateurfunkstationen ausgesandten Positionsdaten beschäftigt und dazu auch schon mehrfach etwas geschrieben [1],[2]. Bisher weitgehend unbeachtet werden diese Daten von vielen APRS-tauglichen Transceivern und APRS-Trackern über eine entsprechende serielle Schnittstelle bereitgestellt. Mehr zu dem dabei benutzten Datenformat folgt weiter unten.


Abb.1

Mit "APRSPEAK2" existiert nun die vorläufig letzte Version eines Decoders für genannte Daten. Auf eine direkte Anzeige empfangener Positionsdaten ( Längen- und Breitengrade ) wurde dabei bewusst verzichtet. Stattdessen nimmt das Programm jeweils eine Berechnung von Distanz und Winkel bezogen auf einen im Programmcode fest abzulegenden Standort vor. Abb.1 zeigt das Beispiel für eine sich daraufhin ergebende Displayanzeige. Ein erkennbarer Aufwärtszähler ( 000-999 ) registriert zudem die einzelnen Protokolleinlesungen.
Für eine spätere Softwareversion ist geplant, anstelle eines fixen Referenzstandortes bei Bedarf auch noch die von einem zusätzlich angeschlossenen  GPS-Empfänger stammenden aktuellen Positionswerte verarbeiten zu können. Diese vorallem für den mobilen Einsatz interessante Variante wurde bisher aber noch nicht realisiert.

Sprachausgabe

Eine Besonderheit ergibt sich durch die Möglichkeit der zusätzlichen Sprachausgabe empfangener Rufzeichen ( ggf. incl. SSID ), sowie von Entfernungs- und Richtungsangaben, wobei sich Letztere im Bedarfsfall auch unterdrücken lassen. Das aktuelle Geschehen auf der APRS-Frequenz lässt sich damit leicht auch während der Ausübung anderer Shackaktivitäten verfolgen. NEU ist an dieser Stelle allerdings die Möglichkeit zur Einschränkung der Distanzbereiche, die eine Sprachausgabe bewirken. Unter Verwendung der zum LCD Keyboard Shield gehörenden SELECT-Taste ist dabei eine Auswahl in 10 Stufen entsprechend Tabelle1 möglich.
Anm.: Mit Beschränkung auf die LCD-Anzeige kann der Sprachdecoderbaustein bei Bedarf auch entfallen.

   Muster für Sprachausgaben

step max. distance for spoken data
0
no Voice
1
1 Km/Miles
2
5 Km/Miles
3
10 Km/Miles
4
25 Km/Miles
5
50 Km/Miles
6
75 Km/Miles
7
150 Km/Miles
8
300 Km/Miles
9
unlimited
Tabelle1  Auswahl der max. Distanzen für Sprachausgaben


Abb.2  APRSPEAK2-Gesamtanordnung mit Arduino UNO-Board, DFRobot LCD Keyboard Shield und DFRobot MP3 Player Modul
( zur Darstellung in Originalgröße anklicken )

Welches Eingangsdatenformat wird verarbeitet und
welche APRS-Geräte stellen entsprechende Daten bereit?


Im Normalzustand verarbeitet der Decoder Daten nach NMEA 0183 mit einer Rate von 9600bps. Hierbei geht es um Protokolle des Typs: "GPWPL". Neben dem Header beinhalten diese lediglich Werte von Breitengrad, Längengrad, einem Wegpunktnamen und der CRC-Prüfsumme. Im Amateurfunkeinsatz entspricht der Wegpunktname dabei dem Rufzeichen der absendenden Station. 


Beispiel für ein NMEA-Protokoll des Typs: "GPWPL

Alle in der folgenden Tabelle gelisteten Geräte ( ohne Anspruch auf Vollständigkeit ) sind in der Lage, Daten empfangener Stationen nach "GPWPL" bereitzustellen.
Ggf. sind vorher allerdings noch einige Konfigurationseinstellungen ( siehe dazu das jeweils zugehörige Handbuch ) durchzuführen.

Kenwood-TH-D7[A/E]
Kenwood TH-D72[A/E]
Kenwood TM-D700[A/E]
Kenwood TM-D710[A/E]
Yaesu VX-8G[E/R]
Yaesu FT1D[E/R]
Yaesu FTM-400D[E/R]
Byonics Tinytrak4
ArgentData Opentracker+ (OT1+)
ArgentData Tracker2 (T2)
ArgentData Tracker3 (T3)
RPC Electronics LLC 
Express Tracker


Wer kein Gerät mit passender WPL-Datenschnitttstelle besitzt, der sei auf die als Alternativlösung geeigneten Ein-Chip-Decoder "Simpler TRX7" bzw. "Simpler TRX8" von N0QBH verwiesen. In einem entsprechenden Abschnitt im unteren Teil meiner älteren Seite [1] oder auch [8] gibt es dazu weitere Informationen. Bei Verwendung dieser Decoder ist allerdings zu beachten, dass ihre Ausgangsdatenrate bei 4800bps liegt, so dass in diesem Fall auch die serielle Eingangsrate des ARDUINO-Decoderprogramms entsprechend anzupassen ist.

Nachbau

Zur wesentlichen Vereinfachung der Nachbaubarkeit basiert die Hardware des Decoders inzwischen weitgehend auf fertig erhältlichen ARDUINO-Baugruppen. Das Grundgerüst bilden dabei ein "UNO"-Prozessorboard und ein fertig erhältliches aufsteckbares LCD Keyboard Shield [3],[6] ( siehe Abb.1 ).  Zur Verarbeitung der von einem angeschlossenen Transceiver/Tracker mit RS-232-Pegel gelieferten WPL-Standortdaten ist lediglich noch ein zusätzlicher Transistor zur Wandlung auf TTL-Pegelwerte erforderlich ( siehe Abb.2 ). Ein für die Kenwood-Geräte passender Kabeladapter lässt sich auf einfachste Weise mit dem bei Fa. REICHELT erhältlichen NF-Kabel "NFKE SW25" [5] aufbauen ( Abb.3 ).


Abb.3   mögliches Selbstbau-Adapterkabel 
( Die Abschirmung ist mit der Decoder-Masse und die weisse Ader mit seinem seriellen RS-232-Eingang zu verbinden )


Als Sprachausgabemodul wird ein preiswert erhältlicher MP3-Player von DFRobot verwendet [4],[7]. Auf einfache Weise ist diese Baugruppe über ihre serielle Schnittstelle ansprechbar. Der integrierte NF-Leistungsverstärker erlaubt dabei den direkten Anschluss eines kräftigen Lautsprechers. Das Modul ist mit einem Steckplatz für handelsübliche Micro-SD-Speicherkarten ausgestattet. Wie weiter unter noch ausführlicher zu beschreiben sein wird, sind hierauf die einzelnen zur Sprachausgabe benötigten MP3-Files zu kopieren, so dass sie sich später je nach Bedarf programmgesteuert abrufen lassen.

Ein ZIP-File mit dem benötigten ARDUINO-INO-Programm,  einer Library für die verwendeten Sprachmoduln und einem Mustersatz an MP3-Sprachdateien ( in Englisch ) wird hier in Kürze bereitgestellt werden.

Inbetriebnahme

Zur Programmanpassung und zum Hochladen in den Speicher des verwendeten Mikrocontrollers wird die kostenlos aus dem Internet herunterladbare ARDUINO-IDE verwendet.
Der Umgang mit ARDUINO-Programmen wird dabei an dieser Stelle als bekannt vorausgesetzt.
Nachdem sich die auf dem Display des Decoders angezeigten Werte von DISTANZ und RICHTUNG auf eine fest im Programmcode abzulegende Referenzposition beziehen, sind die hierbei vom Nutzer gewünschten Werte von Breiten- und Längengrad vorher noch in den Programmcode einzufügen ( Programmzeile xx ). Die Werte müssen dabei als Gradwert mit üblicherweise einigen Nachkommastellen
( [G][G]G.ggg ) eingegeben werden. Eine Nutzung von Formaten wie z.B.: "Grad, Minute, Sekunde" führt dagegen zu fehlerhaften Ergebnissen. Meine ältere Seite [2] enthält u.a. auch Hinweise zur entsprechenden Umrechnung.
Zur Ermittlung gewünschter Positionswerte ist aber beispielsweise auch das Programm GOOGLE-EARTH gut geeignet. Nach entsprechender Konfiguration lassen sich die hiermit ermittelten Positionsdaten dabei auch bereits im benötigten Gradformat anzeigen.

  WICHTIGER HINWEIS:   Während des Hochladens von Programmen in den Speicherbereich des Prozessors ist die Brücke "JP1" (Abb.2)  zu öffnen.

Die mit dem ZIP-File herunterladbaren ( oder selbst generierten ) MP3-Sprachfiles sind auf der in Verbindung mit dem Sprachmodul verwendeten Micro-SD-Speicherkarte abzulegen. Dazu ist die Karte allerdings vorher erst einmal mithilfe eines PC's entsprechend vorzubereiten. Viele PC's sind bereits mit einem Schlitz zum Einschub von SD-Karten ausgestattet, so dass in solchen Fällen lediglich noch ein Adapter auf das Micro-Kartenformat erforderlich ist. Alternativ gibt es aber auch Speicherkartenadapter mit USB-Anschluss.
Das Einstecken einer Speicherkarte wird der PC üblicherweise durch Anzeige eines neuen Laufwerksbuchstabens signalisieren. Nach seinem Aufruf sind die benötigten MP3-Sprachfiles in einen vorher unter dem Namen "mp3" angelegten Unterordner zu kopieren.


Zur Ausgabe von Distanzwerten in Meilen erforderliche Programmänderungen

geplant

Linkliste

[1]  http://www.kh-gps.de/aprspeak.htm
[2]  http://www.kh-gps.de/ardudec.htm
[3]  http://www.dfrobot.com/index.php?route=product/product&filter_name=lcd%20keyboard%20shield&product_id=51#.U7KUzZR_uwQ
[4]  http://www.dfrobot.com/index.php?route=product/product&product_id=1121#.U7KUEJR_uwQ
[5]  http://www.reichelt.de/Klinkenstecker/NFKE-SW-25/3/index.html?;ACTION=3;LA=446;ARTICLE=109575;GROUPID=5170;artnr=NFKE+SW+25;
[6]  http://www.komputer.de/zen/index.php?main_page=product_info&cPath=0&products_id=33
[7]  http://www.komputer.de/zen/index.php?main_page=product_info&cPath=22&products_id=298
[8]  http://www.kh-gps.de/n0qbh.htm

E-Mail contact via: