Hey guys, hope you all saw the demo of our latest Arduino Off-Road Robot – The Robotin 6. In this post, I will be showing you how I built this wireless surveillance robot. I will give you the complete schematics, codes and complete layout of all the boards used in this Arduino RC Robot to make one yourself. So stay Tuned!!
Arduino Off-Road Robot Demo
First, let us take a look at our Arduino Off Road Robot and how it performs in rough terrain.
Looks Cool Right? Now let us take a look at the components used one by one.
Getting Started with Robotics?
Want to learn Robotics from Scratch? Here is an awesome guide for you to get started with robotics (Free Video Tutorials Included).
6 Wheel Drive Arduino Off Road Robot Components – Get Your Components
- Robot Chassis – Get it Now
- Arduino Pro Mini – Get it Now
- HC12 – Get it Now
- Remote Controller
- VNH2SP30 Motor Driver
- LiPo Battery – Get it Now
6 Wheel Drive Rough Terrain Robot Chassis Kit
The whole off road robot chassis is built using 2 mm aluminum alloy and the surface is coated with aluminum. Even though the material is lightweight, it is very strong and can carry all the; components – micro controller, sensors and motors without any hassle.
I got this Arduino RC Robot kit from Banggood.com. They have a wide variety of robot kits, parts and almost all kinds of sensors and motors for doing arduino, raspberry pi and other hobby and electronic projects.
Another great thing about their robot kits are they provide all the tools you need to assemble the frame together.
The upper aluminium plate of this 6 wheel drive robot chassis contains so many mounting holes where we can screw all the components firmly.
It have 6 high speed DC motors, with an RPM of 17,000 combined with 1:34 full metal gearbox, enabling your 6 wheeled robot to obtain amazing speed and off road performance. The use of six hydraulic spring dampers ensure adaptive driving experience even on rough terrains and uneven surfaces.
Get this Amazing 6 WD Robot Chassis Now
Here I will be using an Arduino Pro Mini as the processor for our RC Robot. We will be connecting HC 12 wireless module to the Arduino to receive data from the Remote Controller, process it, and drive the motors using the motor driver connected to the Arduino.
They are really cheap and are easily available online. You can use any other Arduino Board, there is no issue with that.
The Remote controller
In my previous video, I showed how you make this Wireless Remote Controller for your RC Robot using breadboard accelerometer, buttons and HC12 wireless module. If you haven’t seen that yet, please see the below video first. Because we will be using that remote controller to control this robot.
Basically what this remote controller do is, it reads analogue and digital data from sensors such as accelerometer buttons joystick and store them in separate variables. These variables will be combined together to form a single long string and this string will be sent to our robot using the HC12 wireless module.
Here, we will be using HC 12 wireless module for transmitting data from the DIY Remote Controller to the RC Robot. They are commonly used in remote controlled robots and other wireless communication projects. This wireless module works under 433 megahertz frequency. When combined with an external antenna, this wireless module can transmit and receive data from a distance of up to 1 Kilometer line of sight and due to this reason we will be using this wireless module for our robot.
This wireless module can be easily connected to arduino or Raspberry Pi, and start using it for your project right away. Another advantage of using HC12 wireless module for your RC robot is, this module requires only two pins – TX and RX, for data transfer. You can save the rest of the pins of your arduino or Raspberry Pi for other things.
As I mentioned earlier this robot chassis have 6 high speed DC Motors with a speed of 17000 RPM combined with 1:34 metal gear box. Each motor draws a current of about 350 milli ampere. As you might know, for almost all of my Robots, I use either L293D motor driver or L298N motor driver.
Here also I tried L293D and L298N Piggybacked. Even though it worked fine, too much energy was wasted as heat after 5 minutes of continuous usage.
So I decided to go for another high current motor driver, named VNH2SP30, that can provide a peak current of 30 amperes.
If you are not familiar with this VNH2SP30 High Current DC Motor Driver, please click this link you know more about it.
This motor driver board can control only one motor at a time. So here we will be using two motor driver board to control both DC motors.
Powering up the Off Road Robot
For this project I’ll be using a 12 volt Lithium polymer battery as a power source. This can provide enough power to drive all the six DC Motors, power up the arduino, HC12 module and the motor drivers without any issues.
Thats all you need to know about all the components used in this off road RC robot. started with making the robot.
Assembly
Now let’s start making our RC Robot.
As mentioned earlier, this off road robot chassis is a DIY kit; which means it will need some assembly to get started with. When you open the packet you will see all the components and tools neatly labelled. You won’t need more than half an hour to set this up. You can check out this video if you are stuck and need help assembling the robot.
Once the robot chassis is assembled, you can start fixing all the components onto the top plate. You can use screws, glue gun or double sided tape to secure all the components onto it.
The Circuit
Next step, Connecting all the components together. We will connect the HC12 module to the Arduino, which will process the data coming from the HC12 module of the Remote controller.
Once the data is processed, we will drive the motors using the high current DC motor driver connected to the Arduino. The whole circuit will be powered using the LiPo battery.
Connections for the Circuit of RC Robot
Arduino —— HC12
- 5 Vout – VCC Arduino
- Gnd – Gnd
- 10 – TX
- 11 – Rx
Arduino —– Motor Drivers
- Pin 12 – Motor Driver 1 In1
- Pin 13 – Motor Driver 1 In2
- Pin 3 – Motor Driver 1 PWM
- Pin 8 – Motor Driver 2 In1
- Pin 7 – Motor Driver 2 In2
- Pin 5 – Motor Driver 2 PWM
Motor Drivers —– Motor
- Motor Driver 1 Out 1 – Motor 1 Terminal 1
- Motor Driver 1 Out 2 – Motor 1 Terminal 2
- Motor Driver 2 Out 1 – Motor 2 Terminal 1
- Motor Driver 2 Out 2 – Motor 2 Terminal 2
- Motor + – 12 V
- Motor – – 0 V
- Vcc – 5 V
- Gnd – 0 V
Here, you will find complete Circuit of the Remote Controller
The Code
Here, I will share the code for HC12 Remote Controller and the RC Robot. Simply upload this code to your remote controller as well as your DIY RC Robot.
This is the code for DIY RC Off-Road Robot,
Arduino RC Robot Code Download
First we read the data coming from the receiving module to a variable named ‘input’. This ‘input’ is a long string of decimal numbers separated by commas. This string is broken down into smaller numbers and is then stored in separate variables.
These values can be used to control the Robot the way you want.
Find the code for the DIY HC12 Remote Controller for your RC Robot Here
You can now use these variables to drive your robot the way you want.
Testing
Once the code is uploaded you can power up the entire robot put it on the floor and try moving the joystick. Its fun right?
That’s it guys. Have fun. Play with it.
Wow, what a product of ingenuity, you made one of the most sought after toys completely from scratch-nice!
You really know your stuff, could you offer me some advice? I am also trying to use an HC-12 module to control servos with a joystick in my project. I tried your code for the plane transmitter tutorial you posted in 2016 (I think) but I couldn’t really get it to work. So I found a different way to do it with the same hardware components online, the only problem is that there is occasional twitching with the servo, but otherwise it is responding nicely to the analog stick. Can you find a problem in my code to help eliminate the twitching?
//Receiver
#include
#include
int ROT ;
ServoTimer2 myServo;
SoftwareSerial HC12(10,11); //(tx,rx)
void setup() {
myServo.attach(7);
HC12.begin(9600);
Serial.begin(9600);
}
void loop() {
while ( HC12.available()>0) {
ROT = HC12.parseInt();
Serial.println(ROT);
myServo.write(ROT);
delay(50);
} }
//Transmitter
#include
int ROT ;
SoftwareSerial HC12(10, 11);
void setup() {
Serial.begin(9600);
HC12.begin(9600);
}
void loop() {
int ROT = analogRead(A3);
Serial.println(ROT);
//ROT = map(ROT , 515 , 1023 , 1100 , 1800) ;
ROT = map(ROT , 0 , 876 , 760 , 1800) ;
//Serial.println(ROT);
HC12.println(ROT);
delay(50);
}
Any insight would be much appreciated Jithin, you’re quite a pillar in the arduino community.
hii can you help me with the bot connection setup
Hi
The link for the complete circuit diagram of RC-Robot is wrong.
Currently the link point to RC_Controler page.
Can you please send me the complete circuit diagram for RC_Robot
Thank you.