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ß
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.
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
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...
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
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...
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.
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
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.
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
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.
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.
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 ;)
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
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
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.
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.
> 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.
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.
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.
Haben eigentlich Glas, Muschelkalk etc. eine merkliche Dielektrizitätskonstante? Weiss das jemand?
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.
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).
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.
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?
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?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.