Qr Code Scanner

Hey,
Also ich bin ziemlich neu in der Thematik Arduino. Ich stelle mir die Frage ob und wie es möglich ist über den Arduino qr codes zu scannen und je nach Code soll eine bestimmte Aktion ausgeführt werden. Mein Projekt ist ein Glücksrad und bei dem Hauptgewinn bzw. bei einer Niete soll ein bestimmter Ton abgespielt werden. Wie mache ich das am besten?

Mit einem Händy.

Warum muss es ein QR-Code sein?

Allerdings ist ein linearer Code auf einem immer langsamer drehenden Rad auch nicht einfach zu dekodieren.
Einfacher ist eine optische Erkennung, die nur zählt, wie viele Felder weit sich das Rad gedreht hat. ( Mit oder ohne eine Synchronisation auf ganze Runden. )

Rechteck-Töne mit einem Piezo gehen relativ einfach, für mehr bietet sich ein Soundmodul an.

Gar nicht. Du nimmst einen der billigen optischen Drehencoder mit Index.

Arduino alleine gar nicht.
Um einen QR Code zu lesen brauchst Du einen QR code Leser der den gelesenen Text serial ausgibt.

Grüße Uwe

Okey hast du da ein Beispiel oder ein Video in dem ich mir das angucken könnte

Leider nein.
Beispiele suchen ist nett, wenn man was sehen will an das man gar nicht gedacht hat.

Meine Anregung, bei der ich mich wundere, dass du das als "Lösung" markiert hast, war ja eher "Vergiss QR. Wenn du es optisch machen willst, mach einfache Markierungen auf die Scheibe"

Also den QR-Code auf die Rückseite der Drehscheibe als Erkennungsmerkmal, auf welchem Feld das Glücksrad zum Stehen kommt, halte ich nicht für zielführend:

  • Drehscheibe hat zwischen 2 Stiften einen Bereich, innerhalb dessen sie sich frei bewegen kann, d.h. der QR-Code kann ein bisschen links oder rechts des Erfassungsbereichs des Lesers sein.
  • wenn das Rad langsam dreht, wird jeder Code gescannt, der am Leser vorbeigleitet.

Ich habe so etwas auch bereits einmal realisiert: Drehscheibe eines Glücksrads löst für jedes gestoppte Feld eine eigene Aktion am Arduino aus.
Mein Ansatz: eine Scheibe mit Gray- oder BCD-Code wird auf der Rückseite der Drehscheibe montiert und von 3-4 (je nach benötigter Feldanzahl) IR-Reflexions-Sensoren gescannt. Vorteil: der gesamte Bereich eines Glücksrad-Kuchenstücks wird damit abgedeckt und erkannt. Findet innerhalb eines definierten Zeitraums keine Änderung an den Sensoren statt, so kann man die Scheibe als gestoppt betrachten und wertet den Code des Felds aus.. :innocent:


Hier die Drehscheibe ohne Klapperstifte und mit LED zur Anzeige, welches Feld gestoppt wurde. Zusätzlich wird eine MP3-Datei abgespielt..

Gray Code ist natürlich schön. (schick das mal als Beispiel an @leonidas2104 :slight_smile: )
Aber wenn das Rad um > 360° gedreht wird braucht man nur eine Markierung pro Umdrehung und eine pro Feld (die dann gezählt wird) damit man weiß, wo das Rad gestoppt hat.

Hast du da vielleicht ein Auszug von dem Code und dem Aufbau ich kann mir darunter nicht wirklich was vorstellen

Freut mich, daß ich Interesse wecken konnte :slight_smile:

Also den Aufbau kann man sich so vorstellen:

  • auf der Rückseite der Drehscheibe hat man folgendes Motiv:

  • die schwarzen und weißen Felder werden an den gelben Punkten mit 3 reflektierenden IR Lichtschranken erfasst. Schwarze Flächen werden als "1" gewertet, weiße als "0" (oder umgekehrt, je nach Sensorlogik). So ergibt sich pro Umdrehung eine binäre Codierung von 000 bis 111 und deckt damit eine Feldanzahl bis 8 (0 - 7) ab.

  • Mehr Felder benötigen mehr Sensoren (z.B. 4 Sensoren für bis zu 16 Felder: 0000 bis 1111) und mehr Ringe in der Grafik.

  • Nun misst man die Zeitabstände, innerhalb deren die Feld-Codierung sich ändert und ordnet ihnen einen Status zu (z.B. "kurze Zeit zwischen Wechsel" => Glücksrad dreht sich, "lange Zeit" => Glücksrad wird langsamer, "kein Wechsel innerhalb 1 Sekunde" => Glücksrad steht)

  • ein Code-Beispiel müsste ich mir aus meinem Projekt erstmal wieder finden und herauslösen. Mach ich aber bestimmt noch in den kommenden Tagen. Aber mit der Beschreibung sollte das Prinzip doch hoffentlich schon mal verständlich sein, oder? :wink:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.