Forum: Projekte & Code Projekt fertiggestellt: MP3 Player für Kinder auf ATTiny-Basis


von Hermann (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
noch ein Bild vom Aufbau

von Michael (Gast)


Lesenswert?

Hallo zusammen, könnte mir jemand vl. einen ATTiny programmieren und auf 
dem Postweg zukommen lassen.
Kann leider nicht programmieren und hätte somit auch kein 
Programmer....AVR Studio usw. würde trotzdem gerne ein paar Player bauen 
für die Kinder in unserem Familien und Freundeskreis.
Wäre jemand so nett und würde mir welche bespielen wenn ich die ATTinys 
mit der Post schicke?

Würde mich freuen wenn jemand so nett wäre.

Viele Grüße Michael

von Marcus (Gast)


Lesenswert?

Hallo,
Attiny und Dfplayer sind nun angekommen und ich wollte langsam mal die 
Anderen Bauteile zusammenbestellen. Ich habe jetzt die Multimec Taster 
bei Reichelt gefunden, aber welche muss ich denn bestellen? Wechsler 
oder Schließer? SMD oder THT?
schonmal Danke und schöne Grüße

von Hermann (Gast)


Lesenswert?


von Marcus (Gast)


Lesenswert?

Ich vermute mal, dass ich einen Wechsler brauche, da ich ja die 
Playlists durchschalten will. Und den Unterschied zwischen THT und SMD 
habe ich auch herausgefunden.
Hat irgendjemand eine komplette Materialliste? Ich als totaler Neuling 
scheitere ja schon an der Auswahl der Widerstände.
Ich hab jetzt mal die hier genommen
https://www.reichelt.de/widerstand-kohleschicht-10-kohm-axial-500-mw-5-arc-rcc050-10k-j-p237477.html?&trstct=pol_1
bzw die 1KOhm Variante.

von Marcus (Gast)


Lesenswert?

Hermann schrieb:
> Hallo Marcus,
> als Taster kannst du diese verwenden
> https://www.reichelt.de/multimec-taster-ohne-beleu...
>
> Die zugehörigen Tastenkappen sind
> https://www.reichelt.de/kappe-fuer-taster-3f-rund-...?

Moin Hermann,
vielen Dank.
Hab ich mal bestellt. Mal sehn ob ich den ganzen Kram zusammengebaut 
kriege.

von Ronny S. (dr_bal)


Angehängte Dateien:

Lesenswert?

Hi ghmartin77,

Ja habe ich gelesen.

Habe jetzt den code soweit angepasst, das es grundlegend läuft.

Player.readstate() unterstützt mein klon nicht... Ergebniss  ist immer 
-1

Es gibt einen blanko Chip und den vom Foto.

Deswegen hat er weder advertise und mp3folder nicht gespielt.


Kleiner Tip an alle, ich lasse jetzt ein Hallo Name des Kindes  nachdem 
einschalten abspielen.

Mein Sohn freut sich gerade bei jeden  neustart ?


Vg
Ronny

von Ronny S. (dr_bal)


Lesenswert?

Michael schrieb:
> Hallo zusammen, könnte mir jemand vl. einen ATTiny programmieren und auf
> dem Postweg zukommen lassen.
> Kann leider nicht programmieren und hätte somit auch kein
> Programmer....AVR Studio usw. würde trotzdem gerne ein paar Player bauen
> für die Kinder in unserem Familien und Freundeskreis.
> Wäre jemand so nett und würde mir welche bespielen wenn ich die ATTinys
> mit der Post schicke?
>
> Würde mich freuen wenn jemand so nett wäre.
>
> Viele Grüße Michael

Hi Michael,

Kaufe doch einfach einen Arduino Nano. Dann hast Du alles in einen Chip 
und du kannst Ihn direkt bespielen  ohne extra Hardware.

Vg
Ronny

von ghmartin77 (Gast)


Lesenswert?

Ronny D. schrieb:
> Kleiner Tip an alle, ich lasse jetzt ein Hallo Name des Kindes  nachdem
> einschalten abspielen.

Hi Ronny,

sehr coole Idee. Das nehme ich mit ins Github-Repo, sobald ich Zeit 
habe.

Der Chip von Deinem Photo ist der oben in diesem Thread (und im 
Internet) diskutierte JC AA1752CJ3J13.1-94. Bisherige Gerüchte gehen, er 
sitze auf einer Platine mit roter LED und wäre ein Fake. 
Erfahrungsberichte gehen von "Funzelt überhaupt nicht" über "Geht nicht 
per UART" bis "eingeschränkt nutzbar".
Interessant, dass Du das Ding ans Laufen bekommen hast. Hab nie so einen 
bei meinen Bestellungen in die Hand bekommen. Den hätte ich mir gern mal 
mit einem Logic-Analyzer angeschaut. Vermutlich hält der sich einfach 
nur nicht exakt an das Kommunikationsprotokoll, wie die DFPlayer-Lib das 
erwartet.

Was waren denn die Kernänderungen, die Du vornehmen musstest, damit das 
Teil lief? Und: Läuft es mit vollem Funktionsumfang oder musstest Du 
Dinge entfernen?

Grüße
ghmartin77

von ghmartin77 (Gast)


Lesenswert?

Ronny D. schrieb:
> Hi Michael,
>
> Kaufe doch einfach einen Arduino Nano. Dann hast Du alles in einen Chip
> und du kannst Ihn direkt bespielen  ohne extra Hardware.
>
> Vg
> Ronny

+1

Relevante Schritte sind weiter oben in diesem Thread verlinkt, z.B. 
Beitrag "Re: Projekt fertiggestellt: MP3 Player für Kinder auf ATTiny-Basis"

Alles kein Hexenwerk und gibt Dir die Flexibilität auch Änderungen am 
Code vorzunehmen (selbst als Nichtprogrammierer).

Grüße
ghmartin77

von Michael (Gast)


Lesenswert?

Hallo Ronny.
Ich hab sowas von keine Ahnung vom Programmieren und schon gar nicht von 
Arduino Programmierung, hab da schon bissl mit einem Arduino micro und 
Nano und einem Schild mit einem VS1053 rumgespielt, hat alles zu nix 
geführt :-)

Such schon lange jemand der einfach gut programmieren kann und meine 
Ideen die wirklich sinnvoll sind für die Benutzung des mp3 Players (vor 
allem für Kinder) in relativ kurzer Zeit wenn möglich auf Arduino Basis 
umsetzen kann.

Im Grunde gibt es ja bereits viele Bibliotheken gerade für den VS1053B 
allerdings das drumrum was man eben an Programm schreiben kann das fehlt 
mir.

Wenn du bereit wärst mir da zu helfen können wir gerne auch mal per 
email schreiben, und ich erzähle dir was ich so vor habe.

Ich denke die eine oder andere Erweiterung wirst du sicher für dich 
übernehmen können. Habe mir da echt schon sehr viele Gedanken dazu 
gemacht.

Toll wäre doch wenn wir zusammen ein Projekt auf die Beine stellen 
könnten das
genau so von allen in einfachen Schritten ohne große 
Programmierkenntnisse umgesetzt werden kann, sodass sich jeder einen 
Kinder mp3 Player bauen kann.

Habe bereits preiswerte und leichtgängige Taster gefunden, Passende 
Kappen dazu, ein LiIOn  Akku und passende Ladeelektronik, einen 3W 
Stereo Verstärker usw....
alles schon zuhause, fehlt mir nur noch der Arduino mit der Software....

Wäre doch eine tolle Sache.

Email: Kunibertkamel@web.de

Ist wirklich meine Email Adresse :-)

Grüße Michael

von Ronny S. (dr_bal)


Angehängte Dateien:

Lesenswert?

ghmartin77 schrieb:
> Was waren denn die Kernänderungen, die Du vornehmen musstest, damit das
> Teil lief? Und: Läuft es mit vollem Funktionsumfang oder musstest Du
> Dinge entfernen?
>


Im Prinzip musste ich nur in Zeile 327

player.playFolder(curFolder, curTrack);

Durch

player.playLargeFolder(curFolder, curTrack);

ersetzen.


Weiterhin versteht er in playoradvertise den readstat  nicht und somit 
weiß der Arduino nicht ob gerade gespielt wird.

Ich habe das erstmal so gelöst, das er es als playmp3folder abspielt. 
Dann stoppt zwar die Wiedergabe, das wäre aber ok für mich. Alternativ 
müsste ich halt den vorherigen Titel speichern und den neu starten.

Vielmehr war es bis jetzt nicht. War halt viel debuggen ?

Hatte 3 von denen Bestellt und werde mal einen anderen testen, 
vielleicht ist das ja auch nur ein Einzelfall.

Wenn du magst schick ich Dir den 3. dann kannst du testen. Soszusagen 
als Lohn für Deine Mühe hier :-)

Im Anhang noch 2 Bilder vom Gehäusestatus. Für das erstmal sehr gut 
bisher.

Vg
Ronny

: Bearbeitet durch User
von Irenäus B. (irenaeusbecker)


Lesenswert?

Hi,

gestern hier den Thread gefunden und direkt mal die Teile bestellt ;-)

Drei kleine Fragen zum Aufbau, da ich eher mehr mit Software und weniger 
mit Löten etc vertraut bin:

- Der zweite interne Poti... ist das in der schematischen Abbildung der 
10kOhm Widerstand R1?

- Platine für die Taster. Ist das eine Streifenrasterplatine obwohl die 
eher wie eine Lochrasterplatine ausschaut? Ich wundere mich nur über das 
Bild, da die Taster an sich einzeln verlötet sind, aber keine Verbindung 
analog der schematischen Abbildung untereinander haben. Hätte hier noch 
zusätzliche Litzen zwischen Tastern erwartet.

- Die Nachbauten sehen sich sehr ähnlich. Gibt es irgendwie eine Bohr- 
oder Fräßschablone, die ich noch nicht gefunden habe?

Danke vorab!!

von ghmartin77 (Gast)


Lesenswert?

Hallo Irenäus,

Irenäus B. schrieb:
> - Der zweite interne Poti... ist das in der schematischen Abbildung der
> 10kOhm Widerstand R1?

Exakt. In meiner Aufbaute ist das in den Photos der kleine, blaue, 
rechteckige "Klotz". In der Benutzungsanleitung, die auf GitHub liegt, 
ist das auch im Photo explizit ausgewiesen.

> - Platine für die Taster. Ist das eine Streifenrasterplatine obwohl die
> eher wie eine Lochrasterplatine ausschaut? Ich wundere mich nur über das
> Bild, da die Taster an sich einzeln verlötet sind, aber keine Verbindung
> analog der schematischen Abbildung untereinander haben. Hätte hier noch
> zusätzliche Litzen zwischen Tastern erwartet.

Falls Du von dem Photo meiner Platine auf GitHub sprichst: Das ist eine 
Lochrasterplatine (siehst Du deutlich an den Kupferringen, um die 
Rasterlöcher). Die Verbindung zwischen den Buttons besteht genau wie im 
Schaltbild, aber evtl. lässt sich das Auge täuschen. Die Verbindungen 
(Widerstände auf der einen Seite, Draht auf der anderen) sind zwischen 
den Buttons, nicht innerhalb eines Knopfes (,was ja auch keinen Sinn 
ergäbe).

>
> - Die Nachbauten sehen sich sehr ähnlich. Gibt es irgendwie eine Bohr-
> oder Fräßschablone, die ich noch nicht gefunden habe?

Ich habe keine. Der Übertrag zum Bohren aufs Holz ist aber recht simpel, 
da es genau das Lochraster der Platine abbildet: Einfach gucken, wieviel 
Löcher Abstand zwischen Deinen Tastern liegen würde. dann kannst Du das 
mit einer "nackten" Platine und einer Stecknadel/Fineliner entsprechend 
übertragen. Passend großer Bohrer bei und los geht's.
Für's Schneiden der Platine musst Du allerdings den Versatz der Löcher 
einkalkulieren: Das Rastermaß stimmt, aber die Mitte der Taster/Deiner 
Bohrlöcher kommt nicht auf einem Loch aus, wenn der Taster auf der 
Platine sitzt.
Bei Eintritt von Kopfrauchen bei Verarbeitung der vorhergehenden Sätze: 
Nochmal lesen, einmal im Kopf oder mit Material durchspielen, danach 
wird's klar, versprochen :)

Grüße
ghmartin77

von ghmartin77 (Gast)


Lesenswert?

ghmartin77 schrieb:
> Die Verbindung zwischen den Buttons besteht genau wie im
> Schaltbild, aber evtl. lässt sich das Auge täuschen. Die Verbindungen
> (Widerstände auf der einen Seite, Draht auf der anderen) sind zwischen
> den Buttons, nicht innerhalb eines Knopfes (,was ja auch keinen Sinn
> ergäbe).

Ergänzend dazu fehlt vermutlich noch dieses Puzzleteil:
Die verwendeten Taster sind so aufgebaut:
1
1-----2
2
  T|
3
3-----4

Damit sind die 4 Füße (1,2,3,4) paarweise miteinander verbunden (1 mit 2 
und 3 mit 4). Der Taster T schließt bei Betätigung die Verbindung 
zwischen den "Leitungen" 1/2 und 3/4.

Grüße
ghmartin77

von Irenäus B. (irenaeusbecker)


Lesenswert?

Danke dir für die Rückmeldung! Ich habe tatsächlich im Bild 
05pcbkeys_back.png gedacht, dass die Füße mitteinander verdrahet sind... 
Danke für die Auflösung des Gehirnknotens. Jetzt fehlt nur noch die 
Paketlieferung und dann hoffe ich auf schnelle Erfolge.

von Ronny S. (dr_bal)


Angehängte Dateien:

Lesenswert?

So langsam nimmt die Front formen an...

Wie findet ihr den Entwurf?

von ghmartin77 (Gast)


Lesenswert?

Ronny S. schrieb:
> Wie findet ihr den Entwurf?

Lass es mich so ausdrücken: Shut up and take my money :)

Grüße
ghmartin77

PS: Du brauchst auf jeden Fall einen vollwertigen DFPlayer. Wär schade, 
bei dem geilen Gehäuse auf den vollen Funktionsumfang des Player-Codes 
verzichten zu müssen (z.B. kontinuierliches Abspielen).

von Tim M. (brotzeit)


Lesenswert?

Ronny S. schrieb:
> Wie findet ihr den Entwurf?

Sieht gut aus!!!

@ghmartin77
Würde dir für deine Mühen auch einen Player wie oben abgebildet 
spendieren.
Hab einige davon hier rumliegen!

von ghmartin77 (Gast)


Lesenswert?

Hab mich nochmal mit der DFRobotDFPlayerMini-Library und den 
Unterschieden zwischen den Chips MH2024K-24SS und YX5200 beschäftigt und 
ein paar Dinge herausgefunden:

1) MH2024K reagiert auf ACK-Anforderungen nicht bei allen Kommandos, wie 
die Library das erwartet (und bspw. der YX5200 es tut). Meist kommt 
einfach nur die Antwort auf die Kommandoanfrage, die ACK-Antwort bleibt 
aus.
==> Um Kompatibilität des Codes für beide Chips zu erreichen, muss der 
ACK-Modus ausgeschaltet werden. Das ist die Änderung, die ich bereits 
mit commit 77621df2cf0c73cfc919e383d6546d23f876d431 ins Repo gebracht 
hatte.

2) Wenn ich die Library recht verstanden habe, hat sie ein generelles 
konzeptionelles Problem, das zu seltsamen Effekten führen kann, die 
meinen Code speziell bei der Abfrage nach dem aktuell abgespielten File 
aus dem Tritt bringen kann: Die Kommunikation mit dem Player ist 
grundsätzlich bidirektional. Er schickt über die UART-Schnittstelle 
sowohl Antworten auf Anfragen von einem Mikrocontroller als auch 
Callback-Nachrichten, die vom Player zu beliebigen Zeitpunkten initiiert 
werden. Letztere sind beispielsweise Callbacks für "SD Karte 
eingesteckt", "SD Karte entfernt" oder eben auch "Abspielen von File 
Nummer 4711 beendet".
Leider scheint es keinerlei Synchronisation oder Entkopplung für die 
zwei Paketversandgründe durch den Player (Callback oder Anfrageantwort) 
zu geben. Der Kommando-Teil ist vom Grundschema in folgender Art 
implementiert:
1
    Schicke Kommando-Paket an Player
2
    Warte Timeout ms auf Antwort (d.h. verfügbare Daten auf UART)
3
    Wenn die Antwort vom Typ DFPlayerFeedBack ist
4
        gebe das Anfrageergebnis zurück
5
    sonst
6
        gebe -1 zurück (Fehler)
Stecken im Puffer der UART-Schnittstelle (SoftSerial-Lib) noch alte 
Pakete vom Player (z.B. nicht mit read() abgeholte Antwortpakete) oder 
kommt bei der Kommandoausführung zwischendurch ein Callback-Paket des 
Players an (z.B. "Abspielen von File Nummer 4711 beendet"), gilt der 
Kommandoaufruf als fehlgeschlagen, was bei meiner Implementierung 
beispielsweise das kontinuierliche Abspielen stören kann, weil manchmal 
die Nummer des aktuell abgespielten Files nicht gelesen werden kann. 
@Tim: Das passt zu dem Verhalten, das Du nach der "Disable ACK"-Version 
gesehen hast.

Habe den Code jetzt robuster gestaltet, indem sowohl Overflows des 
SoftSerial-Buffers (meine delay()s im Code sind eigentlich auch nicht 
mit der Funktionsweise der Lib vereinbar) als auch zwischenfunkender 
Gesprächsbedarf seitens des DFPlayers an den entscheidenden Stellen 
hartnäckiger gehandlet werden. Liegt im GitHub und sollte für 
MH2024K-24SS und YX5200 stabil laufen.

Erfahrungsberichte nehme ich gern entgegen :) ...und Danke für die 
bisherigen!

Grüße
ghmartin77

PS: @Tim und @Ronny: Danke für das Angebot, mir einen der JC 
AA1752CJ3J13.1-94 zuschicken zu wollen. Da ich nur zu diesem Zweck nicht 
noch extra eine Packstation-Anmeldung machen möchte und ich meine 
Privatadresse im Internet nicht herausgebe, klappt das nicht. Trotzdem 
weiß ich euer Angebot aber sehr zu schätzen. Danke nochmal!

von Ronny S. (dr_bal)


Angehängte Dateien:

Lesenswert?

Lautsstärkeknopf werde ich auch selbst bauen. Gerade ersten Versuch mit 
ner Bohrmaschine und Schraubendreher als Drechselmesser ;-)

Gar nicht so schlecht. Ist ein Ast von einem Kirschbaum gewesen.

Vg
Ronny

von Irenäus B. (irenaeusbecker)


Lesenswert?

So, ich hätte da noch einen, frisch via Amazon Prime geliefert:
JC/JT AA1828CJ5M2U.1-94

Musik abspielen klappt aber problemlos... sprich Taster, Nächster Titel 
etc. Läuft hier seit ca. 45 Minuten durch. Das mit Advert und den 
Funktionstasten habe ich aber noch nicht aktiv probiert.
Habe weiterhin das .ino von vor vier Tagen verwendet sowie die DFPlayer 
Bibliothek 1.05.

Kleine Anmerkung: Anscheinend passt dein Fritzing nicht ganz zum 
Lötbild; bei der Verbindung zum Key-Pad sind VCC und GND vertauscht. 
Aber hier fluppt jetzt alles. Ist mir nur aufgefallen, da ausschließlich 
"Folder 07" gespielt wurde, egal welcher Taster betätigt wird.

Meine Powerbank steigt immer aus, mit Batterien klappt alles. Habt ihr 
eine USB Powerbank Empfehlung? Widerstand von 130 Ohm führt ja zu 
zusätzlichen 40mA Verbrauch, was eine 2000mAh Powerbank im Betrieb ja 
quasi halbiert (mein DF Player braucht ca. 40mAh bei Zimmerlautstärke).

@Ronny: Kannst du das mit dem personalisierten Ansprechen hier 
darstellen? Würde das ebenfalls sehr gerne übernehmen. Danke vorab!

Danke vorab!

von Irenäus B. (irenaeusbecker)


Lesenswert?

Doch noch eine Anmerkung: restartLastTrackOnStart funktioniert bei mir 
nicht für Folder "01", bei allen anderen aber scheinbar problemlos.

von ghmartin77 (Gast)


Lesenswert?

Irenäus B. schrieb:
> So, ich hätte da noch einen, frisch via Amazon Prime geliefert:
> JC/JT AA1828CJ5M2U.1-94

Ei geh, noch a neues Modell :)

>
> Musik abspielen klappt aber problemlos... sprich Taster, Nächster Titel
> etc. Läuft hier seit ca. 45 Minuten durch. Das mit Advert und den
> Funktionstasten habe ich aber noch nicht aktiv probiert.
> Habe weiterhin das .ino von vor vier Tagen verwendet sowie die DFPlayer
> Bibliothek 1.05.
>

Na, zumindest vorerst gute Neuigkeiten für den neuen Chip-Kandidaten.

> Kleine Anmerkung: Anscheinend passt dein Fritzing nicht ganz zum
> Lötbild; bei der Verbindung zum Key-Pad sind VCC und GND vertauscht.

Verstehe nicht, was Du meinst. VCC/GND/DATA sind im Fritzing-Diagramm 
bei beiden Anschlusspins richtig ausgewiesen...
Was meinst Du mit Lötbild? Wenn Du auf das Photo der Platine abzielst, 
dann ja, da muss es keine Überdeckung geben. Die schematische 
Darstellung des Fritzing-Diagramms hat wenig mit der Pinposition des 
konkreten Boards zu tun. Das ist ja auch ein Schema, kein PCB-Layout.

> Aber hier fluppt jetzt alles. Ist mir nur aufgefallen, da ausschließlich
> "Folder 07" gespielt wurde, egal welcher Taster betätigt wird.
>
> Meine Powerbank steigt immer aus, mit Batterien klappt alles. Habt ihr
> eine USB Powerbank Empfehlung? Widerstand von 130 Ohm führt ja zu
> zusätzlichen 40mA Verbrauch, was eine 2000mAh Powerbank im Betrieb ja
> quasi halbiert (mein DF Player braucht ca. 40mAh bei Zimmerlautstärke).
>

Kannst Dich mit größer werdenden Widerständen rantasten, wieviel 
Stromabruf Deine Powerbank benötigt, damit der 5V-Wandler anbleibt. 
Vorschläge für ein gutes Modell habe ich leider keine. Meine Variante 
war ein Noname-Teil vom Grabbeltisch eines Discounters.
Vielleicht können die anderen Mitleser aber Empfehlungen aussprechen.

> @Ronny: Kannst du das mit dem personalisierten Ansprechen hier
> darstellen? Würde das ebenfalls sehr gerne übernehmen. Danke vorab!

Quickhack:
Leg Dir ein File /20/001.mp3 an mit einer Aufnahme "Hallo <Kindname>..." 
+ vorgeschaltetem THX-Sound versteht sich :)
Dann füge in Zeile 209 ungefähr Folgendes ein:
1
player.playFolder(20, 1);
2
delay(<dauer_des_mp3_in_msec>);

>
> Danke vorab!

> Doch noch eine Anmerkung: restartLastTrackOnStart funktioniert bei mir
> nicht für Folder "01", bei allen anderen aber scheinbar problemlos.

Das guck ich mir demnächst mal tiefer an. Vom scharfen Angucken des 
Codes in den letzten 5 Minuten wollte sich mir ein solches Verhalten 
nicht erschließen, aber das heisst nix :)

Grüße
ghmartin77

von Tim M. (brotzeit)


Lesenswert?

ghmartin77 schrieb:
> annst Dich mit größer werdenden Widerständen rantasten, wieviel
> Stromabruf Deine Powerbank benötigt, damit der 5V-Wandler anbleibt.

Ich habe am 2. Player nen Vorwiderstand und dahinter nen Drehpotti 
angebracht.
So kann man den Stromverbrauch genau einstellen.

von ghmartin77 (Gast)


Lesenswert?

ghmartin77 schrieb:
>> Doch noch eine Anmerkung: restartLastTrackOnStart funktioniert bei mir
>> nicht für Folder "01", bei allen anderen aber scheinbar problemlos.
>
> Das guck ich mir demnächst mal tiefer an. Vom scharfen Angucken des
> Codes in den letzten 5 Minuten wollte sich mir ein solches Verhalten
> nicht erschließen, aber das heisst nix :)

Fehler gefunden. Danke für Deinen Hinweis! In Deinem Folder "01" lag nur 
ein File, richtig? In diesem Fall funktionierte das Wiederanspielen des 
letzten Tracks nicht.

Hab den Code überarbeitet. Liegt korrigiert im GitHub-Repo.

Zusätzlich habe ich die DFPlayerMini-Library wg. ihres Konzeptproblems 
(s.o.) durch eine andere ersetzt, die mit Callbacks arbeitet und dieses 
Problem nicht hat. Hoffe, ich habe dabei keine neuen Fehler eingebaut :)

Grüße
ghmartin77

von Tim (Gast)


Lesenswert?

Ich komm mit den Softwareversionen gar nimmer hinterher... das geht ja 
ratz fatz.
Hab gestern erstmal die letzte Version draufgespielt.
Die läuft nicht schlecht.

Bei der ganz aktuellen kann ich z.B. im ersten Ordner keinen Track 
wechseln...

von Irenäus B. (irenaeusbecker)


Lesenswert?

Hallo Tim,

ich kann selbiges Verhalten bestätigen, sprich bei der aktuellen Version 
vom 11.11.2018 kann ich im Folder 01 nur Lied 001.mp3 abspielen. Bei 
allen anderen Foldern klappt das problemlos.

VG

von N. B. (gabunz)


Lesenswert?

Hallo ghmartin77,

mal eine andere Frage. Ich habe das Projekt auch nachgebaut, aber mit 
einem kleineren Lautsprecher. Da die Stromentnahme nicht ausreicht 
schaltet die Powerbank natürlich nach ein paar Sekunden ab.

Eine probate Lösung ist natürlich, einen "Entladewiderstand" zwischen 
Vcc und Gnd zu schalten. Bei mir würde dann aber die Laufzeit auf ein 
drittel reduziert. Zudem müsste man die Schwelle suchen, an dem die 
Schaltung mit Widerstand die Powerbank an lässt und wenn der Player nix 
mehr tut die Powerbank auch abschaltet.

Wäre dies nicht einfacher, wenn man einen Port am Attiny freischaufelt 
und man dort eine Programmgesteuerte Impulsentladung über einen 
Widerstand mittels Transistorschaltung realisiert? Die Powerbanks 
benötigen meistens keine dauerhafte Entladung um angeschaltet zu 
bleiben. Oft reicht ein kurzer Impuls von wenigen ms 
([[http://www.mino-elektronik.de/Powerbank/powerbank.htm]]). Das würde 
dann die Akkulaufzeit deutlich wieder nach oben schrauben. Zudem könnte 
man, wenn der Prozessor in den SleepModus geht, das Aussenden des 
Impulses einstellen und die Powebank geht garantiert aus!

Mein Vorschlag wäre es, man verzichtet auf die interne 
Volume-Einstellung und hat den Pin frei. Alternativ könnte man diese 
Einstellung doch auch über einen Tasten-Shortcut realisieren, ähnlich 
wie beim Sleep-Modus. Z.B. Taste 5 für 3 Sek. drücken und anschließend 
Tasten 1-11 für die gewünschte maximale Lautstärke. Der Wert könnte auch 
im EEProm gespeichert werden. Das spart schon mal ein Bauteil, etwas 
Lötarbeit und ist später auch leichter zu Handeln. Zur Sicherheit, dass 
das fixe Kind es nicht verstellt wäre eine "Codeabfrage" denkbar.

Grüße
gabunz

von Christian S. (chris02)


Lesenswert?

Aus meiner Sicht ist da einfach die PowerBank ungeeignet. Wieso sollte 
man hierfür eine extra Softwareversion schaffen?

Meistens lassen sich die PowerBanks Recht leicht öffnen. Guck doch Mal 
rein, evtl hast du eine Strommessung über einen Shunt oder andere 
Beschaltung, welche du ruckzuck anpassen kannst.

von Stefan F. (Gast)


Lesenswert?

Die Idee, den Lastwiderstand pulsierend an die Powerbank anzulegen ist 
nicht neu. Irgendwo habe ich das als komplettes Projekt mit 
Dokumentation gesehen.

Dazu brauchst du nicht einmal einen Transistor, denn die I/O Pins der 
AVR Mikrocontroller vertragen 40mA, das sollte genügen.

Wenn etwas weniger Strom reicht, kann man dazu vermutlich einfach den 
TxD Ausgang des Mikrocontrollers verwenden.

von Klaus R. (klaus2)


Lesenswert?

...die Strom- bzw Verbrauchermessung ist bei den einfachen PBs 
(schätzungsweise damit der Großteil der hier verwendeten!) im für diesen 
Zwekc hochintegrierten Chip enthalten. Forget it (falls das damit nicht 
klar sein sollte). Es reichen oft WENIGE xx mA bei den SO8 Spezial-Chips 
um "aktiv" zu triggern.

Klaus.

: Bearbeitet durch User
von Christian S. (chris02)


Lesenswert?

Habe zu dem Thema auch nochmal ein wenig gegoogelt. Der von Stefanus 
angeaprochener Threads sollte der hier sein.

Beitrag "Powerbank-Shut-Off überlisten"

Ansonsten einen einfachen mosfet nehmen und einen pulldown gegen Masse 
schalten.

Der attiny kommt mit seinen Pins langsam an die Grenze, aber auch ein 
arduino für wenig Geld und schon inkl. USB Schnittstelle tut hier seinen 
Dienst. Werde hierzu meinen Aufbau Mal übernächste Woche Posten, dann 
habe ich hoffentlich alles zusammen.

von N. B. (gabunz)


Lesenswert?

Christian S. schrieb:
> Aus meiner Sicht ist da einfach die PowerBank ungeeignet. Wieso sollte
> man hierfür eine extra Softwareversion schaffen?

Nun, man muss es nicht, aber man kann es. Zudem hätte es den Vorteil, 
dass man die Software nur einmal anpasst, eine kleine, wenige Cent 
kostende Schaltung integriert und ich und jeder andere sich keine 
Gedanken mehr um die Powerbank machen muss. Zwei Widerstände, ein 
Transistor oder Mosfet und gut iss. Hab derzeit einen 57 Ohm Widerstand 
in der Versorgungsspannung hängen, der mir etwa 87mA unnütz verbrät. 
Alle 5 Sek. einen kurzen 0,5 Sek.-Impuls am Attiny-Ausgang erzeugen, 
würde diesen Verbrauch auf umgerechnet <10mA Dauerlast senken.

> man hierfür eine extra Softwareversion schaffen?

müsste man gar nicht. Man könnte das mit einbauen und in der Software 
nach bedarf toggeln. Genug Speicher sollte noch da sein.

vg

von Irenäus B. (Gast)


Lesenswert?

Pin 1 ist ja noch ungenutzt... wäre der dafür geeignet?

von Christian S. (chris02)


Lesenswert?

OK, ihr habt mich mit der SW Variante überzeugt. :D Mal gucken was meine 
PowerBank nach dem Zusammenbau des Players macht, ich werde berichten .

Pin 1 ist auch als IO verwendbar. Wenn du das eingestellt hast, kannst 
du den attiny danach aber nicht mehr per SPI programmieren. Also eher 
schlecht. Du brauchst einen HV programmer um dies zurück setzen zu 
können.
Evtl gibt's da Möglichkeiten eines speziellen Bootloaders?


Aber was spricht gegen einen größeren Controller? Der Preis bei 1St ist 
es wohl nicht.

: Bearbeitet durch User
Beitrag #5622297 wurde vom Autor gelöscht.
von Irenäus B. (Gast)


Lesenswert?

Erneutes Löten :)

Ansonsten erstelle ich einfach eine zweite Mini-Platine mit einem 
weiteren Attiny85, Transistor und Widerständen.

Hat sonst schon jemand die aktuelle Software von ghmartin77 getestet? 
Tim und ich haben ja Probleme mit dem Folder 01

Beitrag #5622490 wurde von einem Moderator gelöscht.
von ghmartin77 (Gast)


Lesenswert?

Hallo zusammen,

Danke für die Fehlermeldung mit Folder 1. War ein Timing-Problem. Hatte 
die neue Variante nur mit einem Arduino Nano probiert, der etwas länger 
zum Startup benötigt als der ATTiny. Letzterer will dann bereits die 
Anzahl der Files im ersten Folder vom DFPlayer wissen, wenn der Player 
noch nicht initialisiert ist, kriegt keine korrekte Anzahl und geht von 
0 Files aus. Das führt dazu, dass man nur das erste im Ordner enthaltene 
File abspielen kann.
Hab ein paar Pausen und Retries eingebaut.

--> Einen Fix findet ihr im GitHub-Repo.

Die Sache mir dem KeepAlive der Powerbank finde ich ganz interessant. 
Der Reset-Pin eignet sich nicht, weil dann erneutes Flashen "unbequem" 
ist (wie oben bereits erwähnt). Allerdings hatte ich ja weiter oben 
schon angemerkt, dass internes und externes Lautstärken-Poti bei 
cleverer Verschaltung auch mit nur einem Pin auskämen. Damit hätte man 
einen Pin frei, um einen Mosfet zu triggern, der einen kurzen Peek-Strom 
aus der PowerBank zieht, um sie wach zu halten.

Lasst mal hören, ob ihr euch bereits was als Workaround gebastelt habt, 
oder ob noch Interesse an entsprechendem Code besteht.

Grüße
ghmartin77

von Christian S. (chris02)


Lesenswert?

ghmartin77 schrieb:
> Allerdings hatte ich ja weiter oben schon angemerkt, dass internes und
> externes Lautstärken-Poti bei cleverer Verschaltung auch mit nur einem
> Pin auskämen

Mir fällt das nur die Möglichkeit ein, die Potis mittels Multiplexer 
umzuschalten. Aber selbst dafür fehlt ein Digital Pin um den Multiplexer 
um zu schalten.

Schaltest du sie in Reihe, tastest du nur das Verhältnis ab und 
beeinflusst beide Lautstärken gegenseitig.

Die einzigen Möglichkeiten, die ich mit einem Attiny88 sehe sind
- interne LS per Software, was aber u.a. auf Reisen und auch sonst 
schlecht im Alltag umzusetzen ist (Meine Frau kann nicht mal eben neu 
Flashen)
- über einen Bootloader zu gehen. Aber hier habe ich auch nichts 
passendes gefunden um den ResetPin frei zu bekommen.

von Gabunz (Gast)


Lesenswert?

Christian S. schrieb:
> Mir fällt das nur die Möglichkeit ein, die Potis mittels Multiplexer
> umzuschalten. Aber selbst dafür fehlt ein Digital Pin um den Multiplexer
> um zu schalten.

Nun, was wäre mit der Option, eine Taste für 3 Sek. zu drücken,  dann 
die Tasten 1 - 11 abzufragen für die gewünschte Maximallautstärke? 
Genau so, wie auch der Sleep-modus eingestellt wird.

Das hätte den Vorteil, man braucht das interne Poti gar nicht --> 
weniger Lötarbeit. Auch muss das Kästchen nicht geöffnet werden für 
diese Einstellung.  Und nur der, der dann die Keep-Alive-Funktion 
braucht, der schaltet einen Widerstand am feiern Port an, der dann per 
Software periodisch ein- und ausgeschaltet wird.

Vg

von Hermann (Gast)


Lesenswert?

Hallo, in meinem player habe ich diese powerbank von Reichelt eingebaut
https://www.reichelt.de/powerbank-li-ion-4400-mah-usb-xlyne-x41-p153236.html?&trstct=pol_10
Die schaltet auch bei sehr kleinen Strömen von wenigen mA nicht ab.
Mit nur 5mA LED Last läuft die powerbank durch.
Gruß Hermann

von Tim (Gast)


Lesenswert?

ghmartin77 schrieb:
> --> Einen Fix findet ihr im GitHub-Repo.

Die Version funktioniert bei mir nicht.
Der Player ist mit keiner Taste zum Leben zu erwecken...

von ghmartin77 (Gast)


Lesenswert?

Hi Tim,

bitte hilf mir, das etwas einzugrenzen. Wenn ich Dich recht verstehe, 
dann

1) ...lief die Version vom 11.11. 
(https://github.com/ghmartin77/KidsMP3Player/tree/c1f444d317912c850930e528ac0618a07d701efd) 
grundsätzlich gut bei Dir, nur über Taste 1 konntest Du nur den ersten 
Track abspielen.

2) ...läuft die jetzige Head-Version aus dem Repo bei Dir gar nicht bei.

3) Aussagen #1+#2 beziehen sich jeweils auf die selbe Hardware.

So richtig?
Kannst Du mir bitte noch die Chipbezeichnung Deines DFPlayers nennen?

Danke Dir!

Grüße
ghmartin77

von Irenäus B. (irenaeusbecker)


Lesenswert?

Hallo Tim, ghmartin77,

habe heute mal den aktuellen Code aus dem Repo auf den Attiny85 
hochgeladen. Bei mir klappt alles wunderbar, sprich kann nun Folder 01 
auch wieder durchklicken.

Danke

von ghmartin77 (Gast)


Lesenswert?

Hallo Irenäus,

Danke für die Rückmeldung.

Irenäus B. schrieb:
> Bei mir klappt alles wunderbar, sprich kann nun Folder 01
> auch wieder durchklicken.

Genau so war mein Fix auch beabsichtigt :)

Mal sehen, was Tim noch berichtet, dass wir das bei ihm bestehende 
Problem weiter einkreisen können...

Grüße
ghmartin77

von Tim (Gast)


Lesenswert?

ghmartin77 schrieb:
> 1) ...lief die Version vom 11.11.
> 
(https://github.com/ghmartin77/KidsMP3Player/tree/c1f444d317912c850930e528ac0618a07d701efd)
> grundsätzlich gut bei Dir, nur über Taste 1 konntest Du nur den ersten
> Track abspielen.
>
RICHTIG!
>
> 2) ...läuft die jetzige Head-Version aus dem Repo bei Dir gar nicht bei.
>
Richtig! Keine Reaktion vom Player.
>
> 3) Aussagen #1+#2 beziehen sich jeweils auf die selbe Hardware.
>
> So richtig?

Richtig!

> Kannst Du mir bitte noch die Chipbezeichnung Deines DFPlayers nennen?

DFROBOT LISP3
XY8002D 170721

Aktuell läuft der Player mit der Version, bei der in Folder 1 das 
Wiederanspielen nicht funktioniert, recht gut.

So langsam verlier ich den Überblick mit den ganzen  Versionen...

von ghmartin77 (Gast)


Lesenswert?

Hi Tim,

seltsam, seltsam.
Ich stell mal noch ein paar Fragen (bis auf 1+2 alle in Bezug auf die 
Head-Version aus dem GitHub-Repo):

1) Wie lange benötigt Dein Player ungefähr mit der Variante, die 
funktioniert, bis ein erster Ton aus dem Lautsprecher erklingt?

2) Sind in Deinem Folder 01 viele oder große Files enthalten? Entspricht 
das Benennungsmuster den Vorgaben? 001.mp3, 002.mp3 usw.?

3) Was passiert, wenn Du die Files aus Folder 02 in den zuvor geleerten 
Folder 01 kopierst?

4) Was passiert, wenn Du nur ein File 001.mp3 in den Folder 01 kopierst?

5) Was passiert, wenn Du den Folder 01 komplett leer lässt?

Grüße
ghmartin77

von Irenäus B. (irenaeusbecker)


Lesenswert?

Gerade nochmal mit einem zweiten Attiny gecheckt und folgendes in Zeile 
208 eingebaut:

player.playFolderTrack(20, 1);
delay(2000);

Fluppt alles wunderbar.

Tim, wird denn dein Attiny fehlerfrei beschrieben / überschrieben?

von Tim (Gast)


Lesenswert?

ghmartin77 schrieb:
> Ich stell mal noch ein paar Fragen (bis auf 1+2 alle in Bezug auf die
> Head-Version aus dem GitHub-Repo):
>
> 1) Wie lange benötigt Dein Player ungefähr mit der Variante, die
> funktioniert, bis ein erster Ton aus dem Lautsprecher erklingt?
>
Sieben Sekunden

> 2) Sind in Deinem Folder 01 viele oder große Files enthalten? Entspricht
> das Benennungsmuster den Vorgaben? 001.mp3, 002.mp3 usw.?
>
45 Tracks mit ca. 4MB je Track

> 3) Was passiert, wenn Du die Files aus Folder 02 in den zuvor geleerten
> Folder 01 kopierst?
>
Dann funktioniert es !!???!!!!

> 4) Was passiert, wenn Du nur ein File 001.mp3 in den Folder 01 kopierst?
>
> 5) Was passiert, wenn Du den Folder 01 komplett leer lässt?

Komisch, hab jetzt alles mögliche probiert. Folder 1 leer, nur ein 
Track, mehrere Tracks -> Keine Funktion.
Seit ich die Tracks von Folder 2 in 2´1 kopiert habe, scheint es zu 
funktionieren!

Edit:
Kopiere ich dann allerdings die 45Tracks wieder zurück in Folder 1, geht 
nix mehr...

von ghmartin77 (Gast)


Lesenswert?

Hi Tim,

sieht mir nach einem Timing-Issue aus. Probier mal bitte folgendes:
Ersetze bitte Zeile 115 durch folgenden Code:
1
delay(1000);
2
softSerial.setTimeout(2000);

Grüße
ghmartin77

von Tim (Gast)


Lesenswert?

ghmartin77 schrieb:
> Ersetze bitte Zeile 115 durch folgenden Code:delay(1000);
> softSerial.setTimeout(2000);

Zeile 115 = delay(250); ???

ersetzen durch:
(Zeile 115:) delay(1000);
(Zeile 116:) softSerial.setTimeout(2000);

Bin ich da richtig?

von ghmartin77 (Gast)


Lesenswert?

Tim schrieb:
> Bin ich da richtig?

Absolut und total...

von Tim (Gast)


Lesenswert?

ghmartin77 schrieb:
> Ersetze bitte Zeile 115 durch folgenden Code:delay(1000);
> softSerial.setTimeout(2000);

Funktioniert trotzdem nicht. Player ohne Reaktion.

von Irenäus B. (irenaeusbecker)


Lesenswert?

Tim, hast du mal die MP3 Dateien aus Folder 01 geprüft? Hat da eine 
Datei ggfs. eine komische Bitrate etc? Ist ja schon auffällig, dass die 
Dateien aus Folder 02 in Folder 01 funktionieren.

Sonst mach mal eine Rekodierung mit Audiograbber etc.

von Tim M. (brotzeit)


Lesenswert?

In Folder 2 waren auch nur vier Tracks.
Ich vermute es liegt an der Menge der Dateien.
Bei der älteren Version werden die Files ja aucn abgespielt...

von Ronny S. (dr_bal)



Lesenswert?

So langsam geht es wieder weiter. Hatte die letzten 3 Wochen keine Zeit.

der Originale DFPlayer ist auch bestellt.

Ich habe jetzt noch 4 LEDs für den Akkustand der Powerbank integriert. 
Dafür ist dann das Plexiglasteil.

Mal schauen ob ich die Originale Anzeige verwende oder sogar ws2812b 
LEDs mit Farbfunktion. Dann könnten diese in der Farbe der jeweiligen 
Playlist Leuchten ;-)

Frontplatte werde ich wohl noch einmal neu machen müssen, da hat die 
Fräse nicht gut gearbeitet.

noch viel schleifarbeit :-)

: Bearbeitet durch User
von Irenäus Becker (Gast)


Angehängte Dateien:

Lesenswert?

WoW, schaut sehr professionell aus. Ist das mit einer CNC-Fräse 
hergestellt? Hast du da einen Hersteller bzw. Modell-Tipp für die 
Zukunft etc oder kannst du sogar diesen Bären bei Interesse herstellen 
und verschicken? Natürlich gegen Vergütung!

Ich selbst bin nun auch mit der "Mädels"-Version fertig und habe heute 
alles fertigestellt. Siehe Fotos.

Im Grunde hat sich mein Powerbank-Problem von selbst erledigt, da diese 
keinen Verpolungsschutz hatte und damit direkt (durch 5V !) zerstört 
wurde. Habe eine neue besorgt, die auch problemlos mit 30-40mAh 
Verbrauch funktioniert: https://www.ebay.de/itm/173589965885

von Stefan F. (Gast)


Lesenswert?

Ich fine die versetzten Kanten auf der Front-Seite irritierend.

von Tim M. (brotzeit)


Lesenswert?

Irenäus Becker schrieb im Beitrag
> Ich selbst bin nun auch mit der "Mädels"-Version fertig und habe heute
> alles fertigestellt.

Und wieder ein Player fertig, wunderbar.
Jetzt noch die Kanten etwas verrunden, und vorsicht dass der Griff nicht 
abbricht.
Kinder sind gnadenlos mit dem Player, ruck zuck ist da was hinüber!
Welchen Lautsprecher hast du verbaut?

Die CAD-Daten von dem Bär könnte ich auch brauchen ;-)

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Tim M. schrieb:
> Welchen Lautsprecher hast du verbaut?

ich, ich, ich, ich weiß es :-)

Visaton FR 8

von Tim M. (brotzeit)


Lesenswert?

Vermutlich Art. Nr. 2008 bei 8Ohm!?

Haut das hin mit den 10Watt?  Da sollte doch der Player in die Knie 
gehen!?

von Irenäus Becker (Gast)


Lesenswert?

Hi,

die Kanten habe ich vorhin nochmal geschliffen und natürlich diese 
Multiplex-Kante geölt. Sieht jetzt noch etwas besser aus.

Der FR8 hat ja dieselben Leistungsdaten wie der SC5.9; ehrlicherweise 
ist der voll aufgedreht sehr laut, der DF hat das auch ohne Probleme 
durchgehalten; demnach bin ich aber froh, dass die Lautstärke über den 
zweiten Poti reduziert wird. (@Martin: Danke für dieses tolle Feature in 
der Planung!)
Ist ja für schließlich auch für Kinder gedacht; insofern mache ich mir 
da keine Sorgen. Falls der DF doch mal defekt ist, habe ich hier noch 
einen Backup-DF für 5€ rumfliegen.

@Stefanus: Im Grunde ist es Geschmackssache; ich wollte erst die 
Anleitung 1:1 mit Ikea-Rahmen nachbauen, aber dann hat meine Frau ein 
ähnliches Design bei Hoerbert-Nachbauten gefunden... da durfte ich dann 
umplanen. Anfangs war das Gehäuse einfach nur geölt, wir haben es dann 
noch nachlasiert. Deshalb sieht es ein wenig "Shabby" aus... sieht aber 
in Natura viel besser aus als auf den Fotos.

@Tim: Mir persönlich gefällt der runde Lautsprecher optisch besser als 
der SC5.9/4.7. Klanglich reicht der VIS FR 8-8 vollkommen aus!

@Tim #2: Der Griff ist verleimt und von unten mit zwei Schrauben 3x16mm 
verschraubt; bin selber gespannt wie lange der halten wird ;)

von Irenäus Becker (Gast)


Lesenswert?

Hallo Martin,

habe doch nochmal eine Frage... "Continuous Play ON/OFF" meint, dass die 
Lieder im Folder kontinuierlich durchgespielt werden, korrekt?

Gäbe es eine Möglichkeit bei PowerON das Lied ab der letzten 
abgespielten Position weiter abzuspielen? Die DFMiniMp3 Bibliothek hilft 
mir da nicht weiter... und Dr. Google findet leider auch nichts.

VG
Irenäus

von ghmartin77 (Gast)


Lesenswert?

Irenäus Becker schrieb:
> eine Möglichkeit bei PowerON das Lied ab der letzten
> abgespielten Position weiter abzuspielen?

Hi Irenäus,

das kann der DFPlayer leider nicht. Das höchste der Gefühle ist der 
bereits eingebaute Wiederanlauf des zuletzt spielenden Tracks. Dieser 
aber von Anfang an. Die Spielposition kann man sich weder merken noch 
beim Abspielen anspringen.

Grüße
ghmartin77

von ghmartin77 (Gast)


Lesenswert?

Irenäus Becker schrieb:
> "Continuous Play ON/OFF" meint, dass die
> Lieder im Folder kontinuierlich durchgespielt werden, korrekt?

Genau das heisst es. Zusätzlich gibt es noch die Einstellung zur 
Endlosschleife innerhalb einer Playlist, die separat aktiviert werden 
kann.

Siehe auch Seite 4 der deutschsprachigen Anleitung:
https://github.com/ghmartin77/KidsMP3Player/blob/master/assets/Manual%20German.pdf

Grüße
ghmartin77

von Ronny S. (dr_bal)


Lesenswert?

Irenäus Becker schrieb:
> WoW, schaut sehr professionell aus. Ist das mit einer CNC-Fräse
> hergestellt? Hast du da einen Hersteller bzw. Modell-Tipp für die
> Zukunft etc oder kannst du sogar diesen Bären bei Interesse herstellen
> und verschicken? Natürlich gegen Vergütung!
>

Hi ja mit einer Eigenbau Größe habe ich die Sachen gegrüßt und dann 
zusammengeklebt.

Wie groß sollte der Teddy werden? Auch mit dem Lautsprecherloch?

von Ronny S. (dr_bal)


Lesenswert?

Hi,

Ich habe heute die Akkuanzeige integriert.

Der Arduino Nano misst die Spannung des Akkus und zeigt diese mittels 4 
ws2812 LEDs an.

Zusätzlich habe ich es jetzt so programmiert, dass die LEDs anzeigen 
welche Playlist, also welche Knopfarbe gerade spielt.

Hier ein kleines Video dazu:

https://youtu.be/DxMN2CIl4x8

Vg
Ronny

von Irenäus B. (Gast)


Lesenswert?

Hi,

Coole Idee. Ich darf wohl nächstes Jahr ein zweites bauen. Magst du hier 
ggfs den Code und die Verkabelung mit dem Nano teilen?

VG
Irenäus

von Ronny S. (dr_bal)


Angehängte Dateien:

Lesenswert?

Irenäus,

Klar habe mal das Repository von Martin geforked.

Ich werde den code Mail bei gelegenheit aktualisieren.

https://github.com/ronbal/KidsMP3Player


Bin gerade am lackieren.

von Steffen R. (steffenrahm)


Lesenswert?

Hallo,

ich bräuchte etwas Hilfe.

Ich habe mir ein Attiny85 von digispark gekauft ( wie oben beschrieben) 
funktioniert dieser (scheinbar) nicht mit softwareserial.
Auch mit softserial habe ich keine Lösung hinbekommen.

Könnte mir jmd. einen Tipp/ Hilfe geben?

Vielen Dank im voraus!!!

Generell auch ein Danke für dieses Projekt!


MfG
Steffen

von ghmartin77 (Gast)


Angehängte Dateien:

Lesenswert?

Hi Steffen,

Settings anbei sind IMHO die relevanten: 8MHz internal + danach 
Bootloader brennen, um die Fuses entsprechend zu setzen. Danach frisch 
compilieren und Code hochladen. Bild aus der ArduinoIDE im Anhang.

Um rauszufinden, ob dir damit tatsächlich geholfen werden kann, müsstest 
du aber noch ein paar Details rauslassen:
1) Wie kommst du drauf, dass Softserial bei dir nicht geht?

2) Welches Setup hast du? Geht's auch um ein Abspielgerät mit DFPlayer?

3) Wie äußert sich "geht nicht" konkret?

Grüße
ghmartin77

von Florian R. (flo1234)


Lesenswert?

Hallo,

ich würde gerne meinen Player noch um eine Kopfhörerbuchse erweitern. 
Ich habe gesehen, dass es Klinkenbuchsen mit Schaltkontakt gibt:
https://m.aliexpress.com/item/32737039341.html

Haltet ihr es für möglich die Kopfhörerbuchse parallel zum Lautsprecher 
anzuschließen und  eine Leitung zum Lautsprecher über den Öffnerkontakt 
der Buchse zu führen? Wenn dann ein Kopfhörer eingesteckt wird sollte 
doch der Lautsprecher stumm werden, oder?

Gruß Florian

von Tim M. (brotzeit)


Lesenswert?

Da bin ich auch grad dran...
Der Player hat ja nen Kopfhörerausgang, und theoretisch sollte man den 
Öffnerkontakt der Buchse zum Unterbrechen der Lautsprecherleitung 
verwenden können.
Hab nur Bedenken das beim Einstecken ein Kurzschluss entstehen 
könnte!???

von Florian R. (flo1234)


Lesenswert?

Ich hab mir jetzt die Buchsen bestellt, ich probiere dann Mal ein 
bisschen rum. Ich würde vermutlich den Lautsprecherausgang auch für für 
Kopfhörer nehmen, dann dürfte es ja auch keinen Kurzschluss geben, oder?

von Klaus R. (klaus2)


Lesenswert?

Das wird aber evtl zu laut! Da müssen ggf zusätzl Widerstände in die + 
Leitung, vll 150 Ohm.

Klaus.

von Florian R. (flo1234)


Lesenswert?

Klaus R. schrieb:
> Das wird aber evtl zu laut! Da müssen ggf zusätzl Widerstände in die +
> Leitung, vll 150 Ohm.
>
> Klaus.

Okay, d.h. besser den Kopfhörer an die DAC_R /DAC_L -Ausgänge, oder?

von Irenäus Becker (Gast)


Lesenswert?

Hallo Florian,

die Idee ist super. Kannst du später nach dem Test hier deine Ergebnisse 
teilen?

Danke vorab!

von Florian R. (flo1234)


Lesenswert?

Hallo,
ja das mache ich gerne. Wird aber dauern, da ich die Buchsen in China 
bestellt habe.
Gruß Florian

von Klaus R. (klaus2)


Lesenswert?

...da nimmt man irgend nen e-schrott und baut die da aus - feddich.

Klaus.

von Jan H. (heidi87)


Lesenswert?

Moin Moin,

Ich hab alles so gebaut wie es beschrieben wurde.
Soweit funktioniert es auch.
Ich hab jedoch das Problem das sporadisch die Tracks stehen bleiben.
Dann muss ich einmal einen Neustart durchführen um weiter Abspielen zu 
können. Es gibt auch keinen definierten Zeitpunkt wann ein Der Stopp 
kommt.

Ich würde mich über Unterstützung freuen.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Jan H. schrieb:
> Ich hab jedoch das Problem das sporadisch die Tracks stehen bleiben.

Ich hatte mal eine Powerbank, die ca. alle 40s kurz ausgeschaltet hat.

von Jan H. (heidi87)


Lesenswert?

Das könnte ich ja mal prüfen, Danke. Es passiert nicht immer, aber schon 
so häufig das es nervt.

Ich habe es geprüft, die Powerbank schaltet nicht ab. Die 5v liegen an, 
wenn abgeschaltet wird.

: Bearbeitet durch User
von Irenäus B. (Gast)


Lesenswert?

Hast du denn mal mit einem usb Netzteil gegengeprüft?

Lötstellen auch alle ok?

von ghmartin77 (Gast)


Lesenswert?

> Es gibt auch keinen definierten Zeitpunkt wann ein Der Stopp kommt.

Hi Jan,

lässt sich denn sagen, ob es mitten im Audiotrack aufhört oder beim 
Übergang zum nächsten (continuous play)?

Ist es evtl. lautstärkenabhängig? Der DFPlayer steigt zuweilen aus, wenn 
er zuviel (Audio-)Leistung liefern soll...

Hat Dein Lautsprecher 8Ohm? Weniger (e.g. 4Ohm) ist nicht besser, 
sondern zieht mehr Saft aus dem Verstärker des DFPlayer, was dessen 
Reset begünstigt.

Schon eine andere Spannungsversorgung probiert? Z.B. ein USB-"Netzteil"?
Wie ist das Verhalten dann?

Welche Softwarevariante hast Du im Einsatz (GitHub-SHA des Commits)? 
Hast Du Änderungen vorgenommen? Gebaut mit ATTiny oder mit Arduino? 
Fuses richtig gesetzt (8MHz bei ATTiny)?

Grüße
ghmartin77

von Jan H. (heidi87)


Lesenswert?

Hallo ghmartin77,

danke für die schnelle Rückmeldung.

>lässt sich denn sagen, ob es mitten im Audiotrack aufhört oder beim
Übergang zum nächsten (continuous play)?

Die Abbrüche geschehen mitten im Audiotrack.

>Ist es evtl. lautstärkenabhängig? Der DFPlayer steigt zuweilen aus, wenn
er zuviel (Audio-)Leistung liefern soll...

Ich habe die Lautstärke auf niedrigster Stufe auf dem Kinderpoti und 
knapp unter der Hälfte auf dem Elternpoti.
Ich muss mal verschiedene Lautstärke situationen testen um eine genaue 
Aussage treffen zu können.

>Hat Dein Lautsprecher 8Ohm? Weniger (e.g. 4Ohm) ist nicht besser,
sondern zieht mehr Saft aus dem Verstärker des DFPlayer, was dessen
Reset begünstigt.

Ich habe den 8ohm Lautsprecher von Visaton (FR10HM) drin.

>Schon eine andere Spannungsversorgung probiert? Z.B. ein USB-"Netzteil"?
Wie ist das Verhalten dann?

Werde ich testen.

>Welche Softwarevariante hast Du im Einsatz (GitHub-SHA des Commits)?
Hast Du Änderungen vorgenommen? Gebaut mit ATTiny oder mit Arduino?
Fuses richtig gesetzt (8MHz bei ATTiny)?

Ich habe einen ATTiny 85 benutzt. Die "Fuses" habe ich auf 8Mhz gesetzt.
Die einzige Änderung die ich gemacht habe, ist die Zuordnung der Taster, 
sonst habe ich im Text nichts geändert.
Die Softwareversion ist die vom 11.11.2018.

Ich melde mich sobald ich das 5v Netzteil getestet habe.

beste Grüße und vielen Dank

Jan

: Bearbeitet durch User
von ghmartin77 (Gast)


Lesenswert?

> Die Abbrüche geschehen mitten im Audiotrack.

Dann ist irgendetwas in der Ecke des DFPlayers nicht koscher. Der spielt 
autark. Wenn er mittendrin aufhört, hat der entweder nen Schlag oder die 
Stromversorgung ist nicht durchgehend stabil:
-kalte Lötstelle
-Powerbank geht kurz aus (oder deren Spannung bricht signifikant ein). 
Jenachdem, mit was Du gemessen hast, geht das schnell genug, dass Du das 
nicht sehen kannst. Voltmeter reicht da nicht, da zu träge.

Vorschläge (in der Reihenfolge):
-Test mit USB-Netzteil
-Lötstellen checken
-"Dicker" Kondensator über VCC und GND des DFPlayers (1000uF)
-DFPlayer austauschen

Good Luck!

Grüße
ghmartin77

von Jan H. (heidi87)


Lesenswert?

Moin Moin,

Dank diverser Hinweise konnte ich das Problem finden.
Es wird wohl die Spannungsversorgung sein.
Ich habe mit einem Netzteil 1h versucht den Fehler zu reproduzieren, 
jedoch ohne Erfolg!
Nun kann ich mir eine neue Powerbank suchen.
Hat jemand dazu einen Tip?
Ich vermute das der Stromverbrauch von ca. 50-60mA zu gering ist und die 
Powerbank dann abschaltet.

Ich bedanke mich vielmals bei allen die sich Gedanken zu dem Problem 
gemacht haben.

Ich würde auch gern ghmartin77 danken der dieses Projkt veröffentlicht 
hat und immernoch super unterstützt!

vielen Dank dafür.

von Irenäus Becker (Gast)


Lesenswert?

Hi,

habe mir vor Weihnachten die folgende geholt, läuft absolut problemlos. 
Kapazität nach ca. 20h Gebraucht immer noch 3 von 4 LEDs.

https://www.ebay.de/itm/173589965885?ul_noapp=true

VG

von Daniel Frei (Gast)


Lesenswert?

Hallo,

ich bin auch dran den MP3 Player für meinen Sohn nachzubauen.

Ich hab mir mal die Mühe gemacht und eine Einkaufsliste geschrieben.

Vielleicht kann ja mal der ein oder andere drüber schauen ob das alles 
so passt. Die Widerstände für die Schalter hab ich auf 10kOhm angepasst, 
da diese ja auf dem Bild so verbaut sind.

Das Feature mit der Anzeige der RGB Led's welche Playlist läuft ist da 
noch nicht drin.
Wo finde ich das, wie es intergriert und umgesetzt ist?

Gruß
Daniel

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

Einkaufsliste

1x ATTiny 85
https://www.reichelt.de/mcu-attiny-avr-risc-8-kb-20-mhz-pdip-8-attiny-85-20-pu-p69299.html?&trstct=pol_1

1x Stecksockel 8-polig für ATTiny
https://www.reichelt.de/ic-sockel-8-polig-doppelter-federkontakt-gs-8-p8230.html?&trstct=dnrtcl_ldsldr

1x DFRobot DFPlayer Mini
https://de.banggood.com/DFPlayer-Mini-MP3-Player-Module-For-Arduino-p-969191.html?akmClientCountry=DE&gmcCountry=DE&currency=EUR&createTmp=1&cur_warehouse=CN
https://www.dfrobot.com/product-1121.html

1x Poti 10kΩ (R2) externe Lautstärke
https://www.reichelt.de/drehpotentiometer-10-kohm-linear-6-mm-pih-pc16ip06103a-p232581.html?&trstct=pos_2

1x Knopf für Poti
https://www.reichelt.de/potentiometerknopf-fuer-achse-6-mm-silber-knopf-17-6-al-p42122.html?&trstct=pos_0

1x Poti 10kΩ (R1) interne Lautstärke
https://www.reichelt.de/trimmpotentiometer-10-kohm-linear-pih-pt6kv103apm-p232375.html?&trstct=pol_0

1x Widerstand 1/2W 1kΩ 5% (R3)
https://www.reichelt.de/widerstand-kohleschicht-1-0-kohm-0411-500-mw-5-k-o-rd12jn102t52-p237432.html?&trstct=pol_0

11x Widerstand 1/2W 10kΩ 5% (R4-R14)
https://www.reichelt.de/widerstand-kohleschicht-10-kohm-0411-500-mw-5-k-o-rd12jn103t52-p237431.html?&trstct=pol_0

11x Taster mit Abdeckkappen
https://de.aliexpress.com/item/9-arten-50-st-cke-Tactile-Push-Button-Switch-Momentary-12-12-7-3mm-Micro-schalter/32875020597.html?spm=a2g0x.search0104.3.1.52de37a3DrOJr6&ws_ab_test=searchweb0_0%2Csearchweb201602_1_10320_10065_10068_10547_319_317_10548_10696_453_10084_454_10083_433_10618_431_10304_10307_10820_10821_537_10302_536_10843_10059_10884_10887_100031_10319_321_322_10103%2Csearchweb201603_35%2CppcSwitch_0&algo_pvid=aff242c1-8336-40de-96e9-620a1b61445d&algo_expid=aff242c1-8336-40de-96e9-620a1b61445d-0

1x Kondensator 100nF (C1)
https://www.reichelt.de/Scheiben/2/index.html?ACTION=2&LA=2&GROUPID=3169;SID=95XDcoQawQAT8AAAXVdCM1c9109785fd366845f3597895eb15bd5

1x Ein/Aus 1-polig Schalter
https://www.reichelt.de/wippenschalter-rund-1x-ein-aus-ws-r13-112-aaaa-p105442.html?&trstct=pos_4

2x Buchsenleiste 8polig für DFPlayer Mini
https://www.reichelt.de/rnd-buchsenleiste-8-pol-rm-2-54-mm-rnd-205-00648-p208874.html?&trstct=pos_6

4x Stiftleiste 3 polig, für Lautstärke, Schalterfeld, Ein-Aus Schalter
https://www.reichelt.de/rnd-stiftleiste-3-pol-rm-2-54-mm-rnd-205-00624-p208850.html?&trstct=pol_11

1x Anschluss Lautsprecher
https://www.reichelt.de/ps-unterteil-2-pol-gerade-weiss-ps-25-2u-w-p208096.html?&trstct=pol_13
https://www.reichelt.de/ps-oberteil-2-pol-mit-kabel-25cm-weiss-ps-25-2o-w-p208092.html?&trstct=pol_9

1x Micro USB Anschluss zum Powerbank laden
https://de.aliexpress.com/item/Micro-USB-5pin-Micro-USB-2-0-Stecker-auf-Micro-USB-2-0-Weibliche-Verl-ngerungskabel/32855632646.html?spm=a2g0x.search0104.3.121.139f739f9V50UK&ws_ab_test=searchweb0_0%2Csearchweb201602_1_10320_10065_10068_10547_319_317_10548_10696_453_10084_454_10083_433_10618_431_10304_10307_10820_10821_537_10302_536_10843_10059_10884_10887_100031_10319_321_322_10103%2Csearchweb201603_35%2CppcSwitch_0&algo_pvid=0df2f57e-1932-459e-976a-a583bc5cda1f&algo_expid=0df2f57e-1932-459e-976a-a583bc5cda1f-17

1x Powerbank
https://www.reichelt.de/powerbank-li-ion-4400-mah-usb-xlyne-x41-p153236.html?&trstct=pol_10

von egberto (Gast)


Lesenswert?

Lautsprecher?

von ghmartin77 (Gast)


Lesenswert?

Hi Daniel,

+SD-Karte
(evtl. +Arduino, falls du nicht schon einen (oder etwas Gleichwertiges) 
zum Flashen haben.)

Falls du das Feature mit den LEDs umsetzen möchtest, solltest du einen 
ATTiny8*4* oder einen Arduino nehmen (jeweils nebst dazu passendem 
Sockel resp. Sockelleisten). Die Pins am 85er reichen dafür nicht.

Viele Grüße
ghmartin77

von Daniel Frei (Gast)


Lesenswert?

Dann erweiter ich die Sachen die noch benötigt werden. Lautspreche hatte 
ich nicht mit drin, da ich den schon daheim hatte.

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


Einkaufsliste

1x ATTiny 85
https://www.reichelt.de/mcu-attiny-avr-risc-8-kb-20-mhz-pdip-8-attiny-85-20-pu-p69299.html?&trstct=pol_1

1x Stecksockel 8-polig für ATTiny
https://www.reichelt.de/ic-sockel-8-polig-doppelter-federkontakt-gs-8-p8230.html?&trstct=dnrtcl_ldsldr

1x DFRobot DFPlayer Mini
https://de.banggood.com/DFPlayer-Mini-MP3-Player-Module-For-Arduino-p-969191.html?akmClientCountry=DE&gmcCountry=DE&currency=EUR&createTmp=1&cur_warehouse=CN
https://www.dfrobot.com/product-1121.html

1x Poti 10kΩ (R2) externe Lautstärke
https://www.reichelt.de/drehpotentiometer-10-kohm-linear-6-mm-pih-pc16ip06103a-p232581.html?&trstct=pos_2

1x Knopf für Poti
https://www.reichelt.de/potentiometerknopf-fuer-achse-6-mm-silber-knopf-17-6-al-p42122.html?&trstct=pos_0

1x Poti 10kΩ (R1) interne Lautstärke
https://www.reichelt.de/trimmpotentiometer-10-kohm-linear-pih-pt6kv103apm-p232375.html?&trstct=pol_0

1x Widerstand 1/2W 1kΩ 5% (R3)
https://www.reichelt.de/widerstand-kohleschicht-1-0-kohm-0411-500-mw-5-k-o-rd12jn102t52-p237432.html?&trstct=pol_0

11x Widerstand 1/2W 10kΩ 5% (R4-R14)
https://www.reichelt.de/widerstand-kohleschicht-10-kohm-0411-500-mw-5-k-o-rd12jn103t52-p237431.html?&trstct=pol_0

11x Taster mit Abdeckkappen
https://de.aliexpress.com/item/9-arten-50-st-cke-Tactile-Push-Button-Switch-Momentary-12-12-7-3mm-Micro-schalter/32875020597.html?spm=a2g0x.search0104.3.1.52de37a3DrOJr6&ws_ab_test=searchweb0_0%2Csearchweb201602_1_10320_10065_10068_10547_319_317_10548_10696_453_10084_454_10083_433_10618_431_10304_10307_10820_10821_537_10302_536_10843_10059_10884_10887_100031_10319_321_322_10103%2Csearchweb201603_35%2CppcSwitch_0&algo_pvid=aff242c1-8336-40de-96e9-620a1b61445d&algo_expid=aff242c1-8336-40de-96e9-620a1b61445d-0

1x Kondensator 100nF (C1)
https://www.reichelt.de/Scheiben/2/index.html?ACTION=2&LA=2&GROUPID=3169;SID=95XDcoQawQAT8AAAXVdCM1c9109785fd366845f3597895eb15bd5

1x Ein/Aus 1-polig Schalter
https://www.reichelt.de/wippenschalter-rund-1x-ein-aus-ws-r13-112-aaaa-p105442.html?&trstct=pos_4

2x Buchsenleiste 8polig für DFPlayer Mini
https://www.reichelt.de/rnd-buchsenleiste-8-pol-rm-2-54-mm-rnd-205-00648-p208874.html?&trstct=pos_6

4x Stiftleiste 3 polig, für Lautstärke, Schalterfeld, Ein-Aus Schalter
https://www.reichelt.de/rnd-stiftleiste-3-pol-rm-2-54-mm-rnd-205-00624-p208850.html?&trstct=pol_11

1x Anschluss Lautsprecher
https://www.reichelt.de/ps-unterteil-2-pol-gerade-weiss-ps-25-2u-w-p208096.html?&trstct=pol_13
https://www.reichelt.de/ps-oberteil-2-pol-mit-kabel-25cm-weiss-ps-25-2o-w-p208092.html?&trstct=pol_9

1x Micro USB Anschluss zum Powerbank laden
https://de.aliexpress.com/item/Micro-USB-5pin-Micro-USB-2-0-Stecker-auf-Micro-USB-2-0-Weibliche-Verl-ngerungskabel/32855632646.html?spm=a2g0x.search0104.3.121.139f739f9V50UK&ws_ab_test=searchweb0_0%2Csearchweb201602_1_10320_10065_10068_10547_319_317_10548_10696_453_10084_454_10083_433_10618_431_10304_10307_10820_10821_537_10302_536_10843_10059_10884_10887_100031_10319_321_322_10103%2Csearchweb201603_35%2CppcSwitch_0&algo_pvid=0df2f57e-1932-459e-976a-a583bc5cda1f&algo_expid=0df2f57e-1932-459e-976a-a583bc5cda1f-17

1x Powerbank
https://www.reichelt.de/powerbank-

1x Lautsprecher beliebig mit 8 Ohm

1x passsende SD Karte

1x Arduino Uno oder ähnliches zum Flashen

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

Wo finde ich die Files für das Feature mit den LED's?

von ghmartin77 (Gast)


Lesenswert?

> Wo finde ich die Files für das Feature mit den LED's?

Na, in den Commits von Ronnys geforktem Repo:
https://github.com/ronbal/KidsMP3Player/commits/master

von Daniel Frei (Gast)


Lesenswert?

Da kenn ich mich hier bzw. bei Github zu wenig aus.

Heißt ich geh auf den Link und nimm da dann die oberste Datei vom 
23.12.18.

Was bedeutet geforkt? Fork ist ja ne Gabel. Also eine Gabelung zu den 
von dir original erstellten Files?

von Christian S. (chris02)


Lesenswert?

Ronny S. schrieb:
> Hi,
>
> Ich habe heute die Akkuanzeige integriert.
>
> Der Arduino Nano misst die Spannung des Akkus und zeigt diese mittels 4
> ws2812 LEDs an.
>
> Zusätzlich habe ich es jetzt so programmiert, dass die LEDs anzeigen
> welche Playlist, also welche Knopfarbe gerade spielt.
>
> Hier ein kleines Video dazu:
>
> https://youtu.be/DxMN2CIl4x8
>
> Vg
> Ronny

Hast du auf der Rückseite für 20€ die MicroUSB Buchse vom Conrad 
spendiert? Zum Laden super geil aber der Preis für eine Buchse... Oder 
hast du eine andere Bezugsquelle?

Probleme, dass die Powerbank abschaltet hast du keine?

Ich muss auch unbedingt mal mein Layout uploaden. Habe eine 10x10 
Platine gemacht und einen Nano drauf gepackt. So spart man sich die 
verdrahterei. Allerdings hab ich noch nen Layout Fehler drin, den ich 
vorm Upload noch beheben wollte und da fehlt die Zeit für :-/

von Ronny S. (dr_bal)


Lesenswert?

Hi,

@Christian: ja genau habe die von Conrad über Amazon bestellt, war >20€ 
aber die schönste die ich finden konnte...

Ich habe eine Powerbank (Werbegeschenk), welche Laden und Gleichzeitig 
Speisen kann.
Ich denke mit den 4 LEDs umgehe ich die Abschaltung, habe nicht 
gemessen, aber eine LED zieht bei weißen Licht in voller Helligkeit ca. 
60mA. Bei mir laufen die in der Helligkeit 10 von 255.

@Daniel Frei:
Du kannst dir am besten nur den LED Teil rauskopieren, da ich für den 
Klon einige Änderungen an Martins Code gemacht habe.
Das der 4. Player nun auch eine Kopie war....


Vg
Ronny

von Daniel Frei (Gast)


Lesenswert?


von Christian S. (chris02)


Lesenswert?

Daniel Frei schrieb:
> Christian S. schrieb:
>> Hast du auf der Rückseite für 20€ die MicroUSB Buchse vom Conrad
>> spendiert? Zum Laden super geil aber der Preis für eine Buchse... Oder
>> hast du eine andere Bezugsquelle?
>
> Ich hab in meiner Einkaufsliste eine Buchse drin. Wenn du die Sachen
> nicht gleich morgen brauchst, dann kannst die nehmen.
>
> 
https://de.aliexpress.com/item/Micro-USB-5pin-Micro-USB-2-0-Stecker-auf-Micro-USB-2-0-Weibliche-Verl-ngerungskabel/32855632646.html?spm=a2g0x.search0104.3.121.139f739f9V50UK&ws_ab_test=searchweb0_0%2Csearchweb201602_1_10320_10065_10068_10547_319_317_10548_10696_453_10084_454_10083_433_10618_431_10304_10307_10820_10821_537_10302_536_10843_10059_10884_10887_100031_10319_321_322_10103%2Csearchweb201603_35%2CppcSwitch_0&algo_pvid=0df2f57e-1932-459e-976a-a583bc5cda1f&algo_expid=0df2f57e-1932-459e-976a-a583bc5cda1f-17

Danke, diese gibts auch bei Conrad/Voelkner wo ich sie mir bestellt 
hatte. Aktuell warte ich auf meinen Kumpel, der die Gehäuse macht (er 
als Schreiner macht zwei Gehäuse und ich dafür zwei Aufbauten)

von Christian S. (chris02)



Lesenswert?

Ronny S. schrieb:
> Ich habe eine Powerbank (Werbegeschenk), welche Laden und Gleichzeitig
> Speisen kann.
> Ich denke mit den 4 LEDs umgehe ich die Abschaltung, habe nicht
> gemessen, aber eine LED zieht bei weißen Licht in voller Helligkeit ca.
> 60mA. Bei mir laufen die in der Helligkeit 10 von 255.


Hatte schon überlegt zwei Ausgänge über nen kleinen Widerstand auf Masse 
zu schalten (takten). Aber die LEDs machen auch noch Sinn und nicht nur 
Wärme.

Aber wie man sieht ist man mit dem Attiny ganz schnell am Ende und ein 
Arduino Nano kostet beim Chinamann auch nicht wirklich mehr und kann 
direkt per USB programmiert werden. Daher habe ich diesen auch auf meine 
Platine gebaut.

Habe mal ein (schlechtes) Bild von meinem Aufbau angehangen. Extra 
alles* THT (auch wenn ich kein Freund von THT bin) um es auch für Laien 
möglichst einfach zu machen.

Upload der Schematic/Layout Dateien wenn ich es endlich mal geschafft 
habe die Taster richtig anzuschließen. Was auf dem Bild mit Lackdraht 
behoben wurde. Platinengröße 10cmx10cm um die günstigen Preise bei 
elecrow/jlcpcb etc. nutzen zu können (10 Platinen ca. 10€ inkl. Versand)

Player ging nach dem Aufbau auch auf anhieb.


*die Micro USB Buchse wollte ich mir dann doch nicht sparen. Spg 
Versorgung ist aber auch über die SChraubverbindungen möglich.

: Bearbeitet durch User
von Daniel Frei (Gast)


Lesenswert?

@Christian S.:
Für was ist die 1N4007 Diode auf deinem 2ten Bild?

von Florian R. (flo1234)


Lesenswert?

