Go Down

Topic: PROJECT FOR CHESS ENTHUSIAST - Electronic board  (Read 185 times) previous topic - next topic

Mastino

Hello,
Hope to find on this forum chess enthusiast who would like to spend some time to create chess board that connects to popular online web chess sites like chess.com, lichess.org.

Little bit about project - I read in forums from many other people(the same problem I have too)
that when you play on computer or mobile device, after it is very difficult to play chess in reality on the real board. And in case you are successful in chess you will need to take part in real tournaments with real boards..     

The PROBLEM - playing chess on computer or mobile device is very different than playing on the real board.

The SOLUTION - board that connects to popular online web chess sites. When you move figure from one position to another the same happens on virtual board. When your opponent moves figure on virtual board from one position to another, on your real board will start flashing two squares. The first square will show you which figure has the opponent moved and the second flashing square will show you to where he has moved. When you move opponents figure to the right place, the squares stops flashing.


There are DGT chess boards that works similar, but they are little bit expensive and they don't flash :)
they tell you coordinates of opponents move.

If this project will have success, we can make site on which will be posted open source code and plans for the board. So everybody can make it.

I am not so strong in programing, but I have some experience with modeling and planing, also I have 3d printer and wood workshop. I think I can do the board for me and for all active members of a project. I believe that the board it self must be easy to make for everybody. So it should be made from laser cut parts or 3d printed parts. So everybody around the world can just download the plans, order the parts and assemble them.
At now I can't show you any plans of board, because:
1. Alone I can not make this project, so no need to start, if nobody join.
2. I do not know exactly which sensors and hardware will be used, so it is difficult to plan something..

But to prove you that I am able to make some parts for this project, video from my last work:
https://youtu.be/M5vjoIY3lGg


So if you like this project and you believe you can add something useful, you are welcome! 
This topic will be posted on couple different forums(chess forums and electronic forums). If there will be people who will want to join this project, we will create extra forum or some place where we can chat all as team. There are a lot of solutions for teamwork.
But for now, I just leave my email: romanmastino@gmail.com
Just write me a little letter with your name and what kind of job you can do(web additions, ide programing, hardware modeling, board modeling).
See you!
 
 

PaulS

You realize, I hope, that it is not just the board that needs modification. How is the board going to detect that you picked up the Queen? How is it going to detect that you placed it on row 7, in column 3?

You could embed an RFID card in each of the 16 pieces. RFID cards are relatively cheap, so 16 of them won't make the spouse go "No way, the kids need new shoes!".

The problem, though, comes from needing 64 RFID readers, of a size that will fit in a conventional chess board, and of needing a microcontroller with 65+ serial ports, to read all the RFID readers. Now, 64 RFID readers just might cause the spouse to out a foot down. On some part of your anatomy that should have a foot put down on it.

Even if you get that one past the spouse, a Mega can read only 3 readers, and still have a serial port to talk to the PC. So, you'd need 22 Megas to read all the RFID readers. You'd also need a PC with 22 USB ports, and an application on the PC capable of reading 22 serial ports simultaneously.

The RFID reader won't tell you that piece was picked up. It will only tell you that a piece was put down (and which one, of course). The supervising application would have to assume that the piece that was put down was picked up from the board, and update its matrix appropriately.
The art of getting good answers lies in asking good questions.

robtillaart

The computer knows the location of all pieces at start are in place.

It knows that white starts.

moving a piece on the board means that the computer sees  (assuming white's turn)

1) a white piece dissapear at some place and see a piece appear at another place.
    This is a plain move, ==> check if allowed. ==> update location table
2) a white piece dissappear at some place, a black piece dissappear and a piece appears on the spot where
the black piece was.
    This is a "hit"(?) move
3) similar the switch of king and tower (roccade?)
4) pawns may hit "en passant"
5) promotion of pawns is difficult as one does not know what to promote to (ok 95% promotes to queen)

so there is no real need to have all pieces extended with RFID imho.

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Mastino

I though the easy way is to print top part of each square from PETG plastic. The color will be black and white, but IR light of the sensors will penetrate this plastic. We can place one sensor under each square, sensors like CNY70, they are cheap.

PaulMurrayCbr

This project will be easier if the board does not need to keep track of which pieces are white and which are black.

When a move is recieved from the remote source, flash the from and to squares until from is empty and to is not empty.

When it detects a square becoming empty and then another becoming occupied, prepare to send the move to the remote. The move should actually be sent only when the player hits the 'ok, that's what I wanted to do' button. For players accustomed to using chess clocks, this will come naturally.

Issues: capturing, castling (K and Q side) and en-passant.

The main difficulty is not sending and receiving the moves, but the gear that 'contains' this process - establishing a connection to the server, the flow of control of setting up the game. This is one reason why it would be helpful to only manage the minimal problem of detecting moves and not having the board try to track the game. What if you want to set up a problem or a position and play it out? If the board manages the actual game, then you have to write code to manage all that. Far simpler to just have a button that says 'ok, board, the position is set up - commence receiving and transmitting moves'.

A great deal depends on what API is provided by these online sites, how easy/difficult it is to hook into it. It is quite a problem to establish a session on the web browser and then to transfer that session over to this board. The board would need login details, session ids. It migh be possible to write some sort of browser plugin that 'hijacks' the web page that talks to your online server and talks to your board. Plain javascript almost certainly can't do it - it would be a considerable security risk.

The programming is not trivial, is what I am saying. You may need to build the board in such a way that it just does lighting up and detecting moves, and have an additional program runnning on the computer to talk to the board on one side and the server on the other.
http://paulmurraycbr.github.io/ArduinoTheOOWay.html

PaulS

Quote
means that the computer sees  (assuming white's turn)

1) a white piece dissapear at some place
How will it see that? For any definition of see that you like?
The art of getting good answers lies in asking good questions.

PaulS

Quote
We can place one sensor under each square, sensors like CNY70, they are cheap.
How will you assure that a sensor under one square does not see a piece on another square? How will you assure that the player places a piece where the sensor can see it?
The art of getting good answers lies in asking good questions.

Mastino

How will you assure that a sensor under one square does not see a piece on another square? How will you assure that the player places a piece where the sensor can see it?
Actually very easy, the walls between squares can be made from black ABS plastic, so IR light will not penetrate it. That means that the sensor will ''see'' only his square. And the second question, you can point the IR light in the centre of the square. So it is not important how you place the figure, if you place it in this square it will so and so close the centre of the square.
But it seems that hardware(sensors and board it self) is not that problem. The bigest problem is to connect it to chess.com or other online chess platforms. The more I read and think about it, the more I understand that it is a very very big and hard job to realize it. 

PaulS

Quote
The more I read and think about it, the more I understand that it is a very very big and hard job to realize it. 
I'm not familiar with any of the online chess platforms, but they must accept some kind of input, that could be made by making an appropriate GET request. If so, then connecting the Arduino with ethernet or WiFi shield, and making the appropriate requests, would be easy. It's getting the data for the request (which piece moved where) that is the hard part.
The art of getting good answers lies in asking good questions.

Go Up