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 chassisPart 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 motorsTo 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
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 partConnections 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: Codingvoid 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/
Comments