Project Description
For the first time in Notre Dame’s history, the electrical engineering seniors took part in a new Senior Design project: designing and constructing a micromouse! The Micromouse Competition, first announced in 1977 by IEEE Spectrum and then held in New York City in 1979, challenges teams to design and build a fully autonomous robot capable of independently navigating and solving a 16x16 maze without any human intervention. Each team is given a ten minute exploration phase, during which the robot traverses the maze, builds an internal map, and identifies the fastest route to the center. The robot then either must travel back from the center to its starting point or be brought back by the competitors to be reset for racing. The micromouse must then travel back to the center as quickly as possible. In our year-long Senior Design Course, we tested out skills through both hardware and software design and implementation.
Below is a group picture with our race day mouse and board! Team members left to right are: Ethan Stone, Kieran Cosden, Kuwunda Shamambo, and Samantha Sebastian
Team Members
Kieran Cosden
Lead PCB Designer, Motor Control Programmer, and Software Co-Lead
Samantha Sebastian
Testing and Verification Co-Lead & Sensor and Controls Programmer
Kuwunda Shamambo
Hardware Verification Co-Lead, Software & Schematic Designer
Ethan Stone
Treasurer, Algorithm & Maze Logic Designer
Hardware Description
During the fall semester, we researched the system and components for the micromouse under the requirement of using an ESP32 chip with an Arduino framework for the code. In tandem with class lectures about both hardware and software fundamentals, we took the time to narrow down our choices for the sensors and motors to be tested in the spring semester. Then using KiCad we designed a custom PCB for the components to interface with, and through small tweaks and changes based on design feedback we printed the first and only iteration of our board by early-March. Then throughout the last few weeks of the semester we troubleshooted our main board.
Key Components:
- Microcontroller: ESP32
- Sensors: VL530X Time-of-Flight Sensors
- Actuators: 6V Pololu MicroMetal Gearmotor 50:1
- Custom PCB designed with KiCad
Software Description
We utilized the Arduino framework for programming the ESP32 microcontroller. The software development focused on implementing algorithms for maze traversal, mapping, and pathfinding. Key aspects include sensor data acquisition, motor control logic, and decision-making processes to navigate the maze efficiently. We worked out the core logic for our autonomous navigation system.
Software Stack:
- Programming Language: C++ (Arduino framework)
- Microcontroller IDE: Arduino IDE
- Algorithm: FloodFill
- Key Modules: Sensor reading, motor control, maze mapping, path planning.
Race Day! :D
Since we couldn’t utilize our constructed PCB, we utilized the practice board provided to us at the start of the semester with customized ToF sensors mounted on the sides and front left. While our micromouse was successful in solving the maze during test runs, it unfortunately did not reach the center during the Race Day. During the ten minute exploration phase, it traveled to 17 cells before struggling to get past the first T-intersection. The most obvious issue during race day was the robot’s handling of T-intersections, where the mouse had a difficult time recognizing both side openings before the centering function fired.
One run through of the navigation portion of the maze!
Final Micromouse for Race Day using the practice board and our custom ToF sensors
Project Files
Below are the files for the KiCad files for our custom PCB design for our micromouse (corrected) and the Time-of-Flight Breakout Boards as well as our final report that goes into more detail about how design process and results
- KiCad of the Main Board (corrected) Download ZIP File
- KiCad of ToF Breakout Board Download ZIP File
- Final Report Download PDF