Forum: Mikrocontroller und Digitale Elektronik Figuren auf Spielbrett erkennen


von Thomas W. (sakura)


Angehängte Dateien:

Lesenswert?

Liebe Gemeinde,

ich möchte Belegungen von Spielbrettflächen erkennen. Dazu verwende ich 
Reedkontakte. Es handelt sich um eine Schachbrettfläche. Natürlich 
können mehrere Flächen belegt sein, weshalb ich glaube, dass eine 
8x8-Matrix mglw. nicht geeignet ist. Ich lese die Fläche mit PCF8574 
Zeilenweise aus. Mein Ansatz dazu ist das Schema im Anhang. Der Arduino 
wertet sie aus und das Ergebnis soll an einen Raspberry seriell 
weitergegeben werden. Ist dieser Ansatz geeignet oder kennt jemand 
bessere Möglichkeiten?

Vielen Dank fürs Anschauen
Sakura

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Thomas W. schrieb:
> Natürlich
> können mehrere Flächen belegt sein, weshalb ich glaube, dass eine
> 8x8-Matrix mglw. nicht geeignet ist.

Wie kommst du darauf? Das ist doch der Witz an einer Matrix. Und du 
brauchst nicht 8 Stück, sondern nur einen PCF8574 als Sender in die 
Matrix und einen als Empfänger von der Matrix, denn die haben ja schon 8 
I/O Ports.
Um Mehrfachdeutungen zu vermeiden, bekommt jeder Reedkontakt eine Diode 
in Reihe.
Probleme bei Schach ergeben sich eher daraus, das der Typ der Figur 
nicht erkennbar ist.

: Bearbeitet durch User
von Thomas W. (sakura)


Lesenswert?

Vielen Dank!

Ok, ich habe mir schon gedacht, dass ich wohl einen sehr umständlichen 
Weg gewählt habe. Das Problem mit dem Erkennen der Figur, glaube ich 
dadurch zu lösen, dass das Abheben und Abstellen genau verfolgt werden 
sollte. So weiß man immer genau wo sich welche Figur befindet. Das 
Abheben mehrerer Figuren gleichzeitig sollt nat. vermieden werden.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Thomas W. schrieb:
> Das
> Abheben mehrerer Figuren gleichzeitig sollt nat. vermieden werden.

Falls das so eine Art Schachcomputer werden soll, ist es evtl. sinnvoll, 
noch eine 2. Matrix aufzubauen - diesmal mit LEDs. Dann kann der Rechner 
sich beschweren oder auch selber Züge machen, indem er mit den LEDs 
blinkt oder so.

von MaWin (Gast)


Lesenswert?

Thomas W. schrieb:
> Ich lese die Fläche mit
> PCF8574 Zeilenweise aus. Mein Ansatz dazu ist das Schema im Anhang.

Inwiefern Schema ?

Das sind eine hand voll auf ein Blatt gekippte Bauteile.

Für Verbindungen warst du wohl zu faul.

> Natürlich können mehrere Flächen belegt sein, weshalb ich glaube, dass
> eine 8x8-Matrix mglw. nicht geeignet ist.

Das geht schon, wenn in Reihe zu jedem Reed-Kontakt eine Diode kommt.

Es reichen dann zwar 8 Ausgänge und 8 Eingänge am uC, aber immer noch 64 
Reedkontakte und 64 Dioden mit 272 Lötkontakten zu verbinden. Wenn du 
dir den Aufwand machen willst...

Man konnte schon 1954 (Kernspeichermatrix) ein einzelnes Bit in einer 
Matrix identifizieren, mit nur mit 8 Zeilentreibern und 8 
Spaltenverstärkern, ohne Dioden, ohne Reedschalter. Der Aufbau erfordert 
halt mehr know how, ähnlich einem Graphiktablett.

von Thomas W. (sakura)


Lesenswert?

Vielen Dank für deine prägnanten Antworten. Was das Feedback betrifft 
hatte ich an eine Sprachausgabe gedacht. Das ist ja mit einem  Raspberry 
kein all zu großes Problem mehr. So kann man auch schneller auftretende 
Widersprüche während des Spiels erkennen.

von Thomas W. (sakura)


