Skip to content

karmanyaahm/chessbot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChessBot: Automated Chessboard

Overview

ChessBot is an innovative project developed by the IEEE RAS - Demobots team. It is a CNC-inspired automated chessboard designed to enhance the experience of playing chess. Using an actuated electromagnet gantry system, ChessBot can move magnetized chess pieces across the board autonomously, allowing for a seamless game between two players or against a computer-controlled opponent. The project aims to merge the ancient game of chess with modern technology, providing a unique and interactive experience.

Features

  • Automated Piece Movement: Moves chess pieces using an electromagnet on a step-driven gantry system, controlled under the board.
  • Magnetized Chess Pieces: Each piece is magnetized for precise and secure movement. Piece movements are detected via 3D magnetic sensors underneath each square.
  • Player vs. Computer Mode: Play against an AI with adjustable difficulty settings.
  • Two-Player Online Mode: Enjoy an enhanced tele-chess experience with automated piece movements that reflect your partner's movements from across the internet using Lichess

Software

  • python/bitboard_move_analysis_test.py
    • test script for testing how to keep track of the game board and moves made using "bitboard"s generated by the chessboard sensor system
    • All the user-input code is just to act as a stand-in for getting a bitboard from the chessboard sensor system, this script is really meant to test comparison of bitboards and move tracking/legality. Its still a WIP as of writing.

    bitboards

    • are 64bit integer representations of the entire chessboard. 8x8 squares = 64 squares, so a digital for each individual square, that digit is 1 when a piece is on the corresponding square and 0 when a piece is absent from the square.
    • So far we arent using any "standard" bitboard implementations, as our situation is a tad unique. Most chess engines that utilize 12 bitboards, one for each piece type, ( [pawn + knight + bishop + rook + queen + king] * 2 teams = 12 piece types).
    • Here is a diagram of how each space on the chessboard is indexed in the bitboard, the number at each square is the digital that is either high or low depending on if a piece is there or not. For example, square a4 is position 32
        8 |  0  1  2  3  4  5  6  7
        7 |  8  9 10 11 12 13 14 15
        6 | 16 17 18 19 20 21 22 23
        5 | 24 25 26 27 28 29 30 31
        4 | 32 33 34 35 36 37 38 39
        3 | 40 41 42 43 44 45 46 47
        2 | 48 49 50 51 52 53 54 55
        1 | 56 57 58 59 60 61 62 63
           -------------------------
           a  b  c  d  e  f  g  h
      

TODO

  • Assemble and test chessboard PCB's - each is an individual rank of the board that connect together.
  • Develop control system - decide on MCU and highlevel / lowlevel control segregation
  • Fill this section in with what we have left to do lol

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 53.4%
  • C 34.1%
  • Python 10.9%
  • Nix 1.5%
  • HTML 0.1%