MP3player mit i²C gesucht

Hallo,

wie im Titel schon steht, suche ich ein MP3-Playermodul, welches man über I²C ansteuern kann.

Zuerst war mir das DFPlayer-Modul ins Auge gefallen, aber das lässt sich leider nur per serial ansteuern.
Ich benutze einen ESP32 mit 2 seriellen Schnittstellen. Allerdings ist die serial1 ja als debugschnittstelle genutzt und die Pins für serial2 habe ich bereits anderweitig verwendet und auch keine pins mehr frei.
Was mir noch einfällt wäre, Bluetooth am ESP zu aktivieren und über bluetooth-serial mit dem DFPlayer zu kommunizieren, wofür ich dann aber auch noch ein Bluetooth-Modul für den DFPlayer bräuchte.

Ich muss nur ein paar wenige Clips (4-6 verschiedene) abspielen.

Eigentlich wäre mir jede nicht zu komplizierte oder aufwändige Idee recht, am liebsten wäre mir allerdings ein MP3-Player, den ich über I²C steuern kann, da ich den I²C-Bus sowieso benutze.

z.B. ein Tiny85 könnte I2C auf der einen Seite und SoftSerial auf der anderen.
Vermutlich einfacher und billiger als sowas:
https://www.mouser.de/c/semiconductors/interface-ics/uart-interface-ic/?type=I2C%2FSPI%20to%20UART

An diese Möglichkeit habe ich noch gar nicht gedacht. Ich hab zwar keine Tinys hier, aber noch einige Arduino Nano clones, mit denen das auch gehen müsste.

Ich glaub, da extra eine Platine für zu entwerfen, wäre mir dann doch etwas zu aufwändig. :laughing:

Aber einen Nano zum Übersetzen nehmen, wäre wohl die zweitbeste Lösung.

Es gibt auch sowas wie Software Serial :wink:
oder Du pimst nen PCF8574 dazwischen und steuerst den DF Player über den PCF

Die Alternative ist, gar kein MP3-Modul zu kaufen.

Mit einem ESP32 (muss i2s Pins haben), daran ein Verstärkermodul und das wars.

Verstärkermodule gibt es ab 2 Euro (brauchst dann aber 2 bei Stereo)

Lies dir zu den Thema mal diese Libs durch.

Ist meiner Meinung nach die bessere Lösung.

Gruß

Pucki

Ja es funktioniert nur der Klang ist nicht so gut. Für dich mag dass reichen, anderen nicht

Serial braucht er weiter

Das scheitert daran, daß ich keine Pins mehr frei habe.

I²S hat mein ESP leider nicht. Aber auch das wären wieder Pins, die ich nicht mehr habe. :wink:

Auch das wäre eine Möglichkeit. PCF8574-Module habe ich auch noch hier rumoxidieren.

Danke erst mal für die Vorschläge. Sobald der DF-Player da ist, werde ich probieren und hier berichten.

Ne TOP - Qualität hat das nicht, da gebe ich dir Recht.
Aber mit den Berühmten DF-Robots-Player kann das locker mithalten.

Und zu dem Teil gibt es einige (allerdings nicht preiswerte) Alternativen.

Man kann ja auch den ESP32 mit einen BT-Lautsprecher verbinden. Dann bekommt man einen besteren Klang. Es ist halt wie bei einer Stereoanlage. Der Verstärker macht den Klang.

Gruß

Pucki

Denk drann der DF braucht min 1,5A 5V sonst spinnt das Teil son bissel.

Suchbegriffe wären z.b.

Arduino vs1003 oder vs1053

Gruß

Pucki

Hast Du schon was angeschlossen, das I2C braucht? weil I2C und Serial gleich viele Pins braucht.
Grüße UWe

"ESP32" bezeichnet mittlerweile eher eine Prozessorfamilie, welchen µC genau verwendest Du?

Wäre ein Wechsel auf einen anderen ESP32 möglich?

Diese Aussage irritiert mich. Wenn Du mit "debugschnittstelle" den Anschluß am PC für den seriellen Monitor der IDE meinst, dann ist das eher UART0 oder Serial.

Ja, am I²C hängt ein TOF-Entfernungsmesser. Und dazu kommen noch zwei Drucksensoren mit HX710, die auch jeweils zwei Pins benötigen. Dazu noch ein Stepper und diverse digitale Ein- und Ausgänge. Daher sind alle benutzbaren Pins belegt, selbst die input only Pins sind bereits mit Eingängen belegt.

Ja, richtig. Gemeint habe ich UART 0. Der ESP hat UART0 und UART2 (warum auch immer die den 1 ausgelassen haben...).
Die Pins von UART2 sind auch schon belegt.

Ich verwende diesen ESP:

Ein Wechsel wäre nicht unmöglich, aber da ich bereits alles auf Lochraster habe, nicht so einfach.

ähh

i2c ist ein BUS. Da gibt man die Adresse an, und alle Bits fahren auf den selben Kabel. Im Zweifelsfall via Port-Expander. Den man für ca. 2 Euro auch zum Stecken bekommt.

Habe ich mir auch gekauft. Gut zum testen.

Gruß

Pucki

ähm? jaaaa?
und weiter?

Deshalb habe ich im Ausgangspost ja nach einem MP3-Player gesucht, der I²C versteht und ein paar Posts weiter (in #3 und #8) geschrieben, daß ich es entweder mit einem Arduino Nano als Übersetzer oder einem PCF8574 probieren werde, wie andere weiter oben schon vorgeschlagen haben??

Ich habe mich nur gefragt wieso du so viele Pins verbrauchst.

Entweder das Gerät hat seine eigene Adresse, dann reicht es wenn man es MIT an die 2 Pins anklemmt, oder das Gerät (wie meine Tastatur) hat keine Adresse dann wird halt die Adresse des Port-Expander benutzt.

Egal was auch immer. Am MC sind nur 2 Pins belegt.

Gruß

Pucki

Mal eben 6 Taster auf ein Pin Analog


geht auch und ist im nachhinein noch gut lösbar.

UART1 an GPIO09 und GPIO10 kann nur durch Umlegen auf andere Pins verwendet werden, da es sonst einen Konflikt mit dem Flash gibt:

#define RXD1 18
#define TXD1 17

void setup()
{
  Serial1.begin(31250, SERIAL_8N1, RXD1, TXD1);  // Set MIDI baud rate:
}

Doch, an GPIO25 und GPIO26 (die Du nicht frei hast, ich weiß).

Unter der Annahme, es gibt keinen Player mit I²C, kannst Du die an Portexpander mit I²C umlegen?

Dann könntest Du mal abschätzen, ob ein Umstieg auf einen ESP32-S3
mit I²S mit Verstärker letztlich nicht einfacher ist, als andere Alternativen zu realisieren.

Den Tipp hast du ja schon abgespeichert.
Nimm einen MCP23017 und du hast gleich reichlich freie GPIOs zu verfügung. Evtl. kannst du dadurch auch GPIOs am ESP32 frei bekommen und den DFplayer direkt per SoftwareSerial steuern.