A comprehensive autonomous line-following and maze-solving robot project featuring multiple hardware iterations, advanced algorithms, and professional PCB designs.
Our MicroMouse has proven its excellence in prestigious robotics competitions:
- ๐ฅ 1st Place - Locus, Pulchowk Campus
- ๐ฅ 2nd Place - Delta 5.0, Dharan IOE
- ๐ 5th Place - Techfest, IIT Bombay 2024
- ๐ฏ Project Overview
- โจ Key Features
- ๐ง Hardware Versions
- ๐ป Software Architecture
- ๐ Getting Started
- ๐ Repository Structure
- ๐ ๏ธ Installation & Setup
- ๐ฎ Usage Instructions
- ๐ง Algorithms & Control Systems
- ๐ท Project Gallery
- ๐ค Contributing
- ๐ License
The Meshmerize MicroMouse is an autonomous robot designed to navigate line-following courses and solve complex mazes. This project showcases the evolution of robotics engineering through multiple hardware iterations, from Arduino Nano-based prototypes to advanced ESP32-powered systems.
- Multiple Hardware Generations: Evolution from v1.0 to v3.1 with continuous improvements
- Dual Platform Support: Both Arduino Nano and ESP32 implementations
- Professional PCB Design: Custom-designed circuit boards using KiCad
- Advanced Algorithms: LSRB maze-solving with optimized PID control
- Competition-Tested: Proven performance in national and international competitions
- Line Following: Precise black/white line detection and following
- Maze Solving: Autonomous exploration and shortest path execution
- Multi-Surface Support: Adaptable to different track conditions
- PID Control System: Smooth and accurate movement control
- Speed Management: Adaptive speed control for different track sections
- Sensor Calibration: Advanced sensor tuning for reliable detection
- Custom PCB Design: Professional circuit board layouts
- Modular Architecture: Easy maintenance and upgrades
- Power Management: Efficient voltage regulation for all components
Arduino Nano Series
- Microcontroller: Arduino Nano
- Motor Driver: L293D
- Sensors: QTR-8A analog sensor array
- Status: Initial prototype and testing phase
- Microcontroller: Arduino Nano (optimized)
- Motor Driver: SparkFun TB6612FNG
- Sensors: 8-channel QTR sensor array
- Improvements: Better motor control, enhanced PID tuning
- PCB: Custom-designed v2.0 PCB
- Microcontroller: Arduino Nano
- Features: Professional PCB design with improved layout
- Status: Competition-ready version
ESP32 Series
- Microcontroller: ESP32 DevKit
- Development: PlatformIO-based development
- Features:
- Wireless capabilities
- Higher processing power
- Advanced sensor integration
- PCB: Custom ESP32-based PCB design
- Arduino IDE: Traditional Arduino Nano development
- PlatformIO: Advanced ESP32 development with better library management
#include <SparkFun_TB6612.h> // Motor control library
#include <QTRSensors.h> // Sensor array library- LSRB Algorithm: Left-Straight-Right-Back priority maze solving
- PID Control: Proportional-Integral-Derivative control for smooth movement
- Path Optimization: Shortest path calculation and execution
- Arduino IDE or PlatformIO
- USB cable for programming
- Basic electronics knowledge
- Robotics track or maze for testing
-
Clone the repository
git clone https://github.com/prashantbhandary/Meshmerize-MicroMouse-.git cd Meshmerize-MicroMouse- -
Choose your platform
- For Arduino Nano: Navigate to
ArduinoNano/folder - For ESP32: Navigate to
Esp32/folder
- For Arduino Nano: Navigate to
-
Select the appropriate version
- Pick the version that matches your hardware setup
- Latest versions recommended for best performance
๐ฆ Meshmerize-MicroMouse-
โโโ ๐ง ArduinoNano/
โ โโโ ๐งช arduno_nano_v1_TestingCode/
โ โ โโโ arduino_sensor_test2.0/
โ โ โโโ black_line_maze_2.0/
โ โ โโโ motor-testing/
โ โ โโโ night_nano/
โ โโโ ๐ micro_mouse_v1-files/
โ โ โโโ codes/ (Line follower, maze solving, testing)
โ โ โโโ design/ (3D models, PCB files)
โ โโโ ๐ micro_mouse_v2-files/
โ โ โโโ BlackLineMazeFinal_v2-Code/
โ โ โโโ LineFollowerPid_v2-Code/
โ โ โโโ WhiteLineMazeFinal_v2-Code/
โ โ โโโ micro_mouse_v2-pcb/
โ โโโ ๐ micro_mouse_v3_files/
โ โโโ micro_mouse_prashant/
โ โโโ micro_mouse_v3.0-PCB/
โ โโโ micro_mouse_v3.1-PCB/
โโโ ๐ก Esp32/
โ โโโ LineFolloweEsp32_v1_code/
โ โโโ micromouseEsp32_v1_PCB/
โ โโโ testing_esp32_v1_code/
โโโ ๐ธ IMG/
โ โโโ Competition videos and images
โ โโโ Robot demonstration media
โโโ ๐ README.md
-
Install Required Libraries
- SparkFun TB6612 Motor Driver Library - QTRSensors Library -
Hardware Setup
- Connect QTR sensors to analog pins A0-A7
- Wire motor drivers according to pin definitions
- Connect control switches and LED indicators
-
Upload Code
- Open the desired version in Arduino IDE
- Select Arduino Nano board
- Upload the code
-
PlatformIO Setup
cd Esp32/LineFolloweEsp32_v1_code/Micromouse/ pio run --target upload -
Hardware Configuration
- Follow ESP32 pin definitions in the code
- Ensure proper power supply (3.3V/5V compatibility)
-
Calibration Phase
- Press switch 1 to start sensor calibration
- Move the robot over the line during calibration
- LED indicator confirms successful calibration
-
Mode Selection
- Switch 2: Left-hand rule (LHS) priority
- Switch 3: Right-hand rule (RHS) priority
-
Start Operation
- Press switch 1 again to begin line following/maze solving
- Robot will autonomously navigate the course
- Robot follows black line on white surface (or vice versa)
- PID control ensures smooth tracking
- Adaptive speed control for optimal performance
- Exploration Phase: Robot maps the entire maze
- Optimization Phase: Calculates shortest path
- Execution Phase: Runs the optimized route
// Priority decision making
if (left_path_available) {
turn_left();
} else if (straight_path_available) {
move_forward();
} else if (right_path_available) {
turn_right();
} else {
turn_back(); // Dead end
}// PID calculation for smooth movement
error = sensor_position - desired_position;
derivative = error - lastError;
correction = (kp * error) + (kd * derivative);
motor_speed_adjustment = base_speed ยฑ correction;- Base Speed: 130-255 (adjustable per version)
- Kp (Proportional): 0.05-0.151 (tuned per hardware)
- Kd (Derivative): 0.1-0.8 (optimized for stability)
![]() |
![]() |
|---|---|
| Side Profile | Front View |
Competition Ready Configuration
Live demonstration from IIT Bombay competition
Complex maze navigation showcase
We welcome contributions to improve the MicroMouse project! Here's how you can help:
- ๐ Bug Reports: Found an issue? Let us know!
- ๐ก Feature Requests: Suggest new capabilities
- ๐ง Code Improvements: Optimize algorithms or add new features
- ๐ Documentation: Help improve guides and tutorials
- ๐ฌ Testing: Try different hardware configurations
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Make your changes
- Test thoroughly with hardware
- Commit your changes (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Project Maintainer: Prashant Bhandary
- GitHub: @prashantbhandary
- Repository: Meshmerize-MicroMouse-
- Portfolio Website: ๐ bhandari-prashant.com.np
- ๐ Issues: Use GitHub Issues for bug reports
- ๐ฌ Discussions: Join repository discussions for general questions
- ๐ Wiki: Check the wiki for detailed guides (coming soon)
This project is licensed under the MIT License - see the LICENSE file for details.
- โ Use in personal and commercial projects
- โ Modify and distribute freely
- โ Include in other projects
- ๐ Attribution required
Made with โค๏ธ by the Robotics Team, WRC
"Engineering the future, one algorithm at a time."
- Winner at Locus 2025, Pulchowk IOE.
- 1st Runner-up at Delta 5.0 ERC, Dharan IOE.
- Top 5 finish at Techfest, IIT Bombay 2024 amidst tough competition.
This project was a huge learning experience, teaching us valuable lessons in algorithm optimization, hardware design, and problem-solving.
- Teammates and Mentors: Aabiskar Regmi, Sanjog Sapkota, Siddartha Gupta
Canโt wait to tackle even bigger challenges next! ๐


