The problem we were presented with for our Engineering-199 Final Project was to create a robot that would solve a simple serpentine pattern maze and put out a fire at the end of the maze. The expectation was that our robot would be coded and designed to solve two possible iterations of the serpentine pattern: A “left-hand” turn maze and a “right-hand” turn maze. To create such a robot, we were allowed to use multiple different electronic components that we have worked with over the semester, which included: stepper motors (and our custom-built function library that we could use), ultrasonic sensors, servo motors, infrared sensors, relays, and an Arduino Uno.  In the design that my partner and I took to create the robot intended to function properly, we implemented two stepper motors, an ultrasonic sensor, an infrared sensor, a relay, an Arduino Uno, a couple of 3-D printed mounting brackets, and some 3-D printed wheels. The electronic components were provided to us for use throughout the semester by our professor, while the 3-D prints were to be printed and implemented onto our robot ourselves.

The approach that I and my partner used to solve the problem was one in which we wanted to create an algorithm that would work for any type of “right-hand” or “left-hand” maze (that is of a serpentine pattern), so we implemented an algorithm that did so, and one that did so only using a singular sensor. A link to my partner’s blog post can be found here: https://portfolio.wcu.edu/jhenry4-engr/2023/12/14/fire-fighting-robot-final-project/

During our designing and planning iterations of our robot, we went through a couple of different design changes. One of the biggest changes that we had to focus on getting implemented for our robot was fixing the wheel attachments that went onto our robots. The first prints of our wheels proved to be way too loose for our robot to effectively move on the rubber track piece of our wheels (this looseness was caused due to failure to account for inaccuracies on the Prusa-3D printer we used). We had to go through around four different individual wheels before we finally got the print dimensions correct for our final product. Another design change that we had to make for our final product for this project was the removal of a tone block generator that we had added to make a fire-truck siren sound as the robot worked its way through the maze, however, there was a power glitch between the two Arduino Unos that we tried using, so we ended up taking the design idea out as it was causing functional issues with our robot’s main objective.

While working on this project I learned a lot of things about coding, specifically coding in C++ that I previously hadn’t known how to do. I learned how to import pre-existing libraries and call upon certain functions within those libraries (servo.h library) to get the desired functionality out of our electronic components. I also learned how to create my own function libraries (in the form of our stepper motor library that we made), how to define the functions within those libraries correctly, and also how to reference it correctly from another Arduino.ino file.

I was overall very pleased with the result of our project, however, certain aspects could have been greatly improved on. Our wheels could have been designed a little bit better and a little bit more snug, we were still having a little bit of issues of having them stay on properly towards the ending iterations of our testing of our robot. We also could have made the wiring and overall end design of the robot a little bit more appealing as it looks like a jumble of wire attached to a battery, which isn’t something that I would have liked to have had if we were given a little bit more time to touch up things for our robot.

The video showcasing my robot working can be found below: