Sprechender Kompass 
Version vom 11. August 2010

Schon seit längerer Zeit beschäftige ich mich mit der Sprachausgabe elektrischer Werte. Hierfür gibt es eine Fülle von Anwendungen. Oft sind sie nicht auf Anhieb erkennbar. So kann eine Sprachausgabe z.B. bewirken, daß bei Wertausgabe kein ablenkender Blick auf ein Display erfolgen muss, was ggf. auch zur Verbesserung der Sicherheit beitragen kann. Auch im Bereich der Sehbehinderten ist eine Ansage oftmals die einzige Möglichkeit zur Übermittlung irgendwelcher Vorgänge. Somit war ich ständig auf der Suche nach geeigneten Sprachausgabebausteinen und habe in diesem Zusammenhang mit den verschiedensten Produkten experimentiert. Unlängst wurde ich dabei auf den Baustein SOMO-14D [1] der australischen Firma 4DSYSTEMS aufmerksam ( Bezugsquellen: [4],[5] ). In Vergleich zu anderen Produkten, die ähnliche Einsatzmöglichkeiten bieten, ist er auch verhältnismäßig preiswert. Interessant machen ihn aber auch seine geringen äußeren Abmessungen und die Fähigkeit, leicht über einem Microcontroller ansprechbar zu sein. 
Gesprochen werden die Inhalte von Sprachfiles, die dazu vorher einmalig auf einer Micro-SD-Karte abzulegen sind. Verwendet wird hier das etwas exotische aber speicherplatzsparende AD4-Format. Dazu kann von der Homepage der Firma ein Windows-Tool heruntergeladen [3] werden, mit dessen Hilfe eine Convertierung herkömlicher WAV- oder MP3-Files in das benutzte Format möglich ist.
Die Verarbeitung von Messwerten zur Sprachausgabe erfolgt auf die Weise, daß einzelne zu sprechenden Segmente, wie Ziffern, Masseinheiten, Wertbezeichnungen vorher einzeln unter einem bestimmten Filenamen auf der Speicherkarte abgelegt wurden und dann mithilfe einer Microcontroller-Software je nach Bedarf in der gewünschten Reihenfolge abgerufen werden. So erfolgt zur Sprachausgabe eines Messwertes von z.B. "231 Grad" zuerst der Aufruf der drei diesen Ziffern zugeordneten Sprachsegmenten ( 0002.ad4; 0003.ad4; 0001.ad4 ) gefolgt von dem Filenamen 0010.ad4 unter dem das Wort "Grad" gespeichert wurde.
Damit die einzelnen Segmente in möglichst schneller Folge gesprochen werden können, ist es wichtig, daß vom Sprachbaustein ein Kriterium geliefert wird, mit dessen Hilfe dem Microcontroller das jeweilige Ende der einzelnen Sprachsegmentausgaben signalisiert wird. Glücklicherweise liefert der  SOMO-14D an seinem Pin 5 ( BUSY ) ein solches Signal .


Abb.1  Sprachausgabemodul mit Kompasseinheit

Als erste praktische Anwendung sollten die von dem handelsüblichen Kompassmodul CMPS03 [6] }abrufbaren Richtungswerte gesprochen werden. Abhängig von der Drehrichtung liefert dieses Kompassmodul Werte von 0000 bis 3599, was den Himmelsrichtungen von 0.0° bis 359.9° entspricht. Die Werte sind über einen I2C-Bus abrufbar. Bei unserer Anwendung wird dazu ein im Microcontroller ATMEGA8L abgelegtes BASCOM-AVR-Programm benutzt. Nachdem das Sprachausgabeboard mit 3.3V betrieben wurde, der Kompassbaustein dagegen eine 5V-Versorgung benötigt, ergab sich ein Problem der Zusammenschaltung von I2C-Anschlüssen mit 3.3V- und 5V-Pegelwerten. Hierzu wurde eine kleine Pegelwandlerplatine benutzt, wie sei z.B. bei [8],[9] erhältlich ist.
Die Sprachausgabe kann in einem Langformat ( <Hunderter><Zehner><Einer> PUNKT <Dezimal> GRAD ) oder Kurzformat ( <Hunderter><Zehner><Einer> GRAD ) erfolgen. Zur Aktivierung des Kurzformates ist der PB1 zugeordnete Schalter zu schließen. Durch Schließen eines an PB2 angeschlossenen weiteren Schalters kann die Sprachausgabe des Wortes "GRAD" zusätzlich unterdrückt werden.
Mit den Schaltern an PC0 (LSB) bis PC2 (MSB ) kann die Einstellung unterschiedlicher Pausenzeiten zwischen einzelnen Ausgabecyclen erwirkt werden. Zur Zeit sieht das Programm hier acht verschiedene Verzögerungswerte zwischen 1 und 30 Sekunden vor.
Parallel zum Lautsprecherausgang stellt der SOMO-14D-Baustein noch einen weiteren Tonausgang bereit. Kombiniert mit dem vom Microcontroller ausgegebenen PTT-Signal kann hierüber bei Bedarf ein angeschlossener Sender getastet und moduliert werden.