Lesenswert?

Lieber MaWin,

ich wollte ja nur meinen Ansatz kurz illustrieren. Die Verbindungen sind 
doch durch Netzlabel hergestellt. Leider sind meine Fähigkeiten sehr 
begrenzt. Es macht dennoch Spaß sich damit zu beschäftigen.

Vielen Dank für deine Einschätzung

von Thomas W. (sakura)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe nun meine Schaltung geändert und wollte mal fragen ob das so 
Sinn macht. Der Arduino schaltet abwechselnd immer nur ein Ausgang auf 
High, dann lese ich den PCF8514 aus -> Ausgang wieder auf Low, dann 
Ausgang 2 u.s.w. So bräuchte ich doch die zusätzlichen Dioden nicht, 
oder versteh ich da etwas falsch?

Vielen Dank fürs Anschauen
Thomas

von MaWin (Gast)


Lesenswert?

Thomas W. schrieb:
> So bräuchte ich doch die zusätzlichen Dioden nicht

Doch.

Sonst gibt es "Phantom" Stellungen

(A1 und A4 und C1 besetzt -> C4 wird auch als besetzt erkannt).

von Percy N. (vox_bovi)


Lesenswert?

Thomas W. schrieb:
> Das Abheben mehrerer Figuren gleichzeitig sollt nat. vermieden werden.

Das wird sich bei der Rochade kaum vermeiden lassen; und hin und wieder 
möchte man auch schlagen ...

von c-hater (Gast)


Lesenswert?

MaWin schrieb:
> Thomas W. schrieb:
>> So bräuchte ich doch die zusätzlichen Dioden nicht
>
> Doch.
>
> Sonst gibt es "Phantom" Stellungen
>
> (A1 und A4 und C1 besetzt -> C4 wird auch als besetzt erkannt).

OMG.

Scheinbar müssen solche Trivialitäten doch immer und immer wieder 
durchgehechelt werden...

Und das in Zeiten, da auch jeder ernsthaft interessierte Anfänger das 
gesamte Internet zu Verfügung hat...

von Harald W. (wilhelms)


Lesenswert?

Percy N. schrieb:

> Hin und wieder möchte man auch schlagen ...

Warum denn gleich so aggressiv? :-)

von LostInMusic (Gast)


Lesenswert?

Nur für den Fall, dass es dem TO noch nicht bekannt sein sollte: 
Schachbretter mit USB-Anschluss (und mittlerweile auch Bluetooth) gibt 
es bereits seit geraumer Zeit zu kaufen.

https://www.schachversand-ullrich.de/e-boards/usb-anschluss/3322/dgt-pc-schachbrett-usb-smart-board-mit-figuren-plastic-electronic?c=158

von Einer (Gast)


Lesenswert?

Das mit dem schlagen ist doch ganz einfach.
Angenommen schwarz ist am zug:
Wird eine weiße Figur angehoben und dann noch eine schwarze soll die 
weiße geschlagen werden.

Werden zwei Schwarze angehoben und zwar König und Turm ....

von Percy N. (vox_bovi)


Lesenswert?

Harald W. schrieb:
> Warum denn gleich so aggressiv? :-)

Wieso gleich? Frühestens im zweiten Zug ...
;-)

von Schlaumaier (Gast)


Lesenswert?

Matthias S. schrieb:
> Probleme bei Schach ergeben sich eher daraus, das der Typ der Figur
> nicht erkennbar ist.

Naja die Alternative ist komplizierter, etwas teurer aber perfekter.

Kleb unter jede Figur ein RFID-Chip und auf jedes Feld ein Reader. Dann 
abfragen und das wars. So kannst du auch Figuren in das System 
automatisch einlesen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

LostInMusic schrieb:
> gibt
> es bereits seit geraumer Zeit zu kaufen

Gut, aber fast 260 Mäuse für ein Plastikbrett finde ich jetzt nicht 
besonders günstig. Und die Figuren sind auch aus Kunststoff, wenn ich 
das richtig lese.

@TE: Die Dioden müssen schon rein, habe ich doch in der ersten Antwort 
geschrieben - zumindest, wenn du nicht das ganze Konzept über den Haufen 
werfen willst.

von Georg (Gast)


