- Required Components
- Tools Needed
- Safety Precautions
- Assembly Steps
- Software Installation
- Testing and Calibration
- Troubleshooting
- 2× ESP32 Development Boards (WROOM recommended)
- 1× USB Joystick (compatible with USB host)
- 1× L298N Motor Driver Module
- 4× DC Motors (12V recommended)
- 1× Battery pack for motors (7.4V-12V LiPo or similar)
- 1× USB power bank for ESP32s (optional)
- 1× RC Car Chassis Kit (or custom chassis)
- Male-to-Female jumper wires (at least 20)
- Female-to-Female jumper wires (at least 10)
- Double-sided tape or mounting brackets
- Cable ties
- Heat shrink tubing (various sizes)
- Electrical tape
- Chassis mounting screws and nuts
- Battery holder or mounting solution
- Soldering iron and solder
- Wire stripper
- Phillips and flathead screwdrivers
- Small pliers
- Hot glue gun
- Multimeter
- USB cable for programming ESP32s
- Computer with Arduino IDE installed
- Always disconnect power before making any connections
- Double-check all wiring before powering on
- Use appropriate fuses for motor circuit protection
- Keep battery voltage within recommended ranges
- Ensure proper ventilation when soldering
- Wear safety glasses during assembly
- Keep workspace clean and organized
- Unpack and identify all chassis components
- Follow chassis kit instructions to assemble the basic frame
- Mount the motors in their designated positions
- Ensure motor shafts rotate freely
- Attach wheels to motor shafts
- Mount the L298N motor driver in a central location on the chassis
- Connect motors to L298N:
- Right motors to OUT1 and OUT2
- Left motors to OUT3 and OUT4
- Add heat shrink tubing to motor connections
- Secure all wires with cable ties
- Mount the receiver ESP32 near the L298N
- Connect ESP32 to L298N:
ESP32 -> L298N GPIO 16 -> IN1 GPIO 17 -> IN2 GPIO 18 -> IN3 GPIO 19 -> IN4 GPIO 22 -> ENA GPIO 23 -> ENB GND -> GND VIN -> 5V
- Double-check all connections with multimeter
- Secure ESP32 with mounting tape or brackets
- Install battery holder in chassis
- Connect battery power to L298N:
- Battery positive (+) to L298N 12V
- Battery negative (-) to L298N GND
- Add power switch in battery positive line
- Install fuse holder in positive line
- Verify voltage at all connection points
- Prepare USB joystick connection:
ESP32 -> USB Joystick GPIO 16 -> D+ (Green) GPIO 17 -> D- (White) GND -> GND (Black) 5V -> VCC (Red)
- Use heat shrink tubing on all connections
- Mount transmitter ESP32 in suitable enclosure
- Add power switch if using battery power
- Install Arduino IDE from arduino.cc
- Add ESP32 board support URL in preferences
- Install ESP32 board package
- Install required libraries:
- ESP-NOW
- WiFi
- ESP32-USB-Soft-Host
-
Upload transmitter code:
- Open transmitter code in Arduino IDE
- Select correct ESP32 board model
- Set correct port
- Upload code
- Note down MAC address displayed in serial monitor
-
Update receiver code:
- Replace MAC address in receiver code with transmitter's MAC
- Upload to receiver ESP32
- Verify successful compilation
- Power up receiver first
- Connect transmitter to power
- Verify ESP-NOW connection (check serial monitor)
- Test basic movements:
- Forward
- Backward
- Left turn
- Right turn
- Stop
- Adjust
MotorCalibration
values in receiver code:leftMotorMultiplier = 1.0; // Adjust if needed rightMotorMultiplier = 1.0; // Adjust if needed turnSpeedMultiplier = 0.7; // Modify for turn speed turnRatio = 0.5; // Adjust turning behavior
- Upload modified code
- Test and repeat until movement is smooth
-
Motors Don't Move
- Check power connections
- Verify motor driver pins
- Test motor driver outputs with multimeter
- Check ESP-NOW connection status
-
Erratic Movement
- Calibrate motor multipliers
- Check for loose connections
- Verify joystick readings in serial monitor
- Check battery voltage
-
Communication Problems
- Verify MAC addresses match
- Check WiFi mode settings
- Reset both ESP32s
- Monitor serial output for errors
-
Joystick Issues
- Check USB connections
- Verify joystick data in serial monitor
- Test with different USB cable
- Check power supply stability
- Regularly check all connections
- Keep motors clean and lubricated
- Monitor battery voltage during operation
- Periodically tighten chassis screws
- Keep firmware updated
For additional support or questions, refer to the project documentation or community forums. Remember to always disconnect power before making any modifications to the system.