T.A.R. is an Arduino Uno–based, 4-wheel-drive robot car that supports Manual, Automatic, and Voice-assisted control. The firmware is built around a non-blocking finite state machine (millis-based) so the robot can keep responding to Bluetooth commands while scanning for obstacles.
- Manual: Bluetooth app buttons control direction + speed, with a continuous safety override when driving forward.
- Automatic: Ultrasonic + servo scanning for obstacle avoidance and path selection.
- Voice (via Android app): Speech-to-text happens on the phone; the app sends the same serial commands as Manual mode.
- Microcontroller: Arduino Uno Rev3
- Motor Driver: L298N Dual H-Bridge
- Actuation: 4x DC TT Gear Motors (Configured for Skid-Steering)
- Sensors: HC-SR04 Ultrasonic Sensor mounted on an SG90 Micro Servo
- Communication: HC-05 Bluetooth Module (SPP)
- Power Source: 2x 18650 Li-ion Batteries (7.4V Total)
- Non-Blocking Auto Mode: Utilizes
millis()instead ofdelay(), allowing the rover to continuously listen to incoming Bluetooth interrupts even during complex servo sweeping maneuvers. - Continuous Safety Radar: In Manual Mode, the rover actively pings the ultrasonic sensor while driving forward. If an obstacle appears within 40cm, it automatically cuts power to the motors to prevent a collision.
- Voice-Control Ready: The architecture is decoupled. Voice recognition will be handled by a companion Android application (via Speech-to-Text), which translates spoken words into the standard Manual Mode serial commands below.
- Wiring reference (pins + power routing):
docs/Wiring_Reference.md - Circuit diagram (SVG):
docs/TAR_Circuit.svg - Project PDF used as a source:
docs/reference/TAR_Doc.pdf
src/: Arduino firmware (TAR_Main.ino)docs/: wiring docs + circuit diagramdocs/images/: build/demo photosdocs/reference/: source material used to build the documentation
Use any standard Bluetooth Terminal or Gamepad app (e.g., "Serial Bluetooth Terminal").
- Forward:
G - Backward:
H - Left:
I - Right:
J - Stop:
K(Set this to the "On Release" action for all D-Pad buttons)
- Enable Auto Mode:
A - Enable Manual Mode:
M - Emergency Stop / Idle:
O - Speed Fast (200 PWM):
X - Speed Medium (150 PWM):
Y - Speed Slow (100 PWM):
Z - Print System Status:
?
- Open
src/TAR_Main.inoin Arduino IDE. - Select Board:
Arduino Uno. - Select the correct Port and upload.
- The firmware uses
SoftwareSerialon pins 10 (RX) and 11 (TX) for the HC-05. - Power the motors from the battery pack through the L298N; distribute 5V/GND to the Arduino + sensors as described in
docs/Wiring_Reference.md.
Project photos are stored in docs/images/.
Spring 2026 (Faculty of Computers & AI, Minia National University)




