Let's Make Robots!

Chess Playing Robot V1 (replaced with V2)

 
patrickmccabe's picture
pwns at chess
Cost to build: 
$150

 

Description: 

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

 

THE CHESS BOARD:

 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.

READING THE SENSORS:

 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. 

mult.jpg

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.

MOVING THE PIECES:

 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.

 

 THE STRATEGY:

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!!

 

THINGS TO BE BE DONE:

 fix the servo problem

fix the shift register problem

write the very long code 

PEOPLE WHO DESERVE A THANK YOU LETTER:

Telefox

Krumlink

BigRich

Caption Obvious

Voodoobot

*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

-program

-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.
Raeven's picture

Would it be possible to create metal chess pieces each with a different resistance so that the board could read the resistance per square to determing the piece type?

BaseOverApex's picture

You mentioned in your video issues with the string. Have you tried fishing line? Or garden strimmer line?

This project is stunning, by the way!!

patrickmccabe's picture
i do want to try fishing line, it has been one of my ideas from the start. I have someone in my house how thinks fishing line is a terrible idea.... so i havent tried it yet.
BaseOverApex's picture

I've used it to drive steering sheels of model cars from servos. The fine stuff can be very stretchy, but because it's so fine, you can wrap a few turns of it round your mechanism and (unless your chess pieces are exceptionally heavy) you should bearly notice it.

You mentioned that string needed to be reasonably taught, but if it's too taught it doesn't work. This is probably because the servos don't have live bearings (well, the expensive ones do but the cheap ones have only solid copper/brass bushes). As you tighten teh string, you increase the bearing friction.

The additional bonus with fishing line is that, being so fine, you can wrap it around each pulley wheel several times to increase the friction without putting any sideways pressure on the bearing.

g_code's picture

I think that nylon(fishing line) will be a bad idea, its too strechy.

I have seen a smooth looking string before and it had a few strands of wire in it to reduce its elasticity. I dont know what its called But I am sure this kind of thing would work.

Not sure if you can get wire rope light enough for what you are doing.

 

patrickmccabe's picture
yeah might end up switching to a stepper motor to move the top like the cnc machines
g_code's picture
Best way to go
g_code's picture

Good going Patrick you can be darn proud of your self.
Your documentation and openness of this project is sure going to score you points in this world.

I am sure that one of your biggest problems is placing those pieces down on the board.
Am I right?
If so i may have a few solutions and options for you.

patrickmccabe's picture
well i am working on the chess piece sensors and the new analog circuit i have added. I have yet to actually place a piece down. It does seem that it may be accurate enough so im not too worried about it at the moment. I do need to update this once i have time to work on the sensor code, maybe tomorrow. I do find that the pieces some times do not read, usually the solution is some sanding over the tarnishing metal.
g_code's picture
To me it seems that the wires are too irregular. (not flat enough) this is giving you very little contact area and therefore sensitive to any corrosion or tarnish build up. This irregularity will also make the pieces unstable and more difficult to place.
The ideal situation would be 3 flat heat copper nails in a triangle (a three legged bar stool never wobbles right?) you only use 2 in your wiring and the 3rd is just for support.
Keeping the heads of the nails level and all tree at the same height could be achieved by driving the 3 nails at once with a flat block.
You could also think about putting a neodymium magnet on the board between the wires. You would then also need to have a steel plate at the base of each piece or another magnet.
I would lay the magnets into the wood so that they are lower than the wires. This way the gap between the magnets and steel plate allows for a weaker clamp force. It will be like the magnets are just making the pieces heavier and attracted to a centre point.
You can get the magnets in all sorts of shapes and sizes and the right ones will not affect surrounding pieces.
Just some of my thoughts, I am always too critical and it may just work fine as it is.
The ultimate situation would be to get some proximity sensors below the board, these will switch as soon as the piece is in place, i.e. a short distance away.