logologo
Contact

HOMEABOUTSERVICESBLOGSBOOKSSHOPCONTACT

+977 9803661701support@nepatronix.orgLokanthali, Bhaktapur

© 2025 NepaTronix all rigths reserved

Bluetooth Control Car( Robotic Project)

  Back To Blogs

This proposal outlines the development of a Bluetooth-controlled car using an Arduino microcontroller. This car will be controllable remotely using a smartphone or tablet, offering a fun and educational introduction to robotics and electronics.

Project : 5


1. Introduction

This proposal outlines the development of a Bluetooth-controlled car using an Arduino microcontroller. This car will be controllable remotely using a smartphone or tablet, offering a fun and educational introduction to robotics and electronics.


2. Objectives

  • Design and build a car chassis using readily available materials.
  • Select and integrate an Arduino board and Bluetooth module for wireless communication.
  • Develop and implement control software on the Arduino for movement (forward, backward, turn left, turn right, stop).
  • Design a user interface for the smartphone/tablet app to control the car's movement. (This proposal focuses on the Arduino and car build, excluding the app development).

3.  Materials

  • Arduino Uno (or compatible board)
  • HC-05 Bluetooth Module
  • L298N Motor Driver Module
  • DC Motors (2x)
  • Battery Pack (e.g., Li-ion)
  • Breadboard and Jumper Wires
  • Wheels and Chassis (pre-built or DIY)
  • Additional components (e.g., caster wheel, mounting hardware)

4. Hardware Design

  • The car chassis will be constructed using materials like acrylic, wood, or Lego.
  • The Arduino board will be mounted securely on the chassis.
  • The L298N motor driver module will be connected to the Arduino to control the DC motors responsible for movement.
  • The HC-05 Bluetooth module will be interfaced with the Arduino for wireless communication with the smartphone/tablet app.
  • A battery pack will provide power to the entire system.

5. Software Development

  • Arduino IDE will be used to program the Arduino board.
  • The code will receive commands from the Bluetooth module and translate them into motor control signals for forward, backward, left, right, and stop functionalities.

7. Expansion and Future Work

  • The car can be enhanced by incorporating additional features like:
    • Sensors (e.g., ultrasonic sensor) for obstacle detection and line following.
    • LEDs for light effects or status indicators.
    • A smartphone app for a more intuitive user interface.
  • The project can be adapted to explore different locomotion mechanisms (e.g., tank treads, omnidirectional wheels)

Circuit Diagram:



  • Code:

    //This program is used to control a robot using a app that communicates with Arduino through a bluetooth module.

     

    #define in1 5 //L298n Motor Driver pins.

    #define in2 6

    #define in3 10

    #define in4 11

    #define LED 13

    int command; //Int to store app command state.

    int Speed = 204; // 0 - 255.

    int Speedsec;

    int buttonState = 0;

    int lastButtonState = 0;

    int Turnradius = 0; //Set the radius of a turn, 0 - 255 Note:the robot will malfunction if this is higher than int Speed.

    int brakeTime = 45;

    int brkonoff = 1; //1 for the electronic braking system, 0 for normal.

    void setup() {

      pinMode(in1, OUTPUT);

      pinMode(in2, OUTPUT);

      pinMode(in3, OUTPUT);

      pinMode(in4, OUTPUT);

      pinMode(LED, OUTPUT); //Set the LED pin.

      Serial.begin(9600);  //Set the baud rate to your Bluetooth module.

    }

     

    void loop() {

      if (Serial.available() > 0) {

        command = Serial.read();

        Stop(); //Initialize with motors stoped.

        switch (command) {

          case 'F':

            forward();

            break;

          case 'B':

            back();

            break;

          case 'L':

            left();

            break;

          case 'R':

            right();

            break;

          case 'G':

            forwardleft();

            break;

          case 'I':

            forwardright();

            break;

          case 'H':

            backleft();

            break;

          case 'J':

            backright();

            break;

          case '0':

            Speed = 100;

            break;

          case '1':

            Speed = 140;

            break;

          case '2':

            Speed = 153;

            break;

          case '3':

            Speed = 165;

            break;

          case '4':

            Speed = 178;

            break;

          case '5':

            Speed = 191;

            break;

          case '6':

            Speed = 204;

            break;

          case '7':

            Speed = 216;

            break;

          case '8':

            Speed = 229;

            break;

          case '9':

            Speed = 242;

            break;

          case 'q':

            Speed = 255;

            break;

        }

        Speedsec = Turnradius;

        if (brkonoff == 1) {

          brakeOn();

        } else {

          brakeOff();

        }

      }

    }

     

    void forward() {

      analogWrite(in1, Speed);

      analogWrite(in3, Speed);

    }

     

    void back() {

      analogWrite(in2, Speed);

      analogWrite(in4, Speed);

    }

     

    void left() {

      analogWrite(in3, Speed);

      analogWrite(in2, Speed);

    }

     

    void right() {

      analogWrite(in4, Speed);

      analogWrite(in1, Speed);

    }

    void forwardleft() {

      analogWrite(in1, Speedsec);

      analogWrite(in3, Speed);

    }

    void forwardright() {

      analogWrite(in1, Speed);

      analogWrite(in3, Speedsec);

    }

    void backright() {

      analogWrite(in2, Speed);

      analogWrite(in4, Speedsec);

    }

    void backleft() {

      analogWrite(in2, Speedsec);

      analogWrite(in4, Speed);

    }

     

    void Stop() {

      analogWrite(in1, 0);

      analogWrite(in2, 0);

      analogWrite(in3, 0);

      analogWrite(in4, 0);

    }

     

    void brakeOn() {

      //Here's the future use: an electronic braking system!

      // read the pushbutton input pin:

      buttonState = command;

      // compare the buttonState to its previous state

      if (buttonState != lastButtonState) {

        // if the state has changed, increment the counter

        if (buttonState == 'S') {

          if (lastButtonState != buttonState) {

            digitalWrite(in1, HIGH);

            digitalWrite(in2, HIGH);

            digitalWrite(in3, HIGH);

            digitalWrite(in4, HIGH);

            delay(brakeTime);

            Stop();

          }

        }

        // save the current state as the last state,

        //for next time through the loop

        lastButtonState = buttonState;

      }

    }

    void brakeOff() {

     

    }





Total likes : 4

Comments







Read More Blogs!

Fire Alarm(STEAM Education)

To understand the basic principles of fire detection and alarm systems by building a simple fire alarm circuit.


1.7k03

Top 20 IoT Projects for Final Year Students

Explore the top 20 IoT projects that will inspire and challenge you in your final year. From smart parking systems and air quality monitors to home automation and industrial safety solutions, these projects cover a wide range of industries and applications. Each project demonstrates how IoT can be used to optimize processes, improve safety, and create smarter systems. With these hands-on projects, you'll gain valuable experience in hardware integration, cloud computing, data analysis, and mobile app development, preparing you for a future in the fast-growing field of IoT.


6.8k010

RFID Door Lock Using Arduino Uno(Automation Project )

The RFID Door Lock system is a secure and convenient access control solution that uses RFID technology to allow or deny access to a door. By scanning an RFID card, the system can identify authorized users and trigger a servo motor to unlock the door if access is granted. This technology is widely used in offices, homes, and restricted areas to ensure only authorized personnel can enter.


1.5k04

Smart Bell(Automation Project)

This project aims to create a smart doorbell system using an ESP32 microcontroller. The system integrates a relay, buzzer, and transistor to notify users of a visitor's presence, and an RTC (Real-Time Clock) module for timekeeping. The project demonstrates how IoT can be utilized for smart home automation, enhancing security and convenience.


3.2k017