- ESP32 Microcontroller
- 5 x VL53L0X Time-of-Flight (ToF) ranging sensor (3 in front, left and right)
- 3 x TCS34725 Color Sensor, with TCA9548A I2C Mux
- MPU6050 IMU
- 2 x MG310 DC Motor with differential drive configuration
- MDD10A Cytron Motor Driver
- I2C Bus 0 - 3 x TCS34725, ICA9548 I2C Mux
- I2C Bus 1 - 5 x VL53L0X, MPU6050
- General Purpose Timer (GPTimer) with 4ms ISR for sensor sampling task
- MCPWM 20kHz with comparator resolution of 2000
- PCNT 2 Unit for 2 wheel encoder
main.cis the main code for robot logic and peripheral initialization- Sensor drivers' header and C file like
mpu6050.handvlx53lox.ccontains sensor functions like initialization and reading - Some time critical sensor sampling code are implemented in
main.cinstead of the sensor driver
The project is writted using ESP-IDF APIs. Activation of the ESP-IDF environment is required before using the idf.py command. See Step 4. Set up the Environment Variables
To build and flash
git clone https://github.com/seapanda0/maze_robot.git
cd maze_robot
idf.py build
idf.py flash