Hallo,

Inzwischen sind meine Kopfhörerbuchsen gekommen und ich musste 
feststellen, dass ich diese nicht wie geplant verwenden kann. Die 
Buchsen haben vier Anschlüsse: Audio R, Audio L, GND und den 
Schaltkontakt. Der Schaltkontakt ist ohne Stecker auf GND geschlossen 
und öffnet wenn man den Stecker steckt.
Ich benötige jedoch einen "potentialfreien" Schalter, da ich ja für den 
Kopfhörer die DAC _Out und für die Lautsprecher die "Speaker" Anschlüsse 
verwende.
Kennt jemand eine Buchse, die das bietet oder habe ich einen Denkfehler? 
Die Anwendung sollte doch eigentlich ein Standardfall sein.

Gruß Florian

von Florian R. (flo1234)


Lesenswert?

Ich habe jetzt nochmal recherchiert und bin auf folgende Buchse 
gestoßen:
https://www.quick-teck.co.uk/Management/EEUploadFile/1466073217.PDF

Leider werde ich aus dem Schaltbild nicht so ganz schlau. Bedeutet das, 
dass zwischen Pin vier und fünf ein Öffner verbaut ist, der nicht mit 
den Pins des Klinkenstecker verbunden ist?

von Stefan F. (Gast)


Lesenswert?

Daniel Frei schrieb:
> Was bedeutet geforkt?

Im Source Repository (wie GIT) werden Änderungen an einem Projekt als 
Punkte auf einer Zeitachse dargestellt. Jedes mal, wenn der Autor etwas 
ändert, kommt ein neuer Punkt dazu:
1
  *-----------*-----------*-----------*------> Zeit
2
Start     Änderung 1   Änderung 2    usw

Wenn nun jemand das Projekt in eine andere Richtung weiter entwickeln 
will (z.B. Funktionen hinzufügen will, die im Originalprojekt 
unerwünscht sind, dann erstellt man einen sogenannten Fork. Ein Projekt 
mit mehreren Forks sieht z.B. so aus:
1
                             ---*--------*---> Fork von Chantalle
2
                            /
3
                           /
4
  *-----------*-----------*-----------*------> Original-Projekt
5
                           \
6
                            \
7
                             ---*-----*------> Fork von Elvis
8
                                       \
9
                                        \
10
                                         ----> Fork von Elvis' Schwester

Erkennst du die Gabel am Bild?

Damit Verwandt ist der Begriff "Branch". Das ist technisch gesehen das 
Gleiche. Nur hat man bei einem Branch in der Regel die Absicht, eine 
Neue Funktion erst gründlich zu testen um sie später dem Originalprojekt 
zuzuführen.
1
              --*---*---*-- Branch von Chantalle
2
             /             \
3
            /               \
4
  *--------*-----------*-----*------*------> Original-Projekt

von Daniel Frei (Gast)


Lesenswert?

Stefanus F. schrieb:

> Erkennst du die Gabel am Bild?

Super, Danke für die Klasse Erklärung und die absolut leicht zu 
erkennende Gabel.

von Hans M. (schneider25)


Lesenswert?

Hallo zusammen,

vielleicht könnt ihr mir auch helfen?

Wenn ich die "KidsMP3Player.ino" in die Arduino-SW hochlade und dann auf 
Kompilieren gehe, dann bekomme ich immer x Fehlermeldungen.

Hat irgendwer einen Tip, woran es liegt, wenn er schon vorm übertragen 
beim Kompilieren aussteigt.

Hab inzwischen x-Versionen von Arduino ausprobiert, aber evtl hab ich 
auch hier nicht die richtige gehabt.

Ich nutze ein Arduino Uno R3 Board und einen Rechner mit Windows 7.

Vielen Dank schon mal.

: Bearbeitet durch User
von ghmartin77 (Gast)


Lesenswert?

Hi Hans,

in den allermeisten Fällen weisen Fehlermeldungen auf den jeweiligen 
Fehler hin. Wenn wir dir helfen sollen, wär's akut vorteilhaft, wenn du 
uns die x Fehlermeldungen einmal zeigen würdest.

Ansonsten tauchen hier ganz fix wieder Glaskugel-Kommentare auf...

Grüße
ghmartin77

von Hans M. (schneider25)


Lesenswert?

Hi GHMartin,

ich hab eins zu eins Deine zwei Datein für den MP3-Player runtergeladen 
und dann kommen sehr viele Linien zum Thema "error stray '\'" oder 
"error stray \303" oder "missing terminating Character"

Wiegesagt ich lade Deine zwei Dateien ohne irgendwas zu verändern hoch, 
drücke auf Kompilieren und dann kommen diese zwei Fehler und noch 
ettliche andere auch noch.

danke schon mal

grüße
Hans

von ghmartin77 (Gast)


Lesenswert?

Schaut mir (und Google) nach (für den Compiler) ungültigen Zeichen im 
Quellcode aus, die vermutlich auf dem Wege entstanden sind, wie du die 
Dateien beschafft hast.

Falls das nicht schon dein weg war, lade bitte dieses Zip herunter, 
packe es aus und öffne die ino-Datei mit der ArduinoIDE. Schau mal, ob 
die "Stray"-Fehler dann weg sind:

https://github.com/ghmartin77/KidsMP3Player/archive/master.zip

von Tim (Gast)


Lesenswert?

Kurzer Zwischenbericht:

Beide Player laufen seit November ohne Probleme.
Einer davon TÄGLICH! Das Projekt hat sich gelohnt und Junior ist noch 
immer Feuer und Flamme! Die Ladezyklen halten sich in Grenzen!

Softwarestand zwar etwas älter, läuft aber bei mir am Besten.
(Kein Wiederanspielen bei Folder1 wenn nur 1 Track hinterlegt ist)

Die Umsetzung der Lautsprecherbuchse macht aktuell keine Fortschritte.

Externe Ladebuchse wird demnächst installiert!



Habe noch jede Menge Fake Player hier rumliegen. Gibts ne Möglichkeit 
diese mit nem Attiny anzusteuern, oder doch nur über die Widerstand / 
Tasterlösung?
Wäre schön wenn ich die auch noch irgendwie /-wo verbauen könnte!

von Ronny S. (dr_bal)


Lesenswert?

Hi Tim,

meiner lebt auch noch und ist täglich in Benutzung. Muß auch einiges 
abhalten :-)

Du kannst den Player natürlich auch nur über die serielle Schnittstelle 
des Attiny steuern.

VG
Ronny

von Klaus R. (klaus2)


Lesenswert?

...mich wundert dass die Meldungen an erfolgreichen Nachbauten 
eingebrochen sind - dachte das wird ein Dauerbrenner, weil "fast jeder" 
die Notwendigkeit hat?

Klaus.

von Heidi87 (Gast)



Lesenswert?

Hier ist mein Nachbau. War ein Gemeinschaftsprojekt mit meinen Eltern. 
Ich hab die Elektronik gemacht und Sie den Rest. Ich hab eine 3000mah 
18650 benutzt und bei täglichen Einsatz hält die ca. 2-3 Wochen durch.
Ein wirklich super Projekt!!!

von Klaus R. (klaus2)


Lesenswert?

Sehr geil... ;)

Klaus.

von Daniel Frei (Gast)


Lesenswert?

Meiner ist noch im Aufbau.

Wenn der Prototyp läuft, dann lass ich Platinen in China machen, so 
ähnlich wie es Christian gemacht hat. Einmal mit AtTiny und einmal mit 
nem Nano und LED Anzeige der Playlist.

von Christian S. (chris02)


Lesenswert?

Von meiner Seite auch nochmal vielen Dank für dieses super Projekt. Habe 
meinen Kids MP3 nun auch endlich fertig gestellt.

Was mich heute allerdings viel Zeit und Nerven gekostet hat:
Ist es gewollt, dass wenn ein Ordner leer ist der Player gar nicht 
startet?

von N. B. (gabunz)


Angehängte Dateien:

Lesenswert?

Daniel Frei schrieb:
> Wenn der Prototyp läuft, dann lass ich Platinen in China machen, so
> ähnlich wie es Christian gemacht hat.


Hab auch welche dort machen lassen. Hab eine Programmierbuchse (ISP) mit 
auf der Platine. Das macht das experimentieren einfacher ;-)
Dazu kann ich verschieden große Taster verwenden (hab zusätzliche Löcher 
eingeplant).
Für die Spannungsversorgung benutze ich microUSB Platinchen, da das 
anlöten besser zu machen ist.
Beim Design hab ich eine Leiterbahn vergessen, deswegen die eine 
Drahtbrücke.

von Daniel Frei (Gast)


Angehängte Dateien:

Lesenswert?

So ich habe meine V1 nun pünktlich zu Ostern fertig bekommen.

Das Gehäuse hat der Opa gebaut.

Die Bärenabdeckung ist am 3D Drucker ausgedruckt worden.

Die Schrift auf der Front wurde mit dem Laser eingebrannt.

Da die Frontplatte zu dick war, musste ich alle Knöpfe der Taster 
verlängern.
Dazu hab ich mich wieder am 3D Drucker bedient und die längeren Knöpfe 
gedruckt.

Als Steuerung kam aber nun von ELV der MSM4 zum Einsatz.
https://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=60066

Hat nahezu alle gleichen Funktionen, aber nur 10 Tasten. Damit kann ich 
aber leben.
Großer Vorteil für mich war, das ich keinen Programmieraufwand hatte.

Den AtTiny und den Nano hab ich noch daheim. Sobald meine CNC läuft, 
gibts dann ein neues Gehäuse wo die anderen Sachen noch verbaut werden.

von Klaus R. (klaus2)


Lesenswert?

...und bist du damit zufrieden? Ich finde den Funktionsumfang und das 
Design des Originals schon "passender". Aber wenigstens passen dann 
Holz-Box und Hardware zusammen :)

Klaus.

von Daniel Frei (Gast)


Lesenswert?

Mit der Kiste die der Opa gebaut hat bin ich in keinster Weise 
zufrieden.

Mit meiner Verkabelung auch nicht.

Es musste alles wieder schnell gehen, da Ostern wieder so überraschend 
kam ;-)

Weiß jemand wann dieses Jahr Weihnachten ist? :-)

Mit dem MSM4 bin ich zufrieden. Der reicht vom Funktionsumfang 
vollkommen aus.

Im Prinzip kannst das auch alles in die IKEA Bambus Box bauen. Dann 
sieht er nahezu identisch aus, nur mit 10 Tastern.

Die Verkabelung ist natürlich auch einiges einfacher. Einfach an den 
MSM4 alle 10 Taster direkt anschliessen. Keine WIderstände oder sonst 
was. Lautsprecher, Einschalter und Spannungsversorgung anschliessen und 
gut ist.

Um die Lautstärke von extern zu regeln, noch einen 5kOhm Poti dazu 
bestellen und gegen das auf dem MSM4 tauschen. Sonst kannst die 
Lautstärke nur intern regeln, oder aber wenn du die Chinchplatine 
benutzt. Dann geht es auch über Tastenkombinationen, was ich meinem 
2-jährigen Sohn noch nicht zutraue.

von David G. (deif)


Angehängte Dateien:

Lesenswert?

Hallo!
Ich habe den Player erfolgreich nachgebaut. Meine Söhne, ihre Freunde 
und wir Eltern sind begeistert. Ich werde wohl noch ein par mehr bauen 
müssen ;) zwei Funktionen vermissen wir noch:
1. eine Taste um in der Playlist zurück zu springen. Kann ich da einfach 
einen Taster direkt am dafür vorgesehenen Anschluss vom Dfplayer 
anschliessen?
2. Mein Sohn möchte manchmal stundenlang immer wieder den selben Track 
anhören. Dazu möchte ich gerne einen zusätzlichen Taster verbauen der 
nur diese Repeatfunktion für den aktuell abgespielten Track ein und 
ausschaltet. Würde mir dabei jemand helfen? Ich habe leider keine Ahnung 
vom Programmieren...
3. wie schaut es aus mit der Anlernfunktion fär die Tasten? Ist da noch 
jemand dran? Ich wäre sehr interessiert, bei mir stimmen die Tasten noch 
nicht ganz mit den Ordnern überein. Ansonsten werde ich die Tasten nach 
unseren Ferien ausmessen und die Werte im Programmcode anpassen.

Danke für das tolle Projekt!
Lieber Gruss
David

von ghmartin77 (Gast)


Lesenswert?

Hallo David,

cooles Design! Das sieht ziemlich unverwüstlich aus. Gefällt!
Zu deinen Fragen:

#1: Was du vorschlägst, sollte gehen, allerdings interessiert sich der 
DFPlayer dabei vermutlich nicht für die Playlist-Struktur und springt 
auch rückwärts in die Tracks der vorhergehenden Playlist. Einfach 
ausprobieren. Pin gegen Ground ziehen (Büroklammer, Jumperkabel) und 
gucken, was passiert (Tipp: das SD-Kartenhalterungsmetall liegt auf GND; 
brauchste nicht groß zielen).

#2: Soll's dringend ein eigener, zusätzlicher Taster sein oder kann es 
auch durch längeres Halten einer Taste aktiviert/deaktiviert werden, wie 
das bereits vorhandene "Continuous Play"? Wie soll sich der Sleep-Timer 
im "Repeat 1"-Modus verhalten? Nicht ganz Ernst: Wie schützt man sich 
als Elternteil gegen Dauerloop-Wahnsinn? :)
Die Änderung mit einer existierenden Taste und längerem Halten sollten 
nur ein paar Zeilen Code sein. Würd ich dir zusammenklöppeln... Ist eine 
schöne Erweiterungsidee. Einen "Shuffle"-Mode könnte man auch noch 
gleich aufnehmen...
Was natürlich heute schon geht, ist, das Dauerrepeat-Lieblingsstück 
allein in eine Playlist zu legen und "Continuous Play" sowie "Playlist 
Loop" zu aktivieren.

#3 Anlernfunktion hatte ich mal angefangen, leider aber rasch 
festgestellt, dass in dem Chip kaum noch Speicher vorhanden ist, um noch 
viel Code reinzubasteln und deshalb verworfen. Damit bleibt Durchmessen 
eine Lösung. Zusätzlich habe ich oben mal ein OpenOffice-Sheet zur 
Berechnung hochgeladen: 
Beitrag "Re: Projekt fertiggestellt: MP3 Player für Kinder auf ATTiny-Basis"
In E1 stellst du den Wert deiner verwendeten Widerstände ein, in Spalte 
F ergibt sich der Code-Wert für die Werte im Code ab hier: 
https://github.com/ghmartin77/KidsMP3Player/blob/master/KidsMP3Player/KidsMP3Player.ino#L293

Grüße
ghmartin77

von Stefan F. (Gast)


Lesenswert?

David G. schrieb:
> Ich habe den Player erfolgreich nachgebaut.

Sieht sehr gut aus, das hast du toll gemacht.

von David G. (deif)


Lesenswert?

Danke für die rasche Antwort!
Zum Design: Ich stelle nebenberuflich Holzspielzeuge für Kinder her und 
habe mich bei den Holzresten der Klettergeräte bedient. Ich habe eine 
Bassreflexbox mit ca 2.3 liter Volumen für den Visaton FRS8 mit 
teilweise 16mm Multiplex gebaut. Das führt zu einem relativ hohen 
Gewicht. Für den dreijährigen stellt das aber kein Problem dar. Trotzdem 
werde ich die weiteren Player mit etwas geringerer Wandstärke (und 
leichterem LS) bauen. Ich denke auch bei 9mm Multiplex wird der Player 
noch unverwüstlich genug sein.

Zur Repeatfunktion: Die zurück-Taste würde ja eigentlich ausreichen. Das 
Kind kann damit den Track so oft es mag neu beginnen und die Eltern 
wären einigermassen vor einem tagelangen dauerloop geschützt. Leider ist 
aber die dfplayer-interne Lösung dafür nicht geeignet. Wird sie im 
laufenden Track gedrückt, springt der Player zu dem Song davor, nicht 
nur zum Anfang des laufenden Songs. Das wird dann fürs Kind wohl zu 
kompliziert. Mein Sohn hat für sich die Lösung gefunden: Er schaltet das 
Gerät am Ende des Songs aus und wieder an. So beginnt das Lieblingslied 
wieder von Vorne.
Meine Frage: lässt sich eine Taste ergänzen die erst den laufenden Track 
neu beginnt und erst beim zweiten- und weiteren Drücken zu den Tracks 
davor springt? Ich würde dafür auch auf eine der 11 Playlisttasten 
verzichten, wenn eine zwölfte nicht realisierbar ist.

Übrigens passiert es manchmal, dass beim durchdrücken durch die 
Playlists plötzlich ein Song aus einer anderen Liste kommt. Z.B. nach 
Track 5 aus Playlist 1 kommt anstatt Track 6 plötzlich Track 1 der 
Playlist 8 (welche bei mir auf der Taste 4 abgespielt wird, dafür die 
Liste 4 auf Taste 8). Drücke ich dann nochmals auf die Taste 1 kommt 
wieder Track 1 der Liste 1. Der Fehler ist nicht reproduzierbar und 
kommt nicht nur auf der Liste 1 vor, ist aber selten. Hat das damit zu 
tun, dass ich die Werte der Wiederstände noch nicht angepasst habe?

Und noch eine Frage: wenn ich z.B. nur 6 Tasten verbauen möchte, was 
müsste ich alles anpassen?

Liebe Grüsse
David

von N. B. (gabunz)


Lesenswert?

Ich hab mir überlegt, ob es nicht ggf. sinnvoll wäre, wenn der 
Lautstärkeregler auf Minimum steht, automatisch dem Player 'Pause' zu 
senden.
Idealerweise würde er beim hochdrehen der Lautstärke wieder 
weiterspielen.

von ghmartin77 (Gast)


Angehängte Dateien:

Lesenswert?

Hi David,

angehängt findest du eine ungetestete Zusamenhack-Version mit folgenden 
Features:

Repeat1:
Button 4 länger gedrückt schaltet "Repeat1" ein bzw. aus. Auf die selbe 
Art und Weise, wie Button 1 und 2 das für "Continuous Play" und 
"Playlist Loop" machen. Die Ansage-MP3s dafür müssen als 0500.mp3 und 
0501.mp3 in /ADVERT und /MP3 liegen.
Wenn aktiv, wird ein einmal gestarteter Track im Endlos-Loop immer 
wieder neu gestartet, nachdem er zu Ende gelaufen ist.

Previous-Button:
Kann über Entfernen des //-Kommentarzeichens in Zeile 22 aktiviert 
werden.
Danach ist Playlist 11 nicht mehr benutzbar (kann aber auf der SD-Karte 
verbleiben). Mit Aktivierung dieses Features bedeutet Button 11 
"Previous": Läuft der aktuelle Track länger als 3 Sekunden, wird der 
aktuelle Track neu gestartet, ansonsten der Vorgängertrack der aktiven 
Playlist (inkl. "Rollover" beim ersten Track).


Konnte die Änderungen leider nicht Testen. Was auch immer du an Fehlern 
findest, pack in diesen Thread und ich guck's mir an.
Wenn's funzelt, gib bitte auch Bescheid. Finde deine 
Erweiterungsanregungen  sehr gut und würde den angehängten Code -so er 
läuft- ins GitHub-Repo packen.

