Forum: Mikrocontroller und Digitale Elektronik Schachbrettposition Erkennung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Toni E. (johny123)


Lesenswert?

Ich möchte ein Schachbrett bauen mit
Erkennung der Position. Ich dachte an hall Sensoren und Figuren mit 
Magneten? Aber nur wenn die hall Sensoren aus china was taugen, dort 
kosten 10 Stück 1€. Sonst wird es zu teuer. Oder habt ihr anderen 
Vorschlag um zu erkennen das auf dem Feld was steht?

Die nächste Frage ist wie bekomme ich 64 Ausgänge in den uC? Es wird 
wohl ein esp32. Und ich will auch alle Felder ansprechen können. 
Stichwort Multiplexer, wenn auf dem Multiplexer aber 3 Eingänge 
geschaltet sind, er hat ja nur einen Ausgang wie kann ich das auswerten?

Wenn ich komplett falsch bin, bitte andere Vorschläge.

von Sebastian R. (sebastian_r569)


Lesenswert?

Vielleicht hilft dir das hier weiter:
Beitrag "Raspberry Pi und MCP23017-Baustein"

von Georg G. (df2au)


Lesenswert?

Die simpelste Lösung wäre ein 3Bit 1->8 Multiplexer (adressiert die 
Zeilen) kombiniert mit einem 3Bit 8->1 Multiplexer (wertet die Spalten 
aus). Unter jedem Feld dann ein Reedkontakt, je nach Aufgabenstellung 
eventuell mit einer Diode in Reihe.

Die billigste Lösung ist die Elektronik einer PC-Tastatur. Da gibt es 
die Auswertung gleich mit und n-Key Rollover ist auch dabei.

Gemeinsames Problem: Du erkennst, welche Felder belegt sind, es fehlt 
aber die Info, welche Figur da drauf steht.

von Michael B. (laberkopp)


Lesenswert?

Toni E. schrieb:
> Wenn ich komplett falsch bin,

Der Weg ist noch weit, es fehlt dir an Grundlagen.

Mit Hallsensoren kannst du erkennen, OB eine Figur auf einem Feld steht, 
aber nicht welche. Das musst du aus dem Spielverlauf mitführen, wie es 
viele Schachcomputer machen.

Man kann dann halt nicht einfach eine Stellung aufbauen und 
weiterspielen, sondern muss die erst mühsam einlernen.

Damit man nicht so viele Eingänge am uC braucht, kann man den Weg der 
DDR Schach und Tastaturen gehen und einen 4-poligen Hallsensor in 
Matrixanordnung https://www.richis-lab.de/hall01.htm verdrahten.

: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Georg G. schrieb:
> Gemeinsames Problem: Du erkennst, welche Felder belegt sind, es fehlt
> aber die Info, welche Figur da drauf steht.

NXP iCode SLIX-L RFID Tags nehmen für jede Figur.

von Frere J. (frere_jacques)


Lesenswert?

So grundsätzlich wäre das mit einer Kamera/ Webcam und etwas Software zu 
machen. OpenCV wäre vermutlich ein guter Freund dafür.

Ansonsten: Beitrag "Figuren auf Spielbrett erkennen"

von Toni E. (johny123)


Lesenswert?

Georg G. schrieb:
> Die simpelste Lösung wäre ein 3Bit 1->8 Multiplexer (adressiert die
> Zeilen) kombiniert mit einem 3Bit 8->1 Multiplexer (wertet die Spalten
> aus). Unter jedem Feld dann ein Reedkontakt, je nach Aufgabenstellung
> eventuell mit einer Diode in Reihe.
>

Was wenn aber mehr als ein Feld der 8 belegt ist? Der Multiplexer hat ja 
nur ein Ausgang.

> Die billigste Lösung ist die Elektronik einer PC-Tastatur. Da gibt es
> die Auswertung gleich mit und n-Key Rollover ist auch dabei.
>
> Gemeinsames Problem: Du erkennst, welche Felder belegt sind, es fehlt
> aber die Info, welche Figur da drauf steht.
Das ist mir klar, will ich auch erstmal nicht.

von H. H. (hhinz)


Lesenswert?

RFID-Tags in die Figuren, und unter jedes Feld eine Spule.

von H. H. (hhinz)


Lesenswert?

Toni E. schrieb:
>> Gemeinsames Problem: Du erkennst, welche Felder belegt sind, es fehlt
>> aber die Info, welche Figur da drauf steht.
> Das ist mir klar, will ich auch erstmal nicht.

Dann reichen 64 Hallsensoren und 32 flache Neodymmagneten.

von Uwe B. (uwe_beis)


Lesenswert?

Toni E. schrieb:
>> Gemeinsames Problem: Du erkennst, welche Felder belegt sind, es fehlt
>> aber die Info, welche Figur da drauf steht.
> Das ist mir klar, will ich auch erstmal nicht.
Aber würde es in der Praxis nicht genügen, zu erkennen, wenn eine Figur 
vom Feld von einer bestimmten Position genommen wurde und dann eine 
Figur auf einer anderen Position auftaucht, dass das dann die Figur von 
eben gewesen sein muss? Und so von Anfang an (alle Positionen bekannt) 
jeden Zug, jede neue Position, zu verfolgen?

