Week 10-11: Machine Building (Pipe Robot)
For these two weeks, the class was surpised with a side project -- building a robot that would help locate and unclog pipe(s) that are preventing the entire left half of all of the bathrooms in the science center from being out of order.
According to the building manager, the pipes are long and built such that they are laid slightly off from the original blueprints, mixed with "y"s that have the pipe branch off to different direction, its a whole maze.
Thus, a simple drain snake and camera have not been able to help.
With a professional drain pipe robot costing up to $10K, we tried to tackle the issue as a class to build a functioning robot for them.
After several brainstorming sessions, our class decided on a long train-like structure for the robot.
We then divided into smaller teams, each responsible for a specific component of the robot.
I chose to join the camera team, which focused on designing a weatherproof camera capable of transmitting real-time images from the robot to a screen on the user's side.
Camera
Firstly, we had to choose an appropriate camera.
We selected the
OV670 Camera module (Non-Fifo) due to extensive documentation on wifi-less image streaming and the ability to work independently from wire ribbons.
Despite what seemed like countless documentation, we found challeneges in connecting all 12 wires to an appropriate pins on our microcontroller of choice - the ESP32.
We knew it was possible because we saw videos of other people using the same microcontroller and getting the camera to work.
After extensive digging though various documentation and help from Bobby (pictured below), I finally got camera to display images to my laptop!
The next challenge was then figuring out how getting the images streaming onto a screen.
This required several hours of combing the internet on relevant documentation and getting help from Bobby.
What was most difficult was getting all the wires were correctly connected to a specific pin with the appropriate capabilities.
Fortunately, only two pins remained unused, and everything functioned perfectly in the end.
Attached in the code are all the file necessary to run the code.
The "User_Setup.h" file however, is a file that belongs to the "
" library that is utilized and was modified specifically to work with the ESP32 microcontroller that we were using.
Live Demo of Camera
Once we had the camera running, we then needed to connect it to a light source and encase everything in a weatherproof casing.
I was provided with a recycled light component, originally part of a bike headlight, to integrate with the camera.
I designed a custom 3D printed mount (in orange), perfectly fitted to position the light against the camera.
The assembly was then securely attached to the acrylic back panel of the clear casing.
Using epoxy and a ballon, I securly encased the camera in a clear acrylic box, fitted with a button that could turn on/off the light.
Final Product
Unfortunetly, we didn't have enough time to complete the robot within the time of the semester, but we got far enough to have a semi-intergrated functioning robot within a span of 2-weeks!
Further iterations of the intergrated design will be necessary to make the robot work.