Mobile Schatzkiste - Lorenzuino#2

Hi liebe Community.

Nachdem meine erste Box bei meinem Sohnemann (3 1/2 Jahre) so gut angekommen ist und ich Lust hatte, das ganze mit einem Akkupack möglichst kompakt zusammenzubauen habe ich meinen zweiten Tonuino in eine Schmuck-Schatzschatulle gebaut und ein wenig modifiziert.
Folgende Modifikationen wurden (in der DEV-Version der Software) vorgenommen:

  • Hinzufügen einer LED, die anzeigt, wann der Tonuino angeschaltet ist, bei isPlaying() faded und bei nächsterTrack und vorherigerTrack kurz aufblinkt
  • Hinzufügen eines Potentiometers zum Steuern der Lautstärke:
    Hierfür überschreibe ich die InitialLautstärke beim Starten der Box mit dem aktuellen Poti-Zustand und setze während des Spielens und nach dem Druck auf Play den Poti-Zustand. Ergeben sich hier Änderungen zur aktuell gesetzten volume-Variable setze ich die Lautstärke direkt im MP3Player
  • Entfernen der Doppelbelegung der Tasten - Tasten steuern nun bei LONGPRESS und kurzem Drücken den Titel

Da ich einen Schalter gefunden habe, den ich mit Hilfe eines MicroUSB -> MiniUSB Adapters direkt von der Powerbank an den Arduino hängen konnte ohne die Kabel aufzutrennen ist es allerdings sehr eng in dem Gehäuse :smile:

Eine Liste der verbauten Teile reiche ich nach.

War wieder eine große Freude und wird sicher auch diesmal nicht der letzte Tonuino sein, den ich gebaut habe :yellow_heart:

Anbei ein paar Bilder:

9 „Gefällt mir“

Super Idee und Umsetzung!
Wie ich im anderen Thread schon geschrieben habe, plane ich schon seit Monaten mit der gleichen kleinen Schatztruhe. Meine Anordnung wird aber voraussichtlich doch deutlich anders werden.

Aber einen Poti als Lautstärkeregler werde ich auch machen. Ich finde die standardmäßige Doppelbelegung der Knöpfe nicht so praxistauglich. Mein 1,5 Jahre alter Sohn kann an unserem Radio mit den zwei Drehreglern hervorragend Lautstärke und sogar Sender einstellen. Aber ich glaube nicht, dass ich ihm irgendwie erklären könnte, die Köpfe eine bestimmte Dauer zu drücken, um die Lautstärke zu verstellen. Dabei würden nur die Tracks unkontrolliert weitergeschaltet werden. Selbst wenn er dann mal älter ist und das versteht, wäre das (selbst für mich) zu umständlich.

Ich verstehe allerdings nicht, warum Du die Lautstärke im Code steuerst. Ich habe in meinem Testaufbau einen 100Ohm Poti einfach vor den Lautsprecher geklemmt. Das ist zwar nicht der normale Aufbau, aber es funktioniert wurderbar. Zuvor hatte ich einen 1kOhm Poti bestellt, aber da war ca. 90% der Drehung “verloren” und alles hat sich auf den letzten Grad/Millimetern der Drehung abgespielt. So habe ich jetzt per Drehregler die volle Kontrolle der Laustärke. Man muss im Code nur die gewünschte Maximallautstärke einstellen. Der Drehregler merkt sich zwangsweise die zuletzt verwendete Lautstärke. :wink:

Was hast Du vorne eigentlich mit dem Loch gemacht? SD-Karte oder Ladebuchse? Laut Foto ist die SD-Karte da zu weit weg und Platz für eine Ladebuchse wäre da nicht mehr. :thinking:

Könntest Du Deine Code-Änderungen bitte bei GitHub (oder von mir aus auch hier direkt) bereitstellen? Ich würde gerne die die LED- und Tastenänderungen übernehmen. Die Anpassungen sind vermutlich nicht sonderlich kompliziert, aber es ist trotzdem schön, was funktionierendes direkt verwenden zu können. :hugs:

1 „Gefällt mir“

Aus diesem Grund hatte ich in meinem Fork von Anfang an kurz drücken für leiser/lauter und lang drücken für vorheriger/nächster Titel. Aus dem Grund weil damit die Funktion die erst später wichtig ist etwas verborgen ist. Und man eben nicht aus versehen ständig weiter schaltet. Damit kommt mein Neffe (2) super klar. Anfangs hat er nur lauter und leiser gemacht. Mittlerweile skippt er selber zu seinen Lieblingsliedern. Mittlerweile ist das ja in der DEV per default auch so und es lässt sich auch umschalten.

Das finde ich zwar minimal besser, aber trotzdem zu umständlich und fehleranfällig. Eine gute UI (ob jetzt in Software oder Hardware) sollte möglichst selbsterklärend und fehlerresistent sein. Einen Drehregler versteht schon ein Kleinkind auf Anhieb und dass ein Knopf eine bestimmte Aktion ausführt auch. Ein bestimmtes Timing beim Drücken eines Knopfes anzuwenden, finde ich nicht so geschickt. Das würde ja selbst bei einem Erwachsenen immer mal wieder zu unbeabsichtigten Aktionen führen, weil man versehentlich zu lange oder zu kurz auf einem Knopf geblieben ist.