Lesenswert?

Thomas W. schrieb:
> glaube ich
> dadurch zu lösen, dass das Abheben und Abstellen genau verfolgt werden
> sollte

Das ist sehr fehleranfällig. Es soll ja vorkommen dass man eine Figur 
umwirft o.ä. Ausserdem sollte man eine angefangene Partie auch nach 
Wochen fortsetzen können.

Georg

von Schach Matt (Gast)


Lesenswert?

Am Einfachsten ist es, wenn jede von den 32 Schachfiguren auf der 
Unterseite einen 5 Bit (2^5=32) RFID Chip, oder bei einer Glasplatte als 
Spielfeld, einen Barcode aufgeklebt bekommt.
Auf der Unterseite muss dann ein Barcode Scanner, oder für jedes Feld 
ein eigenes RFID Läsegerät montiert werden.
Für das sechste Bit (64 Felder) kann dann das Lesegerät selbst zum 
Einsatz kommen und für die Positionsbestimmung ausgewertet werden.

von Georg (Gast)


Lesenswert?

Schach Matt schrieb:
> wenn jede von den 32 Schachfiguren auf der
> Unterseite einen 5 Bit (2^5=32) RFID Chip

Warum? Turm ist Turm und Bauer ist Bauer, das geht also auch einfacher.

Georg

von Thomas W. (sakura)


Lesenswert?

MaWin schrieb:
> (A1 und A4 und C1 besetzt -> C4 wird auch als besetzt erkannt).
Stimmt, das hatte ich nicht bedacht! Ich dachte nur wenn ich nur 
Zeilenweise auslese tritt dieses Problem nicht auf. Wenn die Zeile 1 Low 
ist, sollte dies doch keinen Einfluss auf C4 haben.

Vielen Dank für den Hinweis

: Bearbeitet durch User
von Schlaumaier (Gast)


Lesenswert?

Georg schrieb:
> Schach Matt schrieb:
>> wenn jede von den 32 Schachfiguren auf der
>> Unterseite einen 5 Bit (2^5=32) RFID Chip
>
> Warum? Turm ist Turm und Bauer ist Bauer, das geht also auch einfacher.

Du brauchst 10 verschiedene Codes.

Bauer, springer, läufer, Turm, Dame, König.  Das ganze 2 x (sw / weiß).

Den unter jede Figur. Danach kann der Computer das Brett scannen. Und 
diverse Funktionen ausführen. Besonders wenn man über Stellungen 
nachdenkt ist das eine riesen Hilfe.

Vor ungefähr 25-30 Jahren gab es ein 1000 DM teures Holzbrett mit LED,s 
zu JEDEN Feld. Der Computer wusste über Magnete welche Figur angehoben 
wurde (LED blinkte) und wo sie dann hingesetzt wurde.

Wenn du es mir Real-Kontakten machst wären ergo so LED's pro Feld keine 
Schlechte IDEE und günstiger als RFID.

Stellungen gingen so. Man tippe auf den Computer z.b. weißer Bauer und 
alle Felder blinken wo ein weißer Bauer hin musste, bzw. Bei nachspielen 
man ihn hinsetzen konnte.

Ich hab mit den Teil beim Karstadt gespielt zu einer Zeit wo 
Schachcomputer der Renner im Weihnachtsgeschäft war. Spiele wie Skat + 
Senso waren in der selben Zeit.

Es gab bei den Teil sogar eine Version mit Computer-Arm für ca. 4000 
Euro. Habe ich aber nie in Real gesehen und den letzten bei Ebay für 
3000 Euro (geboten).

von Thomas W. (sakura)


Lesenswert?

Percy N. schrieb:
> Das wird sich bei der Rochade kaum vermeiden lassen; und hin und wieder
> möchte man auch schlagen ...

Wenn man zuerst den König (zwei Schritte, statt einem) setzt, weiß das 
Programm dass es sich um eine Rochade handeln muss. Schlagen kann 
natürlich auch erkannt werden. Wenn "Schläger" auf dem Feld eines 
"Geschlagenen" steht, wurde geschlagen. Ein Abbild des aktuellen 
Spielstandes ist ja immer vorhanden.

von Schach Matt (Gast)


