Timeline

Week 1: Planning

From the beginning the team was very excited about working together on a project, but the project we eventually chose wasn’t the one we decided to pursue. Our team started with a plan to make an autonomous quadcopter-based replication of the snitch from the Harry Potter series. However, as soon as we spoke to ninjas and professors on the first day, they advised that it would be an over-scoped project for an entire summer, let alone an 8-week-long project. So our team poured its energy into a poster with post-its describing different team members ideas, and voted on them in a later meeting using Trello. The final idea was a sprinkle printer, which fit with many of the team members' excitement about doing something mechanically challenging and food-related. We did a bit of background research and produced a proposal.

Then we started planning what a 3D sprinkle printer would look like. The team determined it would require a two axis gantry, a dispenser, an Arduino-based electrical system, and code to process images into “sprixels” or sprinkle sized pixels. Liv and Justin both decided to adopt learning goals related to mechanical design and fabrication, and so became the core of the mechanical team. Lydia, Anne, and Ariana all decided they’d like to work on computing and some electrical, so became the electrical and computing subteam. Justin decided he would like to help focus on creating the gantry, while Liv took over responsibilities associated with the dispenser. Ariana and Annie decided to take on the task of controlling the stepper motors and communicating with the Arduino over serial. Annie, and Lydia started working on processing images using Python into a set of sprixels. The team scavenged for parts at the Wellesley dump on the weekend and went out for frozen custard. The next week individual members and subteams began working on their parts of the project.

Week 2: Practicing

During week 2, Justin CADed a 1-axis gantry, Liv designed a dispenser, Ariana and Annie hooked the Arduino up to a motor, and Lydia worked on making code that could move the gantry. Justin’s 1-axis gantry came mostly in the form of cardboard boxes that could be put on the hardboard frame that Liv helped him hot glue together. The 1-axis gantry was ready by the end of the sprint, but had many scavenged and hot glued parts, and had lots of trouble with jamming. Liv’s funnel was a hopper and tube that was originally meant to have an agitator in the center that a mini servo would spin, but she had to throw more effort into integration later on and it didn’t end up getting completed. Ariana, Lydia, and Annie managed to set up the Arduino and get a basic version of the movement-related code working, as well as some code to process image contours, but didn’t have any complex image processing set up. By the end of the sprint the team had determined the dispenser to be the biggest technical risk, due to the sprinkles' small size and jamming risk. The team realized that this complicated system had gotten hardly any attention. By the next sprint the team also planned to get a working two-axis gantry started, color processing in the code, and better script to deal with moving motor positions.

By the end of this sprint the team had decided an MVP would be a 2-axis gantry that used image processing code and arduino to make edible black and white images from sprinkles. We also decided stretch goals would include sub-milimeter precision, user friendly features like a touch screen, clean aesthetic, and a theme song.

Week 3: Improving

The next week the team focused on improving what had been created in the previous week. The team had changed its goal from making a two-axis gantry to making a well-functioning one axis gantry. Justin was primarily responsible for this change. He CADed a version of the boxes that held up the rod, searched for linear bearings and waited on a second rod to hold up the boxes. Meanwhile, Liv printed slightly modified pieces of the original dispenser plan. She also CADed gears and a small frame to create a conveyor belt that would attach beneath the dispenser and help to isolate sprinkles. Ariana and Annie began to improve code to move the gantry, while Lydia started work on black and white image processing that would allow lower resolution pictures to be interpreted into “sprixels” or sprinkle units. The team didn’t integrate often during this time because most work for the presentation was not completed until the next week.

Week 4: Iterating

