Hallsensorfeld fuer Schachcomputer
==================================
Es werden 64 Hallsensoren von einem Atmega1284P angesteuert.

test2.cc          alle Sensoren testen
kartonschach.cc	  Schachprogramm, Hallsensoren-Auswertung
                  und Benutzerfuehrung auf 4-Zeilen-LCD
schach-engine.cc  Eigentliches Schachprogramm, zum berechnen
                  der Computerzuege.

Sensorenauswertung funktioniert schon ziemlich gut.
Meistens werden ausgefuehrte Zuege richtig erkannt,
und wenn nicht fraegt das Programm zurueck.

Schachprogramm funktioniert bis Spielstaerke 4 mit eigener Engine.
Spielstaerke 0 ist sehr schwach, aber sehr schnell.
1 nur wenig besser aber immer noch schnell.
2 etwas besser, einige Sekunden bis etwa 1 Minute pro Zug.
3 spielt schon einigermassen gut, braucht aber einige Minuten pro Zug.
4 einige Stunden pro Zug

Fuer ein wirklich starkes Schachprogramm ist stockfish auf einem
Raspberry Pi vorgesehen.
Stockfish ueber UART mit Linux aufgerufen funktioniert.
Mit Raspberry Pi noch nicht getestet.
Spielstaerken 1 bis 10 ergeben schnelle Antworten und spielen
deutlich besser als eigene Engine.


Noch zu tun:
------------
siehe Bemerkungen im Quellprogramm "kartonschach.cc"
(Stand 1.Jan.2017)

Aenderungen Februar 2023:
--------------------------------
Verbindung mit UART zu Stockfish unter Linux funktioniert.
Autostart von serusb auf Linux geht auch.

Weitere UART-Verbindung zum Microcontroller, der die Schrittmotoren
des Schachroboters steuert, mit Soft-UART realisiert.

Weitere Anpassung gemacht um auch mit gedrehtem Brett zu spielen.
Es braucht dabei nur die Skala gedreht zu werden.

Information was fuer eine Figur gezogen wird, wird jetzt auch zum
Roboter-Controller gesendet.
Bei Sensorproblemen wird jetzt angezeigt welcher Sensor es ist.

Neu ab 21.3.2023:
-----------------
Das Programm ist jetzt fuer die neuen Sensoren mit Spulen angepasst.
Fuer Version mit Hallsensoren diese Zeile auskommentieren:
#define SPULENVERSION

27.4.2023: Test auf 3 mal gleiche Stellung, und 50-Zug-Regel eingebaut

Neu ab Maerz 2024:
------------------
Erweiterung fuer Schach960
noch Fehler:
- Mit Startstellung STSLLKTD ist schon als erster Zug g-Rochade erlaubt,
  Programm will es aber nicht akzeptieren. Auch nicht spaeter.
  Fehler gefunden, korrigiert. Noch testen.

Neu ab 19.9.2024:
-----------------
Bei Rochade im Schach960 kann jetzt auch zuerst der Turm wieder gesetzt werden.
Koenig muss nach wie vor als erstes entfernt werden, dann der Turm.
Danach musste vorher zwingend zuerst wieder der Koenig gesetzt werden. Wobei
wenn es der Roboter macht, setzt er auch zuerst wieder den Turm.
