The Plan

During the construction of my ALU, I learned about the FPGA, which my Digital Design class from the semester previous had failed to teach me about. My next project goal then became to build something powered by an FPGA in order to continue my practice of hardware design while avoiding the use of breadboards, which after doing many projects with the breadboard, I became temporarily disinterested in doing another.

I figured robotic arms are cool (among the few other project ideas I was considering) and would serve as a perfect first project for my introduction to the world of FPGA’s.

I decided I wanted a retractable arm design and an arm that could rise above or below its surface level so that it could easily be mounted to a car or something. I found no similar robotic arm on the internet, so I decided to pioneer and proceed with the design because it’s cool.

Researching the Problem

For my first FPGA project, I figured the cheap “RioRand EP2C5T144 Altera Cyclone II FPGA Mini Development Board” would suffice, and it did perfectly! With 58% of the logic elements to spare after compilation, and more than enough I/O for my servos. I wanted the IR receiver functions of the robot to also be controlled by the FPGA, but after much research I found pretty much no resources of other people doing the same. I came to the conclusion that the FPGA would have to be made into some sort of analog to digital converter for it to interpret the IR receiver, because of this and my limited time frame and FPGA experience, I opted to using an Arduino nano for IR receiver inputs and outputs to the FPGA.

Developing the Solution

This robot is constructed with random planks of wood I bought from Michaels craft store and Gorilla Glue epoxy, along with 8 metal gear Longrunner servo motors and wires I had around. The servos are powered by a 10 amp peak battery eliminator circuit so that my servos could draw as much current as they desire.

I chose wood because I wanted the robot to be as sturdy as possible, and it certainly is. I’m no machinist, but I had a hand rotary tool, so I purchased some saw blades and got to carving.

In Retrospect

The weakest link to my arm design is my servo motors. The small metal gear ones are strong but not strong enough. Unfortunately, this arm can’t really carry anything over 20grams, which is very light. If I were to re-create this arm, I would use way thinner wood, or a light plastic, so that my servos don’t have to use all their power supporting themselves instead of the load. Or I would use stronger servo motors, but the stronger ones are usually much heavier, so I would still have to consider that in my design.

Heres the VHDL code:

Additional Images