von Axel S. (a-za-z0-9)


Lesenswert?

Uwe B. schrieb:
> Aber würde es in der Praxis nicht genügen, zu erkennen, wenn eine Figur
> vom Feld von einer bestimmten Position genommen wurde und dann eine
> Figur auf einer anderen Position auftaucht

Klar. Genau das meint Michael mit:

Michael B. schrieb:
> Das musst du aus dem Spielverlauf mitführen, wie es
> viele Schachcomputer machen.

und dann gilt natürlich

> Man kann dann halt nicht einfach eine Stellung aufbauen und
> weiterspielen

von Steve van de Grens (roehrmond)


Lesenswert?

Toni E. schrieb:
> Was wenn aber mehr als ein Feld der 8 belegt ist? Der Multiplexer hat ja
> nur ein Ausgang.

Informiere dich mal, was ein Multiplexer ist. Hier mal ein alter 
Klassiker, der sehr gut dokumentiert ist: 
https://www.ti.com/lit/ds/symlink/tmux4053.pdf

von Uwe B. (uwe_beis)


Lesenswert?

Axel S. schrieb:
> Klar. Genau das meint Michael mit:
Hab' ich mal wieder den Beitrag nicht weit genug gelesen... (Aber da war 
ich auch nicht ganz alleine ;-)

Steve van de Grens schrieb:
> Informiere dich mal, was ein Multiplexer ist.
Es geht weniger um das Stichwort Multiplexer, sondern um das Stichwort 
Matrix. Also zwei 8er Multiplexer.

von Toni E. (johny123)


Lesenswert?

Uwe B. schrieb:
> Toni E. schrieb:
>>> Gemeinsames Problem: Du erkennst, welche Felder belegt sind, es fehlt
>>> aber die Info, welche Figur da drauf steht.
>> Das ist mir klar, will ich auch erstmal nicht.
> Aber würde es in der Praxis nicht genügen, zu erkennen, wenn eine Figur
> vom Feld von einer bestimmten Position genommen wurde und dann eine
> Figur auf einer anderen Position auftaucht, dass das dann die Figur von
> eben gewesen sein muss? Und so von Anfang an (alle Positionen bekannt)
> jeden Zug, jede neue Position, zu verfolgen?

Genau so war der plan es zu machen.

Ich werde mal erstmal über den multiplexer lesen. Habe noch nie einen 
benutzt. Jemand schon erprobte Schaltungen parat?

von Uwe B. (uwe_beis)


Lesenswert?

Toni E. schrieb:
> Ich werde mal erstmal über den multiplexer lesen. Habe noch nie einen
> benutzt. Jemand schon erprobte Schaltungen parat?

Multiplexer sind trivial. Dein Thema ist, wie eine Matrix mit 2 
Multiplexern gebaut wird. Dazu kann dir
https://www-user.tu-chemnitz.de/~heha/Mikrocontroller/Tastenmatrix.htm
helfen.
Dort insbesondere: "3. Beliebige Tasten gleichzeitig"

Und wirklich nachdenken musst du, wenn in der Matrix keine Tasten bzw. 
Kontakte, sondern Hall-Elemente einsetzen willst.

von Joachim B. (jar)


Lesenswert?

Georg G. schrieb:
> Gemeinsames Problem: Du erkennst, welche Felder belegt sind, es fehlt
> aber die Info, welche Figur da drauf steht.

das ist leicht, wenn richtig aufgestellt wird weiß Mensch und Maschine 
ob es ein Bauer Springer Turm oder welche Figur auch immer.
Wird sie bewegt gibt es ein Impuls und Maschine achtet darauf das die 
Figur nur dort landet wo es erlaubt ist.

von Lothar J. (black-bird)


Lesenswert?

Joachim B. schrieb:
> das ist leicht, wenn richtig aufgestellt wird weiß Mensch und Maschine
> ob es ein Bauer Springer Turm oder welche Figur auch immer.
> Wird sie bewegt gibt es ein Impuls und Maschine achtet darauf das die
> Figur nur dort landet wo es erlaubt ist.

Bei Figurenwechsel werden oft eine Figur in die Hand genommen und eine 
andere dann versetzt, anschließend die in der Hand "geparkte" Figur aufs 
Brett gestellt.
Erkennt der Computer das richtig?

Blackbird

von Rahul D. (rahul)


Lesenswert?

Lothar J. schrieb:
> Bei Figurenwechsel werden oft eine Figur in die Hand genommen und eine
> andere dann versetzt, anschließend die in der Hand "geparkte" Figur aufs
> Brett gestellt.
> Erkennt der Computer das richtig?

Die Frage verstehe ich nicht (ich bin kein Schachspieler), aber der 
Computer weiß doch, wer ziehen darf und woher die Figur kommt. Das muss 
er nur von Anfang an verfolgen.

