"APRSPEAK-3"
Ein APRS-Datendecoder auf ARDUINO-Basis
mit Displayanzeige und Sprachausgabe
In Bearbeitung
Stand: 24. Januar 2018

  Here is automatic translation made by Google:
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%2Faprspeak3.htm&edit-text=

NEU: Zu diesem Projekt gibt es auch ein von Peter, DG3SMA angefertigtes Video. Es zeigt auch seinen Aufbau und kann hier aufgerufen werden:
https://youtu.be/S-wt9EOdMKE

  Sprachprobe:  http://www.kh-gps.de/aprspeak1.mp3



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
in Vorbereitung

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

[1]  http://www.kh-gps.de/aprspeak.htm
[2]  http://www.kh-gps.de/calltalk.htm
[3]  http://www.kh-gps.de/aprspeak2.htm
[4]  http://www.kh-gps.de/ardu_tft.htm
[5]  http://www.kh-gps.de/gps_dec.htm
[6]  http://www.kh-gps.de/w2aprs.htm
[7]  http://unsigned.io/projects/libaprs/
[8]  http://www.elv.de/mini-usb-modul-um2102-komplettbausatz.html
[9]  http://eckstein-shop.de/HC-06-Wireless-Bluetooth-Modul-Host-Slave-Integration-RS232-TTL-33-5V-Board
[10] http://www.dfrobot.com/index.php?route=product/product&product_id=1121#.VaYs39CkViY
[11] http://www.komputer.de/zen/index.php?main_page=product_info&cPath=22&products_id=298

E-Mail contact via: