Step 2Parts
1) Arduino Duemilanove w/ ATMega328
This is the newest Arduino, and since I just got it a few days ago I have the newest one. However, the code is small enough that it should easily fit on any Arduino. It could probably even fit on an ATTiny (if I build a robot controller apart from the Arduino, the ATTiny 2313 looks like a good choice, it's smaller and cheaper but still has plenty of outputs and a serial UART interface)
2) Vex Robotics Platform
I got a Vex kit a few years ago to build a radio-controlled robot to pick up stuff for a high school competition. I constructed the basic "square bot" base that has 4 wheels driven by two motors. You could substitute other robot bases if you have some other platform you want to drive. The important thing to note is that Vex motors are essentially continuous rotation servos, they use pulse-width modulation to signal how fast and in what direction to turn. The Vex motors are nice because they have a high range of operating voltages, somewhere between like 5 to 15 volts. I'm using 12V because I had a 12V battery. For most standard hobby servos, you'll need a lower voltage (often 6 volts).
3) Battery
A robot is useless without a power supply. For testing I use a standard 9V wall-wart adapter from RadioShack, but for cordless operation I found a 12V NiMH battery pack in an ancient laptop. Although it doesn't hold enough of a charge to run the laptop it drives my Vex robot just fine. It can also power the Arduino using the Vin input pin on the power connector, the Arduino will regulate the 12V down to 5 and even output it out the 5V output pin on the power connector.
4) Basic Breadboard
I'm currently using a breadboard to wire everything up. Eventually I'll get a nicer prototyping board and solder on some more permanent connections but for now the breadboard makes it easy to change things. My breadboard is SparkFun's "basic breadboard", just a breadboard on a metal plate with 3 terminals.
5) MAX232-based RS232-TTL converter
If you want to drive your robot using an RS-232 serial port connection (as opposed to the Arduino's built in USB) you can use an RS232-TTL converter. I'm using a MAX232 because I had a few of them lying around and I soldered it on a little piece of prototyping board with the required capacitors. I need RS-232 because my old laptop only has one USB port and I'm using that for a game controller to drive the robot.
6) Extra parts as desired
For easy debugging of the serial protocol, I put an RGB LED on it (got one with my Arduino order cause they sounded cool). The light flashes red, green, blue in sequence when the Arduino boots up to show the robot has rebooted and then lights up Green when a motor packet has been received, Blue when a fan packet has been received, and Red when a bad or unknown packet has been received. To drive the fan I used a standard NPN transistor (the same ones I demonstrated in my last Instructable) and a resistor in between the transistor and the Arduino (the transistor was drawing too much current and heating up the Arduino, so I put a limiting resistor in to stop it).
| « Previous Step | Download PDFView All Steps | Next Step » |
![]() |
Add Comment
|











