Abb.2  Schaltbild des "sprechenden Kompasses"

Zur Kalibrierung des CMPS03 siehe Datenblatt [6]

SOUNDBEISPIELE

Soundbeispiele  ( Aufzeichnung in verminderter Qualität durch akustische Kopplung zwischen Mikrofon und Lautsprecher ) :
Langversion:  http://www.kh-gps.de/spk_cmps_1.mp3 ( ~ 1,6 Mb )    
Kurzversion:   http://www.kh-gps.de/spk_cmps_2.mp3 ( ~ 1.5 Mb )

LINKLISTE

[1]   http://www.4dsystems.com.au/prod.php?id=73                                                                                                           ( Homepageseite SOMO-14D )
[2]   http://www.4dsystems.com.au/downloads/Audio-Sound-Modules/SOMO-14D/Docs/SOMO-14D-DS-rev3.pdf   ( Datenblatt SOMO-14D )
[3]   http://www.4dsystems.com.au/prod.php?id=74                                                                                                           (  Link zum Converter-Tool für SOMO-14D )
[4]   http://www.sparkfun.com/commerce/product_info.php?products_id=9534                                                               ( Bezugsquelle SOMO-14D aus USA )  
[5]   http://www.watterott.com/de/Audio-Sound-Module-SOMO-14D                                                                              ( Bezugsquelle SOMO-14D aus DL )
[6]   http://www.robotikhardware.de/download/cmps03kompass.pdf                                                                                 ( Datenblatt CMPS03 )
[7]   http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=137                                           ( Bezugsquelle CMPS02 aus DL )
[8]   http://www.sparkfun.com/commerce/product_info.php?products_id=8745                                                               ( Bezugsquelle  Level-Converter aus USA )   
[9]   http://www.watterott.com/de/Pegelwandler                                                                                                                 ( Bezugsquelle Level-Converter aus DL )
[10] http://audacity.sourceforge.net/?lang=de                                                                                                                   ( Tool zur Erzeugung von Sprachfiles via Mikrofon )  
[11] http://www2.research.att.com/~ttsweb/tts/demo.php                                                                                                  ( Tool zur Erzeugung intern. Sprachfiles ohne Mikrofon  )

NACHBAU

Zum Nachbau des "sprechenden Kompasses" sind der entsprechende Quellcode und das HEX-File unter [12] verfügbar. In Einzelfällen kann ich auch programmierte Prozessoren ATMEGA8 bereitstellen. Zur Erzeugung eigener Sprachfiles per Mikrofon kann sehr gut z.B. ein Programm wie AUDACITY [10] verwendet werden.  Es geht aber auch ganz ohne Mikrofon und mit amerikanischem, englischen, deutschen oder sonstigem Tonfall.  Siehe hierzu Link [11]. Wer sich die Arbeit der Selbsterstellung passender Sprachfiles sparen will, der kann auch die unter [13] herunterladbaren ( auch zur Erstellung der Soundbeispiele verwendeten ) AD4-Files verwenden. Die Bezeichnungen "0000.ad4" bis "0009.ad4" stehen dabei für die Ziffern 0-9, während sich über "0010.ad4" das Wort "GRAD" und über "0011.ad4" das Wort "PUNKT" abrufen lässt.  

[12]   http://www.kh-gps.de/spk_cmp1.zip   (  BASCOM-AVR Sourcecode )
[13]   http://www.kh-gps.de/spk_cmp2.zip   (  AD4-Mustersoundfiles )
E-Mail-Kontakt: