Let's Make Robots!

Chess Playing Robot V1 (replaced with V2)

pwns at chess


This is my first version of my chess robot. I gave up on this one and built version 2.

Yes it is a crazy idea that will be hard to do. With that stated this is how i plan to do it.



 Will be a custom made board that will have 2 metal contacts on the top of each square and a metal contact on the chess piece that will connect the 2 and make the input high. It will most likely have a box like base where all the electronics will go. Will have stripe like encoders on the side.


 The idea of multiplexing has come across multiple times when i ask how. But i found that multiplexing does not work and i will explain why one last time. Lets say there is a piece at (1,2). Now if there was a piece at (1,4) and (4,2) then line 1 and 2 are high and where the lines in the graph cross show that there may or may not be a piece there, either way it would be HIGH. 


There were some other ideas thrown around but i went with Krumlink's idea of using parallel to serial shift registers. This sounds like the best idea. It will take 8 of them for the 8 rows on the chess board.


 This will be done using a gantry crane setup. It will use 2 gear motors to drive it back and forth over the chess board. It will be on a rail so it doesnt move from its course. It will have a servo gripper that too will drive on a rail back and forth over the chess board. It raises and lowers using a string and a reel. Im thinking one Tamiya dual gear motor box can be used to drive the arm and raise and lower it. There will be alternating white and black stripes on the side of the chess board so the gantry crane can move to the right places and keep track of where it is. This will be used on the top of the gantry crane as well to keep track of the arm. It will use a Pololu line sensor to read the line.



If i have to write in the strategy myself than it wont be the best. I plan on putting a seek and destroy startegy that acts unlike you would think, to catch you off guard. If any one knows of where i can find strategy written in C please dont be shy, tell meeeeeee!!



 fix the servo problem

fix the shift register problem

write the very long code 





Caption Obvious


*i may have forgot some but i know the list will get longer. 

Select ratingCancel ratingPoorOkayGoodGreatAwesome



I now have my PSU. And i think im going to use a gripper and not an electromagnet.

I still need to go get some wood to start building but i think ill start this weekend.  Oh i also got my shift registers. 

Here is a drawing of how im making the gripper raise and lower. I still dont have a design for the gripper itself. You can see that it raises and lowers using a rack and pinion. It slides up and down on a rod and the whole thing slides on a "sled" over the board.


The gear for the rack and pinion fits tightly on the tamiya dual gear box that is on one of my robots. So i will be buying one to use on this robot that will move the "sled" and arm.


My modified power supply is finished. A 10w 10ohm resistor was added on the inside (bye bye warranty) as a load. And a switch was added. All the connectors were cut off. 



Here is my motor driver board. It is just 2 l293d's with the ground and power wired up. It will be able to drive 4 motors. I also have a chip for the servo which i will add later. 




 Here is my board for my 8 parallel to serial shift registers. The back is all the traces made for the chip and for the pullup resistors. They are 3 radioshack boards zip tied together.




Below are pictures of the base of the chess robot where all the electronics are housed. It is not complete yet. It is missing the xmos board. The base is made out of thin plywood and just nailed and glued together. It is 12"x24"x4", so its not too big or small. 




Ok so below is all of what ive done so far all together. I got 2 drawer rails to use as the base of the gantry crane. They have very low resistance so i hope the gms' can move the crane. That is about the exact lay out so not much in looks will change besides the crane which is the next big part. I cant build the crane till i finish the base.  








ok a lot of building has been done since the last update. This update may not be huge in size but in the amount of work that has been done.

lets start with what has been done since last time

-finished the shift register boards and the chess board sensors.

- built the gantry crane

-mounted all the motors

- made a sliding system on top

- built a gripper

-built a raising and lowering system

-painted last encoder


things left to do are:

-place encoder sensors

-mount the gripper

-long story but need new l293ds


-add cool sound effects


Lets get into some depth. The crane was built at 8 1/2" high X 17" long. The railing system on top is two metal poles with a carriage that rides on two tubes back and forth on the rails. A string will be looped once around the motors spool to move the carriage back and forth. The gripper was made using 2 gears i had left over from making the gear box. The rack and pinion idea was dropped and now it is lowered and raised by a string on a spool. There are 3 poles acting as guides for the gripper as it lowers and raises. The gripper is just short enough to not run into the king as it moves around. It has some counter balancing "weights" to make it balanced (duh). All the extra wire in the air is so the motors can easily move with some slack. The wires for the encoders and the servo must be added. I taped the gripper up in its position to show how it will look, that was just for demonstration purposes only. Some foam was added to the grippers fingers because it was no holding onto the pieces with out it. Well thats about it. The best part is all the pictures so here they are.











update 11.08.2009

well this is the second video. Basically the gripper is mounted and the working encoders are on. I am starting to have problems with the shift registers giving me 11111111. When it should be 11000011, it was working before. I do not know what the problem is but that is next to fix. The servo, i do not know what to on this. It just does not work. It only works when it is by itself in the main loop telling it to stay in a position. Do servos just stay in their positions when not told to do anything else?

the gripper is mounted but the string needs to be changed. The one i use stretches so i need to buy some good string. I bought a arduin mega.Sorry about all the clearing of my throat in the video. I think the solder fumes are getting to me ;) 



update 11.14.09

Well today i went to radio shack and bought some capacitor hoping that today i could fix my servo noise problem. Well thanks to telefox and his schematic

i was able to get rid of the servo noise making this whole update possible (putting him on the thank you list at top). But there are still a lot of problems  with the robot. Some or code problems and others are physical problems. The code has not yet been good enough to allow the robot to go to every square mainly know because it goes 1 square past where told to go. The physical problem may provide that answer to the code problems. The string is very limiting, it is either too tight, too loose, but never perfect. So maybe the string idea will be abandoned. I have lots of problems with no ideas for solutions. I am working as fast as i can and at this pace my estimation for the completion of the robot is set for maybe April 2010 (very rough estimate, may be over estimating myself). More problems have come after that video. The motor that raises and lower the arm is getting stuck every now and then causing great strain on the motor and making the string wrap around the shaft. 


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Great Idea, I would say try a webcam but the codings probably require too much complex video coding. They also sell premade boards and pieces that have software recognition built in. I was also a top 5 polo champion, and an avid online solitare player ; )



Yes i dont like the idea of all that recognition stuff. Hey i will redelete this post and try it a third time if i must. No more from here down. http://www.jahandar.ir/Chess-Playing-Robot/
he has to use the XMOS processor board, and I don't know if it has RS232, which would require interface to a computer, and with the limited pins on this board, I don't know how viable that is for him.
ahh i didnt know the specifications of the board, I assume it has serial though. price wise, the serial resistors seem like a much better idea.


Patrick, here is my multiplexer idea I mentioned before. It`s easier to explain with this crappy drawing. In place of the switches, image 2 terminals where the resistor in the bottom of the chess piece will make a connection.

You would have to parse through it 1 row at a time. So for the first row, switch digital 1 on HIGH and digital 2 and 3 on LOW. If there are any pieces sitting on the first row, you can read their resistance with the analog ins 1 2 and 3. Do the same for rows 2 and 3, switch 1 to LOW and 2 to high, read analog ins, then switch 2 to LOW and 3 to HIGH and read all the inputs again.

i see that you came up with a way but i have already set forward on using the parallel to serial shift registers. Thanks though :).

Fair enough, those shift registers are cheap as chips anyway :)

Are you going to keep track of all the pieces positions in memory? I guess you would have tobe able to tell the MCU where you are moving your pieces for it to know.

Just to be fair, patrick and I picked over the multiplexed switches, becaues if you have one at 3,1 and 1,3, then at 3,3 and 1,1 or something lke that it shows there is a object there, which may not always be the case. We can use parallel to serial shift registers though, he just needs help with the code for the sampling of it.

  I've been following your Chess Robot XMOS entry and have a few thoughts. I see you have selected the shift registers for your project. This may work with them. I was thinking of suggesting Hall effect sensors to be put into your chessboard and have a small magnet in the base of your chess pieces to activate them. They work identical to a Sharp IR sensor. I am looking at an Allegro model that is .13 x .19 x .03 in size. 3-wires. You could even use (6) different gauss strength mags to sense which piece is in that square. I will look for the model number if you are interested.

  I threw this sketch together for a "gripper". Just make an electro magnet as shown and use a SG90 servo to raise/lower it. You would have a steel disk glued to each chess piece. Iron rod would stroke about .25 inches with the servo. Cycle the magnet with a transistor and output pin. It would take a bit of experimenting to size the coil based on the weight of your pieces.


I do like the idea but there are alot of questions that i would need to answer on this setup. I dont know how many coils of wire or how many volts would be the best. Nor do i know what metal to use on the chess piece or how big but not too big. I will need to find some light weight pieces like plastic. Also the magnet cant be too strong and pull other pieces near it. It also needs to completly de-magnitise(is that a word?) or it may not let go of the piece like some electromagnets do.  And it needs to put it down perfectly so it doesnt fall over or rock off the metal sensor. About the coil, is having a wire with no load bad for the power supply? Basically its just a wire going to + and - which normally is bad for a battery but im using a PCU. Over all though it is not a bad idea but i dont see a advantage yet over a mechanical gripper. I may need some convicing even though i get this suggestion over and over agian.