von Alexander (alecxs)


Lesenswert?

Welcher Computer?

von Rahul D. (rahul)


Lesenswert?

Alexander schrieb:
> Welcher Computer?

Der da:
Toni E. schrieb:
> Die nächste Frage ist wie bekomme ich 64 Ausgänge in den uC?

von Markus H. (dasrotemopped)


Lesenswert?

wenn das Schachbrett erkennen soll welche Figur wo steht und die Figuren 
von Hand gezogen werden, was ist der Nutzen der Erkennung ?
Wegen ESP32 vermute ich Online Funktionen ?

Beim Schach gibt es 32 individuelle Figuren.
Es gibt pro Figur nur eine begrenzte Anzahl erlaubter Schritte.
Es gibt einige Sonderfälle (Rochade oder Bauer wird am Spielrand zu 
einer anderen Figur.)
Willst du die Spielzüge auf Korrektheit überprüfen, dann muss dein 
Erkennungssystem die Schachregeln kennen. Beim Schlagen einer Figur muss 
erkannt werden das die richtige Figur das Brett verlässt.

Du musst also die Farbe der Figuren erkennen und ihre Art = 32 IDs plus 
Umwidmung eines Bauern in eine andere Figur. Wie teilst du dem System 
mit welche Figur der Bauer wird damit die Regeln weiterehin überprüft 
werden können?

64 RFID Spulen und ID Tags in jeder Figur kann schnell kompliziert 
werden wenn der Lesebereich zu groß ist und du mehrere Figuren mit einem 
Feld erkennst.

Mein Tip: einen Magnet in jedem Feld und jeder Figur damit es einen 
hohen Anpressdruck an das Feld gibt (oder jede Figur aus dem vollen 
Stahl gedreht). Dann hat jedes Feld und jede Figur 4 Ringe und einen 
Mittelstift (5 Bits = 2 hoch 5 Kombinationen = 32 IDs), natürlich jedes 
Feld ist ein Negativ von dem Figurenfuß. An jedem Ring plus Mittelstift 
einen Schalter. 64 Felder * 5 Schalter = 320 Schalter (oder 
Lichtschranken). Das sind nur 3 PC Keyboard Controller die du ins 
Schachfeld integrieren musst.

Du kennst dich mit Induktivitäten aus ? Eine Spule ins Feld, jede Figur 
verstimmt die Induktivität auf einen anderen Wert durch eingelassene 
Metallkerne (oder Protopasta 3D Druck Filament mit Eisenanteil). Cypress 
CPUs haben da Beispielprojekte vom Hersteller. Könnte so aussehen wie 
ein Ladeport einer Elektrozahnbürste.

von Uwe B. (uwe_beis)


Lesenswert?

Lothar J. schrieb:
> Bei Figurenwechsel werden oft eine Figur in die Hand genommen und eine
> andere dann versetzt, anschließend die in der Hand "geparkte" Figur aufs
> Brett gestellt.
Wann außer bei der Rochade?
Beim Schach gilt die Regel Berührt-geführt:
https://www.spielregeln.de/beruehrt-gefuehrt.html
Einfaches Verfolgen (hier verschwindet eine Figur, dort taucht eine auf) 
ohne Figuren-Erkennung reicht bei einem regulären Spiel vollkommen aus.
Und wenn man mal von einer bestimmten Position aus spielen will: 
Entweder die Ausgangsposition von Hand eintragen, oder aus der 
Grundposition jede Figur einzeln in die Startposition setzen.

Hall-Matrix, 2 Multiplexer 3 auf 8, macht 6 Port-Pins am µC. Und eine 
Taste für Start, natürlich. Reicht.

von J. S. (engineer) Benutzerseite


Lesenswert?

Toni E. schrieb:
> ch möchte ein Schachbrett bauen mit
> Erkennung der Position. Ich dachte an hall Sensoren und Figuren mit
> Magneten?

Ich habe eine RADAR-basierte Matrix in Arbeit, die mit Stromschleifen 
arbeitet und als Eingabe für MIDI-Synthesizer arbeitet. Ich möchte 
3D-Bewegungen erkennen. Ich arbeite nur mit Stomimpulsen und kann den 
Finger, also die Störung des Feldes erkennen. Man hat mehrere 
Sendespulen und Emmpfangspulen. Es funktioniert bereits zuverlässig, ist 
nur noch zu groß, um zu den normalen Größen einer Klaviatur (16,5mm) zu 
passen.

Eine Zugerkennung beim Schach wäre aber locker möglich. Du brauchst das 
Ganze in "Einfach" also so, wie eine digitale Schaltermatrix aufgebaut 
ist, welche zyklisch abgetastet wird. So wie früher bei den Fernsehern 
mit Sensor-Umschaltet. Schau mal wie Charly-Plexing funktioniert. 
Ansonsten klassisches Y,X mit MUX vom Typ 595 etc. Man hätte eine 
einfache An-Aus-Erkennung über das Vorhandensein einer Figur - den Rest 
erledigt die Software.