Lesenswert?

Georg schrieb:
> Warum? Turm ist Turm und Bauer ist Bauer, das geht also auch einfacher.

Stimmt. 😯

Schlaumaier schrieb:
> Du brauchst 10 verschiedene Codes.
> Bauer, springer, läufer, Turm, Dame, König.  Das ganze 2 x (sw / weiß).

Also insgesamt dann 12 Codes?! 🤔

von Schlaumaier (Gast)


Lesenswert?

Nachtrag :
https://www.schachversand.de/exclusive-senator-mephisto.html

Es war genau dieses Teil mit dem ich damals gespielt habe. ;)

von MaWin (Gast)


Lesenswert?

Schach Matt schrieb:
> Am Einfachsten ist es

Natürlich ist das nicht dir technisch einfachste Lösung, aber die 
einzige, die dir einfällt. Also die für dein Gehirn einfachste.

Schlaumaier schrieb:
> Vor ungefähr 25-30 Jahren gab es ein 1000 DM teures Holzbrett mit LED,s
> zu JEDEN Feld. Der Computer wusste über Magnete welche Figur angehoben
> wurde (LED blinkte) und wo sie dann hingesetzt wurde.

Das dürfte heute 10 EUR kosten.

Thomas W. schrieb:
> Schlagen kann natürlich auch erkannt werden. Wenn "Schläger" auf dem
> Feld eines "Geschlagenen" steht, wurde geschlagen.

Én passant ?

Georg schrieb:
> Es soll ja vorkommen dass man eine Figur umwirft o

Z.B. den König.

Klassische Computerschachbretter lösrn das, in dem sie zeigen, wie dr 
letzte ihnen bekannte Stand ist.
Ab da darfst du dann weiter spielen.

Aber auch Figurenidentifikation erfordert nicht unbedingt RFID, das geht 
von Magnetkraft per Hallsensor über Gewicht (muss man nur an 3 
Auflagepunkten des Bretts messen), und LC Gliedern unterschiedlicher 
Resonanzfrequenz, oder primitiv wenn die Figur unten 2 elektrische 
Kontakte bekommt über einen dazwischen eingebauten Widerstandswert...

von Schlaumaier (Gast)


Lesenswert?

MaWin schrieb:
> as dürfte heute 10 EUR kosten.

600 Euro. Siehe nachfolge-Link von mir.

von Percy N. (vox_bovi)


Lesenswert?

Thomas W. schrieb:
> Wenn "Schläger" auf dem Feld eines "Geschlagenen" steht, wurde
> geschlagen.

Genau das setzt aber die Unterscheidbarkeit der Figuren voraus. Sinnvoll 
wäre allein, genau dann von einem Schlagzug auszugehen, wenn eine Figur 
der jenigen Farbe angehoben wird, die gerade nicht am Zug ist und 
nachfolgend ihr Feld von einer Figuer der zugführenden Partei bezogen 
wird.

: Bearbeitet durch User
von Schlaumaier (Gast)


Lesenswert?

MaWin schrieb:
> 2 elektrische
> Kontakte bekommt über einen dazwischen eingebauten Widerstandswert...

Die biligste Variante sind die Folienschalter. Minus von Oben und unten 
dann der Kontakt via Layout. Erkennt man sehr gut bei Brettern die 
einige Zeit gespielt wurden. Die Felder haben alle eine Kuhle unter der 
Figur. Gibt es ab ca. 50 Euro.

von re (Gast)


Lesenswert?

Thomas W. schrieb:
>>
>> Das wird sich bei der Rochade kaum vermeiden lassen; und hin und wieder
>> möchte man auch schlagen ...
>
> Wenn man zuerst den König (zwei Schritte, statt einem) setzt, weiß das
> Programm dass es sich um eine Rochade handeln muss. Schlagen kann
> natürlich auch erkannt werden. Wenn "Schläger" auf dem Feld eines
> "Geschlagenen" steht, wurde geschlagen.

Nungut, da Du Dich als TE selbst auf diesen Nebenschauplatz zu Deiner 
ursprünglichen Frage eingelassen hast:

