Schach-Computer mit dem RaspberryPi
Nicht immer ist ein passender Schachpartner in der Nähe und
manchmal ist für eine gute Schachpartie auch einfach die Tages- oder Nachtzeit
nicht kompatibel. Schachcomputer und Online-Schach sind Alternativen. Aber natürlich
war der Grund für mein Projekt ein anderer, nämlich einfach: "Geht das
oder geht das nicht?"
Die Aufgabenstellung: Baue Dir einen Schachcomputer mit
einem ganz normalen Spielbrett, einer Kamera und einem Computer. Eine Webcam
über dem Brett erkennt die Stellung der schwarzen und weißen Figuren und
antwortet auf Züge mit einem Gegenzug per Sprachausgabe.
Die notwendigen Tondaten (2x8 WAV-Dateien für die Felder und
weitere fünf Dateien für die Figuren)
waren schnell aufgesprochen.
Sobald ein Zug ausgeführt ist, nimmt die über dem Brett
installierte Kamera ein Foto auf. Der PC analysiert das Bild und übergibt die
jeweils neu erkannte Stellung per "Universal Chess Interface" (UCI)
Syntax an eine Schachengine. Diese errechnet dann den Gegenzug, übermittelt ihn
ans Hauptprogramm zurück, welche diesen über eine Sprachausgabe bekannt gibt.
Der Computerzug wird dann vom menschlichen Spieler auf dem realen Brett
ausgeführt.
Eine OpenCV-Anwendung
erkennt die Stellung der Figuren und gibt sie der Schach-Engine bekannt.
Vergrößern
.
Die in C++ geschriebene ChessCam-Software beherrscht sowohl
Rochaden als auch das Schlagen "en passant" sowie die
Bauernumwandlung. Daneben protokolliert sie sämtliche Spielzüge in einer
PGN-Datei (Portable Game Notation) und informiert den Spieler, wenn eine der
wichtigeren, namentlich bekannten Spieleröffnungen erkannt wurde. Die
Bilderkennung selbst basiert auf dem freien Sofwarepaket "OpenCV".
Als Schachengine kann prinzipiell jede UCI-fähige Software dienen. Für den
Praxistest kam die freie Engine "Fruit" zum Einsatz.
Eine Webcam über dem Brett erkennt die Stellung der
schwarzen und weißen Figuren und antwortet auf Züge mit einem Gegenzug per
Sprachausgabe. Für Bilderkennung und Schachengine kommt freie Software zum
Einsatz.
"Weiß beginnt,
Schwarz gewinnt" - Spielen Sie doch einmal Schach gegen den Computer mit
lediglich einem gewöhnlichen Schachbrett - und Ihrem PC.
Sobald Sie Ihren Zug
ausgeführt haben, nimmt die über dem Brett angebrachte Kamera ein Foto auf, der
PC analysiert dieses und übergibt die neu erkannte Stellung per "Universal
Chess Interface" (UCI) Syntax an eine Schachengine. Die errechnet den
Gegenzug und übermittelt ihn per Sprache an Sie zurück. Sie führen den
Computerzug nun auf dem realen Brett nach und dürfen sofort über Ihren nächsten
Zug nachdenken.
Die in C++
geschriebene ChessCamera-Software beherrscht sowohl Rochaden als auch das
Schlagen "en passant" sowie die Bauernumwandlung. Daneben
protokolliert sie sämtliche Spielzüge in einer PGN Datei ("Portable Game
Notation") und informiert Sie, sobald eine der wichtigeren namentlich
bekannten Spieleröffnungen erkannt wurde.
Im eingebauten
2-Player-Modus wird lediglich die Partie zwischen zwei menschlichen Gegnern
mitprotokolliert.
Keine Kommentare:
Kommentar veröffentlichen
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.