Die Lösung wäre so, dass ein Draht sendet und ein Nachbar empfängt. Bei 
Vorhandensein der Figur infolge der Koppelung erheblich stärker. Wegen 
der Fläche werden aber 1+1 Drähte pro Schachfeld nicht reichen, weil man 
nicht weis, wo die Figur genau steht. Ich würde schätzen, dass du etwa 
4-6 linien pro Schachfeld benötist. Ich würde 8 nehmen, also 4 zum 
Senden und 4 zum Emfpangen und mit jeweils 9 MUX  ( 1 x 8 x 8 = 8 
Felder) arbeiten. Wären 18 solcher ICs.

Abstastung so, dass ein Zug binnen 0,1 sek erkannt wird -> 64*64 = 50kHz 
Abtastung. Es wird also immer nur nacheinander ein Feld untersucht, ob 
dort eine Figur steht. Die Figuren brauchen dann nur eine Metallplatte.

Wenn du die Aufstellung mitprotokollierst, brauchst du keine 
Figurenerkennung, sondern nur eine intelligente Interpretation, welche 
Figur gerade bewegt wurde und wo sie auftaucht. Das muss man sich 
merken.

Beim Schlagen gibt es dann den Fall, dass erst die Geschlagene 
verschwindet und dann noch eine Zweite oder umgekehrt, statt dass die 
verschwindende Postion woanders besetzt wirtd. In beiden Fällen steht 
dann die Figur auf dem neuen Platz, die zuvor auf dem nun leeren Platz 
stand. Es muss also nicht einmal gecheckt werden, dass sie höherwertig 
war, solange die Spieler keinen Mist spielen. Die die verschwunden ist, 
ist weg und dort wo was neues auftaucht, kommt immer die alte hin, die 
woanders verschwunden ist. Züge kann man natürlich noch 
plausibilisieren. Auch das Angreifen und wieder abstellen kann man so 
lösen.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Im DDR Schachcomputer wurden Hall-ICs mit enable-Eingang verwendet 
(B461). Die lassen sich dadurch einfach als 8*8 Matrix verschalten.

https://www.richis-lab.de/hall01.htm

von H. H. (hhinz)


Lesenswert?

Peter D. schrieb:
> Im DDR Schachcomputer wurden Hall-ICs mit enable-Eingang verwendet
> (B461). Die lassen sich dadurch einfach als 8*8 Matrix verschalten.

Man kann Hall-Sensoren mit OC- oder OD-Ausgang auch einfach die 
Versorgung abschalten. Aktuelle Sensoren brauchen bei 3V so wenig Strom, 
das kann sogar ein HC595 liefern, für alle 8 einer Zeile/Spalte.

von Guido K. (Firma: Code Mercenaries GmbH) (thebug)


Lesenswert?

Warum so kompliziert?

Einfach Reed-Kontakte nehmen, an jeden eine Diode ran und als 8 x 8 
Matrix verschalten.

Für die Figuren geht man davon aus, dass der Spieler die korrekt aufbaut 
und ordentlich spielen will und nicht den Computer verwirren möchte, 
also erkennt man aus den Bewegungen, welche Figur wo steht.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Die alten Schachcomputer haben auch bloss eine 8x8 Tastenmatrix:

https://www.wolfgangrobel.de/electronics/novag.htm

von Uwe B. (uwe_beis)


Lesenswert?

Guido K. schrieb:
> Einfach Reed-Kontakte nehmen, an jeden eine Diode ran und als 8 x 8
> Matrix verschalten.
1. ist das hier schon mehrfach erwähnt und diskutiert worden.

> Für die Figuren geht man davon aus, dass der Spieler die korrekt aufbaut
> und ordentlich spielen will und nicht den Computer verwirren möchte,
> also erkennt man aus den Bewegungen, welche Figur wo steht.
2. ist auch das hier schon mehrfach erwähnt und diskutiert worden.

3. Ich halte Reed-Kontakte für wenig geeignet, weil, wenn sie horizontal 
unter dem Brett liegen, das Magnetfeld eventuell so verlaufen kann, dass 
sie nicht ansprechen. Wenn schon, dann müssen sie vertikal angeordnet 
sein.

4. Mit Hall-Sensoren dürfte es billiger und einfacher gehen, weil, 
vorausgesetzt man nimmt die richtigen, auch die Dioden entfallen können.

: Bearbeitet durch User
von Toni E. (johny123)


Lesenswert?

Uwe B. schrieb:
> Lothar J. schrieb:
> Hall-Matrix, 2 Multiplexer 3 auf 8, macht 6 Port-Pins am µC. Und eine
> Taste für Start, natürlich. Reicht.

Wenn alle Figuren stehen, sind doch alle 8 spalten und jeweils die 
ersten beiden Zeilen belegt. Also ab A - H. Dann sind ja beim Spalten 
multiplexer alles auf on? Hab ich einen Denkfehler?