Wie erkennt man ohne weitere Hilfsmittel, in welche Figur bei 
Bauernumwandlung umgewandelt wurde, wenn es mal nicht die naheliegende 
Dame sein soll?


Zum Thema:

Ich erinnere als möglichen Unterscheidungsmechanismus noch, dass die 
Figuren z.B. unterschiedlich resonierende LC-Kreise enthielten. Sowas 
lässt sich auch noch ganz gut auf 64 Feldern multiplexen, ohne dass es 
in eine Materialschlacht ausartet.

(re)

von Thomas W. (sakura)


Lesenswert?

MaWin schrieb:
> Én passant ?

Ein Doppelschritt eines Bauern kann doch erkannt werden!

von Percy N. (vox_bovi)


Lesenswert?

Thomas W. schrieb:
> Ein Doppelschritt eines Bauern kann doch erkannt werden!

Es ging um die Frage, ob die schlagende Figur hinterher auf dem Feld der 
geschlagenen steht, und das ist hier nicht der Fall.

von Schach Matt (Gast)


Angehängte Dateien:

Lesenswert?

Thomas W. schrieb:
> Ein Doppelschritt eines Bauern kann doch erkannt werden!

Ja. Den Doppelschritt führe ich zwar nicht real durch, aber beim 
endgültigen Absetzen der Figur, muss das Programm anhand der neuen 
Position erkennen können, dass es sich um einen Doppelschritt gehandelt 
haben MUSS!

von Thomas W. (sakura)


Lesenswert?

re schrieb:
> Nungut, da Du Dich als TE selbst auf diesen Nebenschauplatz zu Deiner
> ursprünglichen Frage eingelassen hast:
Warum darf ich mich nicht mit in die Diskussion einbringen? Ich möchte 
ja aus meinen Fehlern lernen.

> Wie erkennt man ohne weitere Hilfsmittel, in welche Figur bei
> Bauernumwandlung umgewandelt wurde, wenn es mal nicht die naheliegende
> Dame sein soll?
Ein sehr gutes Argument!!!! Danke!

von Thomas W. (sakura)


Lesenswert?

Schach Matt schrieb:
> Ja. Den Doppelschritt führe ich zwar nicht real durch, aber beim
> endgültigen Absetzen der Figur, muss das Programm anhand der neuen
> Position erkennen können, dass es sich um einen Doppelschritt gehandelt
> haben MUSS!

Wenn diese Erklärung stimmt, sollte es doch möglich sein!
https://www.youtube.com/watch?v=1dSQN4QwO7E

Trotzdem wird mir bei allen wohlmeinenden Hinweisen klar, dass mein 
Ansatz doch sehr Fehleranfällig ist und den Aufwand nicht rechtfertigt. 
Ich muss einen Weg finden die Figuren zu erkennen. (aus anderen 
Hinweisen: RFID, LC-Kreise o.ä)

Ich danke euch für eure Hilfe.

von re (Gast)


Lesenswert?

Thomas W schrieb
> Warum darf ich mich nicht mit in die Diskussion einbringen?

Doch, "darfst" Du natürlich, als TE sowieso, und es ist imho auch sehr 
förderlich.

Es sah nur anfangs danach aus, dass dieses zweite Thema etwas wäre, 
wonach Du gar nicht gefragt hattest und den ganzen Thread von Deiner 
eigentlichen Frage abgelenkt hätte. Deswegen meine Rechtfertigung.

Sorry, wenn das anders herüber kam, als es von mir gemeint war.

(re)

von Schlaumaier (Gast)


Lesenswert?

re schrieb:
> Wie erkennt man ohne weitere Hilfsmittel, in welche Figur bei
> Bauernumwandlung umgewandelt wurde, wenn es mal nicht die naheliegende
> Dame sein soll?

Gar nicht. Ohne Computerhilfe der was auf den Display anbietet. Einige 
Billig-Schachcomputer können es nicht einmal. Die machen immer eine 
Dame.

Ich hab sogar mal an einen gespielt der mich gefragt hat Springer o. 
Dame.

Én passant ist kinderleicht. Ist das Zielfeld nicht auf der selben Line 
wird halt Én passant geprüft o. ob der Bauer eine andere Figur schläft. 
Das ist kinderleicht.

