Project tutorial
Turn your RC Car to Bluetooth RC car

Turn your RC Car to Bluetooth RC car © CC BY-NC-SA

How to turn your RC Car into a Bluetooth controlled RC Car.

  • 17,680 views
  • 2 comments
  • 23 respects

Components and supplies

Necessary tools and machines

09507 01
Soldering iron (generic)

Apps and online services

About this project

RC cars are really fun to hack and they provide good chassis for low price, to make robots but selecting one to make is a pain in the ash with millions of type. My little brother had his birthday recently and I wanted to give him something really cool, I ended up giving him this rc car. RC car hacking are easy and tough too, because of the different way rc car are made it doesn't makes easy and defined way to hack the car, but this hack is universal. I will also try to cover basic about all the parts and theory behind each modules. We have used module but you are encouraged to make our circuit , except the pro mini.

I was really uncomfortable with promini as it was too small but it was fun.

Check out the video and make sure to subscribe for upcoming videos

Step 1: Getting the right chassis

Part List

Getting the right chassis

To choose chassis is a question about drive mechanism there are many drive mechanism.

Lets talk about the two most popular mechanism.

Differential Drive What is Differential drive?

The term differential means difference between two entities, in the context of robotics it is just the speed difference between two motors.Based on this speed difference, a robot can be moved in any direction on a 2D layout.

When two motors are connected to wheels in one line,opposite to each other(Just like a pair of wheels connected to a single shaft) the speed with which each motor rotates determines the direction of motion. When both the wheels rotate at the same speed the difference between the motors is Zero. This makes the robot move forward in a straight line.The robot can move in reverse direction if the direction of rotation of both the motors are reversed. This will again be in a straight line if the speed difference is zero. Now changing the speed of any one motor will result in movement in a direction away from the straight line. For example, reducing the speed of the right motor will result in a speed difference and hence change in direction.The resultant force is such that the robot turns right. This direction change can be controlled to required angle by further reducing the speed of the motor.Slower is the right motor, sharper is the turn to right. This is exactly the same for Left turn.

As a conclusion, Slower right motor, sharper right turn. Slower left motor Sharper left turn. Below are some scenarios which explains working of differential drive mechanism. M1 and M2 are motors which drive wheels on left and right respectively.

Steer Type Drive

What is Steer type drive ?

The car type drive is the most common in real world but not in robot world. It is characterized by a pair of driving wheels and a separate pair of steering wheels The translation and rotation are independent of each other. But translation and rotation are interlinked hence this system faces severe path planning problem. Four wheels are more efficient compared to three or two wheels. The first two of the four wheels can be used to steer and the next two to drive the robot. Balancing a four wheeled robot is never an issue. Most everyday cars we use are four wheeled and the example is enough to prove its existence and capabilities.

Disadvantages Of Car Type Drive : The turning mechanism must be accurately controlled. A slight inaccuracy may cause large odometry errors The system is Non – Holonomic hence path planning is extremely difficult as well as inaccurate There are no direct directional actuators

So its better to use differential drive due to its simplicity and easy to use.

Step 2: Controlling the motors

To control the motor we need something that something called the motor driver.

What is a Motor Driver?

A motor driver is a little current amplifier; the function of motor drivers is to take a low-current control signal and then turn it into a higher-current signal that can drive a motor.

There are many motor drivers out of which I am using l293d motor driver module.

L293D is a Motor driver integrated circuit which is used to drive DC motors rotating in either direction. It is a 16-pin IC which can control a set of two DC motors simultaneously. The L293D uses 5V for its own power and external power source is needed to drive the motors, which can be up to 36V and draw up to 600mA. The L293D works on the concept of typical H-bridge, a circuit which allows the high voltage to be flown in either direction. In a single L293D IC there are two H-bridge circuits which can rotate two DC motors independently.

Pin description of L293d