von Andi Y. (andiy)


Lesenswert?

Toni E. schrieb:
> Hab ich einen Denkfehler?

Irgendwie schon.
Mit Multiplexern für Zeile und Spalte kannst du natürlich immer nur den 
Zustand eines einzelnen Feldes gleichzeitig abfragen.
Um alle Felder abzufragen benötigst du eine Subroutine, die alle Spalten 
und Zeilen durchgeht und jeweils den Zustand des angewählten Feldes in 
ein Array abspeichert.  Dieses Array ist dann der Eingang in deine 
nachfolgende Schach-Software.

von Uwe B. (uwe_beis)


Lesenswert?

Toni E. schrieb:
> Hab ich einen Denkfehler?

Ganz offensichtlich ja. So wie ich erkenne, hast du dich (immer) noch 
nicht um das mehrfach erwähnte Stichwort "Matrix" gekümmert, was das 
ist, und wie du mit 2 Multiplexern je 8 Aus- bzw. Eingängen jeden 
Knotenpunkt einer 8 x 8 Matrix einlesen kannst.

Multiplexer sind dabei nur ein Mittel, um 16 Port-Pins (8 Ausgänge. 8 
Eingänge) auf wenige zu reduzieren, sie sind prinzipiell nicht 
erforderlich. Statt Multiplexern kann man z.B. auch Schieberegister 
einsetzen, wenn die 16 erforderlichen Steuerleitungen nicht direkt am µC 
zur Verfügung stehen.

von Hardy F. (hflor)



Lesenswert?

Warum nicht einfach mit einem Schaltkreis?

Der PI4IOE5V9555 ist dafür genau geeignet.

Hardy

von Route_66 H. (route_66)


Lesenswert?

Hardy F. schrieb:
> Der PI4IOE5V9555 ist dafür genau geeignet.

Du brauchst dann aber immer noch eine Erkennung pro Feld!!!

Ich hatte mal ein kleines elektronisches Reiseschach als Steckschach. Da 
war unter jedem Steckfeld eine Folien- oder Elstomertaste. Wegnehmen der 
Figur: kurz drücken und auf dem Zielfeld auch kurz drücken.
Computer rechnet und piepst, das Ergebnis wird am Rand mit je 8 LEDs für 
a..H und 1..8 angezeigt Jetzt ziehe ich für den Gegner also: seine Figur 
kurz drücken, dann leuchtet seine neue Position auf den LEDs. Ich stecke 
seine Figur dorthin und drücke. Jetzt das Ganze von vorn...
Rochade hat glaube ich funktioniert indem man den König zuerst zieht.
Bauernumwandlung weiss ich nicht mehr, ging aber.

von Hardy F. (hflor)


Angehängte Dateien:

Lesenswert?

Route_66 H. schrieb:
> Du brauchst dann aber immer noch eine Erkennung pro Feld!!!

Habe ich doch. GPIO0-7 als Ausgänge, die schalten die Hall-Sensoren 
direkt (max. 1,1mA pro Sensor) und GPIO8-15 sind die Eingänge. Dann 
einfach als Matrix-Abfrage. Falls die Hall-Sensoren mehr brauchen oder 
es mit einem TLC59116 noch kombiniert wird für ein Paar LEDs pro Feld, 
dann einfach an GPIO0-7 ein P-Kanal Mosfet mit UGS <= 2,5V dran.

Hardy

von Steve van de Grens (roehrmond)


Lesenswert?

Hardy F. schrieb:
> Schach_mit_LED.jpg


Bist du sicher, dass die Ausgänge der Hall Sensoren auf HIGH gezogen 
werden können, während die Sensoren keine Versorgungsspannung haben? Das 
wäre wegen der üblichen ESD Dioden in CMOS Chips ungewöhnlich, aber 
nicht undenkbar.

: Bearbeitet durch User
von H. H. (hhinz)


Lesenswert?

Steve van de Grens schrieb:
> Hardy F. schrieb:
>> Schach_mit_LED.jpg
>
> Bist du sicher, dass die Ausgänge der Hall Sensoren auf HIGH gezogen
> werden können, während die Sensoren keine Versorgungsspannung haben? Das
> wäre wegen der üblichen ESD Dioden in CMOS Chips ungewöhnlich, aber
> nicht undenkbar.

Die meisten Sensoren haben OC/OD Ausgänge.

von Hardy F. (hflor)


Lesenswert?

Steve van de Grens schrieb:
> Bist du sicher, dass die Ausgänge der Hall Sensoren auf HIGH gezogen
> werden können

Nein, das müßte noch geklärt werden. Lt. Datenblatt ist bei Vq kein 
Bezug zu Vs, also vieleicht ohne Diode? Auch wie der Hall-Sensor 
arbeitet, im Datenblatt ist ein Diagramm wonach der Ausgang erst nach 
zwei Zyklen gesetzt wird. Ein Zyklus hat ca. 100-200ms Sleep drin, das 
ist für eine Matrix völlig ungeeignet.

