Forum: Mikrocontroller und Digitale Elektronik Digitalisierung eines Spielbrettes


von Marco D. (marco_d)


Lesenswert?

Hallo zusammen!

Ich denke der Höflichkeit halber wäre es interessant mich beim ersten 
posting vorzustellen.

Ich heiße Marco, bin 23 Jahre alt und Elektroniker für Betriebstechnik 
von Beruf.
Elektrisch habe ich eigentlich nur mit Schaltschränken und Maschinenbau 
zu tun gehabt. Wenig bis gar nicht mit Elektronik und Assambler und 
sowas.

Nun zu meinem Projekt:

Ich bin seit einigen Jahren Go-Spieler. Wen das genaue Spiel 
interessiert kann sich auf www.dgob.de erkundigen.
Im wesentlichen ist es ein Holzbrett mit 19x19 sich kreuzenden Linien.
Jeder Spieler setzt abweschselnd einen gleichwertigen Stein auf einen 
der Schnittpunkte.

Mein Ziel ist es ein Holzbrett so umzubauen das jeder Zug auf einem 
angeschlossenen Computer aufgezeichnet werden kann.
Dafür gibt es bereits ein Java-Programm das Spiele visuell aufzeichnet 
und oder im Internet überträgt.

Ich gehe die ganze Sache immer noch wie ein Maschinenbauer an und ich 
denke ich kann neue Denkanstöße gut gebrauchen.
Meinen Vorstellungen nach reicht es jeden einzelnen Schnittpunkt 1x zu 
überwachen da - egal welche Farbe gesetzt wird - immer abwechselnd 
gesetzt werden muss und immer Schwarz beginnt.
Das sollte ja dann programmtechnisch realisierbar sein.

Meine To-Do-Liste:
Eine Hardware-technische Lösung ausarbeiten
Das Brett mit einem Computer verbinden
Eine Programmschnittstelle erstellen die die Signale vom Brett verstehen 
kann und an das bereits bestehende Java-Programm überträgt.




Wenn also irgendwer ne Idee hat wie man das realisieren kann und was ich 
dazu lernen muss dann bitte her damit.
Mir ist bewusst das das einige vermutlich einige hundert Stunden 
erfordert aber wenn man sich sowas mal in den Kopf gesetzt hat dann 
lässt es einen nicht los ;)


Gruß

von H.Joachim S. (crazyhorse)


Lesenswert?

Woraus bestehen die Spielsteine?
Dürfen diese manipuliert sein?
Dürfen sich Löcher im Spielbrett befinden?

Das Problem ist nur die Sensorik. Der Rest ist pillepalle.

von Erich (Gast)


Lesenswert?

Mir erscheint das relativ einfach möglich, indem man die schwarzen und 
weißen Steine mit kleinen Magneten zweier unterschiedlicher 
Magnetstärken versieht.
An die Kreuzungspunkten des Spielfelds braucht man dann nur noch analoge 
Hallsensoren die das abfragen, auswerten per uC und in geeignetem 
Datenformat an einen PC via "RS232" bzw. USB weiterleiten.
Gruss

von troll (Gast)


Lesenswert?

Oder die Magneten entweder mit Nord- oder Südpol nach unten einbauen? 
Ich gehe mal davon aus es gibt Sensoren die das unterscheiden können...

von Marco D. (marco_d)


Lesenswert?

Mein Ziel ist es den größt möglichen Spielkomfort beizubehalten:

Die Steine sollten beidseitig bespielbar sein, also man sollte nicht 
schaun müssen auf welcher Seite der Magnet ist.

Löcher im Spielbrett sind nahezu ein no-go.
Ich überlege höchstens eine optische Rückmeldung vorzubehalten, das wäre 
dann die einzige Möglichkeit für Löcher im Brett (wäre dann fürs 
online-Spiel dass das Brett anzeigt wo mein gegner gesetzt hat)



Die Steine sind aus Stein Glas oder Muschelkalk.
Und vor allem sind es - keine Ahnung - 200 Steine pro Farbe... das ist 
nicht ganz einfach die alle zu bearbeiten

von troll (Gast)


Lesenswert?

