Partner - Chloe Davis
Link to Her Blog - https://sites.google.com/view/cdavisengineering/home
In this project, we were tasked with creating, and coding a robot that was able to navigate a maze, then proceed to sense and put out a flame. When we were given this assignment, we were told that the robot was going to have to be able to read which maze (left or right) was set up and be able to navigate it. In class we designed the basic shape of the wheels, and motor mounts, which we ended up incorporating into our final 3D printed baseplate design. We also created mounts to hold and maintain consistency with the sensors, and the fan.
Our approach to this solution was to allow the robot to initially sense which maze it was about to solve, then proceed to detect when there was a wall in front of it and turn the appropriate direction based on which maze it detected it was in. Then we included it to have the readings from the infrared sensor always reading, so as soon as it detected a flame it would go on to put it out.
While designing our robot, we went through a few different thoughts about how we were going to accomplish this task, and that led to a few iterations in both the code as well as the physical model. On the coding side, we initially were going to code it so that it could read any maze, and detects and carry out every single turn it would face, but we ended up realizing that the maze would remain consistent after the initial turn, so we were able to adjust the code to simplify the solution a little bit. On the side of the physical design, we had a few different thoughts throughout about how to make it work. We were given poster board to be the base of our robot but elected to 3D print the base, so we could implement a snap fastener design into the baseplate and the mounts, so we were able to make adjustments to the placement of the different components, all while keeping everything in place when we needed them to stay still. The 3D printed base also worked as a sturdier base for the robot.
Throughout the coding process, I learned a lot about many different aspects of coding. I was able to better understand the logic behind the coding, as well as using the in-class activities to apply the use of sensors, and how to code them to read and display readings, and how they can work together with other parts of the bot. Another aspect of code that I learned more about was the use of "If" statements, and "while" statements, that essentially told the robot what to do, if and while snesors were reading specific readings.
Overall, the robot is able to very consistently, and reliably solve the maze and put out the flame. And after learning a lot about how to use different functions, and statements in code to have the robot accomplish a task, there is still room for it to grow. If we had a little bit more time, we could've coded the robot so that it would be able to navigate itself anywhere it went no matter what the series of turns were, and we also could've added some refinement to the dimensions and layout of the mounts, along with experimenting with the best ways for us to print the snap fasteners to minimize the number of supports needed. But overall, the robot does exactly what we needed it to with the problem given to us at hand!
Below are the videos of our robot navigating both of the mazes.
Below are the pictures of our code used in this project