Hardy

: Bearbeitet durch User
von Route_66 H. (route_66)


Lesenswert?

Hardy F. schrieb:
> Route_66 H. schrieb:
>> Du brauchst dann aber immer noch eine Erkennung pro Feld!!!

Ich bezog mich auf die 64 Hall-Sensoren und die 64 Duo-LEDs: welch ein 
Aufwand an Material, Stromverbrauch und vielleicht auch Software!

von Hardy F. (hflor)


Lesenswert?

Route_66 H. schrieb:
> Hardy F. schrieb:
>> Route_66 H. schrieb:
>>> Du brauchst dann aber immer noch eine Erkennung pro Feld!!!
>
> Ich bezog mich auf die 64 Hall-Sensoren und die 64 Duo-LEDs: welch ein
> Aufwand an Material, Stromverbrauch und vielleicht auch Software!

Was hat Dein Reiseschach? Ein Taster für die Reihe und ein Taster für 
die Spalte? Er hat doch auch 64 Taster und die LEDs gab es zu Deinem 
Beitrag noch nicht.

Eine oder zwei LEDs pro Feld finde ich auch viel besser. Für das lernen 
kann das Brett dann alle möglichen Felder einer Figur anzeigen, soetwas 
geht nur mit 64 LEDs.

Hardy

von Norbert (der_norbert)


Lesenswert?

Hardy F. schrieb:
> Für das lernen
> kann das Brett dann alle möglichen Felder einer Figur anzeigen, soetwas
> geht nur mit 64 LEDs.

Oder mit einem der – im wahrsten Sinne – unzähligen Bücher über das 
Schachspiel im Allgemeinen und dessen Regeln im Besonderen. ;-)

von H. H. (hhinz)


Lesenswert?

Hardy F. schrieb:
> Was hat Dein Reiseschach? Ein Taster für die Reihe und ein Taster für
> die Spalte?

Mein Reiseschach hat keinerlei Taster.

von Hardy F. (hflor)


Lesenswert?

H. H. schrieb:
> Hardy F. schrieb:
>> Was hat Dein Reiseschach?
> Mein Reiseschach hat keinerlei Taster.

Die Antwort war für "Route_66 H.".
Ist das Dein zweiter Account?

Hardy

von H. H. (hhinz)


Lesenswert?

Hardy F. schrieb:
> H. H. schrieb:
>> Hardy F. schrieb:
>>> Was hat Dein Reiseschach?
>> Mein Reiseschach hat keinerlei Taster.
>
> Die Antwort war für "Route_66 H.".

Dann mach das per PM.


> Ist das Dein zweiter Account?

Sonst noch was?

von Jürgen F. (jrgen_f259)


Angehängte Dateien:

Lesenswert?

Hallo,
habe seit einigen Monaten mein Board fertig. ESP32 mit 
Python-Programmierung. Keine Bedienelemente, sondern nur HAL-Sensoren 
und zwei Status LED.
Man kann gepflegt eine Partie spielen, es beginnt immer aus der 
Startaufstellung und das Programm verfolgt die Figuren und prüft mit den 
HAL-Sensoren die Belegung.
Bewegung über Elektromagnet.
Problematisch war die Stromversorgung, sollte über normale 
USB-Versorgung funktionieren. Daher Step-Up-Regler und Pufferakku 
verwendet.

Gruß aus Bayern
Jürgen

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Jürgen F. schrieb:
> habe seit einigen Monaten mein Board fertig

Wie hast du denn die vielen Hall Sensoren mit dem Mikrocontroller 
verbunden?

von Al. K. (alterknacker)


Lesenswert?

Jürgen F. schrieb:
> Bewegung über Elektromagnet.
..recht interessant!?

MfG
alterKnacker

von Korax K. (korax)


Lesenswert?

Route_66 H. schrieb:
> Ich bezog mich auf die 64 Hall-Sensoren und die 64 Duo-LEDs: welch ein
> Aufwand an Material, Stromverbrauch und vielleicht auch Software!

Mein Chessmaster hat 64 Hallsensoren und 64 LED.
Der zeigt die zu setzenden Figuren direkt an. Sonst würde ja eine 
unprofessionelle seitliche Anzeige nötig..

von Jürgen F. (jrgen_f259)


Lesenswert?

Jedes Spielfeld erhält einen HAL Sensor vom Typ 49E.
Die Sensoren mit der Beschriftung nach oben, also zum Magneten der 
Figur, einbauen.
Die Ausgangsspannung des Sensors liegt z.B. bei Betriebsspannung von 
3.3V im Bereich 1V bis 1.6V.
Um Abwärme des 3.3V Linearreglers zu reduzieren mit 5V Betriebsspannung 
versorgt.
Bei falscher Magnetfeldrichtung besteht bei 5V theoretische Gefahr der 
Überspannung am AD-Eingang des Microcontrollers, aber nur bei sehr 
starken Magneten.
64 Felder in 4 Gruppen a 2*8 Felden. Jede Gruppe an einem Multiplexer 
78HC4067.
Die komplette Sensorik benötigt knapp 300mA.
Auf den ersten Blick Stromsparpotential durch geschaltete 
Spannungsversorgung um die Sensoren nur bei Bedarf zu versorgen. 
Praktisch wird das System die meiste Zeit das Sensorboard abscannen um 
Aktionen des Spielers zu erfassen. Daher nicht weiterverfolgt.

