BLIT2008-Board kann sprechen

Aus BraLUG-Wiki

Wechseln zu: Navigation, Suche


Inhaltsverzeichnis

Motivation

Diese Geschichte ist eigentlich dem Zufall geschuldet. Letztens habe ich (aus Langerweile) einen kleinen Melodiegenerator mit einem ATtiny85 aufgebaut und programmiert. Ein Kollege sah dies und brachte mir neulich eine Baugruppe mit einem lustigen Schaltkreis mit und meinte: "... hier, kannst du zeitweise mal haben und probiere ein wenig rum...".

Speakjet-Schaltkreis

Bei dem angesprochenen Spezialschaltkreis (Bezeichnung Speakjet) auf der Baugruppe handelt es sich um einen Sprachsyntheshizer, den man via serieller Schnittstelle steuern und somit Töne oder sogar halbwegs natürlich klingende (englische) Grundsprachlaute entlocken kann.

Hardware

Speakjet-Baugruppe

BLIT-Board mit Speakjet-Baugruppe (rechts im Bild)

Hier ist eigentlich nicht viel zu sagen. Der Speakjet wird am besten nach der Refenzschaltung aus dem Datenblatt verschaltet. Es bietet sich an, das NF-Ausgangssignal noch zu verstärken. Mein Kollege hat dazu einen Verstärker-IC vom Typ LM386 verwendet, jede andere geeignete Schaltung sollte aber auch funktionieren.

Leider habe ich keinen deutschen Anbieter gefunden, der den Speakjet aktuell im Angebot hat, denn eigentlich ist das Ding ganz lustig und Debug-Meldungen über einen Lautsprecher ausgeben, macht auch nicht jeder...;-)

BLIT-Board-Modifiktion

Modifikation des BLIT-Board

Der Speakjet-Chip wird via serieller Schnittstelle (im TTL-Pegel, also ohne übliche Pegelwandler!) angesprochen. Der ATmega8 auf dem BLIT-Board hat intern ein Modul, mit dem es auf bequeme Art und Weise möglich ist, eine serielle Schnittstelle zu realisieren. Wird dieses interne Modul softwareseitig aktiviert, ist Pin 2 des Mikrocontroller als Empfangseingang (RxD) und Pin 3 als Sendeausgang (TxD) festgelegt.

Zur Steuerung des Speakjet benötigen wir den Sendeausgang (Pin 3; TxD). Um nicht irgendwelche wilden Verkabelungen machen zu müssen, habe ich mich entschlossen, diesen Pin des Mikrocontrollers auf einen noch freien Anschluss der TWI-Buchse zu legen.

Ein Problem zieht dies allerdings nach sich: Pin 3 des ATmega8 auf dem BLIT-Board ist auch mit dem Datenausgang des Infrarot-Empfängers verbunden. D.h. also beides zusammen (serielle Schnittstelle und IR-Empfänger) kann nie zusammen in einer Applikation verwendet werden! Eine Alternative wäre die Verwendung eines Software-UART, also die softwareseitige Realisierung einer seriellen Schnittstelle auf einem beliebigen (nicht beschalteten) Pin des Controllers. Im Internet sind einige Beispielimplementierungen zu finden.

Software

Sprache

Hier ein kleines Programm für das BLIT-Board mit angeschlossenem Speakjet, welches dem Ding einen Spruch entlockt und dann fortlaufend von 0 bis 9 zählt. Die meiste Mühe hatte es gemacht, die halbwegs richtigen Grundsilben für die einzelnen Worte aus dem Datenblatt zu suchen. Ich hoffe es ist mir halbwegs gelungen....

andere Töne

...kommt vielleicht noch...!

'Persönliche Werkzeuge