← All projects
Embedded systems / ME-376 Control Engineering Sessional

Obstacle-avoiding mobile robot

A physical differential-drive robot combining Arduino firmware, dual infrared sensing, and PWM motor commands.

Physical mobile robot prototype with Arduino, wheels, and dual IR sensors

Engineering objective

Build a low-cost wheeled platform that responds to obstacles using sensor-conditioned navigation states. The project connects embedded programming with motor actuation, hardware integration, and practical prototype assembly.

Dual IR sensors→Arduino state logic→L298N motor driver→DC drive motors

Implementation

The supplied firmware reads active-low digital IR sensors and selects forward, left-pivot, right-pivot, or reverse-and-pivot behavior. PWM values set motor drive commands. An LM2596 buck module provides regulated logic power in the documented hardware arrangement.

Left sensorRight sensorCommand
ClearClearMove forward
ObstacleClearPivot right
ClearObstaclePivot left
ObstacleObstacleReverse, then pivot

Available evidence

The project includes prototype photographs, a documented pin map, a hardware bill of materials, and the Arduino sketch. The sketch exposes the command values and timing constants, making the decision logic inspectable.

Download Arduino firmware ↓

Limits & next steps

The current implementation uses blocking delays for turns and reverse maneuvers. It does not establish a constant 50 Hz sensing loop, closed-loop wheel-speed control, mapping, or a measured navigation success rate. PWM commands are not measurements of wheel velocity.

A useful extension would add non-blocking scheduling, encoder feedback, repeatable obstacle-course trials, and timestamped sensor logs. These would provide a stronger basis for system identification and model-based control.

Top view showing the robot wiring and components