von Jürgen F. (jrgen_f259)


Angehängte Dateien:

Lesenswert?

Durch einen vorgeschalteten NPN Transistor kann der FET mit höherer 
Spannung durchgeschaltet werden. Die 3.3V vom IO-Pin des 
Microcontrollers reichen hierzu i.d.R. nicht aus.
Auch muss die Magnetspannung bei nicht initialisierten und daher 
hochohmigem IO-Pin sicher AUS sein. Signal ist daher invertiert, IO auf 
LOW schaltet ein.

von H. H. (hhinz)


Lesenswert?

Jürgen F. schrieb:
> Jedes Spielfeld erhält einen HAL Sensor vom Typ 49E.

Ein linearer Hall-Sensor ist hier unsinnig.

von Jürgen F. (jrgen_f259)


Lesenswert?

Leider nicht, durch den linearen Sensor kann ich das Board abgleichen 
und bekomme sehr eindeutige Belegungsinformationen die mir auch die 
korrektur unsauber gestellter Figuren (vom Spieler) ermöglichen.

Ich habe Figuren mit 20mm Durchmesser in 25mm Feldern.

von H. H. (hhinz)


Lesenswert?

Jürgen F. schrieb:
> unsauber gestellter Figuren

Das geht natürlich gar nicht!

von Korax K. (korax)


Lesenswert?

Jürgen F. schrieb:
> Ich habe Figuren mit 20mm Durchmesser in 25mm Feldern.

Wie will man denn bei dem Gedränge die Figuren unsauber stellen?

Beim „Chessmaster“ ist‘s 20/35 und die Magnete ziehen die Figuren in die 
Mitte des Feldes..

von Julian L. (rommudoh)


Lesenswert?

Jürgen F. schrieb:
> Bewegung über Elektromagnet.

Wie hast du das "Überspringen" von Figuren gelöst, z.B. wenn von der 
Startaufstellung zuerst ein Springer bewegt werden soll oder wenn später 
Figuren im Weg stehen?

von H. H. (hhinz)


Lesenswert?

Julian L. schrieb:
> Jürgen F. schrieb:
>> Bewegung über Elektromagnet.
>
> Wie hast du das "Überspringen" von Figuren gelöst, z.B. wenn von der
> Startaufstellung zuerst ein Springer bewegt werden soll oder wenn später
> Figuren im Weg stehen?

Magnet schnell umpolen, dann springt der schon. ;-)

von Jürgen F. (jrgen_f259)


Lesenswert?

Zuerst wird der Weg analysiert der gezogen werden soll.
Soll zwischen zwei Feldern in der Mitte durchgefahren werden, so werden 
diese zuerst zur Seite geschoben.
Dann wird der Zug ausgeführt und die verschobenen Figuren zurückgesetzt.
Ist eine einfache Verschiebeliste die erstellt und später reverse 
abgefahren wird.

von Hardy F. (hflor)


Lesenswert?

Jürgen F. schrieb:
> Soll zwischen zwei Feldern in der Mitte durchgefahren werden, so werden

Was ist bei einem Läufer von A1 nach H8, wenn auf B1, C2, D3 ... etwas 
steht?
Die 20mm passen bei einen 25mm Feld nicht durch die Lücke.

Werden die alle erst "verrückt"?

Hardy

von H. H. (hhinz)


Lesenswert?

Hardy F. schrieb:
> Was ist bei einem Läufer von A1 nach H8, wenn auf B1, C2, D3 ... etwas
> steht?

Dann muss er öfter schlagen.

von Jürgen F. (jrgen_f259)


Lesenswert?

Ja, zuerst wird verrückt. Wichtig ist noch, dass die Wegfindung immer 
Wege mit wenig störenden Figuren bevorzugt. Hierzu läuft die Wegfindung 
mit höherer Auflösung als 8x8. Ich verwende hierzu eine überlagerte 
17x17 Matrix um Felder und die Feldgrenzen abzubilden.
Der Springer läuft also lieber in großem Bogen zum Zielfeld.
Wenn aber z.B. aus der Startstellung der Springer loszieht, ist es 
natürlich auch nicht zu vermeiden.

von Spess53 .. (hardygroeger)


Lesenswert?

Hi

>Ja, zuerst wird verrückt. Wichtig ist noch, dass die Wegfindung immer
>Wege mit wenig störenden Figuren bevorzugt.

Na ja. Bltzschachtauglich wird dieses krude Konzept wohl nie werden.

MfG Spess

von Hardy F. (hflor)


Lesenswert?

