Inhaltsverzeichnis

Sound Servoplatine


Über die Servo-Platine 510 können drei Soundmodule angesteuert werden.
Es werden dabei JQ6500 Module oder MP3-TF16-p/DFPlayer Mini Module verwendet. Dabei spielt es keine Rolle ob nur JQ6500 oder nur MP3-TF16-p/DFPlayer Mini oder diese beliebig gemischt, eingesetzt werden.
Die drei Module können auch parallel je einen Sound abspielen.

Das JQ6500 hat dabei den Vorteil das es bereits 2 MByte Speicher enthält, was für etliche Soundprojekte ausreichend sein dürfte.
Das MP3-TF-16p nutzt hingegen eine MicroSD-Karte mit bis zu 32 GByte und vereinfacht durch die mögliche Ordnerstruktur die Verwaltung der Sounddaten.

Vorbereitung Hardware

ATTiny 85

Als Servoplatine eignet sich jede 510DE-Platine, bestückt als Servoplatine.
Die Lötjumper für den Servobetrieb SERVO, SERVO1, SERVO2, SERVO3 müssen geschlossen werden.
Zunächst muss der ATTiny für die Servoplatine programmiert werden. Die Anleitung dazu Programmierung von ATTinys für Servo, Charlieplexing oder Sound ist im WIKI zu finden. Im Pattern-Configurator unter spezielle Module Servo-MP3 auswählen.

pattern_config1.jpg

Das folgende Bild zeigt die Pins am Ausgang der Servo-Platine. Der SIG-J1 - Pin ist mit dem Eingang des ersten Soundmodules zu verbinden, entsprechend J2 mit Modul 2 und J3 mit Modul3.

servo_led_beschriftung_echtbild_top-detail.jpg

JQ6500 und MP3-TF16-p/DFPlayer Mini




Verdrahtung

Die drei Ausgänge (SIG) der Servo-Platine werden nun über je einen 1 kOhm Widerstand mit den Eingängen (RX) der Sound-Module verbunden.
Die Versorgungsspannung sollte über eine Verteilerplatine mit angeschlossener stabiler Spannungsversorgung erfolgen, da die Leistung an der Hauptplatine zur Versorgung der Sound-Module nicht ausreicht.
Die 470µF Elektrolytkondensatoren dienen als Puffer für die recht hohen Einschaltströme der Soundmodule.
Eine separate 5V Spannungsversorgung ist ebenfalls möglich.

Als weitere Möglichkeit bietet sich der Umbau einer unbestückten 501de_Soundplatine (MP3-TF-16p) an:

..
Drahtbrücke (rot) an der Oberseite……..Buchsenleisten: 2×8 SoundmodulWiderstand 1kOhm an der Unterseite
R6 Widerstand 1Ohm 1×3 rot(VCC), schwarz(GND), gelb(SIG) Jumper SJ1 schließen
Keramikkondensator 100nfACHTUNG-ServoAnschluss rot/schwarz vertauscht
C6 Elko 470µF1×2 Lautsprecher


SD Karte

Die Verzeichnisstruktur der Sounddateien auf der SD-Karte ist relativ starr vorgeschrieben. Es können Sounddateien (wahlweise im mp3- oder wav-Format) in folgende Verzeichnisse der SD-Karte abgelegt werden:

Es werden nur die ersten Zeichen der Dateinamen ausgewertet. Der tatsächliche Dateiname kann länger sein. Damit sind Dateinamen der Art

0023Yesterday.mp3

möglich. Dieser Dateiname wird vom Soundmodul als „0023.mp3“ behandelt. Das erleichtert den Umgang mit den Sounddateien deutlich und sollte ausgiebig genutzt werden.


Programm-Generator

Im Prog-Gen gibt es für den Servo-Sound folgende Befehle:



Nach einer Neuprogrammierung des ATTiny sind die Ausgänge wie folgt vorbelegt:

  SERVO1		JQ6500			PIN 5 des ATTiny PB0(MOSI)
  SERVO2		MP3-TF-16p		PIN 6 des ATTiny PB1(MISO)
  SERVO3		JQ6500			PIN 7 des ATTiny PB2(SCK/ADC1)

Möchte man andere Modultypen anschließen, so muss man einmalig die verwendeten Module mit dem Befehl <Soundmodul definieren> MP3_SET_TYPE einstellen.
Der ATTiny merkt sich diese Einstellung, daher kann man das einmal nach der Installation mit ein paar Zeilen im Programmgenerator machen.
Eine Änderung ist nur dann notwendig, wenn die angeschlossenen Modul-Typen verändert werden.
Die Einstellungen werden im Beispiel mit den Tastern SwitchD1-D3 auf der Hauptplatine programmiert:

  neu - SERVO1 J1 = MP3-TF-16p Modul
  neu - SERVO2 J2 = JQ6500 Modul
  neu - SERVO3 J3 = MP3-TF-16p Modul





Beispiel der Soundsteuerung mit den Befehlen:

In den Zeilen 100-102 wird der an die Sound-Platine angeschlossene Modultyp festgelegt. Diese Befehle müssen nur einmalig gesendet werden. Der ATTiny speichert die Einstellung. Eine Änderung ist nur dann notwendig, wenn Änderungen bei den angeschlossenen Modul-Typen vorgenommen werden. Im Beispiel

Zeile 104 - 106: legt den Ausgang fest auf den der nächste Befehl gehen soll. Hier:

Beispiel:

Anmerkungen:

Steuerung über DCC/CAN-Befehle

Vor jedem Sound-Befehl kann das Modul ausgewählt werden auf dem sich die Sound-Datei befindet. So können Sound-Dateien in unterschiedlicher Reihenfolge von den drei Modulen abgespielt werden. Die Logik stellt sicher, dass zunächst über den ATTiny das Modul ausgewählt wird, der Befehl umgesetzt werden kann und dann, mit zeitlichem Verzug, der Track ausgewählt oder eine andere Funktion des Moduls aufgerufen wird.

Anmerkung:

Mit den Befehlen <Titel # aus Hauptverzeichnis abspielen> MP3_PLAY_TRACK_ON und
<Titel # aus mp3 abspielen> MP3_PLAY_MP3_ON wird das Modul mit den eingetragenen Parametern bereits direkt angesprochen und der gewählte Sound abgespielt.
Leider funktioniert das mit dem Modul JQ6500 nicht zuverlässig. Hier sollte trotzdem eine Vorauswahl mittels Monoflops (wie im Beispiel) getroffen werden.

Beispiele:

Im folgenden Beispiel wird bei Aufruf des:

Über parallel angeschlossene Test-LEDs, Stichwort Mini-Verteiler, kann der Ablauf optisch sehr gut verfolgt werden. Andere/kürzere Zeitintervalle für die MonoFlops sind möglich und ggf. durch Tests zu ermitteln.

In Zeile 133 wird über die Variable MF12u13 zeitgleich mit dem dazu gehörigen Geräusch vom Sound-Modul 2 ein Schweißlicht ausgelöst. Geräuschlänge und Länge des Lichts können leicht durch Anpassung des Schweisslicht über den Pattern-Configurator angepasst werden.

Damit man den Schweißer nicht immer persönlich wecken muss, hier eine Lösung mit der Zufallsschaltung (Random-Funktion).