SPEEDTALK
Sprachausgabe GPS-gestützter Geschwindigkeitsdaten
 

Version vom 12. Juni 2007


  SPEEDTALK is a simple application for converting GPS speed data into sound.  It is using a standard ATMEL processor and a sound modul like being available from http://www.conrad.com.  ( search for Part-No. 234219 ). Input is 4800bps NMEA ( RMC sentences ) from GPS receivers. Voice output is in KMPH or KNOTS. Different pauses in range from 0 to 60 seconds are selectable by using switches S1-S6.  Please listen to sound sample.

Unlängst habe ich im neuen Conrad-Modellbaukatalog 2007/2008 einen Baustein ( Abb.1 ) entdeckt, der mein Interesse erweckte. Dabei handelt es sich um ein digitales Soundmodul, das die Speicherung von bis zu 64 WAV-Soundfiles und deren einzeln adressierbare Wiedergabe gestattet. Das Modul schien mir eine nahezu ideale Möglichkeit zu eröffnen, um dort diverse kurze Sprachsegmente für den späteren freien Zugriff ablegen zu können. Dabei dachte ich z.B. an die Speicherung von Ziffernwerte und Kurztexte beinhaltenden WAV-Files, wobei die spätere Wiedergabe durch Aufruf von einer Mikrocontrolleranordnung gesteuert werden sollte. Auf vorgesehene Weise würden sich mit relativ wenig Aufwand Messgrössen aller Art als   Sprachmessages ausgeben lassen.


Abb.1 Soundmodul

Um mehrere Sprachsegmente ggf. in schnellstmöglicher Folge ausgeben zu können, benötigte ich für den Mikrokontroller noch ein Kriterium, das ihm die jeweiligen Endzeitpunkte  aktueller Segmentausgaben signalisieren konnte. Obwohl in der Ursprungsversion des Soundmoduls nicht vorgesehen, führte der österreichische Modulhersteller in kürzester Zeit eine Firmwaremodifikation durch, so dass seither auch die benötigten Busy-Flags zur Verfügung stehen.

Eine erste Versuchsapplikation sollte die von GPS-Empfängern zur Verfügung gestellten Geschwindigkeitswerte in Sprache umsetzen. Dabei wurde erst einmal auf bereits im WAV-Format vorhandene englische Sprachsegmente zurückgegriffen, obwohl sie ursprünglich für ein andere Aufgabe erstellt worden waren. Das zugehörige Prozessor-Programm wurde in BASCOM-AVR realisiert.

  Ein erstes Ergebnis kann hier als Soundprobe gehört werden.

Für den Einsatz wurde ein ATMEGA-Prozessortyp gesucht, der
mindestens einen in seiner gesamten Breite komplett nutzbaren 8 Bit-Port zur Steuerung des Soundmoduls zur Verfügung stellen konnte. Obwohl von der Programmgröße gesehen nicht erforderlich, habe ich mich daraufhin für den Typ ATMEGA32 ( auch Nutzung des ATMEGA16 ist möglich ) entschieden.
Aus Gründen der Einfachheit kam für den ersten Musteraufbau ein im Mai 2006 in der Zeitschrift ELEKTOR beschriebenes ATMEGA-Universalboard zum Einsatz ( Abb.2 ). Bereits ohne jegliche Modifikation ist es für unser Projekt gut nutzbar. Mehr zu diesem Board findet man hier: http://www.elektor.de/jahrgang/2006/mai/mini-mega-board.64106.lynkx


Abb.2  Musteraufbau der Prozessoranordnung mit dem Board aus
ELEKTOR, Heft Mai 2006,  Seite 38-42 ; Platinenbezeichnung: EPS 050176-1


Verarbeitet werden die von GPS-Empfängern mit 4800bps ausgegebene NMEA-Daten, wobei hier der RMC-Datensatz zur Auswertung kommt. Abb.3 zeigt die benutzte Schaltanordnung in ihrer Minimalkonfiguration. Sie weist keine Besonderheiten auf.


Abb.3 Schaltbild  SPEEDTALK ( Basisversion )
Anm: Der serielle Datenausgang ist derzeit ohne Funktion

Bei Verwendung des ELEKTOR-Boards ergeben sich über die in Abb.3 gezeigte Minimalkonfiguration hinaus noch einige Vorteile. So ist damit eine "In-Circuit-Programmierung (ICP)" durchführbar und weiterhin besteht die Möglichkeit zur Bestückung einer LED-Zeile. Sie kann der Überwachung von Vorgängen an den Steuerausgängen in Richtung Soundmodul dienen und damit u.U. sehr hilfreich sein.
Mithilfe der Schalter S1-S8 sind verschiedene Betriebseinstellungen vornehmbar. So dienen  S1 - S6 der Wahl des zeitlichen Verzögerungswertes zwischen zwei Sprachausgaben. Neben der systenbedingten und durch die Ausgabefolge des angschlossenen GPS-Empfänges bestimmten Verzögerung, entstehen bei geöffneten Schaltern zusätzlich keine nennenswerten zeitlichen Beeinflussungen. Wenn einzeln geschlossen, verzögern die Schalter S1 - S6 die Pausen zwischen den ausgegebenen einzelnen Sprachblöcken um 2, 4, 8. 15, 30 oder 60 Sekunden.
Mit S7 kann eine Auswahl zwischen der Ausgabe von Werten in "Km/h" ( S7 offen ) oder "Knoten" ( S7 geschlossen ) getroffen werden. Durch Schliessen von S8 kann zudem die Sprachausgabe der Maßeinheitsbezeichnungen unterdrückt werden.


