Skip to content

About

Android-controlled RC car with bidirectional Bluetooth, dual DC motor control, and real-time ultrasonic obstacle detection.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DroidRover

Android-controlled RC car with Arduino firmware implementing bidirectional Bluetooth communication, dual DC motor control, and real-time ultrasonic distance sensing.

Developed as a project for the Integrated Project course (EL84E) at the Federal University of Technology - Paraná (UTFPR), Curitiba, Brazil, 2021.


Features

  • 5-direction motor control via Android app (forward, backward, left, right, stop)
  • Real-time obstacle detection with HC-SR04 ultrasonic sensor
  • Autonomous forward block when obstacle is within 10 cm
  • Bidirectional Bluetooth communication over RFCOMM/SPP
  • Custom serial protocol with { } delimiters for reliable sensor data parsing
  • Live distance display updated on the Android UI after every movement
  • Motor status indicators on the Android UI (−1 = reverse, 0 = stopped, 1 = forward)

Hardware

Component Description
MCU Arduino UNO R3
Motor Driver L298N dual H-bridge
Distance Sensor HC-SR04 ultrasonic
Bluetooth HC-06 module
Motors 2× DC motors with gearbox (2WD chassis)
Servo Micro Servo SG90 (pan-tilt mount)
Other Voltage divider (1kΩ + 2.2kΩ) on Bluetooth RX for 5V→3.3V level shifting

Android app: native Java, developed in Android Studio (API 21+)


Control Commands

Command Action
forward Move forward (only if distance > 10 cm)
backward Move backward
left Turn left
right Turn right
stop Stop all motors

Bluetooth Configuration

Connection

  1. Pair the HC-06 module with your Android device via Bluetooth settings
  2. Open the DroidRover RC app
  3. Tap CONNECT and select the module from the paired devices list
  4. The button changes to DISCONNECT once the connection is established

Protocol

The firmware communicates via UART at 9600 bps. Commands are plain ASCII strings sent from the app to the Arduino over RFCOMM.

Commands sent to the firmware:

Command Description
forward Drive forward
backward Drive backward
left Turn left
right Turn right
stop Stop motors

Messages received from the firmware:

Message Description
{\n XX.X \n}\n Distance reading in centimeters from HC-SR04

The Android app buffers incoming bytes and extracts the numeric value between { and } delimiters, displaying it as Sensor: XX.X cm.


Hardware Notes

The HC-06 Bluetooth module's RX pin operates at 3.3V. A voltage divider using a 1kΩ and a 2.2kΩ resistor was used to step down the 5V TX signal from the Arduino UNO to a safe level.

Powering the Arduino from 4× AA alkaline batteries caused instability in the Bluetooth connection and motor behavior as the batteries drained. Powering the Arduino via USB eliminates this issue, but using a 9V battery with a step down to 5V would be a better solution.


App Interface

App Interface


Circuit Schematic

Circuit Schematic


Hardware Assembly

Hardware Assembly


Academic Origin

University: Federal University of Technology - Paraná (UTFPR)
Course: Integrated Project (EL84E)
Program: Technology in Telecommunication Systems
Year: 2021


Credits

Bluetooth connection implementation adapted from a tutorial by Duds Tecnologia - GitHub: dudstecnologia.

About

Android-controlled RC car with bidirectional Bluetooth, dual DC motor control, and real-time ultrasonic obstacle detection.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages