APR2VOICE
Sprachausgabe von APRS-Daten
Stand: 1. Juli 2008
VORLÄUFIG,
WIRD IN KÜRZE NOCH ERWEITERT
Einleitung:
Ursprünglich von Bob Bruninga,
W4BPR entwickelt, ermöglicht das APRS-System uns Funkamateuren die
Übertragung von u.a. aktuellen ( GPS- )Positionsdaten. Werden
diese Daten beispielsweise durch Aussendung auf der Frequenz 144.8 MHz
in das
allgemeine APRS-Netz übertragen, so ist zu ihrer Auswertung in
vielen Fällen nur ein standardmäßiger Internetzugang
erforderlich.
Ein typisches Einsatzgebiet für
APRS ergibt sich im Mobilbetrieb. Häufig
beschränkt man sich dabei allerdings auf den reinen Sendebetrieb
mit Benutzung einer Funkbake zur cyclischen
Positionsdatenübertragung. Speziell
bei Fahrzeugeinsätzen würde es häufig aber reizvoll
sein, wenn sich auch das aktuelle APRS-Geschehen der Umgebung verfolgen
ließe. Einige
Industriegeräte erlauben deshalb bereits eine Displayanzeige von
Position, sowie Distanz und Richtung zu empfangenen
Gegenstationen. Die häufige Überwachung dieser Anzeigen
führt jedoch zu einer nicht unerheblichen Ablenkung des Fahrers
vom Verkehrsgeschehen und muss somit unter Sicherheitsaspekten als
problematisch angesehen werden. Um an dieser Stelle eine deutliche
Verbesserung
zu erreichen, entstand der Decoder "APR2VOICE".
Abb.1
Blockschaltbild der Gesamtanordnung für den APRS-Sende- und
Empfangsbetrieb
In Verbindung mit APR2VOICE können
KENWOOD-APRS-Funkgeräte mit integriertem TNC
oder sonstige FM-Transceiver mit separatem "OpenTracker" verwendet
werden.
Wie sein Name vielleicht
schon vermuten lässt, verarbeitet der Baustein "APRS2VOICE"
ankommende APRS-Informationen und gibt die Ergebnisse als
Sprachmessages aus. Diese lassen sich dann von allen Fahrzeuginsassen
leicht verfolgen, wobei sich die Ablenkung des Fahrers hierbei auf ein
Minimum reduziert. "APR2VOICE"
untersucht via Funk empfangene
Datenfiles auf darin enthaltene Positionsdaten. Anschliessend wird
zuerst
das Rufzeichen der absendenden Station gesprochen. Bei den für
diesen Zweck vom Verfasser zusammengestellten Sprachsegmenten wird für die Buchstaben von A-Z das sog. NATO-Buchstabieralphabet
verwendet, aber selbstverständlich hat der Anwender auch die
Möglichkeit, hier stattdessen mit eigenen Segmenten arbeiten zu
können.
Nachdem die Ansage
von
aktuellen Breiten- und Längengradangaben an dieser Stelle sehr
wenig aussagekräftig sein würde, wurde auf deren Ausgabe
verzichtet. Stattdessen werden nur die jeweiligen Werte von Distanz und
Heading-Winkel zu empfangenen Gegenstationen gesprochen. Während
Distanzwerte unter 1km in der Einheit "Meter" gesprochen werden,
erfolgt die
Ausgabe größerer Werte in Kilometern bzw. ( Land- ) Meilen. Eine komplette Sprachmessage kann
somit z.B. folgendermaßen lauten:
| delta
juliet sieben oscar oscar strich neun ist
sieben punkt sechs kilometer in drei eins vier grad |
Hier kann eine Sprachprobe gehört werden
Die Berechnung von Distanz und Winkel
erfolgt durch Auswertung a.) der via Funk von den Gegenstationen
empfangenen und b.) der aktuellen, von einem direkt angeschlossenen
GPS-Empfänger stammenden Positionsdaten ( siehe auch Abb.1 ).
Dazu ist noch anzumerken,
dass hier anstelle mit den aktuellen GPS-Daten bei Bedarf auch mit
Fix-Daten gearbeitet
werden kann. Der Anwender kann sie im EEPROM-Bereich des verwendeten
Prozessors ablegen und benötigt dann keinen zusätzlichen
GPS-Empfänger. Verständlicherweise macht diese
Möglichkeit aber nur bei stationärem Einsatz des Decoders an
einem bekannten Standort Sinn.
Damit nur die wirklich
interessierenden Stationsmessages gesprochenen werden, existieren
verschiedene Filtermöglichkeiten. So kann z.B. eingestellt werden,
dass NUR die Nachrichten von Stationen mit dem SSID-Anhang "-9" (
Mobilstationen ) gesprochen werden. Darüber hinaus lässt sich
wählen, wie weit empfangene Gegenstationen entfernt sein
dürfen, um noch verarbeitet zu werden. Hierzu sind
Maximaldistanzen zwischen 2 und 1000
Kilometern bzw. [Land-] Meilen gem. Tabelle 2 in 8 Stufen schaltbar.
Eine spätere
Firmwareversionen
soll auch noch die Eingabe ( und EEPROM-Ablage ) eines frei
bestimmbaren Rufzeichens ermöglichen. Damit kann erreicht werden,
dass auf Wunsch NUR die von diesem Absender stammenden Messages
gesprochen werden.
Abb.2 Schaltbild von "APR2VOICE"

