Skip to content

RawFish69/ESP32-RC-Car

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 RC Car

Arduino ESP32

A browser-based RC car project powered by ESP32-C3, featuring real-time control through an intuitive web interface with virtual joystick controls. Available in both single-board and dual-board configurations.


Features

Core Features

  • Browser-based control interface
  • Virtual joystick with touch/mouse support
  • Wi-Fi AP mode for direct connection
  • Real-time motor control
  • Precision turn control
  • Emergency stop function

Advanced Features

  • Individual wheel speed tuning
  • Live status monitoring
  • Dual-board long-range option
  • ESP-NOW peer-to-peer support

Quick Start

  1. Flash the code to your ESP32-C3
  2. Power up the car
  3. Connect to Wi-Fi network "Web RC Car"
  4. Navigate to 192.168.1.101 in your browser

Architecture

Single-Board Version

┌─────────────┐     ┌──────────────┐     ┌───────────┐
│  Browser    │ WS  │   ESP32-C3   │ PWM │   Motors  │
│  Interface  │◄───►│  Web Server  │────►│   Driver  │
└─────────────┘     └──────────────┘     └───────────┘

Dual-Board Version

┌─────────────┐     ┌──────────────┐     ┌──────────────┐     ┌───────────┐
│  Browser    │ WS  │   Control    │     │    Drive     │ PWM │   Motors  │
│  Interface  │◄───►│    Board     │◄───►│    Board     │────►│   Driver  │
└─────────────┘     └──────────────┘     └──────────────┘     └───────────┘
                          WiFi              ESP-NOW

Component Overview

  1. Web Interface (web_interface.cpp)

    • HTML/CSS layout
    • JavaScript joystick controls
    • WebSocket client
    • Real-time status display
    • UI event handling
  2. Control Board (control.ino)

    • Web server hosting
    • User interface handling
    • ESP-NOW transmitter
    • OLED display updates
    • Connection management
  3. Drive Board (drive.ino)

    • ESP-NOW receiver
    • Motor control logic
    • Failsafe handling
    • Automatic reconnection
    • Status monitoring

Communication Flow

Browser (Web Interface) → WebSocket → Control Board → ESP-NOW → Drive Board → Motors

Data Flow

User Input → JSON Command → ESP-NOW Packet → Motor Signal → Physical Movement

Hardware Requirements

  • ESP32-C3-Mini development board
  • Dual H-Bridge motor driver
  • 2x / 4x DC motors with wheels
  • LiPo battery or AA batteries
  • Chassis (3D printed, Laser Cut parts, etc)
  • Basic electronic components
  • Soldering is optional

Vehicle Builds

Omni-Drive Version

RC Car Omni Drive *4-wheel omni-directional drive configuration*

Standard Version

RC Car Default *2-wheel differential drive configuration*

Pin Configuration

Default Version (2-Wheel Drive)

Pin Function
7 Left Motor PWM
0 Right Motor PWM
8 Left Motor Forward
9 Left Motor Reverse
4 Right Motor Forward
3 Right Motor Reverse

Omni Version (4-Wheel Drive)

Motor Enable Pin (PWM) Direction 1 Direction 2
Left Front 5 6 7
Right Front 20 21 3
Left Back 8 9 10
Right Back 2 1 0

Dual-Board Version

An alternative version using two ESP32 boards with ESP-NOW communication:

Features

  • Long-range control (hundreds of meters)
  • Direct peer-to-peer communication
  • No WiFi network required
  • Split control and drive functionality
  • More reliable communication

Components

  • Control Board: Handles web interface and user input
  • Drive Board: Controls motors and receives commands
  • ESP-NOW protocol for board-to-board communication

Benefits

  • Separation of concerns
  • Extended range capability
  • Reduced latency
  • More reliable motor control
  • Independent WiFi and control systems

The code for this version is in:

  • control.ino: Web interface and ESP-NOW transmitter
  • drive.ino: Motor control and ESP-NOW receiver

Web Interface

The interface includes:

  • Interactive joystick
  • Real-time wheel speed indicators
  • Quick control buttons
  • Fine-tuning controls
  • Status monitoring panel

Supporting Documentation

Design Files

CAD Model

*3D CAD model of chassis*

Control Display

OLED Display

*OLED status display on control board*

Wiring Diagrams

Omni Circuit Schematic

*Omni version wiring*

Default Circuit Schematic

*Default version wiring*

Technical Details

Motor Control

  • 10-bit PWM resolution (0-1023)
  • 50Hz PWM frequency
  • Minimum PWM threshold for reliable start
  • Individual wheel speed tuning
  • Proportional turn control

Network Configuration

  • AP Mode: Web RC Car
  • IP: 192.168.1.101
  • No password required
  • Optimized for low latency

Performance Tuning

  1. Motor Dead Zone: Adjust MOTOR_MIN_PWM if motors don't start smoothly
  2. Turn Sensitivity: Modify the turn rate mapping in the web interface
  3. Wheel Balance: Use the tuning sliders to compensate for motor differences

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published