Step 1: Gather Your Materials
-Arduino Uno (The Brain)
-4xAA to barrel jack holder (Power for the Brain)
-9V Snap Connector (Power for the motors)
-Dual Motor Gearbox
-Motor Driver (Logic Controller between Arduino and Motors)
-Resistor 10k Ohm
Two minute maid juice lids were used
with rubber bands wrapped around them
Any good sized cardboard box
(Go buy a towel with the change in case panic ensues)
Some additional notes about the parts list:
Batteries not included.
There are multiple colors of hook up wire that can be used. For the sake of being able to see how I wired everything shown in later steps I used multiple colors.
I did use jumper wires for the leads on the motors again for the sake of having a different color. The hook up wire should suffice.
Step 2: Gather Your Tools
-Sharpies (Red, Green, Black, Blue)
Step 3: Assemble the Gearbox & Attach the Wheels
1. If you are using gorrila glue it takes about 2 hours to dry and harden completely.
2. The gearbox assembly is the most complicated portion of the construction.
If you are using gorilla glue remember that both surfaces need to be wet in order for the glue to activate.
Use of a hot glue gun reduces the time by quite a bit and reduces the amount of mess created.
Sparkfun provides a wonderful tutorial on assembling the gearbox linked below.
Step 4: Soldering the Leads on the Motors
Now to move on to the wiring of the breadboard and arduino.
Step 5: Prep the 9V Snap Connector
I found a piece of heat wrap to put around the loose wires so they would not catch on anything and provide them with a bit of protection.
Step 6: Preparing the Bread Board
The Top left pin is pin one. The Top of the H-Bridge Can be determined by looking for the indent in the chip.
Color the bread board with the sharpie markers accordingly.
All GND/Ground slots will be black.
All 5V/Power slots will be red
All of the motor ports will be green
All of the ports going to the logic pins on the arduino board will be blue.
I put a black or red line above and below each column on the left and right of the board as a visual reference that the entire column is charged or grounded.
Instructables provides a great description of how breadboards work in the link below.
Step 7: Wiring the Breadboard and Arduino
On the H Bridge pins 1 and 9 (1,2EN, 3,4EN respectively) need to be connected to a pin on the arduino that has a "~" so that it can receive speed signals.
Cut the wire longer than you need it. You can always shorten a wire, making one longer is difficult.
The Positive and Ground leads seen attached to the far right of the breadboard belong to the 9V snap connector.
I ran out of black wire and though green is commonly used as a color for ground/negative lines I used a sharpie to color them black for visual purposes.
You do not need to bend the wire or even cut them as exactly as I did, again this was for visual purposes only and is a bit more difficult than necessary.
Step 8: Adding a Photoresistor
Step 9: Prepare the Box
Cut slots for the wheels.
Step 10: Connect the Motor Leads to the Breadboard
Use Electrical Tape to adhere the gearbox to the cardboard box.
Step 11: Finishing Touches
You have completed the construction of Box Bot!
Step 12: Box Bot in Action
Note: During the course of making the bot run around I found out a few things.
1. It is actually more secure to tie down the gear box by using some of the hook up wire.
2. Make sure the wheels are centered in the video my bot drags a little to the right and I believe this is because of having an off centered wheel.
You can copy & Paste the code below(I attempted to attach the file several ways and it would not show up.):
*Simple arduino code
*to show off capabilities
*of the robot
*Comments to the side of any code is
*"If you have never used arduino before,..."
//define a pin for the photoresitor and its threshold
int lightPin = 0;
int threshold = 750;//In the room I was working in 1000 was really dark
//and 525 was really bright you might have to play
//around with this value depending on your setting.
//Define and initialize motor variables
//Motor speed range is from 0 to 255 (Slowest to fastest)
int speedPin1 = 9;
int motor1APin = 4;
int motor2APin = 3;
int speed_value_motor1 = 64; //quarter speed
int speedPin2 = 10;
int motor4APin = 12;
int motor3APin = 11;
int speed_value_motor2 = 64; //quarter speed
//initial setup before the loop begins
Serial.begin(9600); //Begin serial communcation
//This will only affect the arduino
//when it is connected to the PC
//Set the digital pins as outputs for the left and right motor
//This is what actually runs
if(analogRead(lightPin) > threshold )//Reads in the serial value if it is dark do the code within the brackets below
Serial.println("dark"); //Will only show when connected to PC used for testing purposes
else //Otherwise (if it is not dark) do the code within the brackets below
Serial.println("bright"); //Will only show when connected to PC used for testing purposes
//this method calls the appropriate methods to
//cause both motors to rotate in such a way
//that moves the bot forward
//This method makes only the right
//motor to rotate in a forward direction
//puts the motor in the forward motion
//This method makes only the left
//motor to rotate in a forward direction
/This method causes both motors to come to a full stop
//Sets the speed to 0 causing the left motor to stop spinning
//Sets the speed to 0 causing the right motor to stop spinning