Der Sound des Teensy

Stiefkind des Telegrafisten ist sein Mithörton. Was sind das oft für schräge Dinger. Rechtecke, Sägezähne, Dreiecke. Akustische Körperverletzung. - Beim Senden wird ein Mithörton erzeugt. Im Transceiver oder im Keyer. Der Operator kontrolliert damit seinen Gebetext. Ein angenehmer Ton sorgt für leichtes und richtiges Geben. Und wenn er scheppert, knarzt oder blubbt, dann muss man was dagegen tun.

Beim Wandern haben wir über das Luxusproblem gesprochen. Rolf schlug eine Lösung vor mit Teensy. Teensy und auch Arduino sind winzige Mikrocontroller-Boards. Sie haben kein eigenes Betriebssystem. Den Teensy gibt es ab ca. 15 Euro. Aktuell ist die Version 4.0 mit ARM Cortex-M7-Prozessor und einer Taktfrequenz von 600 MHz. Wow!

Und zufällig hatte Rolf einen in der Tasche. Den hat er mir gleich geschenkt.

Also programmiere ich mir den guten Ton zurecht. Statt Bauteile zu löten und Filter zu bauen benutze ich einfach den D/A-Wandler (DAC) für den Sound. Klar, man könnte den Teensy mit einem Audioboard erweitern. Aber auch ohne kann er schon MQS (media quality sound): 12 Bit, mono. Das sollte für meinen Zweck genügen.

Der DAC-Ausgang enthält einen Gleichspannungsanteil. Deshalb koppele ich über einen Kondensator aus.

Der Sinuston ist nicht schlecht. Allerdings gibt es beim Ein- und auch beim Abschalten jeweils einen Klick. Die Klick-Amplitude ist unabhängig von der eingestellten Sinus-Amplitude. Das heißt: Mache ich den Ton leiser, bleibt der Klick so laut wie vorher.

Ich verpasse dem Ton eine Hüllkurve und verwende dabei die Funktion fadeIn() und fadeOut().

Viel ist dabei nicht zu programmieren. Wenn ich die Taste drücke am Pin 7, soll mein Teensy einen Sinuston erzeugen mit einer vorgegebenen Frequenz und Amplitude. Es soll weich klingen wie eine Altflöte. Ich lasse den Ton über 3 Millisekunden ein- und ausschwingen.

void loop()

{

if (digitalRead(7) == HIGH) {fade1.fadeOut(3);}

else {fade1.fadeIn(3);}

}

 

Der komplette Sketch steht am Ende dieses Textes.

Ich spendiere noch einen kleinen NF-Verstärker mit Lautstärkeregler und einen größeren Lautsprecher. Alle Erweiterungen finden Platz im Keyer-Gehäuse. Und der gute Ton bekommt noch Luftlöcher im Gehäusedeckel.

Jetzt klingt er wie Musik. Der Sound des Teensy.

 

Bernd, dk1du


// Der Sound des Teensy

 

#include <Audio.h>

#include <Wire.h>

#include <SPI.h>

#include <SD.h>

#include <SerialFlash.h>

 

// GUItool: begin automatically generated code

AudioSynthWaveformSine sine1; //xy=262,302

AudioEffectFade fade1;

AudioOutputAnalog dac1; //xy=614,309

AudioConnection patchCord1(sine1, fade1);

AudioConnection patchCord2(fade1, dac1);

// GUItool: end automatically generated code

 

int hz = 580; // Tonhöhe

 

void setup()

{

dac1.analogReference(EXTERNAL);

sine1.amplitude(0.2); // 0..1.0

sine1.phase(0);

sine1.frequency(hz);

AudioMemory(10);

pinMode(7, INPUT); // da ist die Taste angeschlossen

digitalWrite(7, HIGH); // internen Pullup einschalten

}

 

void loop()

{

if (digitalRead(7) == HIGH) {

fade1.fadeOut(3);

}

else {

fade1.fadeIn(3);

}

}