Instructables
Picture of Autonomous Control of RC Car Using Arduino
This instructable shows how to modify an inexpensive RC car so it can be controlled by an on-board microcontroller.  You can program the controller to make the car do any number of driving patterns and stunts.  Once you have the car being controlled from the on-board controller, you can add sensors for light and sound and make the car do things like line following.
 
Remove these adsRemove these ads by Signing Up

Step 1: Gather Materials and Tools

Picture of Gather Materials and Tools

I used the following materials:
-RC Car - el cheapo from Walmart.  It cost $6 at my local Walmart.
-Arduino - I used the Duemilanove purchased from Sparkfun, (www.sparkfun.com)
-4 1000 Ohm 1/8 Watt resistors (color code BRN/BLK/RED). The value of the resistors is not critical.  Anything within 50% should work.
- 1/16th inch heatshrink tubing to insulate the resistors after they're installed
- 22 AWG solid  wire.  You'll need five wires, 6 to 8 inches long. I used Black for the Ground and White for the 4 control wires.
- a small amount of solder
 - 2 rubber bands
- 9V battery clip that plugs into the Arduino, also available from Sparkfun

Tools you'll need are:
- small (not tiny) Phillips screwdriver
- wire stripper
- soldering iron
- "third hand" to hold resistors while soldering wires to them
- small tip diagonal wire cutters
- desoldering tool or braid
- tweezers or small needle-nose pliers



Step 2: Disassemble the Car


For this step, you will take the car apart.  First, clip off the antenna using a strong pair of cutters.  Then, remove the four screws that hold the body on the chassis and separate the body from the chassis.   Next, remove the two screws that hold the internal electronics cover. Discard this cover.

Step 4: Hack Into The Car's Electronics


Unscrew the single screw holding the printed circuit board (PCB) to the chassis.  Carefully turn the PCB over and screw it back down temporarily.  Now, using small tip wire cutters, carefully clip each lead on the controller chip.  Be sure not to cut any other leads or wire on the PCB. Remove and discard the controller chip.

Step 5: Connect the Wires

100_3819.JPG
100_3820.JPG

Flip the PCB back over.  Using a solder sucker or solder braid, unsolder and clean out the holes for pins 2,6,7,10 & 11.  Be careful not to use too much heat to avoid damaging the PCB.  Prepare four resistor/wire assemblies as follows: Solder solid 22 gauge white wire to a 1K Ohm resistor.  Make a total of four of these resistor/wire assemblies.
Insert and solder the resistor leads (the ones not connected to the wire) into the holes for pins 6,7,10 & 11.  After soldering, slip a piece of shrink tubing over the wire all the way down to the PCB.  Shrink the tubing with a match, lighter or tubing shrinker.

Install and solder a solid black wire into the hole for pin 2.

Mark the white wires with stripes so you'll know which wires control the different functions.
1 stripe - Left signal - pin7;
2 stripes - Right signal - pin 6;
3 stripes - Reverse signal - pin 10;
4 stripes - Forward signal - pin 11;

Step 6: Route the Wires and Reassemble the Car


Drill a 3/8" hole in the rear of the car body for a place where the wires will come outside the car.  Place the body on top of the chassis while threading the wires through the hole in the trunk.  Screw the body and chassis together using the 4 screws previously removed.

Step 7: Attach the Arduino


Using rubberbands, attach the Arduino to the roof of the car.  Strip the ends of the wires and plug them in to the Arduino pins according to how the program works.  Also attach a 9V battery holder and plug it into the Arduino.

Next connect the black wire into the GND pin on the Arduino.  Then connect the white wires to the Arduino as determined by your program.

These statements in the Arduino program determine which pins the white wires plug into:
int forward = 12; // forward pin
int reverse = 11; // reverse pin
int left = 10; // left pin
int right = 9; // right pin








Step 8: The FUN! Part

Picture of The FUN! Part

Attached to this Instructable is the Arduino sketch used to make a car go into a continuous figure 8 and a video showing a car doing various tricks.

Some things to remember:
1.  Put batteries in the car.
2.  Make sure the car is turned OFF.
3.  Connect the 9V battery to the Arduino.
4.  Verify and Upload the cartest sketch from your computer into the Arduino.
5.  Disconnect the programming cable.
6.  Turn the car on - it should start running immediately.

If you're new to the Arduino, you can find all the information you need and the programming software at www.arduino.cc

Have Fun!!!


DhruvMC2 months ago

Is a good instructable i am going to use it with pygame with a usb extender to connect the cable to my Arduino Uno R3.

Still Making It

odin135 months ago

Great instructable! This is the essence of hacking.

I have one problem though; when the car is off the ground, everything appears to be working but, when I put it down, it doesn't move.

The only thing I did differently was not use hookup wire, I'm using jumper wires instead. Could this be the reason?

