Puzzle mit Soundausgabe

Hallo zusammen,

ich lese schon seit einiger Zeit mit, möchte euch jedoch jetzt an meinem Projekt teilhaben lassen (auch in der Hoffnung ein paar Tipps zu bekommen).

Ich habe mir vielleicht ein etwas ambitioniertes Projekt als Newbie ausgedacht, hoffe jedoch trotzdem, dass es umsetzbar ist.
Ich möchte für meinen Sohn ein Holzpuzzle mit 4 Tieren mit den dazugehörigen Tiergeräuschen ausstatten.
Dazu sollen die 4 Puzzleteile jeweis ein RFID Tag bekommen, welches, sofern auf dem passenden Sensor platziert, da zugehörige Geräusch wiedergeben lässt.

Für die Umsetzung habe ich:

  • Arduino Nano
  • 4 Stück RFID-Reader RC522
  • DFPlayer
  • Lautsprecher <3W
  • RFID-Tags als Aufkleber

Leider bin ich im Coden noch nicht so fit. Ich habe versucht, mich an bestehenden Projekten zu orientieren, habe dort aber das Problem, dass bei der Verwendung von mehreren Readern in einem Projekt, diese meist hintereinander geschaltet sind, um beipielsweise ein Schloss mit 2 Schlüsseln zu gestalten.
Das macht den zugehörigen Code für mich schenll recht kompliziert :frowning:

Im Endeffekt möchte ich jedem Reader ein einzelnes Tag zuordnen, dass sofern gelesen die Soundausgabe des DFPLayer mit zugehörigem Track startet.
Falls mich jemand mit passendem Code (oder Ausschnitten) unterstützen möchte oder Links zu ähnlichen Projekten hat, würde ich mich sehr freuen.
Ebenfalls freue ich mich über Hinweise zu sonstigen (Denk-)Fehlern :smiley:

Viele Grüße
Fabian

citee:
Ebenfalls freue ich mich über Hinweise zu sonstigen (Denk-)Fehlern :smiley:

Tach!

Mach nicht den zweiten Schritt vor dem ersten.
Mach es stufenweise.
Kopiere nicht ohne zu wissen, was Du kopierst.
Manchmal hilft auch try & error etwas zu lernen.

Such Dir einen Beispielcode, mit dem Du einen Reader mit einem Tag bedienen kannst.
Las den DFP einen Sound abspielen.
Eher nicht dauerhaft, sondern nur einmal.

Wenn das durch ist und fehlerfrei funktioniert, dann kannst Du daran gehen, diesen einen Reader mit 4 Tags zu bedienen.

Dazu nutze die random()-Funktion, um einen bestimmten Tag dem Reader zuzuweisen.
Dann passe die Ausgabe des DFP an den zugewiesenen Tag an.

Wenn das geht, kannst Du mit 2 Readern arbeiten und jedem wieder per Zufall einen Tag zuweisen.
Dann geht das auch für vier Stück recht schnell.

zum programmieren:
viele serielle Ausgaben rein mit denen Du den Inhalt Deiner Variablen nachverfolgen kannst.
Lege Dir so oft wie möglich Funktionen an, die genau für eine Aufgabe zuständig sind.

BUSY des Players würde ich noch mit einem digitalen Eingang verbinden, um das MP3-Ende abfragen zu können. Die Bibliotheksfunktionen können zu Störungen führen.

Anleitung zum RFID Kit mit Arduino, wobei ich return in loop ungeschickt finde. Wenn Du in RFID Sketch 3 die Kartennummer durch eine Titelnummer ersetzt, bist Du Deinem Ziel schon näher gekommen.

Hast Du schon mal ausprobiert, wie die Empfänger gegeneinander abgeschirmt werden müssen, damit sie nur das direkt aufgelegte Tag erkennt?

Wow, schon mal vielen herzlichen Dank für die Zahlreichen konstruktiven Tipps!!!
Ich glaube die Problematik mit den abgeschirmten Empfängern kann ich umgehen, wenn ich jeden Leser nur auf einen bestimmten Code reagieren lasse (Schloss/Schlüssel-Prinzip). Das ist zumindest die Idee.
Die Tipps zum Code werde ich mir morgen näher ansehen.

Es hilft nichts wenn der Empfänger auch auf einen Tag auf einem Nachbarfeld reagiert. Es dürfte überhaupt Probleme geben, wenn mehrere Tags im Empfangsbereich liegen.

citee:
(Schloss/Schlüssel-Prinzip). Das ist zumindest die Idee.

Nenee!
DrDiettrich ist in der Spur: wenn die Reader zu dicht beieinander liegen, musst Du unterscheiden, ob der Tag auf ReaderA oder ReaderB liegt.
Kannst Du das?

Das hatte ich auch als Gedankengang, wollte aber erst mal hören, wie weit Du bist und was Du hast.
Es gilt nämlich auch noch den "Probiermodus" auszuschliessen.
Also die Tag's einfach über die Reader ziehen, solange bis es passt...

Ich war selbst mal Kind :wink:

Und ja, das geht.

Habs mal Probiert. Ein RFID Leser kann 2 Tags übereinander lesen.

Wir haben hier aber 2 Leser mit 2 Tags.
Die Leser sind nicht passive Teile sondern senden ein Hochfrequenzsignal mit dem sie den Tag mit Energie versorgen.

Das kann Interferenzen geben.

Grüße Uwe

uwefed:
Das kann Interferenzen geben.

Ich würds behandeln wie mit den SR04-Sensoren.
Zwischen dem Zuschalten der CS - also der Abfrage der Sensoren - einfach kurz warten.

Wie können die Tags unterscheiden, welches reagieren soll?

Aber solche Fragen können ja mit zwei Lesern und zwei Tags direkt beantwortet werden. Vorausgesetzt man hat verstanden, was wann schief gehen könnte.