During Week 4 many of the efforts started in week 3 were put into action. Justin got the parts for the boxes that sat atop the frame and held up the rods laser cut and put together. He also managed to put this structure together with the new rod and the linear bearings. Liv 3D printed parts associated with the conveyor belt. She also added guides onto the conveyor belt to help funnel the sprinkles. Ariana and Annie finished work on better gantry-moving code (with significant improvements to the system for communicating via serial with the Arduino) and Lydia perfected her image-processing code. The team put together the systems the Thursday before the presentation. While the one-axis gantry functioned very well, the dispenser system functioned inconsistently. The team decided that the next sprint they would need to “kill their darling” and try a different design for the dispenser. The team decided this edition would involved a covered gear that the hopper’s tube would feed directly into. Despite the need for a pivot in the dispenser design, the team recognized scaling to the two-axis gantry as the team’s biggest challenge because this process was most vital to the team having a functional MVP. The team also decided that the mechanical system need the most help, so divided into two mechanical subteams: one for the gantry and one for the dispenser.

Week 5: Hustling

The week before Thanksgiving break the team focused on making a new dispenser and gantry. While some effort was spent on code during this time, most went to the mechanical subteams. The mechanical subteam CADed a 2-axis gantry and ordered a new rod. Lydia and Liv sketch modeled new dispenser ideas, which included everything from dispensers with different tube shape to dispensers that dropped sprinkles in an entirely different way, like squeeze-bottle type dispensers. Eventually, the two still settled on the idea with the rotating gear. The first week, they began to CAD parts, and because they knew the dispenser needed a lot of testing, they also started printing and putting them together. The gantry team also laser cut their first design in hopes to create a functioning system before break. The gantry team assembled the first iteration of the gantry and the dispenser team assembled the first iteration of the dispenser. The gantry had a few interfering parts that prevented it from being completely assembled, and the dispenser seemed to work, despite some minor jamming. The team planned to redesign and work on documentation over Thanksgiving break.

Week 6: Pivoting

The next week, the team tried to better existing parts of the MVP. Justin re-CADed the gantry and the team assembled it. This design had supports to stabilize the gantry and small platforms for the motors. It came out significantly thinner than the team had hoped because the material the team had used before was no longer available, but it assembly came easily with the help of hot glue. This edition was significantly stronger. The gantry team also replaced scavenged belts and gears with purchased ones. The electrical and computing subteam finished the motor-related code, and began working on limit switches for calibration. The dispenser team worked hard to try to get the dispenser, which was now facing serious jamming issues, to function, but on the night of integration this proved too hard to overcome. The result was that the dispenser team stripped the dispenser down to hopper and agitator and added a longer tube. While this was technically more fail proof, the team still did not manage to get a video of it functioning by the end of the sprint. At this time, the team decided to simplify the MVP to involve anything dispensed rather than sprinkles, including ink so that we could attach a pen to the system in case we couldn't get a simpler version of the dispenser working. The team chose M&Ms as the thing the system would dispense and cut our stretch goals down to only include prettiness - the only one everyone thought could at least be partially realized. The team then decided to make dispenser function a top priority in the last leg of the project because this had to function in order to make an MVP.

Week 7:

The final week started with the whole team getting together to sketch model dispensers. Basically, the whole team’s main function was to get a dispenser working. At the end of the sketch modeling session, Justin produced a dispenser involving a rotating cylinder with a dip in one side to catch M&Ms from a main tube, inspired by an M&M dispensing toy that Ariana had as a child. Justin 3D printed his design, and Liv made tubes and an attachment piece to accompany it. Afterwards, Liv filed the dispenser incessantly. The team debated whether or not to place the top tube, which would store M&Ms vertically, on some platform other than the gantry itself, but eventually decided the weight of the M&Ms would not cause the gantry to jam. This dispenser seemed to work, so Justin and Liv made several other versions of the dispenser and tubes while the rest of the team focused on perfecting the code and limit switches. After adjusting parameters to make the “sprixels” into “mixels, or M&M pixels, Ariana and Annie were faced with a significant challenge when they discovered that the code to communicate instructions to the motors was not behaving as it was expected to. After a long time debugging, they got the image processing script to reliably send instructions to the motors. The end result was functioning code along with a functioning gantry and dispenser. The team was very excited to have met MVP goals and moved on from there to create this website, take a video of it functioning, and to make the system prettier for demo day. The team didn't mind that the only stretch goal that might be met was making a nice aesthetic.