Sidra Manzoor, Nicholas Sanchez & Jingyi Sun Week 7: Rube Goldberg Pt.2

for previous documentation : CLICK THIS LINK

See video above for the entire thing, and for much excitement from Sidra and I.

Quick recap of last week’s progress:

When beginning this exercise, we only had the ideas of using marbles and a slide. The brainstorming process began with this initial facet, which was then expanded upon. However, the final product was not fully conceived during this part, as the physical construction of our Rube Goldberg segment was partially improvised during construction. Trial and error helped us finesse the design and turn it into something feasible and working.

Before construction began, our team went to several small hardware stores and looked at the raw building materials these stores sold. This was in part to get inspiration, and in part to see what was available to us. We bought some supplies, like toy cars, a ramp, a clear hose, and  toilet plunger, jus to test out ideas and star constructing something. In addition, we borrowed the frame from another IMA project and used it a structure to design our segment.

We decided on ordering marbles and placing them within the suction cup of the plunger. We drilled a hole in the plunger so that it would act like a funnel and basin to hold the marbled. Then, after drilling a hole atop the frame, we attached the plunger head to top of the frame above this hole. We then used fishing wire to painstakingly suspend the clear hose from the frame’s top hold and spiral it down. The idea was that marbles may drop from the plunger down through the hose. Unfortunately, the marbles we ordered were too large and often got stuck somewhere in the hole. So, we had to order new marbles.

This week:

After last time, we started out by testing our cars on the ramp along with the dominos. At this point our marbles finally arrived so we could test them to see how many we would need to push the topmost car down the ramp (this was roughly 6-7 marbles).

The main problems during testing:

  • There was an opening around the sides of the top servo motor which was big enough to let marbles through and so every time our motor rotated, we had some marbles flying off in random directions instead of going through the pipe. Due to this sometimes the flyaway marbles would knock down some dominos and break the chain even before the cars reached the bottom. This prevented the handshake from happening. In order to solve this problem, we put tape around the top servo to prevent the marbles from falling down. Surprisingly, this worked!
  • Another problem we had was that our cars did not go down the ramp in a straight path. Due to this, sometimes they would completely miss the domino chain at the bottom. To prevent this, we simply cut a new ramp and adjusted the heights of the steps using bamboo columns, boxes and tape rolls.
  • Sometimes when the dominos fell, the last one would not connect the circuit, so we increased the conductive area, and tested repeatedly how and where the dominos would fall.

The communication part with the x-bees, once we tested with the other groups and got it to work, worked very reliably. No complaints there.

Writing the code was also fairly straightforward, we struggled a bit because simply writing if (inByte = ‘N’) {do things} was not giving the motor enough time to turn on, so in the end we used a lot of booleans to create states to activate motors.

Our end output:

We receive data from Group 4 (N to initiate, S to start), which starts the motor on top. The motor lets the marbles go through the tunnel, and after the marbles would descend to the base, the idea was for them to knock a toy car down a ramp, which would then knock down another car, and then another. We used a plastic, seven foot bracket to make this ramp, with a resting space for each car to make contact with the next. Once the final car had fallen, it would then knock over a few dominoes. The last domino is coated with conductive tape, and when it falls, it closes the pullup switch circuit attached to pin 6. This then sends a signal to Scott’s xbee (A), and when his xbee sends an “r” back, which activates the flag attached to the bottom arduino, and we send an Z, thus triggering the final grading machine.

Sidra Manzoor, Nicholas Sanchez & Jingyi Sun Week 6: Rube Goldberg Pt.1

What’s working: toiler plunger (NEW!!!) as a funnel, motor stopper to let the marbles down, marbles (well, skittles/clay balls for now) going down the tube, cars hitting one another down the pvc track, flag attached to second motor.

What is arriving soon: marbles, dominos.

What needs to be done: test out marbles to see if force is strong enough to push car, test out car’s ability to push dominos, attaching top motor to arduino #1 to receive data via bluetooth/xbee and move motor, attaching bottom motor to arduino #2 to raise small flag once dominos hit piezo sensor, and send data out via bluetooth/xbee.