Marco Demmer schrieb:
> Die Steine sollten beidseitig bespielbar sein, also man sollte nicht
> schaun müssen auf welcher Seite der Magnet ist.
Hm, da hast du Recht, daran hatte ich nicht gedacht. Ich hatte ein 
Schachspiel vor Augen wo man die "Steine" nicht verkehrt herum hinlegen 
kann... Schwierige Sache...

von Kartoffelsalat (Gast)


Lesenswert?

was macht denn das java programm? Bilderkennung? Alles andere wird 
vermutlich echt richtig schwierig, besonders ohne Löcher...
Sonst fällt mir nur noch ein, das Spielbrett mit einem Laser abzuscannen 
und die Reflektion auszuwerten.

von Andy (Gast)


Lesenswert?

Wenn ich das richtig in Erinnerung habe, werden die Go-Steine (Form = 
Smarties, nur etwas größer) immer auf die Kreuzungen der schwarzen 
Linien gesetzt. Weiterhin kann ich mich dunkel an ein Spielbett 
erinnern, wo diese Linien Rillen waren, die so das Positionieren 
erleichterten.
So könnte man dort z.B. optisch per Lichtschranke durch ein 0,5mm Loch 
im Zentrum dieser Linienkreuzung schauen.
Ich denke aber, es wäre wohl am Besten, die Belegung der Felder wie mit 
einem Touchscreen einzulesen, der wie eine Folie auf das Brett geklebt 
wird.

Als Belegung gibt es ja nur die drei Möglichkeiten Unbelegt, 
SchwarzerStein, WeisserStein.
Die Idee, die Positionierung fix abwechselnd zu machen, weil nur so 
regelkonform Steine gesetzt werden können, würde ich auch noch einmal 
überdenken: was, wenn du die Bewegung von gerade zu setzenden Steinen 
zuerst andere Punkte angesprochen werden, oder durch eine Unachtsamkeit 
das Brett angestoßen und alle Steine einmal 0,1mm nach links + wieder 
0,1mm nach rechts kippen?
Du brauchst also definitiv eine Unterscheidung der Steine und kannst 
dich nicht auf das Wechselspiel verlassen.

Andy

von Marco D. (marco_d)


Lesenswert?

Das Javaprogramm ist lediglich ein Client um Go online zu Spielen.
Ich will um es vereinfacht zu sagen lediglich den mauszeiger gegen das 
echte Spielbrett ersetzen. Also nichts mit Optischer Erkennung.

Ich hatte an einen Kapazitiven Sensor gedacht. Sie Frage ist nur ob Der 
noch erkennt wenn mindestens 5mm Holz dazwischen sind, ob ein Stein da 
liegt.

von Frank K. (fchk)


Lesenswert?

Eine Möglichkeit wäre die Verwendung von RFID-Tags wie z.B. diesen hier:

http://www.agillox.com/de/produkte/alle-produkte/produkt.php?we_objectID=46&c=8,57

Die gibts in verschiedenen Größen und Formen. Für Deine Anwendung sind 
13.56 MHz HF Tags am besten geeignet. Unter das Spielbrett kommen 
entsprechende Antennen an den möglichen Spielfeld-Positionen, deren 
Reichweite so eingestellt wird, dass nur das darüber liegende Tag 
erkannt wird, nicht aber ein benachbartes. Ein Controller muss die 
ganzen Brettpositionen nur noch periodisch abscannen, um festzustellen, 
wo welcher Stein liegt.

Jedes Tag hat eine individuelle Seriennummer sowie ggf noch etwas 
beschreibbaren Speicher. Entweder nutzt man den beschreibbaren Speicher, 
und die Farbe des Steins auszulesen, oder man hat eine Datenbank, in der 
die vorhandenen Tags mit der Spielsteinfarbe verknüpft sind.

Die Tags kannst Du irgendwie vergießen oder einfach in einen Pott 
schwarzer oder weißer Farbe tunken. Solange die Vergussmasse 
nichtleitend ist, spielt das keine Rolle.

Ich habe dieses Prinzip vor vielen Jahren mal eingesetzt - nicht um 
Go-Steine zu identifizieren, sondern Steckverbindungen.

fchk

von uC (Gast)


Lesenswert?

mhmm ohne Loch wird es schwierig.

Mal ein Ansatz:
An jedem Kreuzungspunkt ein kleines Loch (vll 2mm) und da drunter eine 
Photodiode.

