This project implements a versatile omni-directional robot controlled via an ESP32 microcontroller, featuring four omni-directional wheels each powered by individual DC geared motors. Two Arduino boards, each equipped with motor shields, manage precise control over the wheels, enabling smooth, multi-directional movement such as forward, backward, turning left/right, and diagonal movements.
The ESP32 acts as the central communication hub, hosting a web server for remote control via a user-friendly web interface and managing communications through the I²C protocol to coordinate the Arduino slaves.
- ESP32 Microcontroller: Manages Wi-Fi connectivity, hosts the web server, and communicates via I²C.
- Arduino Uno/Nano Boards (x2): Function as I²C slave devices controlling the motor shields.
- Arduino Motor Shields (x2): Allow individual control over each DC geared motor, enabling precise directional movement.
- Omni-Directional Wheels (x4): Enable smooth and versatile directional mobility without mechanical steering systems.
- DC Geared Motors (x4): Provide strong and reliable torque to power the robot wheels.
The ESP32 communicates with the Arduino boards via I²C, sending integer command values to instruct wheel movements:
1: Forward2: Backward3: Turn Left4: Turn Right5: Diagonal Forward Left6: Diagonal Forward Right7: Diagonal Backward Left8: Diagonal Backward Right0: Stop
- ESP32 Web Server: Hosts an intuitive web interface for remote control using WebSockets for real-time responsiveness.
- Arduino Firmware: Listens for I²C commands from the ESP32 and controls motor directions and speeds accordingly.
The robot is controlled via a responsive web interface designed with mobile compatibility. Users interact using directional buttons to command robot movement.
- Connect ESP32 to two Arduino controllers via I²C lines (
SDA,SCL). - Attach motor shields to Arduino boards and connect motors appropriately.
- Flash the ESP32 code provided in
esp32_code.ino. - Flash Arduino boards with respective
arduino1.inoandarduino2.inofirmware.
- Update Wi-Fi credentials in ESP32 firmware.
- Connect to the ESP32-hosted Wi-Fi network to access the web interface.
- Navigate to the ESP32's local IP address in your web browser.
- Use directional buttons for real-time control.
- Educational robotics
- Remote surveillance platforms
- Automated logistics
- Interactive demonstration robots
Feel free to fork, improve, and contribute to this project by opening pull requests or raising issues for discussion.
This project is open-source under the MIT License.