mikrocontroller.net

Forum: Projekte & Code LED-Gesellschaftspiel "Light Touch"


Autor: Falk B. (falk)
Datum:
Angehängte Dateien:

Bewertung
3 lesenswert
nicht lesenswert
Hallo liebe Gemeinde,

ich hab mal das Spiel nachgebaut, das es hier in einem kurzen Video zu 
sehen gibt.

Beitrag "Kennt jemand dieses Spiel?"

Spielbeschreibung

Es besteht auf 8 sternförmig angeordneten Lichtdomen mit ohmschen 
Kontakten (Drahtbügel). Acht Leute stehen im Kreis um den Aufbau herum, 
jedem ist ein Lichtdom zugeordnet. Nach dem Einschalten läuft erstmal 
ein Farbkreis, der bei Berührung von 2 Domen in eine Ampel wechselt. 
Mittels der Verbindung von Weiß zu einer der drei Farben wird der 
Schwierigkeitsgrad gewählt (rot=schwer, gelb=mittel, grün=leicht). Dann 
geht es los. Es erscheinen zufällige Muster mit zufälliger Farbe in 
einem zufälligen Winkel angeordnet. Mit fortschreitender Spieldauer 
werden es komplexere Muster. Dabei ist es das Ziel, daß die Leute, deren 
Lichtdom aufleuchtet sich die Hände geben müssen, sprich mit einer Hand 
den Dom und mit der andern Hand den Mitspieler berühren müssen, um einen 
ohmschen Kontakt herzustellen. Das einfachste Muster sind 2 
gegenüberliegende Dome. Komplexere Muster bestehen aus 3 oder mehr 
Domen, einige haben sogar mehrere Farben. Dort müssen die einzelnen 
Farbgruppen getrennten Kontakt herstellen, d.h. es darf keinen 
"Kurzschluß" der Farben geben. Gelingt es nicht innerhalb einer gewissen 
Zeit von ein paar Sekunden die richtigen Kontakte herzustellen, ist das 
Spiel verloren.

Hardware

Herzstück der Elektronik ist ein ATmega328. Dieser steuert acht 
intelligente LEDs vom Typ WS2812B direkt über 8 IOs an. Die Verbindungen 
der ohmschen Kontakte werden über die acht AD-Wandler Eingänge mittels 
Matrixscan ermittelt. Die passiven Eingänge sind dabei hochohmig (1MOhm) 
auf VCC/2 gelegt. Diese Methode ist außerordentlich empfindlich und 
robust, um den Haut-und Körperwiderstand zu messen. ESD-Schutzdioden an 
jedem Eingang sollen das Schlimmste verhindern, wenn das Spiel in sehr 
trockener Umgebung verwendet wird. Die Stromversorgung erfolgt mit 5V 
über USB bzw. eine Powerbank. Die maximale Stromaufnahme wird in erster 
Linie durch die LEDs bestimmt und liegt bei ca. 480mA. Real sind es im 
Spiel ca. 100 mA, denn es leuchten selten alle LEDs gleichzeitig.

Software

Die Software enthält eine Statemachine, welche den Spielablauf 
steuert. Eine ganze Masse an Hilfsfunktionen zum Auslesen und Auswerten 
der Kontaktmatrix sowie zur Erzeugung der LED-Muster stehen bereit. 
Weitere Funktionen waren in der Testphase von Nöten, um 
Zwischenergebnisse mittel Soft-UART auszugeben. Die Farben und 
Verbindungsmuster liegen als Arrays im Flash, ebenso der Spielplan der 
einzelnen Schwierigkeitsgrade. Dort kann man pro Level vorgeben, aus 
welchem Bereich die Muster ausgewählt werden sollen und wieviel Zeit pro 
Level zur Verfügung steht. Einige Powerbanks brauchen einen 
Mindeststrom, damit sie ihren Ausgang nicht abschalten. Dieser wird hier 
nur pulsartig mittels MOSFET und 2 Widerständen erzeugt (200mA, 100ms 
Pulsbreite, 5s Periodendauer), damit sinkt der mittlere Strom deutlich. 
Damit der Pseudo-Zufallsgenerator "zufälliger" arbeitet, läuft dieser 
immer mit 100Hz im Hintergrund. Damit werden bei jedem Einschalten immer 
andere Muster und Farben erzeugt, da es praktisch unmöglich ist, auf 
10ms genau ein neues Spiel zu starten. Über PB7 können per Soft-UART 
Debugdaten ausgegeben werden, welche mittels passendem Adapterkabel ala 
FTDI am PC empfangen werden können.

Mechanik

Die Lichtdome bestehen aus 12cm Glasschüsseln, die gibt es sehr 
preiswert für ca. 1 Euro auf Ebay. Diese wurden innen mit einer 
speziellen Farbe besprüht, welche einen Milchglaseffekt erzeugt.

Dupli Color 263231

