I have started building the maze solving robot as a project for our subject in embedded system this was a great project for an embedded system as it allows you to craft a robot that has sensors as feedback and motors as the actuators that would be making those feedback correct and respond on what is currently happening. Our project was inspired by the micromouse and the goal of the task was to have a robot that could solve the maze as fast as it can and the robot must be small as it can.
The Task
The task is so build an autonomous robot that would navigate in the maze that would automatically solve the maze as it goes inside the maze. the robot must be completely autonomous and should be able to navigate the maze with only the embedded program that is inside that robot. you can only use sensors and actuators meaning no Bluetooth transmitters to control the robot and the robot would only rely on those sensors that you would put in the robot
Parts of the Robot
- Microcontroller: ESP32 S3 Dev Kit
- Motor/ Actuator: Micro metal Gear 1000rpm 6V Motor
- Motor Driver: Texas Instruments TB6612FNG Motor Driver
- IR Sensor: Sharp IR Sensor GP2Y0A02YK0F
- Battery: 9V Rechargeable Battery
- Power Regulator: 2x LM 2596
Every part of it was studied to their counterpart traditionally the previous bots that have competed in this tournament didn't use any kind of the parts that was choose by us. So we are working from scratch from here.
For comparison here are the traditional parts that they used
- Microcontroller: Arduino Uno R3
- Motor/ Actuator: 9V Motor
- Motor Driver: L298 Motor Driver
- IR Sensor: Ultrasonic Sensor
- Battery: 9 Battery
- Power Regulator: None
Microcontroller
the microcontroller that we used in this was the ESP32 S3 Dev Kit. We opted to use the ESP32 to have a faster microcontroller compared to the traditional Arduino Uno R3 this was actually to execute the first plan that it must have to be fast enough to accommodate the speed of the bot knowing that the motor could dive 1000rpm on it. we actually also opted to choose the stm32 microcontroller but upon knowing that the one we bought was a Chinese copy of it and didn't support the STM ide we then gone and purchased the ESP32 S2 Dev Kit
Motor and Motor Driver
the motor that we used in this was the Micro metal Gear 1000rpm 6V Motor and we choose this one to have a fast enough bot so it could travel faster knowing that we wanted it to have the same performance as a micromouse
IR Sensors
in choosing the IR sensor we first got to choose the generic IR sensors which are the digital ones we then swapped it to a analog one know that it would be better if we would choose an analog because we can calculate every single adjustment it would make compared to a digital one.
Battey and Power Regulator
this was carefully choose because we wanted the power delivery to be efficient and safe at the same time the motor were needed to be driven at 6V meanwhile the ESP32 S3 Dev Kit only need 3.5V on its pin so we need 2x of the LM 2596 to deliver 2 different voltage to 2 different devices
Crafting the Robot
In making the robot we proposed a lot of different designs here is one of designed that became the basis of the whole design of the robot. The robot must be balanced and well structured to handle the turns and the acceleration that it would receive from its 1000rpm motors so we tend to have a longer design even we can push a shorter one.
The robot base was made with transparent acrylic plastic because it is lightweight and also for it to be easy to work on and drill into. and simply the process is the just putting all the part together and we come up with a design like this.
At this part we already testing the components before putting all the parts together and we still haven't changed the IR sensors.
We have made the power regulator in a stack although we did not have enough knowledge if the design of this was safe enough we proceed to use this as it didn't gave us any error
This final design happened after several testing's and the feedback from those testing's were the one that pushed the designed to this final output that is using the analog IR sensors
Programming the Robot
After doing the robot we have proceed into programming it, we did some initial research and we wanted to make a robot that was very close to a micromouse. so we decided to do a flood fill algorithm this was to make an efficient way of solving the maze and solve the maze faster on its second try. But the first problem had occurred, one of