Week 13

Machine Design - "The Toilet Paper News Header"

Detailed documentation is accessible at this URL: https://gitlab.cba.mit.edu/classes/863.23/Architecture/machine.

Within the Archshops section, a collective decision was made to develop a toilet paper news printer. In circumstances where one finds oneself in the morning without a phone, the prospect of gaining insight into city politics serves as an engaging pastime.

We operate with three primary mechanisms: 2 stepper motors controlling XY, and the solenoid, responsible for lowering the pen to ink the paper.

The machine comprises four main components:

1. The "roll", responsible for Y-axis, , its primary function is to unroll the toilet paper and dispense the correct amount of length.

2. The X-axis controller , this stepper motor governs the position of the pen.

3. The solenoid, designated as the Z-axis , controls the pen's position (up and down).

4. The frame , the main body of the machine, holding and providing the space for all the mechanisms to integrate with each other in one system.

The project commenced with meticulous planning of tasks and responsibilities among the 15-20 individuals comprising the Architecture section. The parallelization of efforts in tasks such as coding or CAD posed a notable challenge.

Our initial steps involved creating a template for high-level code logic and control, breaking down tasks into sub-functions and subtasks using JavaScript. In the manipulation of strings (arbitrary sentences), our code parsed individual characters. The pen's movement, determined by the character matrix, activated the solenoid.

Electronics Segment:

I was assigned to the Electronics group and had the honor of collaborating with the esteemed "cheetah," SeHwan, a PhD student in the Mechanical department. He quickly became a close friend within our Architecture department—a noteworthy development!

My role involved providing assistance and following SeHwan's guidance, from which I garnered substantial knowledge. Initially, we outlined the essential components of the code, documenting the necessary methods and variables.

The consideration of toilet paper properties was paramount. Designing the solenoid to guide the pen across the paper, simulating normal handwriting, posed a risk of tearing due to the unsuitability of toilet paper for drawing or writing. Instead, we opted for a stippling motion to apply ink, ensuring the highest chance of success.

The second phase of the project focused on sourcing headlines from online newspapers. We explored different approaches to the query process, ultimately selecting the 'Top News' API. Documentation for this API can be found at https://developer.nytimes.com/docs/top-stories-product/1/overview.

Our initial attempt at querying headlines was inspired by a process described in a webpage (https://levelup.gitconnected.com/build-a-news-app-using-new-york-times-api-and-react-js-38faf2b3585). However, due to imperfect internet connections causing timeout issues, we pivoted to a more straightforward alternative outlined at https://dlab.berkeley.edu/news/getting-started-nyt-api. This involved removing the trial-and-error statements and directly retrieving headlines. The resulting code was designed to test the functionality of headline retrieval, including the headline, subheading, and article date.

A subsequent challenge emerged when we realized that the JavaScript used for text (converting the string into matrices) and the Python-based code for sourcing headlines were incongruent. To optimize the overall flow, we made the strategic decision to rewrite the initial part in Python for its more user-friendly interface.

Part of my job was to write an alphabet, numbers and symbols for the code

Our final videos of the machine working can be seen below: