This post covers the base of the arm, and putting it together. I have built the base with my partner, along with a rudimentary claw. We are almost done, we just need to attach the two. It has been lots of fun, and I hope that we will do well in regionals for Science Olympiad.

So, to start off I will go over the parts. We ended up buying 4 servos: one for the base to rotate left and right, one for base up/down, on for up/down, and one for the claw opening and closing. We bought one servo driver board, and one Arduino. We were able to make the body out of duct tape, paint stirring sticks, and a some screws. It is surprisingly stable for the price of all of those items put together.

The total cost of the arm so far is pretty low. I’ll post some numbers once the competition is over.

TO build the base, you need a box of some sort. We went to hobby lobby and bought a generic wooden crate, but you can experiment with any box. Next, we drilled a hole in the top of the box, to allow the servo to rotate side to side. We have one servo under the box, for side to side, and one over, for up and down. Currently, the one on the top is unstable, but it is working.

If you were to build the arm, and put it on top of that base, you would notice that there isn’t anything to stop it fro tipping over. I recommend trying to use your power supply as you counter weight, but if it is too light, you can use 2 pound dumbbells like we did. They are heavy enough to cover the weight of the arm flailing around and stop the entire contraption from tipping over.

That is the base. Here is a quick photo of the arm itself, shaking hands. Pretty cool, eh?
IMG_20160221_183609.jpg

Now, on to the code and technology. We are using Arduino code to drive the servos, but all of the values that change come from the computer. The computer is connected to joysticks. The joysticks are able to move the arm, and rather smoothly. There is some code to stop it from jerking around.

The data that is being sent is formatted like this:
rightxrightyleftxlefty,rightxrightyleftxlefty,rightxrightyleftxlefty,
You get the idea. For each one of those, we are sending forward, neutral, or backward. All of these are being sent over the Serial protocol, which is hooked up over USB.

The code to do all of this is located on the computer and written in Javascript. It is using a Javascript run-time called Nodejs, and I have mentioned Node before on this blog. The code check the joysticks, and spams the Arduino with the values every 20 milliseconds. This way, there is no easily identifiable delay between the two.

Finally, here is some video of the entire thing in action.

https://www.youtube.com/watch?v=Y9GKIAr99GQ&feature=youtu.be

See you all next post! In part four, I’ll include how we did, what I learned, and what I would change.