ESP32 Mobile Robot Teleoperation with Acrome SMD Red: Wi-Fi Control and Real-Time Video Streaming
1. INTRODUCTION
ESP32 is a low-cost, high-performance microcontroller with Wi-Fi and Bluetooth capabilities.
This study covers the design and implementation of a multifunctional mobile robot system, remotely controllable over a Wi-Fi network using an ESP32 microcontroller. The system consists of a mobile robot platform, a linear actuator, a servo motor, and an ESP32-CAM module. All components can be controlled both via a web-based user interface and keyboard shortcuts.
Thanks to its user-friendly interface, precise positioning capabilities, and real-time video streaming, this project serves as a functional example for academic research, industrial automation applications, and autonomous robot systems.
2. MATERIALS USED
The main components used in this project and their descriptions are as follows:
ESP32-WROOM-32D Wi-Fi and Bluetooth–enabled microcontroller.
Acrome SMD RED Smart motor driver used to control DC motors.
Arduino Gateway Module Module that handles data transmission between the ESP32 and the motor driver.
DC Motors Used to provide movement for the robot. Click here for more information
ESP32-CAM Camera module with Wi-Fi and Bluetooth support, capable of streaming video.
Linear Motor Actuator with a 4 in (10.16 cm) stroke length.
Servo Motor Mini motor offering angle control from 0° to 180°.
Servo Module An add-on board specifically designed for robotic projects using SMD products. This module plugs into the add-on socket of the SMD Red BDC Motor Driver and controls RC servos via an optimized I²C communication protocol.
RJ11 Cable Provides the connection between the ESP32 – Arduino Gateway Module and the Acrome SMD RED.
Jumper Wires Used to make connections between hardware components.
3. SYSTEM SETUP AND CONNECTIONS
The setup of the mobile robot system consists of two main stages:
Uploading software to the ESP32 microcontroller via Arduino IDE
Connecting the hardware components
3.1 Arduino IDE Setup and ESP32 Board Configuration
1. Download and install Arduino IDE.
2. Add the ESP32 board manager URLs in the "Additional Board Manager URLs" section.
3. Include the Acrome-SMD library into the Arduino IDE.
4. Select the ESP32 board model and the correct port.
5. Set the serial monitor baud rate appropriately (115200 baud).
3.2 Hardware Connections
Connect ESP32 to the computer via a micro USB cable.
Connect the Gateway module to ESP32:
TX (Gateway) → RX (ESP32 - GPIO16)
RX (Gateway) → TX (ESP32 - GPIO17)
VCC (Gateway) → 5V (ESP32)
GND (Gateway) → GND (ESP32)
Connect DC motors to the SMD RED motor driver.
Interconnect the two SMD RED motor drivers.
Connect the SMD RED motor driver to the gateway module using the RJ11 cable.
Connect the Linear Motor to the SMD RED motor driver.
Since the ESP32-CAM module does not have a USB-TTL converter, use an FTDI (USB-TTL) adapter or another ESP32 board for programming.
After programming, only connect VCC and GND pins to the ESP32-CAM.
Connect the Servo motor, Servo Add-on Module, and SMD RED Motor Driver accordingly.
4. PROGRAMMING ESP32 AND ESP32-CAM
4.1 What is ESP32-CAM?
ESP32-CAM is a development board produced by Espressif Systems, featuring Wi-Fi and Bluetooth capabilities. It integrates an ESP32-S microcontroller and an OV2640 camera module, making it suitable for wireless image processing, smart security systems, IoT projects, and video transmission applications.
4.2 Programming ESP32-CAM (Using ESP32 as an Intermediate Programmer)
Since the ESP32-CAM lacks a built-in USB-TTL converter, it needs to be programmed using an FTDI adapter or an ESP32 development board.
4.3 Programming Steps with ESP32
Prepare ESP32 as a Programmer
Connect the ESP32 "EN" pin to GND to prevent booting.
Connect:
TX (ESP32) → U0RX (ESP32-CAM GPIO3)
RX (ESP32) → U0TX (ESP32-CAM GPIO1)
Connect GND and 3.3V between ESP32 and ESP32-CAM.
Connect IO0 pin of ESP32-CAM to GND to enter programming mode.
UploadSoftware via ArduinoIDE
Install ESP32 board packages and select "AI Thinker ESP32-CAM" or an appropriate board.
Set the correct COM port.
Upload sample camera code after updating the necessary parameters.
Running ESP32-CAM
After uploading, disconnect the GND and IO0 connection and reboot ESP32-CAM into normal mode.
Retrieve the IP address from the serial monitor and access the video stream.
This way, ESP32 can be used instead of a USB-TTL converter to program ESP32-CAM.
5. LINEAR MOTOR PROGRAMMING WITH ESP32
The system consists of a linear actuator with a 10.16 cm (4-inch) stroke length, Acrome-SMD motor driver, Arduino Gateway module, and basic connection elements.
To control the movement and positioning of the linear actuator, an analog voltage measurement mechanism is used. ESP32 continuously reads data from the analog port using the getAnalogPort() function to determine the motor's position. These values are normalized between the minimum (adcMin) and maximum (adcMax) obtained during calibration and converted to centimeters (cm).
The calibration process involves moving the actuator fully forward and backward to record the extreme ADC values. Thus, the system can accurately measure the motor's position and control the movement until the target position is reached.
Through the web interface, users can move the motor forward or backward, change the speed, or enter a specific target position in centimeters.
This setup enables precise position control, essential for industrial automation and robotics applications, wirelessly and user-friendly.
6. SERVO MOTOR PROGRAMMING WITH ESP32
In this system, the servo motor is configured as a mini motor capable of angle control between 0° and 180°. The Servo Add-on Module of the Acrome-SMD motor driver is used, and the motor is controlled via an optimized I2C protocol.
Users can directly input an angle value (0-180°) through the web interface. ESP32 calls the setServo(ServoID, angle) function, sending a signal that adjusts the servo motor shaft to the desired angle.
7. SOFTWARE AND CODE
7.1 ESP32 Teleoperation
The complete software developed for this multifunctional mobile robot system controllable via Wi-Fi is provided. It consists of a mobile robot platform, linear actuator, servo motor, and ESP32-CAM module. All components can be controlled through a web-based user interface and keyboard shortcuts.
You can update the IP address, SSID, and password in the code according to your network.
The ESP32-CAM module broadcasts real-time video over Wi-Fi. Users can see the robot and navigate it accordingly by accessing the IP address. You should also update the SSID and password in the code.
8. CONCLUSION AND EVALUATION
The developed system successfully integrates hardware and software components. This ESP32-based project combines wheeled robot motion, linear positioning, servo motor positioning, and live video streaming into a user-friendly, web-managed system.
It offers a flexible and scalable structure, particularly suitable for fields like agricultural robots, mobile exploration vehicles, and remote monitoring systems.
The system can serve as a reference for academic projects, graduation theses, and advanced IoT/robotic applications.
Video demonstration and application interface links:
Oops! Something went wrong while submitting the form.
Discover Acrome
Acrome was founded in 2013. Our name stands for ACcessible RObotics MEchatronics. Acrome is a worldwide provider of robotic experience with software & hardware for academia, research and industry.