Abb.4 Das Sprachmodul und seine Anschaltung

Wie auch aus dem Schaltbild Abb.3 ersichtlich, kann die Zusammenschaltung zwischen Modul und Controllerboard auf einfache Weise erfolgen. Nachdem das Soundmodul eine eigene interne Spannungsregulierung besitzt, wurden seine Versorgungsanschlüsse nur einfach parallel zu denen des Mikrokontrollerbausteins geschaltet.
Die Steuerung der einzelnen Sprachsegmente erfolgt über acht Eingänge ( control inputs ). Abhängig vom gewünschtem Soundsegment müssen bestimmte Eingänge nach einer etwas gewöhnungsbedürftigen Logik gegen Masse geschaltet werden. Wen es interessiert, der kann dazu Näheres dem zugehörigen Handbuch entnehmen. Soll dagegen nur die für diese Anwendung erstellte Prozessor-Software samt zugehöriger Sounddatei benutzt werden, so muss man sich um diese Einzelheiten nicht selbst kümmern. 
Ein Pin des Sprachmoduls ( siehe Abb.4 ) liefert das schon oben erwähnte Busy-Signal. Während aktiver Sprachsegmenteausgaben geht hier die Spannung auf "H"-Pegel. Die folgende negative Pulsflanke bewirkt eine Interruptauslösung über Prozessor-Port D2 , worauf eine ggf. laufende Warteschleife beendet und der sofortige Aufruf eines nächsten Sprachsegments initiiert werden kann.
Der integrierte Audioverstärker ist mit einer Sprechleistung von 1.4 W spezifiziert. Hierbei warnt der Hersteller vor dem Einsatz von Lautsprechen kleinerer Impedanz als 8 Ohm. Sie sollen zur Zerstörung der Leistungsendstufe führen können. Ersatzweise können auch zwei in Serie geschaltete 4 Ohm-Lautsprecher angeschaltet werden. Eine weitere Möglichkeit besteht darin, einem 4 Ohm-Lautsprecher noch einen z.B. 3.9 Ohm-Festwiderstand ( 1W-Version ) in Reihe zu schalten. Darüberhinaus besitzt das Modul noch einen Line-Ausgang, über den bedarfsweise auch ein externer Verstärker angeschlossen werden kann.

Weitere Infos zum Sprachmodul  findet man im CONRAD-Modellbau-Katalog 2007/2008, Seite 272 oder auch über die Firmenhomepage http://www.conrad.de . Dort sollte man eine Suche unter Eingabe seiner Best.-Nummer: 234219 starten. Das ansonsten bei Modulbestellung mitgelieferte Handbuch ( auf CD ) kann man dort schon einmal vorab herunterladen und studieren.
Zum Up- und Download der einzelnen Sprachsegmente ist das Soundmodul mit einer USB-Schnittstelle ausgestattet. Hierüber ist zeitweilig der PC anzuschliessen, auf dem die mitgelieferte Installationssoftware installiert ist. Mithilfe dieses Programmes kann eine Liste der einzelen WAV-Sprachsegmente erstellt und als Block zum Soundbaustein übertragen werden. Alle für unserer Projekt benötigten Segmente wurden dazu bereits in einer gemeinsamen Datei zusammengefasst. Sie trägt den Namen: "speed1.img" und kann HIER heruntergeladen werden. Die einzelnen Sprachsegmente liegen dort auch in der erforderlichen Reihenfolge vor. Somit muss die Datei ( ca. 300kB ) nur noch mithilfe der Installationssoftware aufgerufen und zum Soundmodul übertragen werden.


Verwendbare GPS-Empfänger

Zum Anschluss geeignet sind alle GPS-Empfänger, die einen seriellen Datenport besitzen und darüber auch NMEA-Datensätze des Typs "RMC" ausgeben. Dabei muss mit einer Baudrate von 4800bps gearbeitet werden, was aber dem Standardwert entspricht. Zur Verarbeitung der Signale sind die Mikrokontroller-Boards mit einem Baustein MAX232 o.ä. ausgestattet, der hier üblicherweise RS232-Pegelwerte erwartet. Sollten Empfänger eingesetzt werden, die ihre Daten nur mit TTL-Pegel abgeben, so lassen sich diese Signale direkt an den seriellen Prozessoreingang PD1 ( Pin 15 ) legen. In diesen Fällen ist der Baustein MAX232 zu entfernen. 

Nachbau

Es ist beabsichtigt, das zur Selbstprogrammierung benötigte Codefiles hier zur privaten Nutzung bereitzustellen. Anfragen bezüglich bereits programmierter ATMEGA-Bausteine können an den Verfasser gerichtet werden.