Zu deiner Frage mit den "verrutschten" Playlists bei Mehrfachdrücken 
eines Buttons: Ja, ich vermute, das hat mit den noch nicht justierten 
Werten für die Knöpfe zu tun. Zumindest liegen Button 1 und Button 4 
"nebeneinander", was die analogen Spannungsbereiche angeht. Sobald du 
die Werte angepasst hast, sollte dieses Problem also verschwinden...

Grüße
ghmartin77

von David G. (deif)


Lesenswert?

Herzlichen Dank! Leider kann ich momentan auch nicht testen, wir sind 
den ganzen Monat noch auf Reise und ich habe keinen Arduino mitgenommen. 
Im Juni werde ich mich aber natürlich sofort ans testen machen!
Übrigens fände ich die Pausefunktion über den Lautstärkepoti auch eine 
tolle Idee...

Liebe Grüsse
David

von ghmartin77 (Gast)


Lesenswert?

Die "Pause bei Minimal-Lautstärke"-Anforderung verstehe ich nicht ganz.
Die Minimallautstärke sollte gemäß Reglerlogik niemals unter den Wert 1 
(DF-Player-Sicht) fallen. Damit ist der Ton niemals ganz aus. Warum 
sollte man in diesem Fall auf Pause schalten?

Was übersehe ich?

Grüße
ghmartin77

von Peter (Gast)


Lesenswert?

Daniel Frei schrieb:

> Die Bärenabdeckung ist am 3D Drucker ausgedruckt worden.


Würdest du ggf. die .stl-Datei der Lautsprecherabdeckung verfügbar 
machen?

Das wäre toll!

lg

von David G. (deif)


Lesenswert?

Das stimmt, es ist nie ganz still auch bei minimaler Lautstärke nicht. 
Allerdings gibt es momentan noch keine Pausefunktion. Mit dem 
Lautstärkeregler wäre dies fürs Kind eine einfache Möglichkeit die 
Geschichte kurz anzuhlten und danach nicht wieder am Anfang des Tracks 
beginnen zu müssen.

Noch am Rande: Ich habe die Zurücktaste vom DfPlayer noch etwas 
ausgetestet. Wird diese betätigt, kommt zwar das letzte Lied noch 
einmal. Danach spielt es aber nicht mehr weiter, auch wenn das 
kontinuierliche Abspielen eingeschaltet ist.. Will ich dann mit der 
Playlisttaste eins weiterdrücken, kommt das übernächste. Der Attiny 
merkt also nicht, dass zuvor eins zurück geschaltet worden ist. Wird die 
Taste zudem zu oft gedrückt kommem auch die Ansagen aus dem MP3 und 
advert Ordner...

von ghmartin77 (Gast)


Lesenswert?

Hi David,

bezieht sich deine Verhaltensmeldung zur "Zurücktaste vom DF Player" auf 
das Hardware-Zurück (i.e. Pin) des DF Players oder auf meine 
Code-Modifikation oben, bei der ich eine "Zurücktasten"-Funktion 
eingebaut habe?

Ersteres würde mich beruhigen, bei zweiterem fehlt mir im Moment die 
Phantasie, wie das passieren sollte...

Themawechsel "Pause_on_Min_Volume":
Denke, das ließe sich preiswert einbauen... Ich guck mal, dass ich das 
als #define-Option nachrüste...

Grüße
ghmartin77

von David G. (deif)


Lesenswert?

Das bezieht sich auf den io_1 Pin vom DF Player. Deine Code Modifikation 
kann ich leider erst Anfang Juni testen.


Grüsse
David

von Daniel Frei (Gast)


Lesenswert?

Peter schrieb:
> Daniel Frei schrieb:
>
>> Die Bärenabdeckung ist am 3D Drucker ausgedruckt worden.
>
> Würdest du ggf. die .stl-Datei der Lautsprecherabdeckung verfügbar
> machen?
>
> Das wäre toll!
>
> lg

Ich hab den hier genommen.

https://www.thingiverse.com/thing:2122985

und dann Löcher reingebohrt. Bin grad dran das Ding im CAD neu zu 
zeichnen und die Löcher gleich reinmachen, damit die gescheit gedruckt 
werden.

Wird aber noch bis Ende Juni gehen, da ich jetzt erst einmal im Urlaub 
bin.

von David G. (deif)


Lesenswert?

ghmartin77 schrieb:
> Konnte die Änderungen leider nicht Testen. Was auch immer du an Fehlern
> findest, pack in diesen Thread und ich guck's mir an.
> Wenn's funzelt, gib bitte auch Bescheid.

Hallo Martin

Ich konnte die Codeänderung nun testen. Zurücktaste und repeatfunktion 
funktionieren gut.

Die Zurücktaste geht halt einfach der Reihe nach zurück - wenn das Kind 
also beispielsweise drei Lieder aus verschiedenen Playlists nacheinander 
spielt, kann es nicht in dieser Reihenfolge wieder zurück springen.

Durch die zurücktaste ist auch der Wunsch nach einer vor Taste 
entstanden. Vielleicht konnte man nur 9 Playlists verwalten und dafür 
die Taste 10 und 11 für vor und zurück verwenden? Ich finde das würde 
die Bedienung vereinfachen.

Wie sieht es aus mit der "Pause_on_Min_Volume" Erweiterung? Bist du da 
noch dran?

Zudem fände ich es interessant, die Equalizerfunktion des DFPlayers 
verwenden zu können. Ich denke es müsste nicht beim fertigen Gerät 
umstellbar sein, wenn man es aber im Code beim Bau an das Gehäuse 
anpassen könnte wäre dies hilfreich. Ich habe versucht bei Zeile 124 die 
anderen EQ Einstellungen einzugeben (z.B. DfMp3_Eq_Normal austauschen 
mit DfMp3_Eq_Rock). Allerdings konnte ich keinen Unterschied im Klang 
feststellen. Wie müsste ich das machen?

Vielen Dank für deine Hilfe
Liebe Grüsse
David

von David G. (deif)


Lesenswert?

Und was ich auch noch fragen wollte: was muss ich ändern um von USB 
abzuspielen anstatt von der SD Karte? Müsste ja eigentlich auch möglich 
sein?

Lieber Gruss
David

von ghmartin77 (Gast)


Lesenswert?

David G. schrieb:
> Ich konnte die Codeänderung nun testen. Zurücktaste und repeatfunktion
> funktionieren gut.

Freut mich. Wunderbar.

> Die Zurücktaste geht halt einfach der Reihe nach zurück - wenn das Kind
> also beispielsweise drei Lieder aus verschiedenen Playlists nacheinander
> spielt, kann es nicht in dieser Reihenfolge wieder zurück springen.

Äh, ja. Deine Anforderung im Beitrag weiter oben war (5.5.):
> 1. eine Taste um in der Playlist zurück zu springen.

Du sprachst nicht von Zurück in einer Play-HISTORIE...

> ...Wunsch nach einer vor Taste entstanden.

Gibt's doch. Das ist die Playlist-Taste.

> Wie sieht es aus mit der "Pause_on_Min_Volume" Erweiterung? Bist du da
> noch dran?

Da ich im Moment nur im Blindflug programmieren kann, bräuchte ich 
jemanden zum Ausprobieren. Kann heute Abend evtl. Testcode einstellen, 
den du verproben kannst.

> Ich habe versucht bei Zeile 124 die
> anderen EQ Einstellungen einzugeben (z.B. DfMp3_Eq_Normal austauschen
> mit DfMp3_Eq_Rock). Allerdings konnte ich keinen Unterschied im Klang
> feststellen.

Da wärst du schon ganz richtig. Vermutlich sind die Änderungen bei dem 
Mini-preiswert-Teil aber im "überschaubaren" (nicht hörbaren) Bereich 
:-)

Grüße
ghmartin77

von David G. (deif)


Lesenswert?

ghmartin77 schrieb:
> Play-HISTORIE...

Entschuldige, ich bin nicht auf die Idee gekommen bis zum Testen. Wäre 
das denn überhaupt möglich?

Die "Pause_on_Min_Volume" werde ich gerne testen.

Herzlichen Dank
David

von ghmartin77 (Gast)


Angehängte Dateien:

Lesenswert?

Na denne...
Hängt an.

Kommentarzeichen in Zeile 25 wegnehmen, um das 
"Pause_on_Min_Volume"-Feature zu aktivieren. (Evtl. auch Zeile 22 nicht 
vergessen.)

Thema Historie:
Denke schon, dass das möglich wäre. Man muss halt noch die 
Funktionsweise "spezifizieren", z.B. ab wann landet ein Track in der 
Historie (Immer? Nach x Sekunden Abspieldauer?)? Wie verhalten sich 
Tracks aus der Historie in Bezug auf (Nicht-)Aufnahme in ebenselbige? 
Wenn REPEAT1 eingeschaltet ist oder RepeatPlaylist mit nur einem Track, 
kommt dieser Track dann immer und immer wieder in die Historie? Soll die 
Historie ein Ausschalten überleben? Wenn man in der Historie zurückgeht 
und dann einen neuen Track abspielt, kommt der dann hinten an die 
Historie oder wird die Historie ab dem aktuellem Stand in Richtung 
ehemaliger "Zukunft" gelöscht...
Und schwuppdiwupp bist du in einer Ecke, in der du dich fragst, ob das 
ein Kind noch versteht oder man's lieber sein lässt :)

Und man muss sich noch ein paar Bytes Speicher abzwacken, um die 
Historie mithalten zu können...

Thema USB:
Such mal im Quellcode nach "setPlaybackSource"... Und mit der 
Hardwareverschaltung musst du dich dann auch beschäftigen: Pins für USB+ 
und USB- wollen dann angeschlossen werden. Evtl. wird das ganze Ding 
dann auch "zickiger", was die Versorgung mit stabilen 5V angeht... Hab's 
noch nie probiert...

Grüße
ghmartin77

von David G. (deif)


Lesenswert?

Die Pause funktioniert prima. Danke vielmal dafür!

Historie: Die zurück in Historie funktion finde ich für die Kinder 
logischer als der momentane Stand der rückwärztaste. Um es für die 
Kinder einfach zu gestalten würde ich es wie folgt machen: jeder Track 
kommt in die Historie, egal wie lange er gespielt wird. Wird zurück 
gegangen und danach ein Track aus einer anderen Playlist gespielt, wird 
der vorne an die Historie angesetzt. Bei 1 Track repeat würde ich es so 
machen, dass immer nur zum Anfang des Tracks gesprungen werden kann bis 
die Repeatfunktion ausgeschaltet wird. Der Track wird aber nur 1x in die 
Historie aufgenommen.  Einen Neustart sollte die Historie nicht 
überstehen, vorallem da der Player jetzt auch eine Pausefunktion hat.
Wenn in der Historie zurückgegangen werden kann, wäre mir die 
Vorwärztaste doch wichtig.


USB: Ich habe versucht die Quelle auf Zeile 130 von sd auf usb zu 
ändern. Mein Player spielte danach bei angeschlossenem USB stick nichts, 
doch sobald ich die SD Karte einsteckte ging es wieder, trotz 
DfMp3_PlaySource_U. Er hat also das Umschalten nicht verstanden. Weil da 
nichts passiert ist, war ich mir auch beim Equalizer nicht sicher ob ich 
das richtig im Programm geändert habe.
Am schönsten fände ich, wenn die /Mp3 und /advert Ordner auf der sd 
Karte bleiben könnten und auf dem Stick nur die Musik wäre.

Liebe Grüsse
David

von Ronny S. (dr_bal)


Angehängte Dateien:

Lesenswert?

Ich könnte meinen teddy auch noch als cad Datei freigeben. Ich habe ja 
das komplette Design in Fusion360 erstellt und dann gefräst.

Viele Grüße
Ronny

von Stefan (Gast)


Lesenswert?

Schreiben, dass der MP3 Player auf ATTiny-Basis ist?! ;)

Vergiss bitte die ewigen Nörgler, warum soll man das Rad neu erfinden, 
wenn es alles schon günstig und funktionierend gibt.

Danke für das super Projekt ich werde es für meine Tochter umsetzen, 
vielleicht ändere ich noch die ein oder andere Tastenbelegung, aber 
sonst echt super. Habe schon länger nach einer einfachen Umsetzung für 
diese Aufgabenstellung gesucht und jetzt dank Dir gefunden. Weiter so!

von Tim M. (brotzeit)


Lesenswert?

Hallo zusammen,

nachdem ich hier immer fleissig mitlese, muss mich auch mal wieder 
melden ;-)

Meine beiden Player laufen problemlos nahezu täglich vor sich hin.

Das Feature "Pause_on_Min_Volume" wollte ich nun updaten, bekomm es aber 
nicht hin. Habe jetzt festgestellt, das alle Versionen seitdem #include 
"DFMiniMp3.h" hinzugefügt wurde, bei mir nicht laufen :-(
Beim Beschreiben des Attiny bekomme ich keine Fehlermeldungen...


Muss ich diese Datei irgendwo extra einbinden?

von Michael W. (michelw)


Lesenswert?

Ronny S. schrieb:
> Ich könnte meinen teddy auch noch als cad Datei freigeben. Ich habe ja
> das komplette Design in Fusion360 erstellt und dann gefräst.
>
> Viele Grüße
> Ronny


Hallo Ronny S.,
würdest Du den Teddy hier als CAD reinstellen?

Michael

von Klauso (Gast)


Lesenswert?

Hallo und erst mal ein ganz herzliches Dankeschön für dieses geniale 
Projekt! Absolut großartig

Bei meiner Umsetzung bin ich bezüglich des DigisparkBoards auf ein paar 
Hürden gestoßen.
Weiter oben hier im Thread wird berichtet, man hätte die Software auf 
einem Digispark rum laufen bekommen?

Für einen echten Arduino lässt sich das Projekt in meiner IDE ohne 
Fehler kompilieren.

Leider kennt Digispark unter anderem die Bibliothek für die serielle 
Software Schnittstelle nicht.

Kann diese einfach durch eine Digispark kompatible Bib ersetzt werden? 
(Bei mir gab's da Probleme mit ein paar Funktionen)

Bin über weitere Hinweise zur Umsetzung mit Digispark dankbar.
Die Wahl zum Digispark war leider nur auf den ersten Blick einfacher ;)

von Martin S. (sirnails)


Angehängte Dateien:

Lesenswert?

Ronny S. schrieb:
> So langsam geht es wieder weiter. Hatte die letzten 3 Wochen keine
> Zeit.
>
> der Originale DFPlayer ist auch bestellt.
>
> Ich habe jetzt noch 4 LEDs für den Akkustand der Powerbank integriert.
> Dafür ist dann das Plexiglasteil.
>
> Mal schauen ob ich die Originale Anzeige verwende oder sogar ws2812b
> LEDs mit Farbfunktion. Dann könnten diese in der Farbe der jeweiligen
> Playlist Leuchten ;-)
>
> Frontplatte werde ich wohl noch einmal neu machen müssen, da hat die
> Fräse nicht gut gearbeitet.
>
> noch viel schleifarbeit :-)

Irgendwie kommt mir das doch enorm bekannt vor...

Hast du das Teil in Serie aufgelegt, kopiert, oder wurdest du kopiert?

von Klaus R. (klaus2)


Lesenswert?

Uff! Was für eine interessante Entwicklung des Themas...bin gespannt wer 
/ was dahintersteckt!

Klaus.

von John Doe (Gast)


Lesenswert?

Martin S. schrieb:
> Irgendwie kommt mir das doch enorm bekannt vor...
>
> Hast du das Teil in Serie aufgelegt, kopiert, oder wurdest du kopiert?


Lesen kannst Du wohl nicht, oder?

von Martin S. (sirnails)


Lesenswert?

John Doe schrieb:
> Martin S. schrieb:
>> Irgendwie kommt mir das doch enorm bekannt vor...
>>
>> Hast du das Teil in Serie aufgelegt, kopiert, oder wurdest du kopiert?
>
>
> Lesen kannst Du wohl nicht, oder?

 Offensichtlich nicht. Aber das ist ja nicht weiter tragisch. Man soll 
ja zu seinen Schwächen stehen. Das ist wohl meine.

Es wäre also sehr nett, wenn du mir die betreffende Stelle zeigen 
könntest. Das ich die grob 500 Beiträge jetzt nicht alle durchgelesen 
habe, ist wohl nachvollziehbar, oder?

von Klaus R. (klaus2)


Lesenswert?

...ich glaube mich zu erinnern dass dem TO der originale zu teuer war 
und er sich dann stark am Design orientiert hat - wie stark, wurde mir 
aber auch jetzt erst klar ;)

-> Beitrag "Re: Projekt fertiggestellt: MP3 Player für Kinder auf ATTiny-Basis"

Klaus.

: Bearbeitet durch User
von Martin S. (sirnails)


Lesenswert?

Ach ok vielen Dank. Dann hat sich das ja aufgeklärt.

Ich war nur überrascht, weil die Designs nahezu identisch sind.

von Klauso (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

mittlerweile ist etwas Zeit vergangen und das Thema DigiSpark ist 
gecancelt.
Ich habe einen Attiny85 mit einem AVR ISP mkII, den ich noch hier liegen 
hatte, ohne Fehlermeldung programmiert bekommen. Nach diesen Erfahrungen 
gibt es echt keinen Grund für DigiSpark ;)

Leider Antwortet der DFPLayer nun nicht auf die Anfragen des Tiny (siehe 
Bilder, im Oszillogramm: rot ist Pin5(RX Tiny), gelb ist Pin6(TX Tiny) 
des Tiny)

Abspielen von Titeln klappt mittels ADKEY's problemlos.
Leider habe ich aktuell noch keinen neuen Player zum testen zur Hand.

Gibt es noch weitere Fehlerquellen weshalb der DFPlayer auf der 
Datenleitung stumm bleibt?

von ghmartin77 (Gast)


Lesenswert?

Hallo Klauso,

Fuses richtig gesetzt? Von meiner Github-Seite:

> ATTiny85 (ATTENTION!!! Ensure your fuses are set to 8Mhz (internal) clock!
> Otherwise SoftSerial won't work reliably. The following fuse values are
> recommended: L:0xE2, H:0xD7, E:0xFF)

...und mit den dazu passenden Einstellungen kompiliert?

Siehe auch Beitrag "Re: Projekt fertiggestellt: MP3 Player für Kinder auf ATTiny-Basis"

Good Luck!
ghmartin77

von ghmartin77 (Gast)


Lesenswert?

...alternativ hätte ich noch "TX/RX auf dem DFPlayer vertauscht" im 
Angebot? Ggf. ist die Beschriftung nicht wie erwartet und man muss RX 
mit RX und TX mit TX verkoppeln statt -wie erwartet- "über kreuz"...

Versuch macht kluch...
ghmartin77

von Klauso (Gast)


Angehängte Dateien:

Lesenswert?

ghmartin77 schrieb:
> Hallo Klauso,
>
> Fuses richtig gesetzt? Von meiner Github-Seite:
>
>> ATTiny85 (ATTENTION!!! Ensure your fuses are set to 8Mhz (internal) clock!
>> Otherwise SoftSerial won't work reliably. The following fuse values are
>> recommended: L:0xE2, H:0xD7, E:0xFF)
>
> ...und mit den dazu passenden Einstellungen kompiliert?
>
> Siehe auch Beitrag "Re: Projekt fertiggestellt: MP3 Player für Kinder
> auf ATTiny-Basis"
>
> Good Luck!
> ghmartin77
>

Danke nochmal für den Hinweis und die Verlinkung nach oben!
Die Fuses sind, sofern die Löschung des EEPROM nicht relevant ist, 
richtig gesetzt. Bei HFuse habe ich 0xDF was bedeutet dass EESAVE 
gesetzt ist.
... -Pusb -e -Uefuse:w:0xff:m -Uhfuse:w:0xdf:m -Ulfuse:w:0xe2:m

Davon abgesehen antwortet heute morgen zumindest mal der ADPlayer. Warum 
auch immer. Der Tiny unterbricht nun auch das Abspielen von Titeln 
welche ich manuell mittels ADKEY's auslöse (Blaue LED leuchtet für nicht 
mal 1 Sekunde auf und erlischt, Titel wird kurz angespielt).

Leider scheint der Tiny nicht auf den analogen Eingang an Pin2 zu 
reagieren.
Ich habe die Verschaltung und den Tiny mit einem mini Testprogramm 
(siehe unten) getestet, funktioniet. Der DutyCycle des PWM Signal 
variiert, je nach Eingangsspannung, wie erwartet.
1
// to run on attiny85
2
3
const byte pwmPin = 0;
4
const byte analogInPin = A3;
5
6
void setup() {
7
}
8
9
void loop() {
10
  pinMode(pwmPin, OUTPUT);
11
  int analogIn = analogRead(analogInPin);
12
 analogIn = map(analogIn, 0, 1023, 0, 255);
13
 analogWrite(pwmPin, analogIn);
14
}

Die Teilspannungen der Widerstandskaskade passen auch mit denen hier im 
Thread gelisteten überein. SIehe dazu auch das oben gezeigte 
Oszillogramm.

Theoretisch sollte man doch, je nach dem welche Taste gedrückt wird, am 
RX-Pin des Tiny eine Veränderung im Bit-Muster erkennen können...
Es tut sich aber leider nichts.

von Klauso (Gast)


Lesenswert?

kleiner Nachtrag zum Thema:
Auch das ändern der Fuses hat nichts geändert:
1
avrdude -c"avrdude.conf" -v -v -v -v -pattiny85 -cstk500v2 -Pusb -e -Uefuse:w:0xff:m -Uhfuse:w:0xd7:m -Ulfuse:w:0xe2:m
2
3
...
4
5
avrdude: safemode: efuse reads as FF
6
avrdude: safemode: Fuses OK (E:FF, H:D7, L:E2)
7
avrdude: Sent: . [11] . [01] . [01]
8
avrdude: Recv: . [11] . [00]
9
10
avrdude done.  Thank you.

von Klauso (Gast)


Lesenswert?

Ich muss noch eine Frage hinterher schieben, die mich beschäftigt:

@ghmartin77
Du rufst einen Track wie folgt ab:
1
player.playFolderTrack(curFolder, curTrack);

In deiner Anleitung steht, der Ordnername besteht aus zwei Ziffern.

Bei Github steht zur Bibliothek geschrieben:

“An example filename would be sd:/002/013_ThisIsMyFavoriteSong.mp3, and 
calling playFolderTrack(2, 13) would play it.
folder - the folder number as listed in the folder name. The foldername 
must be a three digit, zero padded number.“

https://github.com/Makuna/DFMiniMp3/wiki/API-Reference#void-playfoldertrackuint8_t-folder-uint8_t-track

Ordner mit zwei Ziffern sollen mit:
playFolderTrack16(x, y) aufgerufen werden.

Die Beispiele die auf der Seite der Library angeboten werden 
funktionieren mit meinem DFPlayer zumindest mit dem advert- und mp3- 
Ordner nun auch endlich.

Irgendwo habe ich wohl noch ein Problem mit der Ordnerbezeichnung, der 
Formatierung der sd Karte (fat32) oder dem Aufruf der “playFolderTrack 
Funktion, siehe oben...

von ghmartin77 (Gast)


Lesenswert?

Na, dann wollen wir mal sortieren und schauen, ob wir der Sache 
näherkommen...

> Der Tiny unterbricht nun auch das Abspielen von Titeln welche ich manuell 
mittels ADKEY's auslöse

Was meinst du denn damit? Der Tiny sollte eigentlich kein Abspielen 
abbrechen. Wann passiert das? Einfach so nach einer bestimmten Zeit? 
Wenn du eine Taste drückst? Wenn...wann?

Als nächstes wäre spannend, herauszubekommen, in welchem Zustand sich 
der Tiny befindet. Du schreibst, er würde scheinbar nicht auf 
Tastendrücke reagieren (Pin 2). Wie äußert sich das? Tastendruck mit 
nachweißlichem Spannungsausschlag gemäß deiner Messung, aber in der 
Folge keine Aktivität an TX des Tinys?

Wenn dem so ist, wär's möglich, dass der Tiny noch in der 
Initialisierung (setup()) hängt. Zeilen 241ff wären Kandidaten dafür. 
Ergo: Sind deine Ordnerstrukturen auf der SD-Karte gemäß 
Github-Beschreibung?

Nächster Versuch: setup() auf Minimum runterstrippen, um zu schauen, ob 
der ATTiny reden und der DFPlayer zuhören mag:
1
void setup() {
2
  pinMode(PIN_VOLUME, INPUT);
3
  pinMode(PIN_VOLUME_INTERNAL, INPUT);
4
  pinMode(PIN_KEY, INPUT_PULLUP);
5
6
  delay(50);
7
8
  player.begin();
9
10
  initDFPlayer();
11
12
  player.playFolderTrack(1, 1);
13
14
  delay(10000);
15
}

Dazu sicherstellen, dass ein File /01/001.mp3 auf der SD-Karte existert.
Spielt er dann beim Starten was über den DFPlayer ab? Mindestens 10 
Sekunden lang?
Falls nicht, versuchsweise RX/TX austauschen und schauen, was er dann 
tut.
Immer noch nichts?
Hättest du ggf. noch einen Arduino rumfliegen, mit dem man inkl. 
Logausgaben testen könnte?

Dann lass mal hören, was sich mit diesen Anstößen ergeben hat...

Grüße
ghmartin77

von ghmartin77 (Gast)


Lesenswert?

Da haben wir überschneidend geschrieben. Das sind doch schonmal gute 
Nachrichten, dass es prinzipiell funktioniert.

Damit ist meine Frage nach den Ordnerstrukturen der heisseste Kandidat:
Hast du alle Ordner von "01" bis "11" angelegt (eine weitere führende 0 
brauchte ich bisher nicht, aber das können wir auch noch ausprobieren)? 
Liegt in jedem Ordner mindestens eine Datei 001.mp3?

von Klauso (Gast)


Angehängte Dateien:

Lesenswert?

Ok, Asche über mein Haupt ;)

Es läuft. Und ich habe gezwungener Weise viel über die DFMinimp3.h und 
deren Anwendung gelernt :)

Ich hatte nur 5 der insgesamt 11 Ordner auf der SD-Karte angelegt (Bitte 
keine Kommentare dazu ;) )

Ich fasse, auch mal für die folgenden Generationen nochmal meine Infos 
zusammen:

- Infos zur Library DFMiniMp3.h gibts hier:
https://github.com/Makuna/DFMiniMp3/wiki/API-Reference

- Die Library und die Kommunikation grundsätzlich Testen mit diesen 
offiziellen Beispielen:
https://platformio.org/lib/show/1561/DFPlayer%20Mini%20Mp3%20by%20Makuna

- Ein Digispark mit Tiny85 macht keinen Sinn, ein echter Attiny85 mit 
ISP Programmiert ist so viel einfacher und hat keinen Bootloader der 
beim Start 5? Sekunden auf ein mögliches beschreiben wartet. Bei jedem 
Start würde die Box um eben diese Zeit verzögert betriebsbereit sein. 
Den Bootloader könnte man theoretisch aber auch umbauen.
Siehe hier:
https://bytelude.de/2018/04/20/wie-man-das-5-sekunden-boot-delay-beim-digispark-digistump-attiny85-entfernt/

- DFPlayer mit roter LED (anscheint billiger Nachbau) funktioniert mit 
neuer Version auch. Bezugsquelle vom Shoppingteufel für 4,99€ inkl. 
Prime
https://www.amazon.de/gp/offer-listing/B07CRY9QTK/ref=dp_olp_new_mbc?ie=UTF8&condition=new

- Taster fürs Tasterfeld hab ich von Reichelt und find sie echt cool, 
leider nur in 7 Farben (Artikel-Nr.: DT 6 GR)
https://cdn-reichelt.de/documents/datenblatt/C200/dt6.pdf

- Unbedingt bevor das Programm zum ersten mal mit der ARduino IDE auf 
den Tiny geladen wird, unter "Werkzeuge" 8 MHz einstellen und dann nicht 
vergessen "Bootloader brennen" zu klicken. Damit werden "NUR" die 
Fusebits geschrieben. Zum verifizieren der FuseBits kann man unter 
Voreinstellungen nochmal die Häckchen bei "Ausführliche Ausgabe 
während:" setzen.

von ghmartin77 (Gast)


Lesenswert?

> Es läuft.

Na, das freut mich doch zu hören :)

Vielen Dank für die Dokumentation für die Nachwelt. Das hilft sicher 
zukünftig dem ein oder anderem weiter!

Eine Frage hätte ich noch. Du schreibst
> DFPlayer mit roter LED (anscheint billiger Nachbau) funktioniert mit neuer 
Version auch.

Mit neuer Version von was? Der DFMiniMp3.h oder bereits mit dem 
HEAD-Stand aus meinem Github-Repo?

Grüße
ghmartin77

von Klauso (Gast)


Angehängte Dateien:

Lesenswert?

Zur Vollständigkeit der Doku habe ich noch ein Blockschema zur 
Umsetztung von laden via USB-Buchse und Datenzugriff auf die SD-Karte 
via USB-Buchse beigefügt.


ghmartin77 schrieb:
> Eine Frage hätte ich noch. Du schreibst
>> DFPlayer mit roter LED (anscheint billiger Nachbau) funktioniert mit neuer
> Version auch.
>
> Mit neuer Version von was? Der DFMiniMp3.h oder bereits mit dem
> HEAD-Stand aus meinem Github-Repo?

Sowohl als auch.
Ich habe den Player getauscht und in den aktuellen Versionen ist der 
PLayer mit der roten LED (zumindest den, den ich hier von amazon hab) 
ansprechbar.

Allgemein hier nochmal zum testen nochmal die Version aus der Doku 
angepasst auf den attiny85 (überprüft und funktioniert):

--- Random all Tracks on SD ---
1
// this example will play a random track from all on the sd 
2
//
3
// it expects the sd card to contain some mp3 files
4
5
#include <SoftwareSerial.h>
6
#include <DFMiniMp3.h>
7
8
// implement a notification class,
9
// its member methods will get called 
10
//
11
class Mp3Notify
12
{
13
public:
14
  static void OnError(uint16_t errorCode)  {
15
  }
16
  static void OnPlayFinished(uint16_t track)  {
17
  }
18
  static void OnCardOnline(uint16_t code)  {
19
  }
20
  static void OnUsbOnline(uint16_t code)  {
21
  }
22
  static void OnCardInserted(uint16_t code)  {
23
  }
24
  static void OnUsbInserted(uint16_t code)  {
25
  }
26
  static void OnCardRemoved(uint16_t code)  {
27
  }
28
  static void OnUsbRemoved(uint16_t code)  {
29
  }
30
};
31
32
 
33
// Some arduino boards only have one hardware serial port, so a software serial port is needed instead.
34
// comment out the above definition and uncomment these lines
35
SoftwareSerial secondarySerial(0, 1); // RX, TX
36
DFMiniMp3<SoftwareSerial, Mp3Notify> mp3(secondarySerial);
37
38
void setup() 
39
{
40
  mp3.begin();
41
  mp3.reset(); 
42
  
43
  // show some properties and set the volume
44
  uint16_t volume = mp3.getVolume();
45
  mp3.setVolume(24);
46
  
47
  uint16_t count = mp3.getTotalTrackCount();
48
  uint16_t mode = mp3.getPlaybackMode(); 
49
  mp3.playRandomTrackFromAll(); // random of all folders on sd
50
}
51
52
void loop() 
53
{
54
  // calling mp3.loop() periodically allows for notifications 
55
  // to be handled without interrupts
56
  mp3.loop();
57
}

von Klauso (Gast)


Lesenswert?

@ghmartin77

Kann es sein, dass es in der Repeat1 Funktion noch einen Bug gibt?

Die Repeat1 Funktion wurde zwar umgesetzt und funktionierte, allerdings 
hat die Ansage aus dem "advert" oder "mp3" Ordner immer verkündet, die 
Funktion würde eingeschaltet.
Es wurde also immer die „ist eingeschaltet“-Datei abgespielt und nie die 
„ist ausgeschaltet“-Datei.


Der Fehler liegt in der "handleKeyPress()" Funktion.
1
        } else if (nowMs - keyPressTimeMs >= LONG_KEY_PRESS_TIME_MS && key == 4) {
2
          repeat1 = !repeat1;
3
          playOrAdvertise(loopPlaylist ? 500 : 501);
4
          writeConfig();
5
          delay(1000);

Hier müsste der Kopierteufel "loopPlaylist" durch "repeat1" ersetzt 
werden.
1
        } else if (nowMs - keyPressTimeMs >= LONG_KEY_PRESS_TIME_MS && key == 4) {
2
          repeat1 = !repeat1;
3
          playOrAdvertise(repeat1 ? 500 : 501);
4
          writeConfig();
5
          delay(1000);

So funktioniert es zumindest bei mir ;)

Ggf. bitte in GitHub veröffentlichen.

von ghmartin77 (Gast)


Lesenswert?

Top!
Klar ist das falsch. Danke für den Hinweis. Dein Fix ist genau richtig 
und ich hab ihn just eben ins Github-Repo übernommen.

Viele Grüße
ghmartin77

Beitrag #6040653 wurde vom Autor gelöscht.
von Info (Gast)


Lesenswert?

https://www.hoerbert.com/kaufen/elektronikbausatz
119 Euro für eine WAV Player Elektronik. In Holzkiste 239 Euro!

Das Marketing zum Thema (nur) WAV ist gut formuliert (spart Strom, 
kann/ist viel mehr, ...).

Hier die Platine: 
https://static.hoerbert.info/wp-content/uploads/sites/5/2017/02/bausatz-platine-e1505730198737.jpg

Ein ATtiny861-20SU

Alternativ 
https://de.elv.com/elv-mini-wave-player-mwp2-komplettbausatz-151840 für 
20 Euro mit Quellcode auf Basis von ChaNs Projekt:

http://www.elm-chan.org/works/sd8p/report.html (das ist die kleine 
Variante aus meinen Lesezeichen, die Seite ist für mich gerade nicht 
erreichbar).

Aber ich habe auch mal einen DFPlayer geordert.

Hier eine Variante mit RFID: https://github.com/xfjx/TonUINO

von Max B. (Gast)


Lesenswert?

Super Projekt ghmartin77!

Ich frage mich ob ich das auch mit einem ATtiny 45 hinbekomme?

Waere mein erstes Projekt mit dem ATtiny - da mein Nachbar einen hat den 
er nicht braucht dachte ich mir, ich kann da noch etwas machen waehrend 
der freien Zeiten zwischen dem Weihnachtstrubel.


Gruesse

MaxB202

von ghmartin77 (Gast)


Lesenswert?

Der ATTiny45 hat nur 4kb Speicher. Der kompilierte Code, wie er aus der 
Arduino IDE (resp. dem im Inneren genutzten Compiler) herauskommt, 
kratzt knapp an der 8kb-Grenze.
Evtl. hilft es den Code runterzustrippen, Dinge rauszuschmeißen, die du 
nicht brauchst, oder den ganzen Arduino-Unterbau rauszunehmen... Dazu 
braucht's aber massive Umbauten der Codebasis...

--> Kauf dir 'nen 8x-er (oder einen Arduino Nano). Spart Zeit und 
Nerven...

Grüße und schöne Weihnachten
ghmartin77

von Klauso (Gast)


Angehängte Dateien:

Lesenswert?

@ghmartin77: Vielen Dank nochmals für das Projekt!

Mein Nachbau war pünktlich zum Fest fertig und ist mehr als super 
angekommen :)


Anbei natürlich noch ein paar Fotos:

von ghmartin77 (Gast)


Lesenswert?

Sieht super aus! Tolle Umsetzung!

Viele Grüße
ghmartin77

von Matze (Gast)


Lesenswert?

Daniel Frei schrieb:
> Als Steuerung kam aber nun von ELV der MSM4 zum Einsatz.
> https://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=60066

Hi Daniel,

wie bist du denn mit der Ausgangsleistung bzw. Lautstärke zufrieden?
Bei ELV steht was von 0,5W an 8Ohm.

Grüße
Mathias

von Hirschi (Gast)


Lesenswert?

Hallo zusammen,

Ich habe von meinen Kollegen einen selbst gebauten MP3-Player auf 
ATTiny-Basis bekommen- bzw. die Platine- und bin von der Idee 
begeistert. Zwecks Gehäusebau habe ich mich jetzt etwas belesen und mich 
lässt eine Frage nicht los (die nichts mit dem Gehäuse, sondern dem 
angeborenen Optimierungstrieb zu tun hat). Könnte ich den MP3-Player um 
einen RFID-Leser erweitern? Würde das der ATTiny her geben?

Also gleich vorweg: Ich weis, dass es den TonUINO gibt. Und nein, ich 
bin nicht sonderlich bewandert in Schaltungstechnik und schon garnicht 
in Programmierung. Aber ich hoffe, ich bin lernfähig. ;)

Viele Grüße
Hirschi

von ghmartin77 (Gast)


Lesenswert?

Hi Hirschi,

rein technisch scheint's zu gehen (zumindest, wenn du einen RFID-Reader 
mit UART-Schnittstelle nimmst): 
https://thinksilicon.de/67/RFID-Tueroeffner-mit-Attiny.html

Jenachdem von welcher Codebasis du sprichst, könnte die Speichergröße 
problematisch werden. Der Code des Players, der in diesem Thread 
beschrieben ist, belegt fast die kompletten verfügbaren 8kb des 
benutzten ATTiny85.

Wenn du einfach an verrückten Sachen mit ATTiny und RFID interessiert 
bist, schau gern auch mal hier vorbei (da ist es allerdings ein ATTiny 
als RFID-Chip, nicht als Leser):
https://trmm.net/AVR_RFID

Grüße
ghmartin77

von Tim M. (Gast)


Lesenswert?

Tim M. schrieb:
> Hallo zusammen,
>
> nachdem ich hier immer fleissig mitlese, muss mich auch mal wieder
> melden ;-)
>
> Meine beiden Player laufen problemlos nahezu täglich vor sich hin.
>
> Das Feature "Pause_on_Min_Volume" wollte ich nun updaten, bekomm es aber
> nicht hin. Habe jetzt festgestellt, das alle Versionen seitdem #include
> "DFMiniMp3.h" hinzugefügt wurde, bei mir nicht laufen :-(
> Beim Beschreiben des Attiny bekomme ich keine Fehlermeldungen...
>
> Muss ich diese Datei irgendwo extra einbinden?

Konnte das Problem immer noch nicht lösen.
Hat noch jemand eine Idee was da schief läuft?

von ghmartin77 (Gast)


Lesenswert?

Hi Tim,

welche Code-Basis (Git-Commit) läuft bei dir? Ist 
abe87ec341694533ee6e26d65714142059044a79 noch in Ordnung?

Grüße
ghmartin77

von Tim (Gast)


Lesenswert?

Öhm, wie bekomme ich das heraus? Wo steht das.

Habe gerade nochmal bei den releases gestöbert.
1.0 läuft, 1.1 läuft nicht.

Muss ich die DFMiniMp3.h irgendwie noch einbinden oder wo hinkopieren?

von David (Gast)


Lesenswert?

Hallo zusammen!
Ich muss mich auch mal wieder melden.
Hatte jemals jemand Erfolg beim Abspielen vom USB Speicher anstelle der 
SD Karte? Ich habe vieles ausprobiert. Das Abspielen funktioniert 
grundsätzlich auch, jedoch funktionieren die Funktionen Repeat, 
continuous Play und Play last at startup (oder wie die heissen) nicht. 
Der Player spielt egal wie die Einstellungen sind immer nur 1 track und 
verstummt danach. Im Code habe ich die PlaySource auf U gelegt.

Hat jemand eine Idee woran dies liegen könnte?

Liebe Grüsse
David

von ghmartin77 (Gast)


Angehängte Dateien:

Lesenswert?

Auf der GitHub-Seite unter Code -> Commits steht neben jedem Commit 
jeweils rechts eine Hexcode-Zeichenkette der Art "e15e9fc". Bei den 
Releases stets links am Rand daneben an einem "-o-"-Icon.

Deine Aussage, dass 1.0 läuft hat aber schon gereicht.
Habe die Features nach der 1.0 versuchsweise in den alten 1.0er-Code 
migriert, konnte leider aber nicht mehr als Compilier-Fähigkeit testen 
:)

Probier mal bitte das angehängte File. Wenn du PAUSE_ON_MIN_VOLUME 
aktivieren willst, musst du noch in Zeile 26 die Kommentarzeichen "// " 
vor dem "#define" entfernen.

Good Luck!

Grüße
ghmartin77

von Tim (Gast)


Lesenswert?

Jippiehhhh... GEHT DOCH!!!

Da probier ich mir nen Wolf, und dann ist es so einfach...

DANKE DIR!

Scheint beim ersten Anhören auf meinem "Testplayer" problemlos zu 
laufen.
Pause und Titel Dauerschleife funktioniert auch.

Jetzt kann ich mir noch überlegen, ob oder wie ich die Powerbank beim 
Pausieren ausschalte. Da ich im "Testplayer" nen Potti verbaut hab, kann 
ich das aktuell schön einstellen.

Beim Player vom Junior müsste da evtl. ne "Zeitschaltung" rein das die 
Powerbank nicht leergesaugt wird... mal schaun...

Nochmals vielen DANK!
Geiles Projekt!

von David (Gast)


Lesenswert?

David schrieb:
> Hallo zusammen! Ich muss mich auch mal wieder melden. Hatte jemals
> jemand Erfolg beim Abspielen vom USB Speicher anstelle der SD Karte? Ich
> habe vieles ausprobiert. Das Abspielen funktioniert grundsätzlich auch,
> jedoch funktionieren die Funktionen Repeat, continuous Play und Play
> last at startup (oder wie die heissen) nicht. Der Player spielt egal wie
> die Einstellungen sind immer nur 1 track und verstummt danach. Im Code
> habe ich die PlaySource auf U gelegt.
> Hat jemand eine Idee woran dies liegen könnte?

Vielleicht ist meine Frage gestern zwischen der Problembearbeitung von 
Tim untergegangen. Darum frage ich nochmals. Hat jemand eine Idee wie 
ich das Abspielen von USB zum Funktionieren bringe?

Danke und liebe Grüsse
David

von ghmartin77 (Gast)


Lesenswert?

Hi David,

hab's zwar noch nie mit USB probiert, aber eine schnelle Google-Suche 
nach DFPlayer und USB hat folgenden Treffer zu Tage gefördert:
http://discourse.voss.earth/t/dfplayer-mini-mit-usb-stick-betreiben/1822

Vielleicht kannst du da was draus machen, zumindest klingt die 
Verhaltensbeschreibung sehr ähnlich zu deiner.

Grüße
ghmartin77

von David (Gast)


Lesenswert?

ghmartin77 schrieb:
> Vielleicht kannst du da was draus machen, zumindest klingt die
> Verhaltensbeschreibung sehr ähnlich zu deiner.

Hallo Martin
Danke füe diesen Tip. Ich habs versucht dies in den code zu 
intergrieren. Nun funktioniert das zuletzt gespielte beim einschalten 
spielen, fortlaufend abspielen und repeat1 geht leider immer noch nicht. 
Hast du noch eine Idee woran dies liegen könnte?

Herzlichen Dank
David

von ghmartin77 (Gast)


Lesenswert?

Hi David,

ein paar Ideen hätte ich noch:
1) Du kannst mal die letzte Version der DFMiniMp3.h von hier nehmen:
https://github.com/Makuna/DFMiniMp3
Da wurde -seitdem ich sie in den Player integriert hatte- noch ein 
bissel was geändert, u.a. in Bezug auf USB. Der Fix, der oben verlinkt 
war, ist auch bereits aufgenommen. Tipp: DfMp3_PlaySource_U heisst in 
der neuen Version DfMp3_PlaySource_Usb.

2) Falls das immer noch nicht geht, hilft folgendes vielleicht weiter. 
Anstarten eines Tracks nachdem ein vorheriger ausgelaufen ist (egal ob 
Repeat1 oder PlayNext), basiert auf der ausgelesenen Tracknummer, wenn 
der Track gestartet wird:
https://github.com/ghmartin77/KidsMP3Player/blob/master/KidsMP3Player/KidsMP3Player.ino#L404

Wenn die ermittelte Zahl nicht stimmt, greift die Bedingung hier nicht 
und das Anstarten des nächsten/gleichen Tracks erfolgt nicht:
https://github.com/ghmartin77/KidsMP3Player/blob/master/KidsMP3Player/KidsMP3Player.ino#L76

Die Spec vom Player (https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299) 
listet u.a. folgende Commands:
0x4b - Queries the current track of TF card
0x4c - Queries the current track of U-Disk
0x4d - Queries the current track of Flash

DFMiniMp3.h nutzt 0x4c, unabhängig von der gesetzten Playback-Source:
https://github.com/Makuna/DFMiniMp3/blob/master/src/DFMiniMp3.h#L147
...und funktioniert scheinbar für SD-Karten, auch wenn ich 0x4c oben als 
USB verstanden hätte...
Da könnte man mal einen anderen Wert (0x4b oder 0x4d) ausprobieren.

Gutes Gelingen...

Grüße
ghmartin77

von ghmartin77 (Gast)


Lesenswert?

Verlängerung vorangegangener Beitrag:
#2 mit Wert 0x4b scheint mir vielversprechend.
Siehe Implementierung dieser Lib:
https://github.com/DFRobot/DFRobotDFPlayerMini/blob/master/DFRobotDFPlayerMini.cpp#L474

Grüße
ghmartin77

von David (Gast)


Lesenswert?

ghmartin77 schrieb:
> #2 mit Wert 0x4b scheint mir vielversprechend.

Ich habe diesen Tip als erstes ausprobiert = Volltreffer! Ich bin dir 
unglaublich dankbar für deine Hilfe!

von ghmartin77 (Gast)


Angehängte Dateien:

Lesenswert?

So du Zeit und Muße hast, könntest du angehängten Code mal probieren. 
Dann kann ich a) das Git-Repo aktualisieren und b) Makuna/DFMiniMp3 
einen Fix zukommen lassen.

Ich konnte mangels Hardware-Setup leider wieder nur "blind" 
implementieren :)

Grüße
ghmartin77

von David (Gast)


Lesenswert?

Ein kleiner Fehler hat sich allerdings wohl noch eingeschlichen. Wenn 
ich Repeat1 ein- bzw. ausschalte, spielt der laufende Track nach der 
Ansage nicht mehr weiter. Bei all den anderen Funktionen klappt es 
problemlos. Im Code finde ich in dem Abschnitt wo festgelegt wird welche 
Taste für welchen Befehl ist und welcher Sprachbefehl abgespielt wird 
keinen Unterschied bei den verschiedenen Funktionen. Hast du mir da auch 
noch einen Tip?

von David (Gast)


Lesenswert?

Ein kleiner Fehler hat sich allerdings wohl noch eingeschlichen. Wenn 
ich Repeat1 ein- bzw. ausschalte, spielt der laufende Track nach der 
Ansage nicht mehr weiter. Bei all den anderen Funktionen klappt es 
problemlos. Im Code finde ich in dem Abschnitt wo festgelegt wird welche 
Taste für welchen Befehl ist und welcher Sprachbefehl abgespielt wird 
keinen Unterschied bei den verschiedenen Funktionen. Hast du mir da auch 
noch einen Tip?

ghmartin77 schrieb:
> Ich konnte mangels Hardware-Setup leider wieder nur "blind"
> implementieren :)

Momentan habe ich leider die passende Hardware dazu auch nicht zur Hand. 
Der betroffene Player ist etwas erweitert zu deiner Ausgangsversion. Es 
läuft ein Arduino Nano mit 12 Playlisttasten und zusätzlich einer 
Ladestandsanzeige mittels rgb-LED.

von ghmartin77 (Gast)


Lesenswert?

David schrieb:
> Wenn
> ich Repeat1 ein- bzw. ausschalte, spielt der laufende Track nach der
> Ansage nicht mehr weiter. Bei all den anderen Funktionen klappt es
> problemlos.

Ist das reproduzierbar? Klingt mir recht mysteriös, weil -wie du schon 
schreibst- der Code (zumindest im Original) auch für andere 
Feature-An/Aus-Knöppe der gleiche ist...

Theorie anbei:
Für die Ansagen wird abhängig vom Status des Players entweder playMp3 
oder playAdvertisement aufgerufen. Letzteres im Falle, dass der Player 
im Status "Abspielen" ist. Das Fortsetzen des laufenden MP3s nach dem 
playAdvertisment macht der DFPlayer ganz allein. Wenn er das nicht tut, 
ist das entweder ein Bug der Hardware (halte ich für unwahrscheinlich), 
oder die vorgenannte status-basierte Weiche funktioniert nicht (immer).
Da du einen Arduino einsetzt, kannst du preiswert ein paar Log-Ausgaben 
auf dessen Serial-Port schreiben:
https://github.com/ghmartin77/KidsMP3Player/blob/master/KidsMP3Player/KidsMP3Player.ino#L177

Vielleicht kannst du dich damit rantasten, was die Ursache des Problems 
ist...

Grüße
ghmartin77

von Malte (Gast)


Lesenswert?

Hallo,

ich habe ebenfalls Probleme mit dem DFPlayer Modul:

- Ich kann zwischen den Verzeichnisen herumspringen und es werden die 
Lieder darin abgespielt
- Mit einem Tastendruck kann ich im Ordner das nächste Lied auswählen
- Allerdings wird immer das selbe Lied abgespielt, ich muss also manuell 
weiter klicken

Ich habe es mit zwei DFPlayer Modulen probiert:
MH3028M-24SS
und
AA1034CJ5M2U.1-94 (schwer zu lesen)
Blaues "Licht", selbes verhalten

Kommunikation findet statt:

RX Pin DFPlayer
7E FF 06 0F 00 01 02 FE E9 EF
7E FF 06 4C 00 00 00 FE AF EF
TX Pin DFPlayer
7E FF 06 4C 00 00 02 FE AD EF

Zweiter Tastendruck

RX Pin DFPlayer
7E FF 06 0F 00 01 01 FE EA EF
7E FF 06 4C 00 00 00 FE AF EF
TX Pin DFPlayer
7E FF 06 4C 00 00 01 FE AE EF

ATtinySerialOut-> 1.0.4
DFMiniMp3 ( Makuna?) 1.0.3
Mit AVR Dragon/AVR Studio geflasht
8Gb SD - Karte
Continous play ist "aus" per Taster
Ordner auf SD-Karte 01 bis 11; ADVERT und MP3
Dateinamen in den jweiligen Ordnern 001...00x.mp3; In ADVERT und MP3 4 - 
stellig


Grüße
Malte

von ghmartin77 (Gast)


Lesenswert?

Hallo Malte,

die Beschreibung der Zusammenstellung der "Umgebung" ist sehr gut. Und 
die Darstellung der Bytes, die zwischen uC und DFPlayer hin- und 
herfließen, ist auch prima.

Ich habe allerdings die Problembeschreibung noch nicht geschnallt.

Malte schrieb:
> - Ich kann zwischen den Verzeichnisen herumspringen und es werden die
> Lieder darin abgespielt

Das ist doch gut. Alle Lieder? Nur das erste? Wird zufällig irgendeins 
aus dem Ordner, der zur Taste gehört, abgespielt?

> - Mit einem Tastendruck kann ich im Ordner das nächste Lied auswählen

Das klingt doch auch erstmal gut, wenn das geht. Was ist "ein 
Tastendruck"? Hast du eine "Next"-Funktion auf eine Taste gelegt oder 
ist es ein erneuter Tastendruck für einen Track einer Playlist, die 
gerade läuft?

> - Allerdings wird immer das selbe Lied abgespielt, ...

Versteh ich nicht. Oben schreibst du, du kannst mit einem Tastendruck 
das nächste Lied auswählen...

> ich muss also manuell weiter klicken

Wenn "Continuous Play" aus ist, wie du oben schreibst, ist das doch auch 
richtig?!

Beschreib bitte noch mal, was du tust (welche Knöpfe konkret du 
drückst), was du erwartest, was dann passieren sollte und was 
stattdessen tatsächlich passiert.

Bitte auch bei der Kommunikation zwischen uC und DFPlayer einsortieren 
welche Byte-Kette bei welchem konkreten Tastendruck erfolgt...

Danke!

Grüße
ghmartin77

von Malte (Gast)


Lesenswert?

Hallo,

also am Code habe ich nichts geändert, also wie auf Github.

Springe ich in ein Verzeichnis "3", so wird der zuletzt angewählte Titel 
(z.B. 001) selbstständig immer und immer wieder wiederholt bis ich eben 
die "3" drücke und das Lied 002 immer und immer wieder wiederholt 
abgespielt wird. Selbstständig wird das nächste Lied nicht angesprungen.

Genau das Verhalten würde ich erwarten wenn eben "Continuos Play" aktiv 
ist. Aber durch längeres Drücken der Taste "1" kann ich das ja 
umschalten, ich bekomme auch eine entsprechende Bestätigung.

Nach einem Neustart (Stromlos) wird auch wieder das zuletzt gespielte 
Lied abgespielt
Hier die Kommunikation am DFPlayer angeschlossen, 7E FF habe ich weg 
gelassen (gibt es ein HTerm mit zwei Uart in einem Fenster? So, das der 
zeitliche Zusammenhand erhalten bleibt)
Tastendruck 1:
DFPLayer RX Pin: 06 0F 00 01 01 FE EA EF
DFPLayer TX Pin: 06 4C 00 00 01 FE AE EF
DFPLayer RX Pin: 06 4C 00 00 00 FE AF EF

Ende Lied, gleiches Lied wird abgespielt:
DFPLayer TX Pin 06 3D 00 00 01 FE BD EF
DFPLayer TX Pin 06 3D 00 00 01 FE BD EF
DFPLayer RX Pin 06 0F 00 01 01 FE EA EF
DFPLayer RX Pin 06 4C 00 00 00 FE AF EF
DFPLayer TX Pin 06 4C 00 00 01 FE AE EF

Drücke ich eine andere Taste, so wird in dem entsprechenden Verzeichnis 
bei Lied 001 begonnen, ohne selbstständig das nächste zu starten.

Grüße
Malte

von ghmartin77 (Gast)


Lesenswert?

Das klingt mir nach "Repeat1 aktiv". Halte doch mal die Taste 4 für 2 
Sekunden und schau, ob das "Problem" danach verschwindet...

Grüße
ghmartin77

von Christian S. (chris02)


Lesenswert?

Repeat ist bei deinem aktuellem GitHub Upload anscheinend vorausgewählt 
aktiv. War bei mir auch der Fall.

Eine kleine Sache noch für's Archiv. Habe den Player mit einem Arduino 
Nano laufen.
Bei einem ging das abspielen direkt nach Power On los, beim Anderen 
nicht. Durch einen Kreuztausch der Komponenten hat sich eindeutig den 
Arduino als Fehlerquelle raus gestellt. Nach einem komplett Löschen und 
Bootloader per ISP neu schreiben geht es auch mit diesem Arduino. Wer 
weiß was die Chinesen da drauf gespielt haben...

von ghmartin77 (Gast)


Lesenswert?

Ah, jetzt ergibt alles einen Sinn :)

Die Konfiguration, ob diverse Features an oder aus sind (Repeat1, 
Continuous Play, ...), wird aus einem EEPROM-Byte ausgelesen. Da steht 
scheinbar je nach History des Chips unterschiedlicher Bit-Müll drin. Das 
führt dann zu solchen Effekten, dass zuweilen unerwünschte/unerwartete 
Konfiguration initial aktiv ist...

@Malte: Dein Problem damit erklärt (und behoben)?

Grüße
ghmartin77

von Malte (Gast)


Lesenswert?

Hallo,

ja -> erledigt.

Das Problem saß vor dem PC. Ich hatte mir nur das User Manual angesehen 
und hatte mich auf Button 1 fixiert.
Danke trotzdem für die Unterstützung.

Grüße
Malte

von Tim (Gast)


Lesenswert?

ghmartin77 schrieb:
> So du Zeit und Muße hast, könntest du angehängten Code mal probieren.
> Dann kann ich a) das Git-Repo aktualisieren und b) Makuna/DFMiniMp3
> einen Fix zukommen lassen.
>
> Ich konnte mangels Hardware-Setup leider wieder nur "blind"
> implementieren :)
>
> Grüße
> ghmartin77


Teste gerade den neuen Code mit der USB-Schnittstelle.
Scheint jetzt alles zu funktionieren.

Seit dem letzten Update funktionieren ebenfalls Player mit der 
"Roten-LED"
(welche vorher bei mir gar nicht funktionierten)

Bastel gerade am Player 2.0. Dieser bekommt einen kleinen Verstärker, 
Stereo Lautsprecher, USB, Line in und Kopfhöreranschluss.

von Tim (Gast)


Lesenswert?

Hat jemand Erfahrungen mit einem Verstärker am DFR0299?
Habe diverse Verstärker getestet und immer laute Störgeräusche.
Wie kann ich das unterbinden?

Schließe ich den Heimkinoverstärker oder Aktivboxen dran, treten keine 
Störungen auf...

von ghmartin77 (Gast)


Lesenswert?

Tim schrieb:
> Teste gerade den neuen Code mit der USB-Schnittstelle.
> Scheint jetzt alles zu funktionieren.
>
> Seit dem letzten Update funktionieren ebenfalls Player mit der
> "Roten-LED"
> (welche vorher bei mir gar nicht funktionierten)

Hi Tim,

nur um sicherzugehen, bevor ich Murks ins GitHub-Repo committe: Du 
meinst die Version, die an diesem Beitrag anhängt, ja?
Beitrag "Re: Projekt fertiggestellt: MP3 Player für Kinder auf ATTiny-Basis"

Grüße
ghmartin77

von Tim (Gast)


Lesenswert?

Richtig!
Bisher ist mir kein bug aufgefallen!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.