Licht da  -->  kein Stein da
Licht aus -->  Stein gesetzt

da abwechselnd gesetzt wird und schwarz beginnt kann man ja durch 
"mitzählen" herausfinden, welche Farbe gesetzt wurde.

Dann könnte man die Löcher auch gleich noch für LEDs benutzen, die dir 
dann im Online spiel sagen, wo dein mitspieler den stein gesetzt hat.
Da reicht ja einfarbig, da du ja die andere Farbe setzt.

von micha (Gast)


Lesenswert?

Marco Demmer schrieb:
> Ich hatte an einen Kapazitiven Sensor gedacht. Sie Frage ist nur ob Der
> noch erkennt wenn mindestens 5mm Holz dazwischen sind, ob ein Stein da
> liegt.

Hängt vom Stein ab :-) Aber wenn es nicht sichtbar sein soll bleiben 
nicht viele Möglichkeiten, kapazitiv, magnetisch oder optisch. Die 
ersten beiden brauchen wahrscheinlich spezielle Steine.

Bei der optischen Lösung könnte man einfach LEDs nehemn, die lassen sich 
gleichzeitug als Sensor und visuelle Rückmeldung benutzen (such mal nach 
LED-Touch, gibt hier ein paar Beiträge). Eventuell funz das auch, wenn 
man die LEDs mit kuzen Lichtleitern "versteckt" anbringt, so dass auf 
dem Board keine Löcher sichtbar sind.

von pegel (Gast)


Lesenswert?

Marco Demmer schrieb:
> Ich gehe die ganze Sache immer noch wie ein Maschinenbauer an

Ist doch gut, stell unter jede der vier Ecken des Bretts eine 
Präzisionswaage. Die werden bei leerem Spielfeld auf Null gesetzt und 
dann aus den Gewichtsunterschieden an den einzelnen Waagen im Verhältnis 
zum Gesamtgewicht der Steine die Belegung errechnet.

Bitte nicht (Go)Steinigen ;)

von Fabian B. (fanick)


Lesenswert?

Bei fester Anbringung der Webcam halt ich die komplett softwareseitige 
Lösung für optimal.

Man definiert sich am PC feste Bildbereiche einer Kreuzung und dann 
wertet man die anhand der überwiegenden Farbe (schwarz oder weiß ist ja 
gut unterscheidbar) aus.

Falls man die Webcam bewegt oder das ganze flexibler in der mechanischen 
Handhabung lassen möchte müsste man sich was anderes überlegen oder die 
Software verbessern (Ecken des Spielbrettes markieren und anhand dessen 
berechnen wo eine Kreuzung liegt).
Ich habe leider keine Ahnung von dem Spiel und mich nicht informiert.

fanick

von Marco D. (marco_d)


Lesenswert?

Also die ganze optische Erkennung ist mir suspekt. Ich will das Brett ja 
mitnehmen können und überall aufbauen. Und wenn jemand jetzt denkend 
seinen kopf übers brett neigt erkennt die Kamera ganz viele schwarze 
Steine... ich weiß nicht.

Am besten gefällt mir die RFID Geschichte, da sie wohl am Fehler 
unanfälligsten ist. Aber was kosten denn 400-500 RFID Antennen mit 361 
Sensoren?

Ich habe jetzt noch was rausgesucht damit ihr euch das auch mal besser 
vorstellen könnt wie das ganze dann auschauen soll:

http://www.japanwelt.de/out/pictures/z3/go-brett-aus-hiba-03_z3.jpg
http://phorkyas.files.wordpress.com/2012/08/game_sunderstorm.jpg%3Fw%3D500

Ein Brett so wie ich es haben will ist bereits in der Entwicklung, aber 
wenn ich selbst eins habe dann kann ich alles genau so machen wie ich es 
haben möchte. Software sowie Hardware.

http://www.netgoban.com/what-is-netgoban/

und was auch noch interessant wäre, aber keine ahnung ob dsa so einfach 
machbar ist:

http://gizmodo.com/262186/electronic-roll+up-go-board?tag=gadgetsdesign

Wer eine Idee hat wie man das Letztere nachbauen kann, dafür wäre ich 
auch offen.