Process for getting to where we are right now:

We bought most of the stuff from our friendly neighborhood hardware store, and started building today. We recycled (with permission) a wooden frame some of our fellow IMA classmates built for their Interactive Installation project last semester. We spent a solid hour and a half enlarging the hole at the top of the frame to let the funnel through. Meanwhile, we prototyped and laser cut a motor stopper at the top, and cut a hole at the bottom of the toilet plunger (NEW!!!). We spent some more time taping the clear tubing to the frame, and failing miserably. We ended up using fishing wire to hold it up instead. We set up the pvc track and propped it up using cardboard and another extra tube Nicholas had for his capstone, and connected it to a clear acrylic tube at the bottom.

We did not take any photos during the process, but hopefully the video above is sufficient.


Update March 22nd:

We bought smaller marbles, made everything a bit more secure, tested out cars and dominos.

What needs to be done: attaching top motor to arduino to receive data via xbee and move motor, attaching bottom motor to arduino to raise small flag once dominos hit piezo sensor, and send data out via xbee.

NoC- W6 sin/cos/tan, Jingyi Sun

Download here: [LINK]

For this week’s assignment, I looked at the polar rose: Since someone had already kindly found the formula for these roses before, the task was only to translate it to p5, which was pretty simple. I didn’t want the roses to remain static, so I added a sin function to the two variables. The end result is pretty cool, so although it didn’t take a lot of code, I decided I was happy with the outcome. I played around with the numbers a bit, but in the end I feel that I liked the “3” column the best.


image from wikipedia

Code :

NoC – W5 Physics Environment, Jingyi Sun

download files here: [LINK]

For this week, I decided to make particles simulate projectile movement where the object has an initial speed but the only constant force is gravity. This turned out to be a lot easier than I thought it would be, since all I had to do in the end was give the initial speed, add gravity, and p5 calculated the rest. So I added in air resistance after reading chapter two of the nature of code book, and also added in air suction, as if there was a huge vacuum cleaner at the top of the sketch trying to suck all of the balls in. I looked at the equation for calculating suction force, also known as dynamic pressure, and it turns out that this is the function (according to wikipedia):


and if i translated that to p5 physics, it basically means that I could pretty much give a big enough arbitrary number……

In the end, I have two sets of particles, one with an initial horizontal velocity, dropping from the top of the sketch, and another set with an initial horizontal velocity as well as a upward vertical velocity, thrown from the bottom of the sketch. Mousepressed will generate the suction, and the particles are removed if they hit the top (if they aren’t removed, they fall back down in an meteor shower like form), although I think I’m not popping them from the array in the correct way, they can get a little buggy sometime.

Nicholas Sanchez, David Santiano & Jingyi Sun Week 5: NFC

I (Nicholas) feel that this process was mainly comprised mom making a ring, experimenting with RFID tags, making functional Arduino RFID reading, animations, and a Functional processing sketch.

I (Nicholas) had some old, but severed RFID tags from an experiment years ago. Hoping to salvage the chips, we soldered a few chips to some unoccupied antennae. Unfortunately, the DF robot RFID reader failed to recognize these tags, so we had to settle for NFC tags from the IMA equipment room.

WechatIMG48 WechatIMG46 WechatIMG49

To read the chips and their unique tags, we used Arduino. We connected the reader to an Arduino mega and when we first looked at the examples, we tried to format the tags to NDEF and use that library to read a url stored on the tag, and that did not work out so well. After struggling with many of the examples, we eventually settled on the PN532 example, which allowed us to send each NFCs unique tag to Processing via serial communication. Once we made this simple connection, it became a matter of making a processing sketch that would read the serial values and make something out of it.


We modified the RFID simple read example and used it to read the first identifying byte for each of our three tags. After this was complete, we made animations that would correlate to each of our respective RFID tags. Initially we were trying to do some animations in processing, but decided that it was much easier to animate in another program, and play the output video in processing. Important to note here that we had trouble with videos looping instead of stopping after finished completely, so after much struggle, we implemented the “play()” function. In processing, this function plays a video once and then ends on the last frame. 

