====== Sound Servoplatine ====== Über die Servo-Platine 510 können drei Soundmodule angesteuert werden. Es können JQ6500 Module oder MP3-TF16-p/DFPlayer Mini Module verwendet werden. 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. ====== ATTiny 85 ====== Zunächst muss der ATTiny für die Servoplatine programmiert werden. Die Anleitung dazu [[anleitungen:spezial:tiny-uniprog|Programmierung von Attinys für Servo oder Charlieplexing]] ist im WIKI zu finden. Im Pattern-Configurator unter spezielle Module **Servo-MP3** auswählen. {{:bilder:anleitungen:spezial:servosound: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. {{:bilder:anleitungen:spezial:servosound:servo_led_beschriftung_echtbild_top-detail.jpg?300}} ====== JQ6500 und MP3-TF16-p/DFPlayer Mini ====== {{:bilder:anleitungen:spezial:servosound:kq6500-16p-usb.jpeg?300 |}} {{ :bilder:anleitungen:spezial:servosound:anschlussschema_dfplayer.jpg?300|}} ====== Schaltung ====== Die drei Ausgänge der Servo-Platine werden nun über je einen 1 kOhm Widerstand mit den Eingängen 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 470uF Elektrolytkondensatoren dienen als Puffer für die recht hohen Einschaltströme der Soundmodule. Eine separate 5V Spannungsversorgung ist ebenfalls möglich. Dann müssen GND und -5 Volt verbunden werden. {{ :bilder:anleitungen:spezial:servosound:module1.jpg |}} ====== Programm-Generator ====== Im Prog-Gen gibt es für den Servo-Sound folgende Befehle: {{ :bilder:anleitungen:spezial:servosound:macroauswahl_2.jpg |}} Beispiel der Soundsteuerung mit den Befehlen: {{ :bilder:anleitungen:spezial:servosound:prog-gen_1.jpg |}} 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 * Ch1 -> JQ6500 * Ch2 -> MP3-TF16-p * Ch3 -> MP3-TF16-p Zeile 104 - 106: legt den Ausgang fest auf den der nächste Befehl gehen soll. Hier: * Zeile 104 - Ausgang 1, JQ6500. * Zeile 105 – Ausgang 2, MP3-TF16-p * Zeile 106 – Ausgang 3, MP3-TF16-p **Beispiel:** * DCC Befehl 90 und anschließend 95 spielt Track 1 vom JQ6500 ab. * DCC Befehl 91 und anschließend 95 spielt Track 1 vom ersten MP3-TF16-p ab. * DCC Befehl 92 und anschließend 95 spielt Track 1 vom zweiten MP3-TF16-p ab. * DCC Befehl 91 und anschließend 93 verringert die Laustärke beim zweiten MP3-TF16-p. **Anmerkungen:** * In der Macroauswahl wird der Hinweis „Sendet einen Befehl an ein MP3-TF-16p-Soundmodul welches über SERVO3 an einer Servoplatine angeschlossen ist“ gegeben. Das trifft so nicht zu, da die Befehle an alle drei Ausgänge gesendet werden können und auch für beide Modultypen gelten. Einschränkungen gibt es natürlich beim JQ 6500, da nur fünf Tracks gespeichert werden können. * Alle Befehle an diese ATTiny Soundplatine müssen über __eine__ LED Adresse laufen, im Beispiel LED 1. Sollte es (ungewollt) eine Verschiebung geben mit dem Befehl "next LED -1" wieder auf die LED Adresse der Sound-Platine zurück gehen. * Über den [[anleitungen:bauanleitungen:100de_hauptplatine_v1-6_zubehoer|Kleinen Verteiler]] mit der Copy-Funktion, Einstellung über den Jumper, kann man parallel Test-LEDs anschließen und optisch die Funktion überprüfen. ====== Steuerung über DCC/CAN-Befehle ====== {{:bilder:anleitungen:spezial:servosound:logik1.jpg?300 |}} Vor jedem Sound-Befehl muss 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. ====== Beispiel: ====== Im folgenden Beispiel wird bei Aufruf des: * DCC-Befehl "3" der erste Sound des ersten Moduls (JP6500) abgerufen * DCC-Befehl "4" der erste Sound des zweiten Moduls (DFPlayer Mini) abgerufen * DCC-Befehl "5" der erste Sound des dritten Moduls (DFPlayer Mini) abgerufen {{ :bilder:anleitungen:spezial:servosound:prog-gen_3.jpg |}} Ü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 [[anleitungen:spezial:codevorlagen: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). {{ :bilder:anleitungen:spezial:servosound:prog-gen_4.jpg |}}