1Enable pin for Motor 1; active high Enable 1,2 2 Input 1 for Motor 1 Input 1 3 Output 1 for Motor 1 Output 1 4 Ground (0V) Ground 5 Ground (0V) Ground 6 Output 2 for Motor 1 Output 2 7 Input 2 for Motor 1 Input 2 8 Supply voltage for Motors; 9-12V (up to 36V) Vcc 2 9 Enable pin for Motor 2; active high Enable 3,4 10 Input 1 for Motor 1 Input 3 11 Output 1 for Motor 1 Output 3 12 Ground (0V) Ground 13 Ground (0V) Ground 14 Output 2 for Motor 1 Output 4 15 Input2 for Motor 1 Input 4 16 Supply voltage; 5V (up to 36V) Vcc 1

Step 3: About the App

There are many apps to control I made with one .The logic is very simple all the button sends a character when pressed through Bluetooth and the arduino processes it.

Character Functions

X Null state F Forward Motion B Backward Motion L Turn Left R Turn Right

Step 4: Connection all the part

Connections are simple

here are the connection as follows

The Bluetooth Module

Hc-05 Arduino Vcc 5v Gnd Gnd Rx Tx Tx Rx

The Motor Driver

Motor Driver Arduino pin 2 8 pin 7 7 pin 10 6 pin 4 9 pin 3 and 6 Motor 1 pin 11 and pin 14 Motor 2 pin 1 5v pin 9 5v

Step 5: Coding

void setup() {
Serial.begin(9600);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(9, OUTPUT);
pinMode(6, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(4, OUTPUT);
  digitalWrite(4,LOW);
  digitalWrite(5,LOW);
}
// the loop function runs over and over again forever
void loop() {
var=Serial.read();
if(var=='F')
{
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
} if(var=='H')
{    digitalWrite(frled1,HIGH);
}
if(var=='B')
{    
  analogWrite(speeden,150);
 digitalWrite(6,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
  digitalWrite(bcled1,HIGH);
}
if(var=='X')
{digitalWrite(9,LOW);
digitalWrite(8,LOW);
digitalWrite(7,LOW);
digitalWrite(6,LOW);
    digitalWrite(frled1,LOW);
    digitalWrite(bcled1,LOW
    
    );
}
if(var=='L')
{digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
}
if(var=='R')
{digitalWrite(6,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);;
}
}

I hope you enjoy making the project as I have done I am posting some more cool projects soon so do follow me to get all updates Also like my page https://www.facebook.com/makewithRex/

Code

Code snippet #1Plain text
void setup() {
  Serial.begin(9600);
  pinMode(8, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(6, OUTPUT);
    pinMode(5, OUTPUT);
    pinMode(4, OUTPUT);
    digitalWrite(4,LOW);

    digitalWrite(5,LOW);

}

// the loop function runs over and over again forever
void loop() {
  var=Serial.read();
  if(var=='F')
  {
  digitalWrite(6,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
  

  } if(var=='H')
  {    digitalWrite(frled1,HIGH);
  }
  if(var=='B')
  {    
    analogWrite(speeden,150);

   digitalWrite(6,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
    digitalWrite(bcled1,HIGH);

  }
  if(var=='X')
  {digitalWrite(9,LOW);
  digitalWrite(8,LOW);
  digitalWrite(7,LOW);
  digitalWrite(6,LOW);
      digitalWrite(frled1,LOW);
      digitalWrite(bcled1,LOW
      
      );

  }
  if(var=='L')
  {digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
  }
  if(var=='R')
  {digitalWrite(6,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);;
  }
}

Schematics

Schematics
F4v28ozihgjxbum.medium

Comments

Similar projects you might like

RC Toy Car Using nRF24L01

Project tutorial by Jayraj Desai

  • 3,309 views
  • 0 comments
  • 9 respects

Android Arduino RC Car

Project tutorial by RAFI RASHEED T C

  • 15,354 views
  • 2 comments
  • 38 respects

Bluetooth RC Car with Remote Arduino

Project tutorial by Team Windows IoT

  • 41,621 views
  • 3 comments
  • 79 respects

Arduino 4WD RC Car

Project tutorial by Andriy Baranov

  • 13,135 views
  • 3 comments
  • 43 respects

Robotic Car Controlled over Bluetooth by Andriod Phone

Project showcase by S.Ranjith Reddy

  • 4,429 views
  • 0 comments
  • 9 respects

RC Car to BT Car Controlled with Blynk

Project tutorial by Team Daxes Hacks

  • 3,598 views
  • 2 comments
  • 6 respects
Add projectSign up / Login