Abb.3 Musterplatine für "APR2VOICE" ( zur Grossdarstellung
anklicken )
Technik:
Hauptbestandteil des Decoders
"APR2VOICE" ist ein Prozessor "ATMEGA32". Da dieser nur EINEN seriellen
UART-Eingang besitzt, aber zwei Eingangssignale verarbeitet werden
müssen, erfolgt deren Umschaltung über einen externen, mit einem IC "74HC157" aufgebauten
elektronischen Schalter. Gesteuert über den Prozessor-Port "PD6"
wird hierbei eine Umschaltung zwischen den vom TNC eintreffenden und
den
vom
angeschlossenen GPS-Empfänger stammenden Signalen vorgenommen. Zur
Pegelanpassung beider mit RS232-Pegel erwarteter Eingangssignale wird
ein IC "MAX232" verwendet.
Ein serieller RS232-Ausgang dient der Ausgabe von Testdaten (
Datenrate: 4800bps ). Ein Log dieser Daten kann bei
evtl. auftretenden Funktionsproblemen hilfreich werden.
Die Sprachausgabe wurde mit einem bei
Fa. Conrad erhältlichen
Baustein ( Art.-Nr. 234219-62 )
realisiert. Über seinen 8-Bit-Parallebus können bis zu 64
verschiedene Sprachsegmente aufgerufen werden. Sie müssen im
WAV-Format vorliegen und werden in der Vorbereitungsphase einmalig zum
Sprachbaustein übertragen. Der Aufruf der einzelnen Sprachsegmente
erfolgt über den Mikrocontroller-PortC.
Ein vom Sprachspeicherbaustein bereitgestellter "Busy-Puls"
( siehe Abb.2 ) ermöglicht es dem uC, die Dauer und vorallem das
Ende einer jeden Sprachsegmentausgabe zu erkennen. Dabei wird jeweils
ein Prozessor-Interrupt ausgelöst, was die Aneinanderreihung
mehrerer Segmente in schnellstmöglicher
Folge möglich macht.
Die zur Verarbeitung kommenden
aktuellen Positionsdaten stammen von einem angeschlossenen
GPS-Empfänger. Dabei werden NMEA-Protokolle des Typs:
"RMC" verarbeitet. Nachdem die Ausgabedatenraten der Empfänger
nicht immer
einheitlich sind, kann die im Prozessor von APR2VOICE abgelegte
Firmware sowohl solche mit der
Standard-Datenrate
4800bps, als auch mit 9600bps ankommende verarbeiten.
PROZESSOR-PORT
|
FUNKTION
|
PA.0
(S1)
|
siehe
Tabelle 2
|
PA.1
(S2)
|
siehe
Tabelle 2
|
PA.2
(S3)
|
siehe
Tabelle 2
|
PA.3
(S4)
|
"H"
= decod. alle Stationen
"L" = decod. nur Mobilstn.
( mit SSID: "-9" )
|
PA.4
(S5)
|
"H"
= Ref.-Position gemaess
aktueller GPS-Daten
"L" = Ref.-Position gemaess Fixdaten aus EEPROM
|
| PA.5
(S6) |
"H"
= GPS-Datenrate 4800bps
"L" = GPS-Datenrate 9600bps |
| PA.6
(S7) |
"H"
= Distanzen in
Kilometern bzw. Metern
"L" = Distanzen in
( Land- ) Meilen |
| PA.7
(S8) |
"H"
= Betriebsmode
"L" = Konfigurationsmode |
Tabelle 1: Funktionen der Schalter
S1-S8
"H" = Schalter
geöffnet; "L" = Schalter geschlossen
MAXIMALDISTANZ
( Km oder Meilen )
|
PA.0
(S1)
|
PA.1
(S2)
|
PA.2
(S3)
|
1000
|
H
|
H
|
H
|
500
|
L
|
H
|
H
|
250
|
H
|
L
|
H
|
100
|
L
|
L
|
H
|
50
|
H
|
H
|
L
|
30
|
L
|
H
|
L
|
15
|
H
|
L
|
L
|
2
|
L
|
L
|
L
|
Tabelle 2 :
Schalter S1-S3 zur Auswahl der Distanzbegrenzung für auszuwertende
Daten
"H" = Schalter
geöffnet; "L" = Schalter geschlossen
Der anzuschließende TNC
bzw. APRS-Tracker muss
in der
Lage sein, NMEA-Protokolle des Typs: "WPL" ( siehe auch Tabelle 3 ) mit
4800bps bereitzustellen. Das
können z.B. alle APRS-tauglichen KENWOOD-Geräte, wie TH-D7,
TM-D700 und auch das neue TM-D710, wobei die Signale hierbei an einem
normalerweise wenig beachteten Ausgangs-Pin der
GPS-Anschlussbuchse zur Verfügung gestellt werden.
| $GPWPL,4845.42,N,00824.47,E,DB0TFM-6*3F |
Tabelle 3 :
Beispiel für den Aufbau eines NMEA-Satzes Typ: "WPL"
(
<header>,<latitude>,<n/s>,<longitude>,<e/w>,<ident/callsign>*<checksum>
)
Wer kein solches KENWOOD-Gerät besitzt,
der kann stattdessen aber auch einen der preisgünstig
erhältlichen "OPEN-TRACKER"
von Scott Miller, N1VG ( in DL erhältlich
bei: www.jaeger-edv.de ) oder
einen "TinyTrak4" von www.byonics.com
verwenden. Dabei ergibt sich sogar noch der Vorteil,
daß diese Tracker in Verbindung mit ( fast ) jedem
handelsüblichen
Amateurfunk-FM-Transceiver eingesetzt werden können..
Abb.4 Erster Musteraufbau der
APR2VOICE-Decodereinheit unter Verwendung einer ELEKTOR-Platine
und eines "Opentrackers" OT1+ SMT.
Da der für die Eingangssignalauswahl benötigte
elektronische Umschalter bei dieser Platine fehlt,
ist hierbei NUR Betrieb mit
fixen Eigenstandorten möglich.
Hier
findet man noch weitere Informationen zum benutzten
Sprachspeicherbaustein:
http://www.kh-gps.de/speedtalk.htm
Zu der für das erste Muster verwendeten ELEKTOR-Platine und auch
zum "OpenTracker" gibt es hier weitere Infos:
http://www.kh-gps.de/lcdtrak.htm
NOCH ETWAS ZUM GUTEN SCHLUSS:
Zum Langzeittesten des APR2VOICE-Decoders benutzte ich auf der
Frequenz 144.8MHz empfangene Live-Daten. Dabei kam es aber leider immer
wieder vor,
dass sich das Empfangsprogramm in unregelmäßigen
Zeitabständen aus vorerst unerfindlichen Gründen
"aufhängte" und die weitere Verarbeitung von Eingangsdaten
unterbrochen wurde. Durch kurzes Betätigen der
Programm-Reset-Taste konnte der Decoder dann zwar auch wieder zum
Weitermachen veranlasst werden, aber eine endgültige Lösung
war das natürlich nicht. Ich versuchte dem Problem auf die Spur zu
kommen, in dem ich unterschiedliche Varianten von Teilen der
Decodersoftware austestete. Nach jeder Änderung musste das
Ergebnis aufs Neue
compiliert und zum Mikrocontrollerbaustein übertragen werden,
worauf dann immer auch wieder die langwierige Prüfphase mit
Auswertung der Live-Daten begann. Wenn dann nach längerem
Decoderbetrieb noch kein Fehlverhalten aufgetreten war, hoffte ich den
Durchbruch geschafft zu haben, aber danach kam es dann doch immer
wieder irgendwann zum Aufhängen des Programmes. Es war zum
Verzweifeln. Die gesamte
Testphase zog sich mehrere Tage hin, ohne dass ein
durchschlagender Erfolg zu verzeichnen war. Immerhin konnte das Problem
dabei aber dahingehend eingekreist werden, dass es mit der Auswertung
der
Absender-Rufzeichen zusammenhängen musste. Deren Aufbau hatte ich
auch in Hinblick auf ggf. anhängende SSID's studiert und ging
davon aus, dass meine Software hierbei auch alle denkbaren
Varianten erfassen würden. Bei näherer Untersuchung der
jeweils zum Programmabsturz führenden APRS-Messages stellte sich
dann aber heraus, dass es auf der APRS-Frequenz die in etwa
einstündlichem Abstand erfolgenden Aussendungen einer Station gab,
die sich des doch etwas sehr eigenwilligen amtlichen Rufzeichens:
"Grillfest" bediente, was mein Decoder in der derzeitigen Version nun
aber überhaupt nicht mochte. Ohne Probleme wäre es noch
verlaufen,
wenn man hierbei wenigstens auf die Aussendung von Kleinbuchstaben
verzichtet hätte, aber so............
Nach erneuter Softwareänderung kommt der Decoder inzwischen aber auch mit Stationen
wie "Grillfest" und ( hoffentlich ) allem was hier ansonsten noch
kommen
könnte zurecht.