Sonntag, 21. Dezember 2014

RaspberryPi als Schach-Computer


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.