Genau so wie die Rochade. Geht der König 2 Felder und er bewegt sich zum 
ersten mal wird die Rochade ausgeführt. Einige Schachcomputer vergessen 
aber die Zusatzregel das die Rochade nur ausgeführt werden darf wenn der 
König NICHT im Schach steht.

Ich spiele seit > 40 Jahren gegen Schachcomputer und habe schon gegen 
unzählige Modelle gespielt. Ich besitze aktuell sogar noch 4. Inklusive 
einige Schachbretter aus Holz + Glas und selbstgegossene Figuren aus 
Gießkeramik ;)

von Schachspieler (Gast)


Lesenswert?

Schlaumaier schrieb:
> Einige Schachcomputer vergessen
> aber die Zusatzregel das die Rochade nur ausgeführt werden darf wenn der
> König NICHT im Schach steht.

Zusätzlich dürfen sich weder der König noch der Turm bewegt haben. 
Außerdem darf der König bei seiner Seitwärtsbewegung nicht über ein Feld 
gehen, dass von einer gegnerischen Figur beherrscht wird.


Wenn schon Schlaumaier, dann bitte vollständig.

von Schlaumaier (Gast)


Lesenswert?

Schachspieler schrieb:
> Wenn schon Schlaumaier, dann bitte vollständig.

Du hast völlig recht.

Aber wenn sie schon den Grundfehler nicht raffen wieso sollten Sie dann 
die Details raffen. ;)

von Percy N. (vox_bovi)


Lesenswert?

Schlaumaier schrieb:
> Genau so wie die Rochade. Geht der König 2 Felder und er bewegt sich zum
> ersten mal wird die Rochade ausgeführt.

Es ist fraglich, ob das unter allen denkbaren Umständen sinnvoll ist. 
Falls der Spieler  den König zwei Felder weit gezogen hat, ist unllar, 
ob es eine unvollständige Rochade sein soll und der Computer noch die 
Ausführung des Königszuges abwarten muss, oder ob hier versehentlich der 
König regelwidrig zwei Felder weit gezogen wurde. Art 4 der FIDE-Regeln 
hilft hier auch nicht weiter, es sei denn, es werde auch noch 
ausgewertet, dass der Spieler seine Uhr betätigt.

: Bearbeitet durch User
von Schlaumaier (Gast)


Lesenswert?

Auf ALLEN Schachcomputer die ich bisher gespielt habe, zeigt der 
Computer IMMER an das die amtierende Farbe weiter dran ist. Was 
bedeutet, man nimmt den Zug zurück (Was lt. Schachregeln NICHT erlaubt 
ist, da gilt BERÜHRT-GEFÜHRT) oder man gibt den Turm-Zug irgendwie ein.

Bei meinen Chess-Champion MK2 / mein Mephisto (ohne Brett) + bei mein 
Chess-Champion-System mit LCD-Display, Drucker etc. ist das genau der 
Fall. Da erfolgt die Eingabe so über Tastatur. Alle 3 Teile sind über 25 
Jahre alt.

Bei den 4. (20 Euro vom Flohmarkt) geht es über Drucksensor im Brett. 
Der kann sogar labern aber nicht gut Spielen. Den bekomme ich mit der 
c2-c3 Eröffnungszug (Abgewandelter Schäferzug) matt in unter 11 Zügen.

von Percy N. (vox_bovi)


Lesenswert?

Schlaumaier schrieb:
> Auf ALLEN Schachcomputer die ich bisher gespielt habe, zeigt der
> Computer IMMER an das die amtierende Farbe weiter dran ist.
Seltsam. Bei meinem uralten Teil von ~ 1980 wurde angezeigt, wenn der 
6502 am Denken war. Eine weitere Zugeingabe war dann nicht möglich.
> Was
> bedeutet, man nimmt den Zug zurück (Was lt. Schachregeln NICHT erlaubt
> ist, da gilt BERÜHRT-GEFÜHRT) oder man gibt den Turm-Zug irgendwie ein.
Das ist das nächste Problem mit einem elektronischen Brett: die Sensorik 
kann zwar bemerken, wenn eine Fugur angehoben bzw abgestellt wird, nicht 
aber, ob sie berührt oder losgelassen wurde.

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.