top of page

The Waffle Maker

ME35Full.JPG
ME35Full.JPG

Our final task in ME35: Intro To Robotics was unlike any we had come across before. We were to create a machine that could autonomously prepare waffles... except when I say we, I do not merely mean to say "me and my partner;" rather, I mean we, the entire cohort of 27 taking the course, ME35.

FullChopFast.gif
FullChopFast.gif

Here is how the system worked:

Step 1: Order a waffle on Airtable, and input any toppings - whipped cream, maple syrup or strawberries - that you'd like.

Step 2: The Create3, with a plate affixed to its cover, navigates to the first apparatus, which cooks and drops a waffle.

Step 3: The Create3 moves to station #2, which dispenses Maple Syrup and Whipped Cream

Step 4: The Create3 moves to station #3, which dices and releases some strawberry slices.

Step 5: Eat and enjoy!

#TeamStrawberry

Logistically, "Waffle Making" is a complex operation: this project put forth several engineering tasks, intertwined and inter-tangled, which we somehow had to distribute across 27 students. We decided to undertake this by splitting into four sub-teams focused on separate challenges: navigating the Create3 Robot, cooking a waffle, dressing the waffle with syrup and cream, and strawberry chopping.

I was on Team Strawberry. Team Strawberry was tasked with cutting of the fruit's leaves and chopping it up into small, delectable slices to-be dropped onto the waffle. Our machine was required to autonomously handle up to five strawberries at a time, though we were told we could orient the strawberries at the start in any way we wanted.

IMG_0839.JPG
IMG_0839.JPG

High-level, here is how the system works.

 

We place five strawberries in series on a PVC pipe, oriented with their leaves forward. A rack pushes these strawberries forward until a camera determines that all of a strawberry's leaves are ahead of the guillotine. 

 

After this point, we unleash the wrath of our blade, which drops upon the strawberry, stripping it of its hair. We then push the cleansed strawberry to our second pipe, where the same knife proceeds to chop it into slices.

 

Each of us worked on all sub-parts pretty evenly: we had an active group chat, and actively passed forward each pending task to the next person available to work on the project. I would like to say that everyone touched every part of our machine.Still, there are some components I took some more ownership over.
 

IMG_4599.JPG
IMG_4599.JPG
Camera Vision
ME35CamVis (1) (1).gif

One of the project components I took charge of was our camera system. We needed to dynamically determine how forward to push each strawberry. It needed to be "dynamic" and not pre-determined, so that we could accommodate different strawberry sizes. We initially tried a limit switch, then an IR sensor, but finally, we ended up deploying a camera vision approach.

 

Here is how it works: the camera scans for light-green objects, and identifies its centroid. After this centroid passes a certain threshold, we conclude that enough of a strawberry's leaves will be on the "cut half," and we bring down the guillotine.

 

We also use the camera to identify how "down" we must bring the knife. We bring it down until the rack affixed to the knife passes a threshold. This knife step count was also dynamically determined, rather than pre-determined, as sometimes, the step counts needed to increase to account for varying amounts of resistance faced while cutting through the strawberry.

The Guillotine
StrawberryChopFast (1) (1).gif

Another system I took some owner ship over was our guillotine.

 

We purchased a knife with strange, ergonomic grip that we needed push up and down. I created a rack that interfaced quite nicely with the knife, using three heat-set inserted screw to clamp onto it confidently. I then controlled its motion with a rack-and-pinion set up, using a high-torque stepper motor, which enabled clean, repeatable chops.

Programming and Outcomes

Our Code

The Create3 interfaced with each sub-team — waffle, whipped cream, and strawberry — via AirTable. When the Create3 would arrive at the Strawberry station, we'd get an AirTable notification to begin the Chopping Protocol.

The code for this is fairly straight-forward. We had one Pi control the knifes and racks using this program, and another Pi process camera data with this code.

Outcomes & Future Changes

1. The Strawberry machine, for the most part, was a resounding success. We could reliably cut two strawberries at a time, but when we'd add more than this, the motion of the fruits became increasingly unpredictable. This is because we relied on the momentum of each strawberry to push the one ahead of it. Sometimes, strawberries would roll around, change orientation, or get stuck in strange spots.

