Autonomous Race Car

68,757

394

85

Published

Introduction: Autonomous Race Car

Build this autonomous driving robot car based on a old RC toy car. I removed the radio control board from the car and replaced it with a brain in the form of an Arduino UNO board (plus a motor driver board) and gave it an ultrasonic distance measuring module to see the world through.

Step 1: Components

  • Radio controlled toy car
  • Arduino Uno
  • Motor driver board (2 channel)
  • Ultrasonic sensor distance measuring module
  • Bread board

Step 2: Brain Transplant

Remove the radio control board from the RC car cutting all wires close to the board. Connect wires to the motor driver board - rear wheel motor in one channel - front wheel steering motor in the other channel.

"Steal" power from the cars batteries.

Step 3: Connect Arduino Board and the Ultrasonic Sensor

Connect the ultrasonic sensor and the motor driver to the Arduino board.

Step 4: The Programming

The cars intelligence is pretty simple. It's based on different modes that controles speed & direction depending on distance to objects ahead of the car:

FULL SPEED MODE - No objects ahead - full speed

CRUISE MODE - Object is X cm away - slow down

AVOID MODE - Object is too close for comfort - slow down and turn in random direction

REVERSE MODE - Object is very close - stop and reverse for 2 seconds

Step 5: The Code

Note: you need to find the "Ultrasonic.h" online. As I remember, I had to download a couple of different versions before I found one that worked.

Share

Recommendations

  • Woodworking Contest

    Woodworking Contest
  • Microcontroller Contest

    Microcontroller Contest
  • Casting Contest

    Casting Contest
user

We have a be nice policy.
Please be positive and constructive.

Tips

Questions

85 Comments

F3E7GSUHZI8QI9Q:159: error: 'class Ultrasonic' has no member named 'Ranging'

distance = (ultrasonic.Ranging(CM));

^

exit status 1

'class Ultrasonic' has no member named 'Ranging'

Any idea how to fix this?

plz .how i can do it with L298 driver .what the changing in code?

Watching this work roaming is impressive! but reading through your code I don't see how the Random Seed influences the steering choices. Is this your early code for the project?

the front motors are not working and the rear motors are moving front only when an I move my hand in front of the ultrasonic sensor. need help

Hi :)
First of all, Congratulations..
I wonder how many motors(dc or servo) in car? And lastly, is there any hardware circuit of this project ? Please help me :)
Thanks :)

user

Can it used for 2WD smart car? do you have sketch code for 2WD which uses L9110s and ultrasonic sensor?

Hey I actually tried it with the l298 motor module and it's not working because. The l298 has pwm (pulse width modulation) so it has 3 pins for each motor. 2 of them are Standard and one more is pwm pin so please can u suggest. Me the code it's not working pls

please, can i get the program code for this one..

Hey actually the car i am using has only one motor ie fr rear wheel so will it work on such car

2 replies

hmmm - does it have a servo steering the front then? You would need to tweek the program - but it should be possible...

This is an old thread, but if you are reading this-

Instead of one motor turning either fully right or left, with a servo you would have the option of turning in either direction in varying intensities. You would need a single channel motor driver for you rear wheel, and you would be able to connect the servo directly to arduino. Instead of just turning the front steering motor left or right, you would have to specify the angle for the servo to turn to to control steering. However, you would have the option to control the intensity (ie degree) of the turn based on the scenario.

*In case you do not already know, the Servo.h library comes standard with the arduino ide and would be perfect for your purposes.

can we do it with an old motor car not a rc one

I cannot get the car to move forward, only reverses. any suggestions on what could be the problem?

2 replies

It could be a problem with the sensor. If it reads out a zero value, the program will go in reverse mode.

I was able to get it moving forward, but now it wont seem to turn.

I am not able to get your code. It keeps saying that there is a fault.

i didn't find the motor driver board 2 channel and i bought the Motor Drive Shield Expansion Board L293D .... can i use it ? and how should i connect it ?

Waiting your answer!

thank you .