Akbar137 months ago

I used your RC car instructable to make a light following car. Thank you for your instructable! Below i included a link to my light follower:

http://www.youtube.com/watch?v=RQoxJT3ieIQ

brownuk88 made it!9 months ago

I've not long finished this project. Now I'm looking to add sensors to prevent crashes. A great one to start with for sure.

rc.jpg
serouja9 months ago
great project, is it possible to use raspberry pi gpio. thnx
the code is not complete
careyfisher (author)  brasilfingers11 months ago
Yes it is.
hendriono1 year ago
Awesome Project! Thanks... I will try it...
hibrahim21 year ago
great tutorial but i have a question about the voltage level in the PCB that came with the car
(i have once connected sensor to the arduino but the arduino was representing HIGH by a different voltage range than the sensor)
should i connect the GND & VCC of the PCB to the arduino's GND & 5v pins ( i have seen someone doing so) or what should i do ? is the PCB connected to the batteries that drive the motors in some way?

thanks a lot
careyfisher (author)  hibrahim21 year ago
The car runs on its own batteries and the Arduino runs on its own 9V battery. Do not connect any wires between the Arduino and the car PCB except for those shown in this Instructable.
Thank you for watching!
leeseibert1 year ago
I am in the middle of a Project similar to this. See my video here:
https://www.youtube.com/watch?v=SPLlTAVeIf8
Zthewiz1 year ago
Awsome Project!
Erdekim1 year ago
Will i be able to use the pins with pwm to control the speed of the car?
R. Butch2 years ago
This comment is to "Careyfisher" (the author of this page).
I have used some of your pictures if you don't mind. I have given all credit for pictures to you/this page.

Thanks

Visit my blog

http://wordpress.as.edu.au/rbutcher/
Chowmix124 years ago
5/5* Ible! Loved it! i believe it will be featured soon! Very thorough. get back to us with some sensors and cool lighting effects, ya?
I have done this and it is very cool. Check out my blog. It is for school but scroll dow to "Videos of it doing stuff".

http://wordpress.as.edu.au/rbutcher/
will this work with any type of RC car that has that setup or is it a specific chip thanx
This should work with all RC cars. One thing you need to do though is not to use the same pins. They will be different. Test this by soldering a wire directly onto positive (from the battery) and put any resistor with red on it on the end. Then touch the wires and they should do stuff. Most wont do anything but four will do either forwards, backwards, left or right.
okporuatega2 years ago
can i use an arduino pro for this project or only an arduino uno will do?
playlee3 years ago
I follow your step by step, then I can drive the motor, but I have one question, how do you know the resistor should be 1K Ohm ?
careyfisher (author)  playlee3 years ago
I really just used a resistor value I had available. +/- 50% will work fine.
playlee3 years ago
For pin's usage, I refer to RX-2B spec. just right as the author said :)
eladrin2013 years ago
Which Arduino specifically did you use. I can't seem to find the Duemilanove you mentioned on Sparkfun. thanks.
careyfisher (author)  eladrin2013 years ago
The Duemilanove has been replaced by the Uno. They are essentially identical with a few improvements that won't affect this project.
zack2474 years ago
very interesting! if you took the arduino chip out of the programming board or got a smaller version you could even fit it all inside the car! 5*s
wfelix zack2473 years ago
Or get a bigger car :D.
But I think he made this as a concept proof.
careyfisher (author)  wfelix3 years ago
I really did it this way to make it quick and easy for Jr. High kids to put it together and have fun playing with it during a summer camp.
nicat234 years ago
Very cool I will have to try this when my arduino gets here!
Same here. I can't beleve it takes a month to ship from china...
z28racer4 years ago
for Karonth you can cut the tracks on the PCB and put diodes in to protect the chip, the problem is when the Arduino and you are telling the H-bridges to go forward and backward at the same time it will ruin them. I am trying to find a way around the same problem. anyone with ideas? For amazing1 most of these cheap RC cars use 1 of two very similar chips with the same pin out.
karonth4 years ago
I have a very similar RC car and I'm trying to build a self driving rover out of it, but I'd like to keep the RC circuit as a fallback solution.
If I don't remove the receiver chip and I solder the arduino wires piggyback style, do you think it could work or would I just fry the chip.
Thank you, great instructable!
amazing14 years ago
i just have one question, How did you know what pins to clean out and use? because if i am trying it on a different car that uses a different chip how do i figure out what pins to use, and to hook up to my arduino. this was a very good instructables by the way. Thanks
careyfisher (author)  amazing14 years ago
There are two ways to figure out which pins to use. First, try to figure out the part number of the chip on the board in the car. Then Google for it and see if there is a data sheet or something. The other approach is to figure out where the H-bridge is that drives the motors. The pins on the chip will connect to driver transistors that drive the H-bridge. HTH