https://www.amazon.de/Dupli-Color-263231-Dupli-Color-Milchglas-Effekt/dp/B007TWNQYY

Dadurch wird das Licht gleichmäßiger, man sieht die LED und das Kabel 
nicht. Beim Sprühen wurde 5 mal eine sehr dünne Schicht aufgetragen und 
zwischendurch ca. 30min gewartet, damit diese trocknet. Wenn möglich 
sollte man besser gleich Glas- oder Kunststoffschüsseln mit Milchglas 
kaufen, das spart die Lackierung. Die Kontakte bestehen aus 1mm 
versilbertem Blankdraht, welcher als Kreuz auf die Schüssel geklemmt und 
in der Mitte verlötet wurde. Der Boden besteht aus einer 2mm 
Hartpapierplatte, die mittels Stichsäge kreisförmig ausgesägt wurde. 
Dabei ist auf eine Passung mit minimalem Spiel zu achten, damit klemmt 
sie die Drahtbügel gleich fest. Die LEDs sind an 6pol Flachbandkabel 
direkt angelötet. Achtung! Beim Zerschneiden der LED-Streifen darauf 
achten, daß die Lötkontakte an der EINGANGsseite stehen bleiben! Die LED 
wird mittig auf die Grundplatte geklebt und das Kabel mittels Epoxidharz 
verklebt. Vor dem Schließen der Grundplatte wird das Sensorkabel innen 
an den Drahtbügel angelötet. Zum Schluß verleihen je drei Gummifüße den 
Domen Halt auf einer Tischplatte.

Hinweise

Der Untergrund, auf dem die Spieler stehen, sollte sehr gut isolieren, 
denn sonst kommt es je nach Schuhwerk und dessen Leitfähigkeit zu 
Fehlmessungen bei der Prüfung der Kontaktmatrix. Ein trockener Holz-, 
Stein- oder Kunststofffußboden ist angeraten. Eine feuchte Wiese, 
Erdboden oder gar Schlamm (Festivals, Camping) sind ungeeignet. Ebenso 
dürfen sich nebeneinander stehende Spieler nicht anderweitig berühren, 
das verursacht auch Fehlmessungen.

Die aktuelle Firmware ist mit ~4,5kB relativ klein, sodaß auch ein 
ATmega8 oder ATmega88 nutzbar ist. Die .elf Datei enthält auch schon 
alle Einstellungen der Fuses. Bei der Verwendung der .hex Datei muss die 
DIV_8 Fuse deaktiviert werden (Haken entfernen == auf 1 setzen).

Den Boden der Lichtdome kann man ggf. aus weißem Material herstellen 
oder weiß lakieren, das sieht ggf. besser aus als weißes Milchglas mit 
schwarzem Boden.

Viel Spaß beim Nachbauen und natürlich besonders beim Spielen

Autor: Frank M. (ukw) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehr schöne Umsetzung! Das werde ich auf jeden Fall nachbauen, danke!

Hast Du von der Hauptplatine vielleicht mehrere herstellen lassen und 
hast noch eine übrig? ;-)

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank M. schrieb:
> Sehr schöne Umsetzung! Das werde ich auf jeden Fall nachbauen, danke!
>
> Hast Du von der Hauptplatine vielleicht mehrere herstellen lassen und
> hast noch eine übrig? ;-)

Jain, ich hab zwar noch ne 2. Platine, die ist auch schon bestückt und 
getestet, aber ebenso auch verplant.

Autor: Falk B. (falk)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm, da hat sich wohl beim letzten Aufräumen und hübsch machen ein 
Fehler in die Software eingeschlichen. Schöner Mist! Dabei wurden keine 
Kombinationen mit mehr als 1 Farbe erkannt! Im Anhang das korrigierte 
Projekt.

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
To whom it may concern

Ich hab mal 10 Platinen in China bestellt, die sollten so in 2 Wochen da 
sein. Wer welche haben will, bitte melden. Die Rohplatine gibt es bei 
mir für 2,50 Euro incl. Versand im Brief, vollbestückt und programmiert 
für 10 Euro incl. Versand.

Autor: Frank M. (ukw) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super, ich nehme direkt zwei. Beide gerne in vollbestückt.

Beitrag #5686369 wurde von einem Moderator gelöscht.
Autor: Hans H. (loetkolben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nehme auch gerne zwei unbestückte, PN ist unterwegs.

Autor: Falk B. (falk)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab die Hardware noch mal überarbeitet und dabei die Platine von 70 
auf 64mm Durchmesser geschrumpft. Außerdem gibt es jetzt eine stehende 
Micro-USB-Buchse, damit ist nichts mehr auf der Rückseite bestückt.

Es sind noch 5 Platinen verfügbar, der freundliche Chinese hat 2 mehr 
eingepackt.

Autor: Hans H. (loetkolben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leiterplatten kamen gestern gut verpackt an.

Vielen Dank dafür.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.