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
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
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.
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.
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.
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.
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
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
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).
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 ...
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...
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
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 ....
Harald W. schrieb: > Warum denn gleich so aggressiv? :-) Wieso gleich? Frühestens im zweiten Zug ... ;-)
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.
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.
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
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.
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
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
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).
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.
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?! 🤔
Nachtrag : https://www.schachversand.de/exclusive-senator-mephisto.html Es war genau dieses Teil mit dem ich damals gespielt habe. ;)
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...
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
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.
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)
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.
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!
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!
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.
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)
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 ;)
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.
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. ;)
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.