Aber das schöne an Bastelprojekten ist ja, dass es jeder so machen kann, wie er es für richtig hält. :slight_smile:
Vielleicht könnte man trotzdem die verschiedenen Varianten im Hauptcode unterbringen und dem Anwender die Möglichkeit geben, das selbst ganz einfach mit einem Wert einzustellen (3 Knöpfe Standard, 3 Knöpfe Invers, 5 Knöpfe, 3 Knöpfe und Drehregler-Poti). Es sind ja letztlich keine echten Insellösungen, sondern verschiedene Standardfälle, die hier laut diverser Threads und Kommentare sehr verbreitet sind.

Mit der richtigen library ist das eigentlich kein Problem. Man drückt kurz oder man hält eben gerückt bis was anderes passiert. Ein genaues Timing (sprich im richtigen Moment loslassen und solche Späße) ist nicht einzuhalten. Das funktioniert ein bisschen anders bei der verwendeten AceButton als bei der in der DEV verwendeten JC_Button. Aber ja du hast recht, jedem das seine. :slight_smile:

Hi @Tontechniker,

hast du einen linearen oder logarithmischen Poti genommen? Hab gelesen, dass für Audio logarithmisch besser sein soll…

Das stimmt! Lautstärke wird auf einer logarithmischen Skala gemessen, daher ist ein logarithmischer Poti auf jeden Fall die bessere Wahl. Linear würde natürlich auch funktionieren, aber für das menschliche Ohr nicht gleichmäßig skalieren.

Ich hatte mich einer Software-Lösung beholfen, weil ich genau in den gleichen von dir beschriebenen Zustand gelaufen bin (90% der Drehung verloren).
Mit der Software-Variante kann ich das jetzt absolut genau steuern. Zudem überlege ich derzeit die Software zu erweitern, dass die Initiallautstärke nicht der Poti-Stellung entspricht (im Zweifel halt maximale Lautstärke), sondern eine gemächliche 15 als Initial-Lautstärke und dann erst durch Potidrehung anpassen.

Das Loch vorne ist der Zugang zur MicroSD-Karte. Da kommt man nur mit einer Feinmechaniker-Zange ran. Sodass mein Sohn sie nicht rausnehmen, ich aber im Zweifel rankommen kann :wink:

Ich habe noch keinen GitHub/Gitlab Account. Ich versuche aber mal die Tage meine Software auf Vordermann zu bringen (ich will noch einen Shortcut auf Play legen, der die zuletzt gespielte Karte ohne Karte abspielt) und würde meine Software dann hier teilen.

Einfach einen niederohmigeren Poti nehmen. Problem gelöst. :wink:
Die Idee mit immer mit 15 zu beginnen, verstehe ich allerdings nicht. Wenn der Poti nicht ebenfalls in der Mitte steht, funktioniert das ja nicht gescheit. Steht er auf Maximum, dann kannst du nur 0-15 einstellen. Für die Umsetzung Deiner Idee bräuchtest Du eher einen Impulsgeber statt eines Potis, den man dann eben beliebig durchdrehen kann.

Nette Idee! Ich plane ja einen relativ einfach wiederverschließbaren Deckel, den ich mit 2 oder 4 Schrauben öffnen kann (sollte ja hoffentlich nicht allzu oft vorkommen).

Prima, danke! Versuche bitte, alles in so wenigen zusätzlichen Blöcken wie möglich zu machen, damit man den Hauptcode bei Updates möglichst wenig anfassen muss und es auch bei Änderungen im Hauptcode noch funktioniert.

hast du einen Link zu einem log. Poti mit 100ohm. Bei Reichelt finde ich irgendwie keinen…

Mein jetziger 100Ohm Poti ist aus einem alten, zusammengesammelten Fundus meines Schwiegervaters. Auf den kann ich leider nicht verlinken. :wink:
Ich habe jetzt auf die schnelle auch keinen logarithmischen gefunden, aber dazu zwei Sachen:

  1. Such mal nach Drahtpotentiometer, damit Du schon mal bei den kleinen Ohm-Größen bist und dann vielleicht leichter einen logarithmischen findest.
  2. Die logarithmischen sind wesentlich umständlicher in der Herstellung als die linearen. Wahrscheinlich ist die Auswahl da deshalb geringer und sie sind entsprechend deutlich teurer. Ich habe im Vergleich zwischen lin. und log. zwar einen Unterschied ausmachen können, aber letzlich ist auch ein linearer echt vollkommen in Ordnung. Ich habe nur einen einzigen log. bekommen, aber zusätzlich mehrere lineare. Für eine zweite Box würde ich guten Gewissens einen von den linearen 100 Ohm Potis nehmen. Mach Dir da also keinen großen Kopf.
    Sowas hier sollte passen:
    https://de.aliexpress.com/item/Freies-Verschiffen-RV24YN20S-B201-200-ohm-Potentiometer/32988578032.html
    200 Ohm hat im leisen Bereich etwas mehr Spiel als ein 100 Ohm, dafür geht es noch einen Ticken leiser. Ist aber alles nicht so relevant. Hauptsache die Bauform passt für Dich und nimmst/hast einen passenden Drehknauf.