4WD All Terrain Arduino Robot for Everyone

by silver_a in Circuits > Robots

53967 Views, 123 Favorites, 0 Comments

4WD All Terrain Arduino Robot for Everyone

complet_robotkit_1.jpg
complet_robotkit_2.jpg
complet_robotkit_3.jpg
robot_base10.jpg

I've always liked robots that can move in rough terrain. This time I decided that I will use ready-made chassis modifying it slightly and adding a few additional components. By using a ready chassis I could quickly build a working model and take care of its software. The robot can operate autonomously detecting obstacles in its close surrounding. It can also be controlled via bluetooth using a mobile phone or tablet. The whole electronic design was made based on the Arduino Mega 2560 that is quite powerful. I hope that everyone will find something interesting in this instruction.

Happy coding :)

The List of Parts

4WD_all_parts_description.jpg

If you don't have too much time to building your own mobile robot platform you can buy "Robot Smart Car Kit" that includes a chassis, wheels, motors and other mechanical components. To build the robot we will need additional electronics to control the motors and sensors to detect obstacles. At the end we will add LiPo batteries to power the robot and the project will be ready for testing.

Parts needed in this project:

  1. 4WD Robot Smart Car Kit x1
  2. Arduino Mega 2560 x1
  3. BTS7960B Motor Driver (H-Bridge) x2
  4. HC-05 bluetooth module x1
  5. SRF05 Ultrasonic Sensor x1
  6. Sharp GP2Y0A02Y IR Distance Sensor x1
  7. Micro Servo x1
  8. Li-Po batteries: 7.4V 800mAh and 11.1V 1300 mAh x1
  9. Jumper and cables
  10. Nuts and bolts (M2, M3)

Assembly of Parts of a Mobile Robot

robot_base6_wiring.jpg
robot_base1.jpg
robot_base2.jpg
robot_base3.jpg
robot_base4.jpg
robot_base5.jpg
motor_controller.jpg
robot_base6_wiring2.jpg
robot_base7.jpg
robot_base8.jpg
robot_base9.jpg

  1. Screw the bottom and sides of the metal chassis.
  2. Put the Arduino Mega and Motor Drivers in the chassis and mark the mounting holes (M3). To do this you must first unscrew the black radiator from the Motor Driver. Instead of the black radiator that is too large, you can use a piece of aluminium sheet having a thickness from 1 to 3 mm.
  3. After drilling the holes screw the Arduino and Motor Drivers to the chassis.
  4. Put two LiPo batteries in the chassis and stick them from the bottom side with double-sided adhesive tape.
  5. Mount 2 power switches to the top cover of the metal chassis.
  6. Perform the necessary wiring connections (see the next step).

Making a Rotary Sensor for Obstacle Detection

servo_base1.jpg
servo_base2.jpg
SRF05_v1_base1.jpg
SRF05_v1_base2.jpg
SRF05_v1_base3.jpg
ultrasonic_sensor_base1.jpg
ultrasonic_sensor_base2.jpg
ultrasonic_sensor_base3.jpg
ultrasonic_sensor_base4.jpg

To rotate the sensor you can use a micro servo. Servo can be attached to the robot chassis using piece of aluminium in the shape of U or L. Originally I've made housing for the ultrasonic sensor SRF05 from a piece of red plastic but finally I changed it to the aluminium that is much more durable.

Connection of Electronic Parts

Smart Car Robot Kit_scheme.jpg
arduino_mega_2560_HC_05_scheme.jpg

The main controller in this electronic system is Arduino Mega 2560. To be able to control four motors I used two BTS7960B Motor Drivers (H-Bridges). Each of the Motor Driver can be loaded by the current up to 43A that gives a large margin of power even for the mobile robot moving over rough terrain. For remote control of the robot I used a popular bluetooth module HC-05. The electronic system is equipped with two power sources. One for supplying the DC motors (LiPo battery 11.1V, 1300 mAh) and the other to supply Arduino, bluetooth module and sensors (LiPo battery 7.4V, 800 mAh).

All connections of electronic modules are the following:

  1. BTS7960 -> Arduino Mega 2560
    • MotorRight_R_EN - 4
    • MotorRight_L_EN - 5
    • MotorLeft_R_EN - 8
    • MotorLeft_L_EN - 9
    • Rpwm1 - 6
    • Lpwm1 - 7
    • Rpwm2 - 2
    • Lpwm2 - 3
  2. SRF05 Ultrasonic Sensor -> Arduino Mega 2560
    • Vcc - 5V
    • GND - GND
    • TRIG - 11
    • ECHO - 12
  3. IR GP2Y0A02YK0F Analog Sensor -> Arduino Mega 2560
    • VIN - 5V
    • GND - GND
    • VOUT - A7
  4. Servo -> Arduino Mega 2560
    • RED - 5V
    • BROWN - GND
    • ORANGE - 10
  5. Bluetooth HC-05 -> Arduino Mega 2560
    • TXD - RX1 (19)
    • RXD - TX1 (18)
    • VCC - 5V
    • GND - GND

Arduino Mega Code

Arduino Mega code.jpg

I've prepared a few examples of Arduino programs for you (all available at GitHub):

  1. SRF05_servo_nearest_obstacle - Find the nearest obstacle and turn the sensor in its direction.
  2. RobotKit_4WD_IR_GP2Y0A02YK0F_FollowMe - Follow the moving object (based on proximity IR sensor GP2Y0A02YK0F 20-150 cm).
  3. RobotKit_4WD_BTS7960_IR_SRF05_FollowMe - Follow the moving object (based on proximity IR sensor GP2Y0A02YK0F and ultrasonic sensor SRF05).
  4. RobotKit_BTS7960_4WD_Bluetooth_Controlled - Control mobile robot via Bluetooth using Android app

The first two simple programs allow you to test the sensors and actuators. In the third program the robot operates autonomously following the closest object. However, if you prefer to control the robot by yourself just upload a fourth program to your robot and control it via Android app.

Testing of Mobile Robot

4WD Robot Smart Kit bluetooth controlled via Android app
Follow me robot - first test in autonomous mode
The nearest obstacle detection by rotating ultrasonic sensor

And finally, it's time for my favorite part of the project that is testing. These videos show tests of mobile robot based on programs from the previous section (Arduino Mega Code).

You can download my Android app that allows you to control 4WD all terrain robot from Google Play: link

How to use the Android app:

  • tap menu button or 3 vertical dots (depending on the version of your Android)
  • select the tab "Connect a device"
  • tap on the "HC-05" tab and after a while you should see the message "Connected to HC-05"
  • after connecting, you can control your robot
  • if you don't see your bluetooth device HC-05 tap "Scan for devices" button
  • on the first use pair your bluetooth devices by entering the default code "1234"

If you would like to see my other projects related to robotics please visit: