top of page

RILEY KAY
September 2020 - April 2021
ENGINEER 1P13
Learning Portfolio, McMaster University


Project Three - Milestones
Each project milestone for Project Three can be found below:
Team Milestones
Milestone 0
Milestone 1
Milestone 2
Milestone 3
Milestone 4
Individual Milestones
Milestone 2
Milestone 3
Python Program
(.txt, not the original .py)
So, in summary... what was our team's goal?
NOTE: In the above planning, my teammate and I used the terms "Q-arm" and "Q-bot" to describe the robots that were to play a role in our final design. As we implemented this program in a virtual environment powered by "Quanser Interactive Labs," these were the default names for the larger robotic arm, and the smaller, roomba-like robot, respectively (Q for Quanser).
The structure of having sub-teams resumed with this project, much like it had with project two. Only this time, I was presented with the challenge of being on the computing sub-team to design an automated waste sorting system using Python 3.8, a Raspberry Pi, a couple of robots, and an ultrasonic sensor. This year had actually been the very first year I had ever been exposed to computer programming in general, and so it wasn't exactly my strong suit when compared to fields like modelling and graphics, which I had a lot more experience in. Because it was my teammate's first exposure as well, it wasn't exactly her strong suit either, so it was quite the learning experience for both of us!
​
As all engineering design projects, there's always a process at the start. This process consisted of sensor research to aid our decision about what sensor we were going to use to have the smaller robot that was transferring the containers classify each sorting bin; we had the choice between a colour sensor, an ultrasonic sensor, an infrared sensor, an LDR sensor, a hall sensor, or a retro-reflective photoelectric sensor. This planning also consisted of workflow planning of the program itself, such as a storyboard (left, made by me) and pseudocode (right, made by my teammate).
​



As seen in the above planning, my teammate and I were originally going to use the colour sensor to identify each sorting bin, as we thought at the time that it would be easy to use because we could easily change the colour of each bin and the paths leading up to them to make them easily recognizable on the RGB scale (assuming we made one bin/path red, one bin/path green, one bin/path blue, and one bin/path white). However, as we entered the implementation stage and started playing around with sensors, it unfortunately did not work as well as we hoped, due to its inconsistency. Hence, we switched to the more reliable ultrasonic sensor.
​
The hopper that was mounted onto our Q-bot was required to meet a few restrictions. First, only three containers were to fit on the hopper at a time. Second, each container on the hopper was to be transferred to the same bin, i.e. if the next container to be mounted was to go to a different bin than the containers already on the hopper, it simply wasn't mounted until the next run. Lastly, the sum of all containers on the hopper was not to exceed 90 grams; so if the current accumulative mass on the hopper was, say, 75 grams, and the next container to be mounted was greater than 15 grams, it would exceed the 90-gram limit and not be mounted.
​
My teammate and I spent several hours of our free time to make sure that every last detail was hit, and to make sure that the functionality of our program was perfect. Sure enough, the day came when we realized that we had achieved our goal. Well, I say that, we had achieved it to a level that would have been safe to have been called "final." However, we were up for more of a challenge.
​
While we were working away at our computer program, the modelling sub-team had been working on their own project, where they had designed a hopper mechanism that dumped out containers with the aid of a rotary actuator. They had created a simulation for this mechanism within Autodesk Inventor, which automatically generated an Excel spreadsheet containing all of the rotational data of the actuator in radians, and the associated times in seconds. They sent this information from the spreadsheet as a text file, so that we could incorporate it into our computer program. The point of doing so was so that my teammate and I could essentially rotate the hopper on the Q-bot manually so that it could mimic the rotational motion of the hopper that the modelling sub team had created. Although there was a method embedded in the Quanser library that would have made this task a lot easier, doing it this way allowed my teammate and I to get a sense of how aspects in both programming and CAD could be incorporated together, and how software and mechanical engineers could potentially collaborate in the real world, which was a fantastic learning experience (not to mention that taking this approach earned us an extra 7% onto our grade).
A screen recording has been attached below to get a general sense as to how the program looked and operated at the end:

bottom of page