This is an old revision of the document!
SCOUT-CAM is a compact, dual-mode reconnaissance rover designed for inspecting hazardous, confined, or hard-to-reach indoor environments where human entry is unsafe, slow, or simply impractical. Typical use cases include:
The rover streams live video from an on-board ESP32-CAM and is steered with a Sony DualShock 4 controller. It seamlessly switches between two operating modes:
The system has three logical layers, separated by the communication medium they use:
In manual mode the ESP32-CAM is essentially a translator: it turns network commands into signals for the servos and the DC motors. In autonomous mode it ignores the drive commands from the PC and instead runs a simple behaviour:
The operator can take control back at any moment by pressing the mode-toggle button on the PS4 controller — useful when the rover gets stuck or makes a poor decision.
The 9 V battery feeds the MB102 breadboard power supply, which provides a clean 5 V rail to the ESP32-CAM, the two servos and the L298N's logic input. The DC motors are powered directly from the battery through the L298N's H-bridge — this keeps the noisy motor current off the camera's supply, which would otherwise cause Wi-Fi resets and image artefacts.
To address the elephant in the room, the reason the PS4 controller input passes through the Host PC instead of going straight to the ESP32-CAM is that, because the module only has one available antenna, activating both Bluetooth (Classic) and WiFi at the same time would require handling allocating time slices to both protocols on the antenna. This isn't a problem on itself, but the video quality of the live feed (already pretty low) would take a nosedive, together with serious input lag for the controller inputs.
| ESP32-CAM (AI-Thinker) |
| 3-pin Makeblock ultrasonic sensor |
| 2× Makeblock Analog servos |
| L298N dual H-bridge motor driver |
| 2× DC motors |
| MB102 power supply module |
| 9 V battery |
| Host PC |
| Sony DualShock 4 |
| ESP32-CAM-MB USB to serial adapter for flashing |
| GPIO 2 | Servo 1 — signal |
| GPIO 4 | Servo 2 — signal |
| GPIO 12 | L298N IN1 |
| GPIO 13 | L298N IN2 |
| GPIO 14 | L298N IN3 |
| GPIO 15 | L298N IN4 |
| GPIO 16 | Ultrasonic SIG |
| 5V pin | Power |
| GND | - |
TBA