Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Der Einstieg in die MobaLedLib:

Stammtische

aktuell verwendete Versionen


Python MobaLedLib

Workshops

Verwendung mit der MoBa-Zentrale

Steuerung der MobaLedLib-Effekte

Erste Hilfe

Bewegung mit der MLL

Servoplatine

Relaisplatine

WS2811-BiPol


Sound mit der MLL

JQ6500

MP3-TF-16P

Hauptplatine

Servoplatine

Sounddateien

Anwendungsbeispiele:

3D-Druck

Entwicklungen MoBa-Universum

Platinen van Theo

MobaLedLib Sonderplatinen

Drehscheibensteuerung LocoTurn V 1.2

Drehscheibe (V0.6)

Lok-Platinen

OLED Displays

Infrared to Z21 Bridge

Hilfereiche Themen

Wissen für Fortgeschrittene

Impressum & Datenschutz

Für Wiki-Editoren:

Server online

anleitungen:spezial:sound_servoplatine

Sound Servoplatine

++ Diese Seite wird derzeit überarbeitet ++

Ü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:

  • Wurzelverzeichnis (Dateinamen 4-stellig 0001.mp3 etc.)
  • Verzeichnis ADVERT (Dateinamen 4-stellig)
  • Verzeichnis mp3 (Dateinamen 4-stellig)
  • Verzeichnisse 01 bis 32 – (Dateinamen 3-Stellig 001.mp3 etc.)

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

  • 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 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

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.

Beispiele:

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

Ü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).

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
anleitungen/spezial/sound_servoplatine.txt · Zuletzt geändert: 2024/09/27 10:10 von gerald_bock