MP3-Jukebox basierend auf einem MP3-Player-mini Modul

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • MP3-Jukebox basierend auf einem MP3-Player-mini Modul

      Ich habe mal wieder was "gebastelt".
      Und zwar eine MP3-Jukebox welche mit den originalen Wallboxen von Jukeboxen gesteuert werden kann.
      Das ganze basiert auf einem DF-Player-Mini und kann das "Impulstelegramm" einer Wallbox erkennen und verarbeiten.
      Wer keine Wallbox hat kann das Modul auch mittels 4x4-Matrix-Tastatur steuern oder beide Steuerfunktionen nebeneinander verwenden wenn mehr Dateien verarbeitet werden sollen als die verwendete Wallbox verarbeiten kann.
      Ein besonderes Feature ist ein Einstellmenu welches mit Sprachausgabe arbeitet (so ähnlich wie bei Mobiltelefonen die Sprachbox)

      Das gesamte Projekt ist auf meiner Homepage genauer beschrieben, dort sind auch die Projektdateien inkl. SD-Karten-Image mit den Sprachdateien) herunterladbar.
      JBv3Frontx.jpgJBv3Innenx.jpgHauptmenu.zip ist die Sprachausgabe des Hauptmenus (das ZIP enthält das MP3-File
    • Die Ansagetexte sind ASCII-Texte welche mit Balabolka als MP3 erzeugt und das MP3 dann mit AudaCity nachgearbeitet um den Vor- und Nachlauf weitgehend zu extrahieren.
      Hin und wieder muss man da auch experimentieren und den Text spezieller verfassen, da diese TTS-SW das eine oder andere auch falsch interpretiert oder ausspricht, dafür ist sie halt gratis.

      Dieser Vor- und Nachlauf ist zwar meist unter einer Sekunde stört aber den Ablauf wenn man zum Beispiel Zahlen zusammensetzen möchte (z.B. einhundert-zwei-und-vierzig).
      Das kann man sinnvoll nur mit dem Busy-Signal machen (oder man misst alternativ die Zeit und führt im AVR eine Zeittabelle für jede Silbe, das ist aber IMHO nicht praktikabel). Und das Busy-Signal ist eben solange aktiv so lange das MP3-File einschließlich Vor- und Nachlauf ist.
    • Du hast mal geschrieben

      Aufgefallen ist mir das beim Versuch, eine Ansage zu realisieren die aus einzelnen Textelementen besteht.
      Ich wollte dazu einfach das Mute auswerten (L=Spricht, H=Ruhe).
      Das Problem ist wohl, dass Mute beim Statuswechsel geändert wird aber dann sendet das Modul noch seinen Endestatus aus (und das zeitweise sogar zweimal).
      Man muss also solange warten, bis dieser Transfer beendet ist (indem man die Daten auch entsprechend verarbeitet) und kann erst dann den nächsten Befehl senden.
      Weiters kommt hinzu, dass das Modul zum "suchen" der abzuspielenden Datei ebenfalls etwas Zeit braucht (was in dem Umstand resultiert, dass der Mute-Pin eben auch um diese Zeit verzögert den Status ändert).
      Das alles macht dann ein "flüssiges" Sprechen nicht möglich.

      Lag das jetzt an der Stille in der mp3-Datei?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Es ist von allen ein bisschen was.
      Das Modul ist IMHO nicht sonderlich gut ausprogrammiert.
      Man darf aber nicht vergessen, was das Modul eigentlich ist, nämlich ein einfacher MP3-Player.
      Mal sendet es beim beenden einer Datei ein Telegramm, mal aber auch zwei. wovon das tatsächlich abhängt weiß ich aber noch nicht.
      Mir ist dabei auch aufgefallen, dass das Modul während es sendet keine Befehle entgegen nimmt und wohl auch keinen Empfangsbuffer besitzt und daher Befehle während dem Senden eines Telegramms vom Modul einen Befehl verstümmelt und somit in der Folge verwirft.
      Als einzig sinnvoll erscheint mir dabei das Auswerten des Mute-Signales. Dies bedingt aber, dass die Dateien so wenig wie möglich Vor- und Nachlauf besitzen.
      Eventuell können WAV-Dateien das Problem besser behandeln.

      Mir fiel aber in der Vergangenheit auch auf, dass das Modul wohl auch Zeit braucht, um ein File zu starten.
      Ich denke mal, dass das dann von der SD-Card-Größe abhängig ist und wie viele Dateien da dann drauf sind.
      Es kann auch ein Zusammenhang sein, ob Unterverzeichnisse verwendet werden und welches Formatier-Format.
      Tatsächlich habe ich zusammengehörige Dateien immer in einem Verzeichnis.
      Das Problem ist ja auch, dass kleine SD-Karten sehr schwer zu beschaffen sind (mit Glück bekommt man noch 4GB)
      Für die Zahlen habe ich mich entschlossen die Zahlen 0 bis 99 zu erstellen um auch noch nicht diese zusammensetzen zu müssen.
      Größere Zahlen werden dann tatsächlich zusammengesetzt, es ist aber immer noch eine sehr kurze Pause bemerkbar wenn man z.B. 146 ausgeben möchte.
      Also z.B. Einhundert--Sechsundvierzig (--=länger als übliche aber dennoch kurze Pause).
      Das hat auch den Vorteil, dass man die Zweistelligen Zahlen nicht zusammenstellen muss (z.B. sechs-und-vierzig), weil ja ohnehin Platz genug auf der SD-Karte sein dürfte.
      Die MP3 haben nach der Audacity-Behandlung dennoch kurze Vor- Und Nachlaufzeiten, was die WAV-Dateien nicht haben (das kommt wohl vom MP3-Exportfilter von Audacity).
    • Das busy (mute?) Signal berücksichtigt auch das Senden des Moduls? Also, wenn busy 'bereit' signalisiert, kann man Befehle an das Modul senden, ohne das da noch Kommunikation von Modul kommt?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch schrieb:

      Das busy (mute?) Signal berücksichtigt auch das Senden des Moduls?
      Das kann ich jetzt gar nicht sagen, meine aber eher nein.
      Ich warte immer ein paar Millisekunden nach dem senden eines Stop-Befehls mit weiteren Befehlen, selbst wenn Busy schon signalisiert dass nichts mehr abgespielt wird, weil ich da schon auf die Schnauze gefallen bin.
      Und ja, ich meine das Busy-Signal, Mute kann man nur per Befehl setzen und schaltet den Verstärker stumm.
    • Basierend auf diesem Projekt und den daraus erlangten weiteren Erkenntnissen habe ich nun eine Universalplatine entwickelt welche im wesentlichen folgende Features bietet welche wahlweise oder auch kombiniert verwendet werden können:
      • Jukeboxfunktion mit originalen Wallboxen
      • Titelauswahl auch mit zusätzlicher Tastatur (entweder 4x3 oder 1x12)
      • LCD-Display (20x4) zur Statusanzeige
      • Status-LEDs basierend auf WS2812
      • Uhr mit Viertelstundenschlagwerk basierend auf DS3231
        Datums- und Zeitansage als Titelwahl
      • Speichermedium wahlweise ein USB-Stick oder eine Micro-SD-Karte (nicht kombinierbar!)
      Die Platine ist nun doppelseitig ausgeführt, die Gerberdaten sind auch verfügbar.
      Der Umfang der Applikation hat es notwendig gemacht, dass die Texte für das LCD nicht mehr im Flash-Speicher Platz fanden sondern in das EEPROM ausgelagert werden musste worauf dann zur Laufzeit auf entsprechend dimensionierte Variablen zugegriffen werden konnte.

      Das Projekt einschließlich der Daten für das Speichermedium stehen auf meiner Homepage zum Herunterladen bereit.
      Jukebox-V4-komplett.jpg