Let's Make Robots!


Avoid object via ultrasound, indicate turn-direction with two LEDs, turn on its "head lights" when it enters a dark area, (Possibly RC/autonomous in the future)

This is my first robot (actually I made one a few weeks ago that was not so good...just so I could see something moving--instead of just lighting up LEDs and such). I set out to gain understanding of a few things that I know will be necessary for my future robot building--fundamentals (Use of two seperate power sources, modifying servos, more soldering on a PCB (Ive done some in the past), making use of switches, unexpectedl...learning how to organize components in a small space, and other various things. Now for the details...


The chassis of this robot is an XBOX 360 PSU case (my old one died, I bought a new one, and uses the old case for this robot). I think it works very well as it is easy to drill through/dremel, its an enclosed case, and it is approximately the proper shape. The tires/wheels were on clearance at radio shack for $0.97. The 7.2V 1200 mA batter was also on clearance for $4.97 (regular price about $40.00). I believe these parts are made for an RC car that RadioShack sells...and perhaps this RC car product was discontinued.


What the robot will do:

1. Drive around aimlessly and avoid running into obstacles (via ping)

2. Two "antennas" will be attached to the head (not pictured above). Each antenna will have an LED attached to the end to indicate whether the robot is about to make a left or right turn.

3. A photocell will measure light. When the lighting becomes too low, the robot will turn on his head lights...even though he doesn't need them.

4. Perhaps for more fun, he will occasionally stop and dance a little jig for us. Eh...I changed my mind. I don't really feel like doing that with this robot...he doesn't even have any arms...I'll save it for a future bot.

5. He will do nothing useful except make myself and (hopefully) others laugh.


Current Problems:

1. A while back I modified two Traxxas serovs for continous rotation by simply drilling out the "final" gear so that it would not rotate the potentiometer. This worked very well and when I told the servo to go to 90 degrees (center), the servo stopped very well. However, the potentiometer in these Hobbico servos are VERY sensitive. Simply drilling out the gear that rotates the pot was not enough, and after only about a minute of rotation, the servo would no longer stop when told to go to 90. So, my (incorrect) solution to this problem was to simply detach the servo (in the code) when I wanted it to stop and then reattach it when I needed it to start again. This works fine--but only if the servo is powered via the 5V pin on the arduino. I tried this yesterday with the servos being powered by the 7.2V battery (5V through a 7805 Voltage regulator), and the servos do not stop when detached. They continue doing whatever they were doing until I reattach them and tell them to do something different. I'm sure someone here can tell me why it does that...and that I wasn't being all that brilliant trying to stop the servos with myservo.detach().

UPDATE: 19 July 2009

I found the solution to the problem above. I had not been grounding the separate power source circuit to the Arduino. You all probably simply assumed that I had done this because apparently it is well known that you have to do that. Now I know.

Some photos...


ABOVE: Separate power source test setup (before I learned that it must be grounded to the Arduino).




I might have a video up soon. The servo that turns the head has a pretty weak case and it somehow just popped open. I don't think its actually broken though...luckily.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

"A photocell will measure light. When the lighting becomes too low, the robot will turn on his head lights...even though he doesn't need them."

 I love that idea!

Yeah, its just one more thing to give it character.
Yeah, I never thought of doing something like that. But still, these things are so sensative...I would probably be adjusting them constantly. Seriously, a few times...I blew on the pot and that was enough to make the servo start turning....sensative.
On some bots, I've notice the servo center change with battery charge level.

I`m not sure why the detatching the servos when connected through the arduinos 5v stops them but it doesn`t on the 7.2v pack.

What you should do is pull apart the servo again to get access to the pot and adjust it back to center. Give the servo a center pulse, then turn the pot until the motor stops. Stick a dab of glue or nailpolish around the pot, should stop it moving again. The gear was probably just rubbing against the pot arm making it slowly move.

Cool idea for a base. I heard those PSUs were big hot buggers (no xbox here).

Yeah. I was kind of confused by the servo issue myself. When I originally modified these servos, I actually did put super glue around the pot and let it dry for several hours. It worked for a while, but ultimately failed. The pot is all metal, so that probably doesnt help the glue bond well. I might just have to go ahead and replace the pot with 2 resistors. I've got to do some more research on how to do it, but as far as I understand you just have to measure the total resistance of the pot and then replace it with two resistors which approximately sum up to the total resistance of the pot. Then you must find the pulse at which it stops moving. Apparently you can adjust the max pulse width in the software to make it so that 90 degrees makes the servo stop moving.

And yeah...those xbox 360 PSUs can get warm. Mine never actually got too hot...it just make a really loud electrical buzzing sound one day...and the xbox turned off.

There's a servo hack that takes the pot shaft out the side, through a drilled hole. Can adjust center when ever you want.