Box stoppt Wiedergabe wenn Karte weg.

Hallo liebe Community,

die Frage gabs bestimmt schon , nur ich finde sie nicht.

Warum hat man das nicht so realisiert das die Box aufhört zu spielen sobald die Karte weggenommen wird?

Schönes Rest WE
Ein neuer begeisterter Tonuino Bauer

1 „Gefällt mir“

Ich habe die Frage mal in die Software-FAQ aufgenommen, da es jetzt öfter gefragt wurde.

Ich habe SW-Änderungen für mich gemacht, vielleicht kann es der eine oder andere auch Nutzen:

  1. Weitere Funktion im Admin Menü: Kartenverhalten. Es kann ein/ausgeschaltet werden, ob beim Wegnehmen der Karte die Musik gestoppt wird, und erst wieder fortgesetzt wird, wenn die Karte wieder aufgelegt wird, wie schon paarmal hier im Forum gefragt.
    Hierzu habe ich die Entwicklung von https://github.com/hvdh2/TonUINO übernommen und in den neuesten DEV branch von Thorsten (19.04.2019) gemerged.
  2. Ich habe den Hörspielmodus erweitert (naja, etwas getrickst trifft es eher). Es wird ein zufälliger Track gespielt danach gestoppt. Durch drücken der Play Taste kann ein weiterer zufälliger Track gespielt werden.
    Hintergrund:
    Ich habe für meinen Sohn Tierstimmen in einen Ordner Kopiert. Nach dem abspielen raten wir was für ein Tier es war und können dann noch eine weitere Tierstimme durch drücken der Play Taste uns anhören.

Ich habe leider keinen Google Account, somit konnte ich keine google/apple Voice mp3 Files erstellen (Datei 913, 937-939).
Meine Test-Mp3 Files habe ich auch „reingequetscht“ wo noch Platz (937-939) war - ich wollte nicht den 1000er Block aufmachen :wink:

Das Sketch und die Änderungen sind auf Github zu finden:

5 „Gefällt mir“

@mcgreg: Könntest du für den Cardaway-Teil bitte ein pullrequest senden. Diese Funktion ist schon angefragt worden und es wäre schön, wenn Thorsten dies integriert.

Ok, Ich mache mal eine “isolierte” Version, die nur den CardAway-Teil beinhaltet und sende einen Pullrequest.

1 „Gefällt mir“

Vielen Dank für den Rullrequest! Ich werde es einbauen sobald die aktuelle DEV freigeben ist. Ich muss eigentlich nur noch zwei Soundfiles (aktiviert / deaktiviert) finden die ich von der Lizenz her einbinden kann - dann wäre sie fertig.

2 „Gefällt mir“

Vermutlich ein alter Hut und etwas OT, aber auf https://www.freesound.org gibt’s freie Soundsamples. Mit etwas Suchen findet man auch immer mal Perlen dazwischen…

In meinen Augen ist das immer so ein bisschen die “Pest” bei opensource-Projekten. Es werden viele Forks erstellt und jede löst eine andere Anforderung - ein Einbinden in die Quelle geschieht meistens jedoch selten und somit kommen die Projekte langsamer voran oder werden unübersichtlich.

Vielen Dank, für den PullRequest und an Thorsten und alle Forenmitglieder für den Einsatz bei diesem Projekt

Bei Forks die nur des forkens willen erstellt werden und weder weiterentwickelt (in welche Richtung auch immer) oder - falls es sich eben nur um einen Feature Fork handelt - zumindest mit dem upstream Repo in sync gehalten werden gebe ich dir ein stück weit Recht. Da hätte es vielleicht ein lokaler clone auch getan. Sie tun aber auch keinem wirklich weh. Auf der anderen Seite kann vielleicht irgend jemand da draußen ja trotzdem was damit anfangen. Davon ab, nutzt die überwältigende Mehrheit sicherlich einfach die original Software und ist damit auch glücklich.

Naja, dafür muss die Änderung dem original Author aber halt auch in den Kram passen (unabhängig von dem Feature in dem Thread hier (über welches man übrigens durchaus auch geteilter Meinung sein kann)). Vielleicht ist das einfach mal nicht der Fall. Das is doch dann auch okay, dafür isses ja opensource und jeder kann selber werkeln wie er möchte. Von daher is doch alles gut. :slightly_smiling_face:

Hallo,

Ich habe ja die aktuelle DEV Version geändert sodass beim wegnehmen der Karte die Musikwiedergabe stoppt und beim wiederauflegen fortgesetzt wird. Das funktioniert prima mit “normalen” Karten. Sobald ich eine Modifikationskarte auflege wird diese auch erkannt und die Modifikation auch durchgeführt, aber danach ist Schluss. Sprich die Funktion mfrc522.PICC_IsNewCardPresent() liefert ab dem Moment immer nur noch false. Der Unterschied von meiner zu der Orginalversion ist, dass im orginal eine do while Schleife mit der Bedingung

do

{…} while (!mfrc522.PICC_IsNewCardPresent()); durchlaufen wird.