H. H. schrieb:
>> Was ist bei einem Läufer von A1 nach H8, wenn auf B1, C2, D3 ... etwas
> Dann muss er öfter schlagen.

@H. H. Was soll er da schlagen? Die Figuren stehen auf den Nachbarfelder 
der Zugstecke. Richtig hinschauen hilft!

Hardy

von Steve van de Grens (roehrmond)


Lesenswert?

Jürgen F. schrieb:
> Soll zwischen zwei Feldern in der Mitte durchgefahren werden, so werden
> diese zuerst zur Seite geschoben.

Wow! Ganz schön aufwendig.

von H. H. (hhinz)


Lesenswert?

Hardy F. schrieb:
> H. H. schrieb:
>>> Was ist bei einem Läufer von A1 nach H8, wenn auf B1, C2, D3 ... etwas
>> Dann muss er öfter schlagen.
>
> @H. H. Was soll er da schlagen? Die Figuren stehen auf den Nachbarfelder
> der Zugstecke. Richtig hinschauen hilft!

Schachregeln sind nur was für Weicheier. Es wird einfach en passant für 
den Läufer eingeführt.

von Jürgen F. (jrgen_f259)


Lesenswert?

Im Normalfall wird ja immer direkt gezogen, es ging mir darum ein 
"schönes" Brett zu haben mit einem normalen Größenverhältnis von Figur 
zu Brett.
Und nebenbei, einfach kann jeder!

Blitzschach verhindert eher meine Schach-Engine, die läuft in Python auf 
dem ESP32 nicht wirklich schnell (Tiefe 4-5, 30s im Mittel beim alten 
Bratko Kopec Test, aber habe das ganze ja auch nur gebaut um alte 
Linearschienen meiner ersten Fräse zu recyclen.

Hat sich hier jemand schon mal an das Ankoppeln an Internet-Schach 
angesehen?
Da das Board WLAN kann ...

von Hardy F. (hflor)


Lesenswert?

Hallo Jürgen,

Dein Aufbau gefällt mir, eine sehr interesante Variante der 
Verschiebung. Hast Du eventl. vor Dein Projekt etwas näher vorzustellen? 
Ich bin auch ein Vertreter der Langsamspieler. Es sieht bestimmt lustig 
aus, wenn die Figuren zu Seite gehen um dem Pferd Platz zu machen ...

Hardy

von Jürgen F. (jrgen_f259)


Angehängte Dateien:

Lesenswert?

Hier mal meine Baubeschreibung, für Ideen und Verbesserungen bin ich 
immer offen. Rechtschreibfehler dienen der Unterhaltung und sind zu 
ignorieren.

von Al. K. (alterknacker)


Lesenswert?

Perfekt für ein Schaufenster, da könnten die "Seher" auch mitspielen.

Wie hoch ist die mechanische Fehlerhäufigkeit?

MfG
alterknacker

von Jürgen F. (jrgen_f259)


Lesenswert?

"Normalerweise" geht ein Spiel ohne Fehler durch.

Eine State-Maschine überwacht die Eingaben des Nutzers, da sind viele 
Varianten möglich und am Anfang habe ich mit jedem Spieler was neues 
gelernt...

Die Sensorik und Mechanik an sich ist in Ordnung, der Magnet könnte aber 
die Figur exakter positionieren. Obwohl der Abstand Magnet zur Figur mit 
4mm echt minimal ist, ist die Magnetfeldbündelung nicht optimal und die 
Figur wird etwas nachgeschleppt und ruckelt daher manchmal.

Evtl. kleine Magnete als Inlays einarbeiten um in der Mitte des Feldes 
ein Rastmoment zu erzeugen, aber dann wird die Sensorik wieder schwer 
...

von Uwe B. (uwe_beis)


Lesenswert?

Jürgen F. schrieb:
> der Magnet könnte aber
> die Figur exakter positionieren.
Ich schätze, dass die Feldlinien des Magneten nicht genau symmetrisch 
außen um ihn herum ausgebildet sind, wenn die Position der Figur nicht 
genau darüber ist. Vielleicht wäre es möglich, mit 3 Hall-Elementen, 
außen um den E-Magneten herum, direkt unter dem Brett, die Asymmetrie zu 
erkennen und durch leichtes Hin- und Herfahren ("ruckeln") die Figur 
besser zu positionieren.
Nur so 'ne Idee...

von Al. K. (alterknacker)


Lesenswert?

wie und wo stellst du die geschlagenen Figuren ab?

MfG
alterknacker

von Jürgen F. (jrgen_f259)


Lesenswert?

Geschlagene Figuren werden in einer 9ten Reihe (mit etwas Abstand, also 
Reihe 9 1/2) abgestellt, aber in engem Raster sonst reicht der Platz 
nicht.
Dies verhindert leider den automatischen Wiederaufbau des Brettes.
So werden nur die Figuren auf dem Feld zurückgestellt, die geschlagenen 
muss man leider per Hand zurückstellen.
Habe Größenlimit, das Spiel musste in eine vorhandene Vitrine passen ...

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.