Jetzt hab ich grade noch ne Definition gefunden wonach die wohl 
Photodioden verwenden. Dazu sind ja wie gesagt leider Löcher notwendig.

http://senseis.xmp.net/?OpenGoban

von troll (Gast)


Lesenswert?

Ich wollte nochmal die RFID-Idee aufgreifen, da viel mir gestern abend 
noch was ein: Könnte man nicht etwas mit Schwingkreisen aufbauen die 
verstimmt werden? Also so wie diese Diebstahlsicherungen im Kaufhaus, 
unter jede mögliche Steinposition eine Spule/Schwingkreis und in jeden 
Stein eine Spule/ein Stück Metall/weißderteufel was die 
Frequenz/Phase/Amplitude verändert. Wenn die Auswertung zwei drei mal 
pro Sekunde passiert reicht das ja völlig aus.

von hp-freund (Gast)


Lesenswert?

ebay 150948836899

Wenn die schwarz/weiss Auswertung nicht unbegingt sein muss, ist die 
Hall Sensor Variante sicher die Einfachste.
Die Steine oben sind ja schon magnetisch.
Löcher im Board sind auch nicht erforderlich.

von hp-freund (Gast)


Lesenswert?

Ziehen die sich eigentlich gegenseitig an? Hm?

von Michael B. (laberkopp)


Lesenswert?

> Das Brett mit einem Computer verbinden

Also ein Microcontroller, der per USB die Daten seriell an den PC 
sendet.

Nun muß der Microcontroller nur noch merken, wo ein Stein steht.

19 x 19 Punkte, 361 Sensoren, es verbietet sich alles was teuer ist.

Wenn du mal ein Graphiktablett ansiehst, sieht du, daß im Inneren nur 
ein paar Drähte horizontal und quer verlaufen, und diese über einafche 
Elektronik angesprichen werden (Analogmultiplexer).

Beim Graphiktablett der Stift, bei dir die Steine, würden dann kleine 
Schwingkreise aus Spule und Kondensator enthalten, damit sie erkannt 
werden können. Unterschiedliche Spulen erlauben dabei problemlos die 
Erkennung unterschiedlicher Farben.

von Marco D. (marco_d)


Lesenswert?

es verbietet sich nicht alles was teuer ist, ich lass mir das Teil schon 
was kosten wenns dann auch das kann was ich will.
Aber ich habe meine zweifel das es im rahmen bleibt 500 Steine für 
jeweils schon nen Euro oder selbst wenns nur 70  cent sind umzubauen und 
am Brett noch gar nichts gemacht zu haben.
Das mit dem Analogmultiplexer muss ich mir mal anschauen, meine aller 
aller erste Idee war sone Art Tastaturmatrix, aber die erzeugt ja so 
blinde Punkte die dann nicht mehr erkannt werden.

Die Magnet-Go-Steine aus dem angebot sind übrigens nicht geeignet da 
diese Reise versionen viel zu klein sind auf einem richtigen Brett, und 
ja sie ziehen sich an.

von Hmm (Gast)


Lesenswert?

Man kann übrigens nicht zwingend davon ausgehen, das immer abwechselnd 
gesetzt wird.
Man kann nämlich passen, was vor allem im Endspiel vorkommt, wo man 
entweder nur noch in eigenes Gebiet setzen könnte, was die eigene 
Punktzahl verringert und evtl. sogar eigene lebende Gebiete "totmacht" 
oder in fremdes Gebiet (ohne das das den Gegner zwingt, was dagegen zu 
tun) was die Punktzahl des Gegners erhöht.

von Hmm (Gast)


Lesenswert?

Haben eigentlich Glas, Muschelkalk etc. eine merkliche 
Dielektrizitätskonstante? Weiss das jemand?

von Marco D. (marco_d)


Lesenswert?

Ich muss zugeben ich habe noch nicht übers Passen nachgedacht.
Ich habe mir überlegt was passiert wenn mit Vorgabe gespielt wird aber 
das sollte softwaretechnisch in dem Javaprogramm beim Erstellen der 
Aufzeichnung möglich sein.
Aber selbst wenn ich dann ne Farberkennung hätte muss ja trotzdem ein 
Signal "passen" wahrgenommen werden und nicht einfach nur die Farbe 
übergangen werden. Also ich denk da wären wir mit nem extra Taster 
besser bedient.