See video demo below:

Our code below:

NoC- W5 Inspiration, Jingyi Sun

Ryoji Iikeda’s The Radar. I saw this piece as part of an exhibition at the 21 Century Minsheng Art Museum, and thought it was super cool.

Here is a photo I took then:!/en/case-studies/actualites

A data visualization project by Dataveyes. The content itself is less relevant to our course, but if you scroll down to the bottom to watch the video, the way they visualized the data is pretty interesting, using “planets” and little moving arrows.

NoC – W4 Planets, Jingyi Sun

download files here: [LINK]

For this assignment I made two planets: sun and earth. Earth (the blue ellipse) attracts particles to its core (this part we accomplished in class on Friday), and sun(the bigger orange ellipse) repels particles, having them bounce off without being able to touch the surface. Earth also slowly rotates around the sun (for now following a circular path with a constant speed, not real physics). Both planets/stars have gravitational pull, although the sun’s is slightly bigger, which can cause some particles to be really confused (this is intended).

My one problem is that because I randomly generate the particles’ positions, sometimes they start within the sun, and currently I give these particles a speed bump to get them out, but I’m hoping to find a more elegant way to handle this.

Here is a video:

Here is code:

David Santiano & Jingyi Sun Week 4: Data Collection + Visuals

download csv file here: LINK

video of data output: 未命名 (wasn’t able to embed sorry for the hassle)

For this week, we decided to work with an Analog Sound Sensor (again), and collect data on sound levels in the hallway near the music rooms on the 8th floor. We used an Ethernet Shield and MicroSD to collect data, and connected the Analog Sound Sensor to A0.

For the output, we mapped the levels of the sound sensor to the color saturation. I learned how to make a color wheel across the screen during one of Moon’s Processing workshops last semester, and we applied this technique to the visualization of our data. The saturation of the color wheel changes as the values from the sensor changes, and the speed of the change is dependent on the range of the values.

Jingyi Sun Week 4: Response to When Things Start to Think

The author mentions a “the emphasis is shifting to the external peripherals that people use to interact with the computer,” and raises the example of earrings that whisper messages into your ear (53). In a way, bluetooth headphones are a similar idea, but I wouldn’t be able to walk around all day with headphones covering my ears, but I could, on the other hand, wear earrings all day. No need to worry about tangled wires or leaving headphones behind somewhere. Although, I can (100%)imagine myself forgetting that they were there and freaking out every time the earrings “spoke,” so maybe this offset the usefulness of the earrings.

I also like the idea where the author mentions Steve’s wife can help him pick out fruits at the supermarket through his display. Although smart phones and the ability to video call seems to replicate this function relatively well, to actually “see” through someone else’s eyes would be an entirely different experience. We could even look at ourselves and watch ourselves move around via another person’s perspective.

For some reason, I can’t help but think of the public bikes that have been popping up in Shanghai. While some of the bikes use a QR code that you can scan to lock and track the bikes, such as MoBike, other apps, like Ofo, depends on your phone to track the bikes. Our phones are, in a way, wearable computers that allow us to access a large network of bicycles, which in some cases, depend on the cell phones as agents to transmit data. Like the author says, “If a group of people share their resources, they can accomplish many things that they could not do individually” (59).

As for issues that have come to pass, I think the most widespread one is the problem the author mentions last. “A final concern with wearables is loss of community” (58). Even the Shanghai subway has wifi now, allowing us to fully embrace our anti-social selves. Yet the author raises an interesting point, where he says “the responsibility for this loss of personal contact lies more with the computer on the desktop than with the person sitting in front of it” (59). The technology makes us choose between what’s happening elsewhere and what’s happening here, and although the author maintains the idea that (“for quite some time”) people will remain generally more interesting than computers, computer can reach across much wider boundaries to connect individuals together.

I think this is really interesting because I have never heard anyone put more blame on the computer than the human. Since we have the ability to put things down or pick phones up, I would’ve thought that we played a bigger role in this loss of community. Although I guess who’s to say that global communication is less important than local communication?