Introduction: The Race Car!!!!

The race car (as pictured above) is an "Audiuno" powered machine. Meaning that once programmed it has the potential to perform any action, interact with objects and be able to sense objects around it. Did I mention that this can be done WITHOUT A REMOTE which makes this experience a whole lot more worth while. The Audiuno is a clever little device which can be attached to essentially anything that can move. For example; remote controlled cars, planes or boats (you get the idea). In this step by step instruct-able a hand held race car that was once remote controlled will be transformed into a self-reliant Audiuno powered machine. Of course, it is completely up to you about what it is you actually want it to do, but a basic figure 8's program has been loaded onto this instruct-able for your benefit.

The essential part of this instruct-able is to keep on testing! The main problem I faced during completing my car was the fact that I "assumed" certain parts would work. It is very important that throughout the instruct-able, you are constantly checking and testing every part of your car (even if you hadn't worked on that particular part in that day). I hope you enjoy making this instruct-able and that it turns out to be a massive success!

Step 1: Meet and Greet! (Getting to Know Your Car)

The first and probably the most important step of this whole instruct-able is the getting to know your car. This essential step allows you to figure out what it is you need and what needs doing. Firstly, check out that the car is in working order, to do this you'll need to give it a "test run" which is as simple as fitting it with batteries, turning it on and examining/ observing the following things:

  • Going forward and reverse (Does the car actually go?)
  • Does the left and right turning work?
  • Brakes (Can it stop?)

Now that you have examined your car and have observed that all vital commands are woking, it is now time to start taking the car to bits! In the next step we will dismantle the car so that the REAL cool stuff can be done.

Step 2: Dismantling the Car

The next step is to dismantle the car itself so that the all the wires and the circuit board are visible. It is important that you have clear access to the circuit board because some wires will have to be removed and new ones placed in. To dismantle the car, simply unscrew the car's frame so it comes completely off and all the wires are revealed. Be careful when unscrewing the car's frame and do not throw out any screws unless they are completely wreaked. Now, you should start to observe the many wires and of course; the circuit board which is a VERY important part of the car, so don't destroy it. You should now remove the antenna (if it has one), to do this I have simply cut it off with a pair of wire cutters and then unsoldered the place on the board where the wire connects to the antenna. Over the next few steps, you should ensure you have the following pieces of equipment:

  • Remote Controlled Car
  • The "Audiuno" + Computer lead
  • Rainbow Wire
  • Screw-driver
  • Soldering Iron
  • Solder
  • Hot Glue Gun or Tape
  • A Computer
  • Wire cutters

Step 3: Wires and More Wires!

Using a solder sucker, unsolder and clean out the holes where the four commands are on the circuit board are found. To do this, place the jumper leads to the batteries + power source and testing different locations. As you can see above, Iv'e located the four commands and then removed the existing wire and placed the four new ones in them. Be careful not to use too much heat when soldering and melting the existing solder to avoid damaging the car. Prepare your four resistor/wires by attaching a resistor to a longer wire, this ensures the wires will be able to reach their specific location. Insert and solder the resistor leads (the ones not connected to the wire) into the holes. After soldering, slip a piece of shrink tubing over the wire connection to stop the connection breaking. Now, place the leads into the opposing end of the four jumper leads to the Arduino by attaching them to a 5 way pin connector and place them into pins;

10 = Forward Signal

11 = Reverse Signal

12 = Right Signal

13 = Left Signal

GND = Ground Lead

Now you have completed this crucial step, it is a good idea to test the four commands again to make sure that they are in the correct place. If they are not, then just unsolder the place where you placed the existing wires and position them on the real place on the board.

Step 4: Don't Go All "Tech-y" on Me! (The Audiuno)

The "Arduino" is the main source of action in this instruct-able, it is the main point of control the car has. The first thing you should do is connect the Arduino to the computer via the USB cord. This is essentially the only way to get information to your car, so it is important that you have this connection. To have your Arduino more secure, you should either glue or tape the Arduino to the strongest part of the car, I've used a hot glue gun to attach the Arduino to the roof of the car. Once this is done you should connect a battery holder (9V in this case) to the USB port from which you connected the Arduino to the computer. But this is only temporary because the program still needs to be loaded on (see next step). In my car, I was able to use the original battery holder in the car as the main power source. If you have a direct wire that will connect the battery to the cars circuit board and the Arduino, you can do this too. If not then you can also glue the battery holder and battery to another part of the car and connect it to the Arduino via the USB cable.

Step 5: Loading the Program

Loading the program to the Arduino sounds very difficult, doesn't it? Well, it is really quite simple because I have attached a program that instructs the car to perform a figure 8 - This will ensure you don't have to write up the whole program. To upload the program, plug your Arduino board into the computer and open the Arduino's application. Now, copy and paste the program above into the application and click on "verify" which checks if the program is valid ( If an error occurs, try it again). Next, click "upload" and the program will be transferred onto the Arduino's board. Then disconnect the Arduino from the computer. Now you are set!

/*

Car Test

Makes the modified RC car go in a figure 8.

Plug the striped white wires into the Arduino pins as

*/

int forward = 10; // forward pin

int reverse = 11; // reverse pin

int left = 12; // left pin

int right = 13; // right pin

// The setup() method runs once, when the sketch starts

void setup() {

// initialize the digital pins as an outputs:

pinMode(forward, OUTPUT);

pinMode(reverse, OUTPUT);

pinMode(left, OUTPUT);

pinMode(right, OUTPUT);

}

void go_forward()

{

digitalWrite(forward,HIGH); // turn forward motor on

digitalWrite(reverse,LOW); // turn revers motor off

}

void go_reverse()

{

digitalWrite(reverse,HIGH); // turn reverse motor on

digitalWrite(forward,LOW); // turn forward notor off

}

void stop_car()

{

digitalWrite(reverse,LOW); // turn revers motor off

digitalWrite(forward,LOW); // turn forward motor off

digitalWrite(left,LOW);

digitalWrite(right,LOW);

}

void go_left()

{

digitalWrite(left,HIGH); // turn left motor on

digitalWrite(right,LOW); // turn right motor off

}

void go_right()

{

digitalWrite(right,HIGH); // turn right motor on

digitalWrite(left,LOW); // tune left motor off

}

// the loop() method runs over and over again,

// as long as the Arduino has power

void loop()

{go_forward();

delay(1000);

go_right();

delay(3000);

go_forward();

delay(1000);

go_left();

delay(3000);

go_forward();

delay(1000);

go_right();

delay(3000);

}

Step 6: Pulse Width Modulation!

In a nutshell, PWM is a way of digitally 'slowing' down your machine. Through the use of high-resolution counters, the duty cycle of a square wave is modulated to encode a specific analog signal level. The PWM signal is still digital because, at any given instant of time, the full DC supply is either fully on or fully off. The voltage or current source is supplied to the analog load by means of a repeating series of on and off pulses. The on-time is the time during which the DC supply is applied to the load, and the off-time is the period during which that supply is switched off. Given a sufficient bandwidth, any analog value can be encoded with PWM. It is quite possible that during the construction of your car you will have to use this, especially if you intend to attach sensors (which I have not).

Step 7: Off It Goes...

Once the car is working, you have successfully completed the first stage of creating a machine that runs on it's own. Now you are unlimited! You have the choice to do a range of things with your car. In the next step, another program will be given to you which will make the car go round a 2m by 0.5m table.

Step 8: Making Your Own Program

Now you have made the car perform a figure 8, it is time to make the Arduino do what YOU want. This can be anything from writing a letter on the ground to having it go around a table. Here I have loaded yet another program that does exactly that; go around a table. I hope you are successful in creating your own Arduino powered car!

int forward = 10; // forward pin

int reverse = 11; // reverse pin

int left = 12; // left pin

int right = 13; // right pin

void setup() {

// initialize the digital pins as an outputs:

pinMode(forward, OUTPUT);

pinMode(reverse, OUTPUT);

pinMode(left, OUTPUT);

pinMode(right, OUTPUT);

}

void go_forward()

{

digitalWrite(forward,HIGH); // turn forward motor on

digitalWrite(reverse,LOW); // turn revers motor off

}

void go_reverse()

{

digitalWrite(reverse,HIGH); // turn reverse motor on

digitalWrite(forward,LOW); // turn forward notor off

}

void stop_car()

{

digitalWrite(reverse,LOW); // turn revers motor off

digitalWrite(forward,LOW); // turn forward motor off

digitalWrite(left,LOW);

digitalWrite(right,LOW);

}

{

analogWrite(forward, 100);

digitalWrite(reverse,LOW); // turn revers motor off }

void go_left()

{

digitalWrite(left,HIGH); // turn left motor on

digitalWrite(right,LOW); // turn right motor off

}

void go_right()

{

digitalWrite(right,HIGH); // turn right motor on

digitalWrite(left,LOW); // tune left motor off

}

void loop()

{go_forward(); delay(300);

;go_left(); delay(800);

;stop_car();

;go_forward(); delay(200);

;go_left(); delay(800);

;go_forward(); delay(300);

;go_left(); delay(800);

;stop_car();

;go_forward(); delay(200);

;go_left(); delay(800);

;stop_car();

;}