von GoGoGadget (Gast)


Lesenswert?

Muss es unbedingt ein Holzbrett sein?

Alternativ wäre eine "moderne" Variante aus Plexiglas mit eingefrästem 
Gitternetz möglich. Eventuell von unten mit einer dunklen Folie beklebt.
Unter jede Kreuzung kommt eine Reflexlichtschranke (IR) und ggf eine 
zweifarb-LED für eine optische Rückmeldung für Remote-Spiele.

Oder ein Holzbrett bei dem das Gitternetz aus dunkelroten 
Plexiglasstäben besteht (in die Kreuzungspunkte lässt sich auch gut eine 
Vertiefung einbringen). Somit kannst Du ebenfalls auf Bohrungen 
verzichten.

Die weißen Steine lassen sich damit sicherlich gut erkennen. Wie es bei 
den schwarzen aussieht, weiß ich nicht - sie reflektieren hat nur wenig 
Licht (außer sie haben eine spiegelglatte Oberfläche). Die Farbe lässt 
sich durch unterschiedliches Reflektionsvermögen erkennen (haben ja 
einen guten Kontrast).

von Verwirrter Anfänger (Gast)


Lesenswert?

Ich würde an jede Kreuzung eine IR LED und eine Photodiode setzen.

Die LEDs werden dann der Reihe nach gepulst, und der Rücklauf zur Diode 
gemessen.

- Kein Rücklauf (kein Unterschied zwischen LED an und aus) -> kein Stein
- wenig Rücklauf -> schwarzer Stein
- viel Rücklauf -> weißer Stein


Da meiner Erinnerung nach die Steine leicht gewölbt sind (ähnlich wie 
diese Schokolinsen), sollten die Löcher sehr gut abgedeckt werden, 
selbst wenn man die Steine unvorsichtig auflegt.

Eine andere Farbe als Schwarz (dunkelgrau?) wäre natürlich 
vorteilhafter.

von Marco D. (marco_d)


Lesenswert?

So, mal angenommen ich mach einfach mit verschiedenen Techniken 
Versuche.
Wo fang ich da am Besten an mich einzuarbeiten?
Gibts da Gute Literatur oder so kleinere Projekte nach Anleitung 
durcharbeiten?
Wo eigne ich mir das nötige Wissen an?

von Schlumpf (Gast)


Lesenswert?

Ich kenne jetzt die Vorgehensweise beim Spiel nicht.
Werden die Steine beim Zug abgehoben und wieder aufgesetzt (sieht bissle 
frickelig aus), oder nur verschoben?

Wenn sie ausschließlich verschoben werden, könnte man vielleicht mit 
einer resisitven Touch-Folie was machen, da beim Verschieben zum Gewicht 
des Steines der Druck des Fingers kommt.

Aber insgesamt halte ich es für recht schwierig, das zu einem 
vernünftigen Preis in ein Holzbrett zu installieren, vorallem, wenn das 
Brett dabei nicht beschädigt werden soll.

Eine rein elektronische Lösung (z.B. auf einem Tablet-Pc als Spielbrett) 
kommt gar nicht in Frage?

von Marco D. (marco_d)


Lesenswert?

In der Regel werden die Steine nur aufs Brett gelegt und dann NIE 
verschoben es sei denn einer rempelt den Tisch ;)
in einigen Fällen werden die steine später wieder weggenommen und aus 
dem Spiel gelegt aber zu keiner Zeit werden Steine verschoben.
Was aber vorkommt ist, dass Leute den Stein aufs Brett setzen und Ihn 
dann erst in seine Endgültige Position verschieben.
Aber das sollte die Software ja schaffen.

das Tablet it halt recht klein. Und einer der Gründe warum ich ein 
Holzbrett haben möchte ist eben trotz dem Spielen übers Internet das 
Gefühl von Steinen in der Hand und das schöne klacken auf dem Brett wenn 
man sie ablegt. Sind also nur ästhetische Gründe.

von Marco D. (marco_d)


Lesenswert?

jetzt hab ich nochmal ne andere Frage:
Brauch ich dann für jede der 361 Dioden (falls ich das so testen möchte) 
nen eigenen Pin am Microcontroler?
Gibts sowas überhaupt?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.