To fix this, in future, it would be wise to change our pushing system. Currently, a rack pushes a strawberry at the back of the PVC pipe, which pushes the four strawberries ahead of it. Instead of this, we could employ something similar to  a "conveyer belt:" if each of the strawberries were placed onto a floor that moved it to the cutting location, we could obtain much more repeatable behaviour.

2. The overall waffle machine worked quiet nicely, too: we ended up making five full waffles (with toppings and all) out of eight or nine attempts. 

The Create3 interfaced with each sub-team — waffle, whipped cream, and strawberry — via AirTable. When the Create3 would arrive at the Strawberry station, we'd get an AirTable notification to begin the Chopping Protocol.

The code for this is fairly straight-forward. We had one Pi control the knifes and racks using this program, and another Pi process camera data with this code.

Our Code

Other Bits and Ends

Check out our video!

Check out our CAD!

Pink Poppy Flowers

Learnings & Takeaways

1. This project involved a lot of system-level planning: we had to break up a complex task into smaller, digestible sub-tasks with a budget and team matched to the requirements. Thinking like this for a larger scale project was newer to me.

2.  We set great deadlines. We jumped straight into prototyping and fabrication from day 1, giving us two full weeks to integrate and refine, with each subcomponent partially working. Working aggressively turned out to be a great decision, as we didn't run into any massive last-minute late-night struggles.

3.  I really enjoyed working on this project for reasons beyond just my love for robotics; namely, I really enjoyed working with my team of 9. It felt easy to work on CAD and fabrication together, and pass tasks on to whoever was available. I suspect the reason it felt so easy to collaborate was that we had a really great team atmosphere; we were usually laughing and took step-backs light-heartedly, making the process a lot more enjoyable. I would hope to prioritise creating a similar team vibe in my group projects going forward.

Final Notes

1. Huge thanks to my class and team. This project would have certainly not been possible without such a capable cohort.

2. We explored a number of alternative designs while iterating through our strawberry machine. Many of these can't be seen whatsoever in our final product, but I thought I'd mention some of the bigger ones.

a) Initially, instead of using a camera to determine when to cut leaves, we tried a limit switch. The strawberry's head would hit a limit switch, triggering its demise. This worked okay, but the push on the limit switch wasn't always great, and its interaction sometimes pushed the strawberry backwards, leading to some unpredictable chops. We then tried using an IR sensor, to detect strawberries contactless. This worked OK, but was just an inferior version of camera vision-based detection.

b) Our machine failed to handle five strawberries at a time because when our rack pushed more than a few strawberries forward, their motion would become unpredictable. The immediate fix to this seemed to be to add some intermediary contraption that could hold five strawberries, but only drops one at a time onto our pipe. I made a prototype of this: it was a disc with  five slots for strawberries that rotates over a drop hole. Issue was, as soon as we involved dropping, rolling, or any translation, the strawberry's orientation would shift, and its leaves sometimes weren't at its front. This messed with the chopping part of our machine.

c) To fix the issue mentioned above, we also tried creating a conveyer belt system, where strawberries would sit on a rack that moved, rather then being pushed by a rack that moves. This meant that strawberry motion was strictly controlled by our rack and pinion. Unfortunately, we didn't have the time to test and refine this model.

Learnings & Takeaways

1. This project involved a lot of system-level planning: we had to break up a complex task into smaller, digestible sub-tasks with a budget and team matched to the requirements. Thinking like this for a larger scale project was newer to me.

2.  We set great deadlines. We jumped straight into prototyping and fabrication from day 1, giving us two full weeks to integrate and refine, with each subcomponent partially working. Working aggressively turned out to be a great decision, as we didn't run into any massive last-minute late-night struggles.

3.  I really enjoyed working on this project for reasons beyond just my love for robotics; namely, I really enjoyed working with my team of 9. It felt easy to work on CAD and fabrication together, and pass tasks on to whoever was available. I suspect the reason it felt so easy to collaborate was that we had a really great team atmosphere; we were usually laughing and took step-backs light-heartedly, making the process a lot more enjoyable. I would hope to prioritise creating a similar team vibe in my group projects going forward.

bottom of page