Ein
APRS-Datendecoder
auf ARDUINO-Basis
mit Displayanzeige und Sprachausgabe
In Bearbeitung
NEU: Zu
diesem Projekt gibt es auch ein von Peter, DG3SMA angefertigtes Video.
Es zeigt auch seinen Aufbau und kann hier aufgerufen werden:
Abb.1 Datendecoder "APRSPEAK-3"
im Einsatz
Schon mehrfach [1],[2],[3],[4] hatte ich mich
mit der Decodierung, Anzeige und auch Sprachausgabe empfangener
APRS-Daten
beschäftigt. Das Problem dabei war, dass diese nur von wenigen
Funkgerätetypen bzw. Trackern in einem zur Decodierung geeigneten
Format bereitgestellt wurden. Abhilfe brachte hier eine erst
kürzlich
von OZ7TMD bereitgestelle ARDUINO-Library [7]. Durch ihre Verwendung
ist eine deutlich vereinfachte Erstellung von APRS-Encoder und
-Decodersoftware möglich. Ihr Einsatz ermöglicht dabei auch
die Realisation von
Baugruppen, die eine direkte Verarbeitung der von nahezu beliebigen
FM-Funkgeräten bzw. Empfängern bereitgestellten Tonsignale
erlaubt.
Abb.2. Decoderbaustein "APRSPEAK-3"
Auch als Ergebnis vorheriger Versuche entstand
so der in Abb.2 dargestellte
Decoderbaustein "APRSPEAK-3". Zur Abdeckung aller benötigten
Funktionen werden bei ihm zwei Prozessorboards des Typs ARDUINO
"Pro
Mini" in der 3.3V-Version eingesetzt. Der Grund für diese
2-Chip-Lösung waren Probleme im Programmablauf, die wenn auch nur
selten, bei Verwendung nur eines gemeinsamen
Prozessors auftraten. Bei der daraufhin gewählten
Alternativlösung
dient "Modul 1" ausschliesslich der Decodierung von
AFSK-Eingangsdaten. An
seinem seriellen Ausgang stehen sie als
Rohdaten im Standard-APRS-
und im MIC-E-Format
zur
Verfügung.
Die Datenrate beträgt dabei 9600bps.
"Modul 2" übernimmt die weitere Verarbeitung mit Steuerung eines
0.96"-OLED-Displays und eines DFROBOT-Sprachchips "DFPlayer" [10],[11].
Dieser wird
über seine serielle Schnittstelle angesprochen und erlaubt
dabei den gezielten Aufruf von bis zu 256, vorher auf einer
einsteckbaren Micro-SD-Speicherkarte ablegbaren MP3-Sprachsegmenten.
Mithilfe des Mikrocontrollers werden sie in einer Weise kombiniert,
die eine Sprachausgabe von Rufzeichen empfangener Gegenstationen,
von Höhenwerten ( soweit verfügbar ) und auch den aus
empfangenen Navigationsdaten und
einem Referenzstandort berechneten Distanz- und Richtungswerten
erlaubt.
Abb.3. Beispiel einer Displayanzeige
Das Beispiel
einer Displayanzeige geht aus Abb.3 hervor. Neben der Anzeige von
Rufzeichen empfangener Stationen sehen wir in der oberen Zeile einen
nach jeder
erfolgreichen Dateneinlesung incrementierenden Zähler. Weiterhin
angezeigt werden Distanz- und Richtungswerte bezogen auf einen entweder
fest im Programm abgelegten oder von einem angeschlossenen
GPS-Empfänger stammenden aktuellen Referenzstandort. In der
unteren Zeile finden wir den aus empfangenen Standortdaten berechneten
Maidenhead-Locator und ( wenn verfügbar ) die in
Empfangsprotokollen enthaltene Höhendaten.
Abb.4. Schaltbild der
Decoderanordnung ( siehe Text )
Abb.4 zeigt das
Schaltbild der gesamten Decoderanordnung. Die innerhalb gestrichelter
Rechtecke
gezeichneten Bauteile werden nur benötigt, wenn zusätzliche
auch ein Betrieb als APRS-Sendebake gewünscht wird. Diese
Funktion ist allerdings vorerst nur in Planung. Tabelle1 zeigt die
Funktionen der
Schalter S1-S4.
|
OFFEN
|
GESCHLOSSEN
|
S1
|
ohne
Funktion
|
ohne
Funktion
|
S2
|
sprechen
von DISTANZ und RICHTUNG
|
Funktion
deaktiviert
|
S3
|
sprechen
von Höhenwerten
( wenn verfügbar )
|
Funktion
deaktiviert
|
S4
|
Referenzposition
"FIX"
( im Programmcode abgelegt )
|
Referenzposition
von externem GPS-Empfänger
|
Tabelle 1
Das
für dieses Projekt erstellte Platinenlayout ist aus Abb.5 und 6
ersichtlich. Leider stellte sich erst nach Erhalt der ersten Marge
heraus, dass an einer Stelle ( siehe Abb.6 ) eine Verbindung fehlte,
wobei diese jedoch sehr einfach nachrüstbar ist. Gewollt sind
dagegen die auf der Unterseite zu erkennenden beiden Querverbindungen
für die Signale "#A4" und "#A5".
Abb.5. Platinenlayout
WICHTIGER
HINWEIS!
Bei Entwurf des Platinenlayouts
wurde von der seinerzeit festgestellten Pinbelegung der
0.96"-I2C-OLED's
ausgegangen. Inzwischen wurden nun aber auch Display-Varianten
festgestellt, bei denen leider die beiden Pins für
Betriebsspannung und Masse
gegenüber der ursprünglich benutzten Version vertauscht sind.
Ein Anschluss dieser Displays, ohne dass die beiden
Zuführungsleitungen
auf der Platine vorher entsprechend geändert wurden, führt zu
deren sofortiger Zerstörung. Die
entsprechende Beschriftung der einzelnen Pins auf den Displays ist
somit sorgfältig zu
beachten.
Eine spätere Platinengeneration wird den Anschluss beider
Display-Varianten dann auch ohne notwendige zusätzliche
Platinennachbearbeitung erlauben.
|
Abb.6. auf der Unterseite
erforderliche Querverbindungen und nachzurüstende ( hier rot
markierte ) Drahtbrücke
Adaption
eines Bluetoothadapters mit Möglichkeit zur Kartendarstellung von
APRS-Positionsdaten mithilfe von ANDROID-Smartphones/Tablets
Sehr einfach ist auch eine Kartenanzeige
empfangener Positionsdaten mithilfe von Smartphones bzw. Tablets
realisierbar. Eine hierfür sehr gut geeignete und
einfach
einsetzbare ANDROID-APP ist "W2APRS" ( siehe Abb.7 ) des japanischen
Funkamateurs JA7UDE [6]. Verwendbar ist aber auch die bekannte
"APRSDROID" von Georg Lukas, DO1GL.
Abb.7. Beispiel für
Kartendarstellung
mithilfe der W2APRS-Softwate am Andoid-Smartphone
Um
eine der genannten APP's empfangsmäßig nutzen zu
können, ist eine
Verbindung zwischen dem Smartphone/Tablet und dem Datenausgang unseres
"Modul 1" herzustellen. Das erfolgt auf einfachste Weise via
BLUETOOTH und Verwendung eines Moduls, so wie es z.B. in Abb.8
zu sehen ist [9].
Defaultmäßig ist es bereits für eine Datenrate von
9600bps
konfiguriert und arbeitet damit mit der gleichen Rate, wie sie auch
am Ausgang des Prozessormoduls "Modul 1" verwendet wird. Die Bausteine
"Modul 2", "OLED" und
"DFPLayer" sind für diese Anwendungsvariante nicht unbedingt
erforderlich, so dass sich insgesamt nur eine sehr einfache Anordnung
gem. Abb.9
ergibt.
Der Aufbau einer Bluetoothverbindung ( Pairing )
erfolgt auf die
übliche Weise ausgehend vom verwendeten Smartphone/Tablet.
Abb.8. Bluetoothmodul
Abb.9. APRS-Decoder mit angeschaltetem
Bluetooth-Modul ( Minimalkonfiguration )
Erweiterung zum Betrieb als
APRS-Sendebake
Programmierung
von ARDUINO Pro Minis
ARDUINO "Pro
Mini's" benötigen zur Programmierung einen externen "USB zu
TTL-Adapter". Ich bevorzuge an dieser Stelle den "UM2102" von ELV [8]
und
verwende dabei eine Anordnung gem. Abb.10. Mehr zur Programmierung
genannter ARDUINO's ist auch hier [5] nachzulesen.
Abb.10. Programmieranordnung
für ARDUINO "Pro Minis" mithilfe eines USB-Adapters "UM2102"
von ELV
Nachbau
und Inbetriebnahme
In Bearbeitung
Zum Nachbau der
Decodereinheit "APRSPEAK-3" stehen hier in Kürze das
zugehörige ARDUINO-Sketch, die zum Betrieb des
Sprachausgabebaustein erforderliche Library und ein Satz der
verwendeten MP3-Sprachsegmente zum Herunterladen bereit. Für
Letztere ist auf der in Verbindung mit dem Sprachspeicherbaustein
verwendeten Micro-SD-Speicherkarte ein Unterordner mit dem Namen
"mp3" zu erstellen. Dort hinein sind die einzelnen MP3-Dateien zu
kopieren.
Dank
an OZ7TMD, LZ1PPL,
HB9TWS, DB1NTO
Linkliste
E-Mail
contact via: