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

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.
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 sensor | Right sensor | Command |
|---|---|---|
| Clear | Clear | Move forward |
| Obstacle | Clear | Pivot right |
| Clear | Obstacle | Pivot left |
| Obstacle | Obstacle | Reverse, 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.
