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
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
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.
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
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
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
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
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
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
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!!
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
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
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.
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).
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!
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!
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
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!
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
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.
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
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...
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
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
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.
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.
...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.
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.
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
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.
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
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
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.
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
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...
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
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
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
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...
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
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?
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...
ghmartin77 schrieb:> Ersetze bitte Zeile 115 durch folgenden Code:delay(1000);> softSerial.setTimeout(2000);
Funktioniert trotzdem nicht. Player ohne Reaktion.
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.
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 :-)
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
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 ;-)
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 ;)
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
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
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
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?
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
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.
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
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
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
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!???
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?
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?
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.
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.
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.
> 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
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
> 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
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.
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
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?
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 :-/
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
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.
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
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?
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:
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.
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.
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
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
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
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!
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
...mich wundert dass die Meldungen an erfolgreichen Nachbauten
eingebrochen sind - dachte das wird ein Dauerbrenner, weil "fast jeder"
die Notwendigkeit hat?
Klaus.
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!!!
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 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?
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.
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.
...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.
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.
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
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
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
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.
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
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
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
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
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...
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
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.
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
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
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
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
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
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
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!
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?
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
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 ;)
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?
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?
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?
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?
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
...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
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
constbytepwmPin=0;
4
constbyteanalogInPin=A3;
5
6
voidsetup(){
7
}
8
9
voidloop(){
10
pinMode(pwmPin,OUTPUT);
11
intanalogIn=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.
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...
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
voidsetup(){
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
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?
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.
> 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
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
classMp3Notify
12
{
13
public:
14
staticvoidOnError(uint16_terrorCode){
15
}
16
staticvoidOnPlayFinished(uint16_ttrack){
17
}
18
staticvoidOnCardOnline(uint16_tcode){
19
}
20
staticvoidOnUsbOnline(uint16_tcode){
21
}
22
staticvoidOnCardInserted(uint16_tcode){
23
}
24
staticvoidOnUsbInserted(uint16_tcode){
25
}
26
staticvoidOnCardRemoved(uint16_tcode){
27
}
28
staticvoidOnUsbRemoved(uint16_tcode){
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
@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.
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
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
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
@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:
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
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
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?
Ö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?
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
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
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!
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
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
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
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
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!
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
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?
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.
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
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
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
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
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...
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
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
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.
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...
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