Our team was tasked with creating a system that could receive and transmit data between a sensor and an actuator using MATLAB/Simulink and an Arduino microcontroller. We implemented a setup where a potentiometer served as the input device, and a servo motor acted as the output actuator. The system was designed so that when the potentiometer reached a specified threshold, it triggered the servo to move demonstrating real-time data acquisition, processing, and control. Additionally, we learned to use 3D modeling and rapid prototyping tools, designing a small custom 3D-printed part featuring our team number.
This project provided the foundation for hardware interfacing, signal acquisition and control integration that will be critical for the final project. Through project 1, we gained the experience in using MATLAB and Simulink to communicate with external hardware, laying the groundwork for motor control and real time feedback. The 3D design component also introduced us to rapid prototyping which will be very important in later parts for the final build. Most importantly, Project 1 helped our team develop early collaboration and workflow practices that will carry through the rest of the course.
Our team was tasked with designing and implementing a camera-based sensing system capable of identifying the number, color, shape, and position of objects in a controlled environment. Using MATLAB and image processing techniques, we developed an algorithm to perform background subtraction, detect colored stickers on an 8.5" x 11" surface, and record their coordinates and classifications in a structured data format. In addition to building the sensing system, we also began the team website to document our engineering progress, design decisions, and final results in a clear, professional format.
This project provided the foundation for the vision and sensing systems required in our final project. By developing reliable camera-based detection and data processing methods, we learned how to capture and interpret the state of a game board in real time. These skills will directly translate to tracking bowling pins and guiding the robot’s shot decisions in the final design. Additionally, building the website during this phase helped us establish a clear structure for documenting progress and communicating results effectively, preparing us for the comprehensive presentation at the end of the semester.
Our team was tasked with building upon our previous projects regarding using the vision shape recognition software to now find the position of the selected object and rotate the motor to that position. For this, our team had to find some way of getting consistent buttons on the objects on the lane with some sort of graphical user interface (GUI) to allow the user to select the object that the motor should rotate to. For this project the motor was in a set position with some pointer on the top and it would just adjust its angle to the position of the object but down the line we would like to change this to a rack and pinion mechanism for the final project. For this projects demo, we needed to consistenly produce working buttons on the lane for each pin/object that is there along with the motor properly rotating to that position when selected. This process also needed to be replicated multiple times with a high level of accuracy.
This project built upon our previous experience of working with the camera and motor with MATLAB and combined them into one task. Before the projects were very focused on either working with the camera or the motor but now this project had us link it together, preparing us for the final project. One thing that was a large struggle was working with the camera. There was still some issues with lighting effecting if the image would pick up each shape on the lane or not. This was because the lane itself was reflective and glossy, we tried to fix this for this demo by taping a piece of paper on top. This worked for the demo and purposes of showing that we can communicate with the motor by sending it the cooridnates of hte selected object but this will need to be fixed by the final project. Project 3 was a very good start for our final design and there wasnt too much that we need to change before the final design is done.
Going into the final project there were a few concerns we had and we had to address before we could start testing anything. The main issue was the vision part of the project. The pin detection as we had it was inconsistent and the lighting had a lot to do with that. First thing that we changed was swapping from a flashlight to a ring light to help disperse the light over the lane more even. This did help a little but but the detection was not 100% like we needed for our final project. We then began to mess with lots of other alternatives to background suptraction, none of which were giving us the results we desired. We ended up going off of the pixel locations that the pins would be placed. Since we have a picture of where the pins will be in the lane every time, we took those coordinates and searched for any orange at that pixel or a little around it. If it found any orange then it would put a button saying that the pin is present. This fixed all of our vision issues and was what we used in the final design. The last big change that we made was changing the motor from an angular motion to a method to work with our rack and pinion design. This just took a few hours of working with the rotations and getting the proper parts 3D printed. We also added a Servo motor that was in charge of the ball release mechanism, it would release the ball after a small delay when the ramp is aligned with the pins.