Let’s make – DIY RC Car

Today, we’ll be building a RC Car and show you how to make yourself one. And also control with our previously made RC Remote. So, further wasting any time. Let’s

Today, we’ll be building a RC Car and show you how to make yourself one. And also control with our previously made RC Remote.

So, further wasting any time. Let’s dive right into it.

Table of Contents

  • What is RC Car ?
  • What is Arduino Nano ?
  • Hardware Requirements of this Project –
  • Software Requirements of this Project –
  • Circuit Diagram and Hardware Interfacing –
    • Circuit Diagram –
    • Hardware Interfacing –
      • Arduino Nano
  • Coding –
  • Working of Project –
  • Conclusion –

What is RC Car ?

Radio-controlled cars, or RC cars for short, are miniature model cars, vans, buses, trucks or buggies that can be controlled from a distance using a specialized transmitter or remote.
RC is used interchangeably for both “radio control” and “remote control”, they both mean the same.

And as for the brains of the car, we’ll be using Arduino nano.

What is Arduino Nano ?

Arduino Nano is a small, complete, and breadboard-friendly board based on the ATmega328. It has more or less the same functionality of the Arduino Duemilanove, but in a different package.
It lacks only a DC power jack, and works with a Mini-B USB cable instead of a standard USB B.

Some of the key features are –

  • ATmega328
  • 2kB RAM
  • 7-12V Supported
  • 1× UART, 1× I2C controllers, 1x SPI, 6× PWM channels

Hardware Requirements of this Project –

  • Arduino Nano
  • Ready to SKY BLDC Motor
  • Ready to SKY 20A ESC
  • nrf24L01+PA+LNA with adapter board
  • Transparent Robot Smart Car Chassis
  • 65mm Robot Smart Car 12 Rim Wheel
  • Orange OT5316M 7.4V 15kg.cm Metal Gear Digital Servo Motor
  • Orange 11.1V 2200mAh 40C 3S Lithium Polymer Battery Pack
  • LM2596S DC-DC Buck Converter
  • 7 x 9 cm Universal PCB Prototype
  • Screw Terminal Block
  • Male and female headers

Software Requirements of this Project –

Circuit Diagram and Hardware Interfacing –

Circuit Diagram –

Hardware Interfacing –

Arduino Nano

Arduino NanoNRF24L01
 7 CE
8CSN
SCKSCK
MISOMISO
MOSIMOSI
Arduino NanoMotor Signal Wires
3M1
5M2
6M3
9M4
10Servo Signal

Coding –

Copy the following code into the IDE. You can make changes to it to fit your needs.
But before testing make sure no one is close by and wheels aren’t fitted on the car.

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>



RF24 radio(7, 8); // CE, CSN
const byte addresses[][6] = {"00001", "00002"};

struct pack{
  int spot=0, x=0, y=0, jsw=1, trim=0;
};

struct drone{
  int batt;
};

pack data;
drone stat;

Servo m1,m2,m3,m4, stere;

void setup() {
  Serial.begin(9600);

  m1.attach(3, 1000, 2000);
  m2.attach(5, 1000, 2000);
  m3.attach(6, 1000, 2000);
  m4.attach(9, 1000, 2000);
  stere.attach(10);
  
  pinMode(A0, INPUT);
  pinMode(A2, OUTPUT);

  radio.begin();
  radio.setRetries(15, 15);
  radio.openWritingPipe(addresses[0]); // 00001
  radio.openReadingPipe(1, addresses[1]); // 00002
  radio.setPALevel(RF24_PA_MIN);

  delay(100);

}

int throttle=0, turn=0;

void loop() {

  delay(25);
  radio.startListening();

  if (radio.available()) {
    radio.read(&data, sizeof(data));

    if(data.y < 480){
      throttle = map(data.spot, 0, 1023, 1300, 1350);
    }

    else if(data.y > 520){
      throttle = map(data.spot, 0, 1023, 1300, 1200);
    }

    else{
      throttle = 1300;
    }

    turn = map(data.x, 0, 1023, 95, 45);

    if(data.jsw == 0){
      digitalWrite(A2, HIGH);
    }

    else{
      digitalWrite(A2, LOW);
    }


    m1.writeMicroseconds( throttle );
    m2.writeMicroseconds( throttle );
    m3.writeMicroseconds( throttle );
    m4.writeMicroseconds( throttle );
    stere.write(turn);


    serial_debug();


    // delay(25);
    // radio.stopListening();
    // stat.batt = 50 ;  //map(analogRead(A0), 836, 1023, 0, 100); // 826 low batt
    // radio.write(&stat, sizeof(stat));
  }

}


void serial_debug(){
  Serial.print(data.spot);
  Serial.print("  ");
  Serial.print(data.x);
  Serial.print("  ");
  Serial.print(data.y);
  Serial.print("  ");
  Serial.print(data.jsw);
  Serial.print("  ");
  Serial.print(data.trim);
  Serial.println("  ");
}

Working of Project –

Basically, using the nrf24L01 modules to control the car remotely. And the instructions given to the car are simple. It only contains how much throttle, and in which direction to move.
To control the the steering servo, we’ve used a buck converter to convert 11.1V to 7.4 Volt which is needed by the servo to function correctly. 

car

Conclusion –

If there’s no major error till this point. Then congratulation, you’ve successfully made a Remote Controlled Car as your RC projects.

Leave a Reply

Shopping cart

0
image/svg+xml

No products in the cart.

Continue Shopping