Skip to content

prashantbhandary/MicroMouse-LineMaze

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿค– Meshmerize MicroMouse Project

License: MIT Platform KiCad

A comprehensive autonomous line-following and maze-solving robot project featuring multiple hardware iterations, advanced algorithms, and professional PCB designs.

๐Ÿ† Competition Achievements

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

IIT Bombay Certificate Certificate of Achievement from IIT Bombay Techfest 2024


๐Ÿ“‹ Table of Contents


๐ŸŽฏ Project Overview

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.

What Makes This Project Special?

  • 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

โœจ Key Features

๐ŸŽฏ Navigation Capabilities

  • 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

โšก Performance Optimization

  • 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

๐Ÿ”ง Hardware Excellence

  • Custom PCB Design: Professional circuit board layouts
  • Modular Architecture: Easy maintenance and upgrades
  • Power Management: Efficient voltage regulation for all components

๐Ÿ”ง Hardware Versions

Arduino Nano Series

Version 1.0 - Prototype

  • Microcontroller: Arduino Nano
  • Motor Driver: L293D
  • Sensors: QTR-8A analog sensor array
  • Status: Initial prototype and testing phase

Version 2.0 - Enhanced Performance

  • 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

Version 3.0/3.1 - Professional Grade

  • Microcontroller: Arduino Nano
  • Features: Professional PCB design with improved layout
  • Status: Competition-ready version
ESP32 Series

ESP32 Version 1.0

  • Microcontroller: ESP32 DevKit
  • Development: PlatformIO-based development
  • Features:
    • Wireless capabilities
    • Higher processing power
    • Advanced sensor integration
  • PCB: Custom ESP32-based PCB design

๐Ÿ’ป Software Architecture

Programming Platforms

  • Arduino IDE: Traditional Arduino Nano development
  • PlatformIO: Advanced ESP32 development with better library management

Key Libraries

#include <SparkFun_TB6612.h>  // Motor control library
#include <QTRSensors.h>       // Sensor array library

Algorithm Implementation

  • 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

๐Ÿš€ Getting Started

Prerequisites

  • Arduino IDE or PlatformIO
  • USB cable for programming
  • Basic electronics knowledge
  • Robotics track or maze for testing

Quick Setup

  1. Clone the repository

    git clone https://github.com/prashantbhandary/Meshmerize-MicroMouse-.git
    cd Meshmerize-MicroMouse-
  2. Choose your platform

    • For Arduino Nano: Navigate to ArduinoNano/ folder
    • For ESP32: Navigate to Esp32/ folder
  3. Select the appropriate version

    • Pick the version that matches your hardware setup
    • Latest versions recommended for best performance

๐Ÿ“ Repository Structure

๐Ÿ“ฆ 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

๐Ÿ› ๏ธ Installation & Setup

For Arduino Nano Versions

  1. Install Required Libraries

    - SparkFun TB6612 Motor Driver Library
    - QTRSensors Library
    
  2. Hardware Setup

    • Connect QTR sensors to analog pins A0-A7
    • Wire motor drivers according to pin definitions
    • Connect control switches and LED indicators
  3. Upload Code

    • Open the desired version in Arduino IDE
    • Select Arduino Nano board
    • Upload the code

For ESP32 Version

  1. PlatformIO Setup

    cd Esp32/LineFolloweEsp32_v1_code/Micromouse/
    pio run --target upload
  2. Hardware Configuration

    • Follow ESP32 pin definitions in the code
    • Ensure proper power supply (3.3V/5V compatibility)

๐ŸŽฎ Usage Instructions

Initial Setup

  1. Calibration Phase

    • Press switch 1 to start sensor calibration
    • Move the robot over the line during calibration
    • LED indicator confirms successful calibration
  2. Mode Selection

    • Switch 2: Left-hand rule (LHS) priority
    • Switch 3: Right-hand rule (RHS) priority
  3. Start Operation

    • Press switch 1 again to begin line following/maze solving
    • Robot will autonomously navigate the course

Operating Modes

Line Following Mode

  • Robot follows black line on white surface (or vice versa)
  • PID control ensures smooth tracking
  • Adaptive speed control for optimal performance

Maze Solving Mode

  • Exploration Phase: Robot maps the entire maze
  • Optimization Phase: Calculates shortest path
  • Execution Phase: Runs the optimized route

๐Ÿง  Algorithms & Control Systems

LSRB Algorithm (Left-Straight-Right-Back)

// 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 Control System

// PID calculation for smooth movement
error = sensor_position - desired_position;
derivative = error - lastError;
correction = (kp * error) + (kd * derivative);
motor_speed_adjustment = base_speed ยฑ correction;

Key Parameters

  • 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)

๐Ÿ“ท Project Gallery

๐Ÿค– Robot Images

Robot Side View Robot Front View
Side Profile Front View

Competition Setup Competition Ready Configuration

๐ŸŽฅ Demo Videos

โ–ถ๏ธ Watch MicroMouse in Action
Live demonstration from IIT Bombay competition

โ–ถ๏ธ Advanced Maze Solving Demo
Complex maze navigation showcase


๐Ÿค Contributing

We welcome contributions to improve the MicroMouse project! Here's how you can help:

Ways to Contribute

  • ๐Ÿ› 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

Development Setup

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Make your changes
  4. Test thoroughly with hardware
  5. Commit your changes (git commit -m 'Add AmazingFeature')
  6. Push to the branch (git push origin feature/AmazingFeature)
  7. Open a Pull Request

๐Ÿ“ž Contact & Support

Getting Help

  • ๐Ÿ“‹ Issues: Use GitHub Issues for bug reports
  • ๐Ÿ’ฌ Discussions: Join repository discussions for general questions
  • ๐Ÿ“– Wiki: Check the wiki for detailed guides (coming soon)

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

What this means:

  • โœ… Use in personal and commercial projects
  • โœ… Modify and distribute freely
  • โœ… Include in other projects
  • ๐Ÿ“‹ Attribution required

๐ŸŒŸ Star this project if you found it helpful!

Made with โค๏ธ by the Robotics Team, WRC

"Engineering the future, one algorithm at a time."

GitHub stars GitHub forks

Achievements:

  1. Winner at Locus 2025, Pulchowk IOE.
  2. 1st Runner-up at Delta 5.0 ERC, Dharan IOE.
  3. 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.

Special Thanks:

  • Teammates and Mentors: Aabiskar Regmi, Sanjog Sapkota, Siddartha Gupta

Canโ€™t wait to tackle even bigger challenges next! ๐Ÿš€

Releases

No releases published

Packages

 
 
 

Contributors