This is a bit of a mess, but itThe next step is to connect it all to the Arduino and start tweaking the program to work interface with the chess engine.
After about 18 hours of drilling, soldering, and gluing, I have completed the majority of the wiring for the chess board. There are 64 Hall sensors, one for each chess square. Thankfully the Hall sensors can share a common power and ground, which reduces the number of wires. After testing each individual sensor, I liberally smothered the solder points in hot glue to prevent jostling from causing anything to break loose.
The next step is to wire up the multiplexing chips and figure out how to turn the sensing into chess moves. I'm not looking forward to wiring up all the multiplexers. Thankfully, I have the 3rd season of Walking Dead on Netflix to keep me company.
Devin and I made a LEGO trebuchet for his monthly science project. I thought I'd share. The two videos show the first and second incarnation of the trebuchet as explained by Devin. In the second incarnation, we put a hinge on the counterweight and properly attached the sling.
Tonight I installed the hall sensors to the underboard for my robotic chess board and began wiring. I ran the ground wires and soldered all the resistors between the Vcc and the output pins on the hall sensors. Good thing there were some people around HackPittsburgh to keep my company. Enjoy the pictures.
I wanted to post a quick update about the chessboard. I have tested using several Hall sensors simultaneously using a multiplexer (MUX). The multiplexing chip I chose allows for the controlling of 16 sensors while using only 7 pins on the Arduino. Since there are 64 squares on a chessboard, I will need 4 MUX chips. Adding additional chips only requires 5 additional pins per MUX, bringing the grand total to 22 pins, 20 of which needs to need to be I/O. This is approaching the number of pins on my Arduino UNO and I still have to drive three motors to move the chess pieces. I have two simple options at this point, buy an Arduino Mega, which has a near infinite number of pins (54 digital I/O and 16 analog inputs) compared to the UNO (14 I/O, 6 analog), or I can use a fifth MUX to offload some of the pins. Thankfully, the MUX chips I bought are I/O and therefore will allow me to switch through the 16 pins on each of the other 4 chips. Since I already have 5 MUX chips and I don't want to spend the $60 on the Mega, I'll give this a try first. I might try offloading the sensor work to the Raspberry Pi and use the Arduino for only motor control in the end. I haven't tried using sensors with the Pi yet so I don't know how well that will work. Anyway, I made a little video where I'm driving four Hall sensors with the Arduino through a MUX. Everything seems to be working fine. I didn't do all 16 because it would have been a wiring mess on the tiny breadboard and the sensors would be close enough to for multiple to be tripped a once when the magnet is near by. On the chessboard, they will be far enough to avoid magnetic bleeding (a term that might not describe what I mean, but I like it enough to keep it) away and there will be more space to wire everything correctly. The next step is to start wiring together the sensor array, which I will work on this weekend.
I took a little hiatus on the robotic chessboard project I have been working on to better plan out some of my methods. I decided that the sensing of the position of the chess pieces will be done by Hall sensors. I will place a Hall sensor under each square of the board. The kind I bought are essentially switches which turn when one polarity is brought towards the sensor and turns off at the presence of the other magnetic pole. I put small magnets in the bottom of each chess piece. In the first video, you can see that the chess piece activates the hall sensor, which lights the LED. I then use the opposite pole of the magnet, which I glued to a stick, to reset the sensor. (Sorry for the vertical nature of the video. One of these days, I'll remember to consistently hold the phone sideways when recording.)
For the operation of the robotic chessboard, these latching Hall sensors pose a problem. As shown in the above video, the sensors would not turn off when the pieces are removed. Hall sensors that do not latch are nearly twice as expensive at the latching kind. This adds up when 64 are needed. I solve this problem by using a digital pin on the Arduino to control the power input to the Hall sensor instead of the 5V pin. This idea comes from the comments on Sparkfun. As you can see in the second video, the sensor now detects the presence of a magnet.
The next step is learning how to control 64 inputs on the arduino with a mux chip, which allows for control of 16 hall sensors using only 4 pins on the arduino. The next update will hopefully show a full chess board which detects where the pieces are or at least progress in that direction.
It turned our really well. He decided to sand the plastic tube at the end and we put some plastic wrap at the far end to catch and diffuse some of the light there. It turned out better than the one I covered in tissue paper. Perhaps I'll redo that one when the 5 year old breaks the tube off. It's only a matter of time. Here are some pictures of the finished lightsabers.
Tonight I went to the hardware store and bought some l-brackets to attached the tube to the base of the lightsaber. The tube is made out of a plastic florescent light cover. Then, I stuffed some tissued paper in the far end and put some plastic wrap over the end. After that, I wrapped the tube in tissue paper. I have included pictures of various steps and the finished product. I also put a 9V holder in the bottom to stop it from rattling around.
I'm trying to keep my 5 year old's hands off it until Halloween because the tube is fragile and he wants to use it for his costume. We'll see how long that lasts. Devin doesn't like the look of the tissue paper so we're going to try something else with his. He's going to take some fine sandpaper to the tube to turn in cloudy and put some aluminum foil over the far end to reflect some of the light back. If that works, maybe I'll redo this lightsaber in the same way. I don't really like the wad of tissue I have glowing at the end.
Anyway, this project has been pretty fun and very simple. I'm really happy with out the handles turned out .
As I said before, my 9 year old is working on making a lightsaber for his monthly science project. Or course, whatever the 9 year old has, the 5 year old wants. I decided to assemble a light saber for the little guy tonight so I know how much work the older guy is going to have to do.
In this post, I am only showing the base of the lightsaber. It's quite straightforward. I am using four super bright LEDs from Sparkfun, two 220 ohm resistors, a 9V battery, and a switch. For the housing, I cut down some PVC pipe and bought some fittings for the end. The most expensive piece of equipment is the switch at about $4. The entire lightsaber comes in under $10.
As an exercise, I had Devin (the 9 year old) use this website, which generates a circuit and the necessary resistors for a given number of LEDs. It's a good tool and perfect for a child with very little knowledge of Algebra. I'll include a schematic of the LED circuit below. I have also included pictures from throughout the project.
After I finished James' (the 5 year old's) light saber, Devin decided to solder his up tonight too. They both turned out rather well. All that is left is attaching the tube.
The other day, I ordered an OWI Robotic Arm from Amazon. It is by far the least expensive robotic arm I have seen. I also purchased a standard double-weight tournament-style travel chess board from my local gaming store. It's pretty much this. The OWI arm has a large range of motion and the motors provide enough torque to lift the heaviest even at full extension. I took a little video of my using the arm with the remote control to move a queen around. As you can see, I am still having trouble figuring out the controls. Also, you can hear my kids making some craft ghosts for Halloween in the background.