Bei meiner Version wird mfrc522.PICC_IsNewCardPresent()); jede 100ms abgefragt. Irgendwelche Ideen warum/wie die Modifikationskarten diese Funktion beeinflussen?

Orginal:

void loop() {

do

{…} while (!mfrc522.PICC_IsNewCardPresent());

Modifizierte Version:

void loop() {

handleCardReader()

}

Habe auch diese handleCardReader() Version am laufen, nicht mit der DEV 2.1 aber auch mit einer Art Modifier Karten. Dafür habe ich aber auch ein wenig am handleCardReader rum gemacht.
Ich habe das “Recht auf Vergessen” von Karten UIDs eingebaut für bestimmte Funktionen.
Das sollte hier aber nicht das Problem sein.

Was ich mir vorstellen könnte ist -> eine Musikkarte startet mit den Einstellungen auf der Karte.
Jetzt kommt der Modifier, der überschreibt mit seinen Settings auf der Karte alles, was ja auch zu klappen scheint. Aber darin sind ja keine Musik Informationen.
Wenn jetzt eine Musikkarte kommt Startet diese wieder, aber der Modifier wird gelöscht, da auf der Musikkarte nicht vorhanden.

Eventuell müssen diese Informationen in handleCardReader() ->onNewCard() herausgepickt werden und in Variablen gepackt werden, damit sie erhalten bleiben.

Das wären Punkte die ich mal überprüfen würde, um vielleicht das Problem einzugrenzen.

Vielen Dank für deine Tipps. Aber das Problem tritt ja schon früher auf, da ich gar nicht überprüfen kann, ob eine Karte aufgelegt/entfernt wurde, da mfrc522.PICC_IsNewCardPresent() nach dem auflegen der modifier Karte nur noch false zurückgibt. Somit denkt der Handlecardreader es gibt keine Änderungen.

Das heist du hängst am Anfang von pollCard() fest
das ist echt schwer ohne Code bei eigenen Modifikationen zu helfen Sorry

Das verstehe ich. Dann konkreter gefragt, hatte jemand schon das Problem, dass mfrc522.PICC_IsNewCardPresent() immer false zurückgibt, obwohl neue Karten aufgelegt wurden?

Ich hatte endlich Zeit mich dem Problem zu widmen. In der ReadCard() Funktion werden die modifier gesetzt/zurückgesetzt. Wenn ich hier die Aufrufe PICC_HaltA() und PCD_StopCrypto() einfüge, funktionieren auch die modifier Karten.

1 „Gefällt mir“

Ich hab mir gestern das Skript, aus Deinem Github Repositiroy installiert. Ist das richtig, dass dies im Prinzip der letzte Stand der offiziellen Def ist, plus zwei Anpassungen Pause when card away und erweiterte Hörbuchmodus?

Das Skript und Stop when card away funktioniert bei mir soweit. Sehr cool finde ich, dass das erneute dranhalten der selben Karte den Titel da fortsetzt, wo er pausiert wurde.

Modifer habe ich noch nicht ausprobiert und auch die zwei Anpassungen dazu nicht nachgezogen.

Genau so ist es, es ist der letzte Stand der offiziellen DEV.

Ich habe zwei DEV branches, der eine (DEV) sollte so ziemlich nur die Änderungen haben die beim wegnehmen der Karte die Wiedergabe stoppt. Aktuell sollte es auch mit Modifier-Karten gehen.

Im Mcgreg-Mod ist eher meine Spielwiese. So habe ich da z.b. das Farbenmemory versuchsweise als Modifier Karte Implementiert, oder die Lautstärkenregelung über Potentiometer.

@mcgreg Darf ich Dich Fragen, ob Du beim aufspielen der angepassten Version auf den Tonuino irgendetwas besonderes gemacht hast, außer den Sketch auf den Arduino hochzuladen? Ich hatte gesehen, dass du auf Github eine aktualisierte Version eingestellt hast und wollte diese bei mir nachziehen. Mein tonuino hatte sich nämlich aufgehängt als ich mit der alten Version eine modifier Karte benutzt habe. Das Aufspielen hatte aber nicht den gewünschten Erfolg und beim Wegnehmen der Karte Stoppt die Musik leider nicht mehr. Vielleicht sehe ich etwas ganz grundlegendes?

Wenn du die aktuellste Version genommen hast, sollte es eigentlich gehen.
Wiedergabe stoppen wenn Karte entfernt wird, kann über das Admin Menü Ein/Ausgeschaltet werden.
Falls du einen Reset gemacht hast, werden initiale Einstellungen geladen, da stoppt die Wiedergabe nicht, wenn Karte weggenommen wird (das ändere ich gleich :wink:).
Lade dir (falls nicht schon geschehen) aus meinem Github die Dateien:

0913_stopWhenCardAway.mp3
0937_stopWhenCardAway_intro.mp3
0938_no.mp3
0939_yes.mp3

und kopiere sie ins mp3 Verzeichnis. Danach kannst du im Admin Menü, als letzte (13te) Option das Kartenverhalten festlegen: “Soll die Wiedergabe pausiert werden, wenn Karte entfernt wird?”, hier natürlich “Ja” wählen.