Home
Blog
Go Back
|
9
Min
Updated On
July 2, 2025

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:

    1. Uploading software to the ESP32 microcontroller via Arduino IDE
    2. 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

    1. 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.

    2. Upload Software via Arduino IDE


      • 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.

    3. 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.

    (Click here to access the code.)

    7.2 ESP32-CAM Live Video Streaming

    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:

    • Robot and Application Interface:


    Author

    Keziban Karagümüş
    Computer Engineering Intern

    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.