Midterm Project- Jake Scavone (Rudy)




The main purpose of our project was to create a simplistic game that involved a competitive style competition between two users. Our goal was to have the project replicate an arcade styled game, that could be played and understood in a quick and efficient manner. As many people have been introduced to arcade style games at some point in their lives, it’s clear to notice that many of the games follow a specific formula that keeps users interested and entertained. Two of the main components of said formula are both a challenge and a reward. To cater to this successful strategy, we designed BackFire to be a game that would require the players to compete against each other and be challenged and rewarded at a relatively fast pace. To beat your opponent, you need to have a quicker reaction time. Our game tests the players’ ability to react to a signal in a very fast way, and the more you fall behind the harder of a chance you have to come back and win.

Literature and Art, Perspectives and Contexts:

There’re many different methods for creating a challenge in a game and we explored a variety of examples, including mimicking used in the game Simon Says, and forms of strategy like in the game Battleship. We ultimately chose the challenge of reacting fast(er) not only because it didn’t present many challenges, but because it’s a valuable characteristic in every-day life. To verify the importance of one’s reaction time, we referenced an article on the website CogniFit titled Reaction Time, Cognitive Ability-Neuropsychology”. The author explains reaction time to be “the amount of time that takes place between when we perceive something to when we respond to it. It is the ability to detect, process, and respond to a stimulus.”  The article also discusses the different ways reaction time is important and affects our daily life, and even claims it can be trained and improved. When my partner and I were brainstorming how our game would be played, we wanted to know if testing user’s reaction time would be a significant challenge to base it off, and this article confirmed the importance of this skill. Our game BackFire tests your reaction time in a competitive manner and playing the game can ultimately enhance your ability to respond to a stimulus.

Throughout the process of creating our game, I had two main concerns. First, if the task and objective would be easily understood by the user. Second, how we would design the physical appearance of the game to be structured, uniform, and not flimsy in any way. I had these concerns because I believe these two ideas are up there with the most important elements relating to game design. I wanted to convey my thoughts to my partner to make sure we were on the same page. To assist my effort in doing this, I used an article by Chris Cosentino titled Simplicity in Game Design”. The author explains how the importance of having “tight controls and a clear objective” contributes to the ability for anyone to pick up a game and start playing it, which is something we wanted our game to involve.

My second concern relating to the physical structure of our project came from viewing our classmates’ creations. I saw multiple projects that I thought were amazing, as well as a variety of creative ways to interact with technology. Despite this, I was always disappointed when the project was made of something like three pieces of cardboard connected by a bunch of wires and tape, requiring two people just to carry it somewhere without falling apart. I would imagine how “it could be so much better if it just, well, looked better!” This made me realize the importance of having a structured physical design of our game. Because we kept this in mind, the final product of BackFire has no wires hanging out of it, no pieces that would fall out if flipped over, and is all packed into a strong casing. Although, the consequence of having all the wiring and hardware packed inside made it very difficult to make changes and secure connections.

Researching fundamental ideas about the concepts we wanted to include in our game validated our questions on what was most significant while exploring other projects gave us an understanding on how we wanted to structure the physical appearance and steer away from certain design flaws.



Our project, BackFire, is a two-player game where both players compete against one another. The game tests your reaction times against each other, and the quicker you are, the quicker you’ll win.

The left side of this photo can represent where player one is, and player two on the other side. To start, both players sit across from one another and places a finger on the button respective of their side. When ready, both players need to hold their button down at the same time for three seconds. After this is done, all the lights on the board flash a couple times indicating the game is about to begin. Then, complete silence… Both players readily stare at the LED on the top, waiting for it to flash. Once this random increment of time is over, the LED at the top flashes, and the player who presses the button first wins the round. If player one was had the quickest reaction time and pressed the button first, the green lights on his side flash, then the indicator piece pointing out from the top controlled by a servo motor will move an increment in the opposite direction, pointing at player two. Then, after a random number of seconds, the light will flash again. If player one pressed the button first for the second time in a row, the indicator piece will move in another increment in player two’s direction. Although, if player two won that round the piece would have gone back to the starting position. Then, after another random number of seconds, the light will flash again. If player one was the first to hit the button quickest for the third time in a row, the indicator will move to the last interval, concluding player-one to be the winner. The lights on player one’s side will flash a bunch of times indicating who won.


My partner and I believe that the significance of our game lies upon the fast-paced competitive aspect. These two elements are what makes a game intriguing, challenging, and entertaining. We hoped to grasp these elements and replicate them by the end of our project, and we believe our game BackFire is a strong representation. The core elements that BackFire is built upon can appeal to audiences from all demographics, and there is no specific audience we wanted to target most.                             

Design & Production:

My partner and I decided to make a game for our project for the main reason that games are often a strong way of representing interaction. We also believed that making a game would allow us to utilize our creativity and ability to alter ideas/concepts. We decided that we wanted our creation to include a strong competitive aspect and involve no more than two players at a time. After this was established, we spent a considerable amount of time brainstorming different games, as well as creating many sketches modeling how it would work. A strong contender was the idea presented in the sketch below:

The thought process behind this concept was that each player would have two buttons and be challenged to use them in a (undecided) way to influence a motor in order to raise an object to the top. The winner would be declared by whoever reached the top first, and the objects would be connected to a string that acts as a pulley system, with the motors being hidden inside the base platform. We ended up moving away from this concept because we wanted to avoid using strings since that proposes the possibility of them getting tangled or not performing how we want them to.

After exploring many more concepts, we ultimately decided on the following model:

Both my partner and I understood that if we found a suitable object to use as the base/container, we would only have to alter the board on top. We also wanted to avoid using cardboard, as we agreed that it usually doesn’t end up looking too clean or sophisticated. We scavenged through the materials closet on the 8th floor and found a plastic box that would work perfectly. We traced the outline of the base onto a piece of foam board. After that was done, we placed each piece of hardware on top of it and played around with different layouts to see what we thought would work best. Once that was established, we used a pen to mark the areas for where we would need to cut to insert each component, such as the LED lights, buttons and servo motor. We used the box cutters in the class and discovered that making clean cuts took a lot of patience and precision. We then signed out a drill from the equipment room and alternated between a few sizes to make the proper hole dimensions we would need in order to fit the buttons and LED’s.

Creating the circuit and code for the game came as a huge challenge, and we found ourselves looking up almost every statement that we didn’t understand how to use properly online. At many times we had to ask other students for help with troubleshooting the issues with wiring we came across. While very time constraining at the moment, this process of using outside sources to help us solve issues ended up being a significant learning experience and massively increased my ability to understand the wiring of circuits as well as the code used in Arduino. Something I didn’t have much experience with prior but was required to do was soldering wires. For the wires for the buttons to reach our breadboard, we needed to solder extensions onto them. This was a cool experience though and I enjoyed learning the process behind a technique I see myself using in the future.

We got very unlucky when it came to our presentation. Since we were behind on schedule, we only finished the model the night before. When we took it out to present the next day, we found out that the battery died. We quickly signed out a new battery, only to discover that one was dead as well. We later confirmed it wasn’t a hardware issue because it worked when we hooked up an adapter and provided power from an outlet instead. We didn’t lose hope because we remembered we still had a video demonstration of the game working included in the slides for our presentation. When we went to go play the video, it said that it needed authorization from our Google account to play, which we didn’t even think about since we had no issues viewing it from our own computer, and the presentation was being viewed from the professors account. The inability to have our project functioning made it almost impossible for our audience to understand how the game worked. Rudy seemed very disappointed.


At the end of this process, I believe that our game achieved the goals we had. When working, BackFire is a simple, fast-paced competitive two-player game that my partner and I had a fun time testing. Although the end result appeared to be a failure to my professor and classmates, I know that our errors could’ve been solved by managing our time better to allow for more testing prior to presenting. If we had more time, me and my partner both would have liked to add more of a design and theme to the game, as well as a speaker to add more elements such as buzzing a certain melody when there was a winner, or when the game is starting.

In retrospect, I realize that this midterm wasn’t about coming up with the most unique and fancy project. More importantly, this was a way to challenge our abilities to turn an idea into a product and tackle the countless obstacles that are presented by the process that follows. Collaborating with your partner and agreeing on the same goals, organizing the order for what steps you need to take, prototyping different concepts, using the resources available to fabricate a physical product, and even utilizing the constructive criticism presented by classmates during user testing is not an easy task. I can confidently say that this project was a powerful learning experience, and I took valuable lessons away from the process. I realized that I’m good with organizing what step needs to be done first in order to move onto the next one, but I need to improve on my time management skills for certain parts of the process. For example, I found myself still thinking about other concepts to pursue while we were already halfway finished. I shouldn’t have spent so much of my thought process on redesigning the entire project and instead just stuck with what we decided in the first place. One thing I hope to accomplish in the future is to choose an idea that would require the use of different fabrication processes, such as 3D Printing, laser cutting, or the CNC Machine. I would like to have the opportunity to experiment with those machines and learn more about them.  Regardless, the freedom we were given to create an interactive project we could think of gave me the opportunity to really test my ability to follow the creative process and stay organized. I had the pleasure of working with different tools and materials offered by the course and discovered ways that I could improve my ability to be more productive and effective for the next project.


Working with Electrons | Mid-Term Project – Pellegrino (Cossovich)

Mid-Term Project | Induction heater “InkWell”

Presenation: Mid-Term Project Powerpoint


The objective of this project is to build an induction heater for the purpose of learning, experimentation, and for exploring how such a device can be useful within society.

Inspiration & Research:

My initial inspiration for this project was working with my kinetic sculpture, which was a spinner powered by the heat of a candle. This exploration led me to wonder how we can generate heat. In my research, I came across an induction heater which, does not in itself generate heat, but inducts heat in conductive objects. This fascinated me and I decided to explore induction heating further, specifically, how it can be used in a more personal manner. For example, induction heating is predominantly used in furnaces or for welding in industry. However, I wanted to explore the possible applications for an induction heater within the life of a regular individual. Furthermore, I wanted the opportunity to explore how the device works and, personally, to build a better understanding of how circuits function and the electronic devices within them.

Why it works:

In the case of the induction heater, the circuit, essentially, works to simulate an alternating current. When current flows through the main coil, an electromagnetic field is induced. Thus, the alternating current causes a change in magnetic flux (or the total magnetic field within the area). This changing magnetic field induces eddy currents in a conductive object when inserted in the coil. These eddy currents dissipate as heat which causes the conductive object to heat rapidly.

  • Electromagnetic Induction: “The process by which a current can be induced to flow due to a changing magnetic field” (Khan Academy).
  • Faraday’s Law: Describes how voltage may be generated by a changing magnetic field.
  • Eddy Currents: Currents induced within a conductor when exposed to a changing magnetic field.

How it works:

The circuit itself functions using the load and discharge of capacitors, controlled with transistors that function like switches, to simulate the alternating current. The circuit takes in 12V and, according to the oscilloscope, outputs 72V peak-to-peak. This, divided by rad2 [rad2=the RMS=root-mean-squared] = roughly 51.06 V/RMS. This equates roughly to the equivalent DC value that would create the same power. Additionally, the oscilloscope told us that the frequency was at 200,000 Hz. Additionally, the virtual circuit simulation provides a good insight into how the current flows within the circuit.




In our first experimentation with an induction heater, we tested a pre-assembled ZSV board. The heater was able to heat small objects to red hot in roughly 30 seconds, however, when a larger object was inserted for too long one of the transistors overheated and died. At this point, we had not been monitoring the current and, our speculation, is the larger object amplified the current beyond the transistor’s limit thus causing it to break.


Trial 1:

For the first attempt, we first de-assembled the ZVS board to retrieve the capacitors and the toroids.

In this first attempt, I followed this YouTube DIY video which included a very intuitive pictorial schematic.

I attempted to solder freeform as the creator in the video had done, however, this proved to be quite challenging considering the variety of small diodes and resistors required.

Trial 2:

For the second attempt, I worked closely with Nick (thank you, Nick) to transfer the freeform circuit to a perfboard.

For this attempt, I followed the schematic from the previous attempt. However, we ran into difficulties when it came to soldering the coil to the top of the transistors.

We tried adding flux, but the transistors still would not maintain solder.

Trial 3:

For the third attempt, we tried following this video tutorial instead which provided a much clearer schematic and more understandable process.

We used the perfboard to assemble the circuit again and it proved much easier as all of the components could maintain a stable position when soldering.

A challenge that we faced was ensuring the components remained close together. However, due to this, it was also challenging to solder and ensure the integrity of the connections.

When it was complete, we added a wire for power input and for a connection to ground.

Almost miraculously, when we tested it on a metal object, the induction heater worked and heated it to red hot in a matter of seconds!

When powered on without a conductive object inserted, the current rested at roughly 1.473A when supplied with 12.01V.

When a conductive object was inserted, depending on the size, the current fluctuated to between roughly 2.5-3.2A. However, once it reached about 3.0A the power source’s safety turned on because the transistors are not made for beyond that.

When a non-conductive object was inserted into the coil, the current remained the same since it does not induce heat.

Because the coil, when supplied voltage, creates a magnetic field, it also is capable of inducing a current in a copper coil which can light an LED. Since there is no visible difference between the induction heater being on or off, introducing an LED and copper coil is a good test to see if there is a current flowing.

The final schematic of the working induction heater.

In the end, the circuit required two capacitors which primarily simulated the alternating current through their alternating loading and discharging. Two transistors, as switches, helped regulate this process. Two diodes connected between the transistor and the capacitor helped ensure the direction of the current and, additionally, two zener diodes were used to protect the transistors ensuring that the current flowed in the right direction between the gate and source.


  • 330 nF Capacitor (x2)
  • 100 uH Toroid Coil (x2)
  • IRFZ44N Transistor (x2)
  • IN4007 Diode (x2)
  • 12V Zener Diode (x2)
  • 220 Ω Resistor (x2)
  • Copper Coil, 10 turns (x1)
  • 12V Power Supply (x1)
  • Perfboard / Customized PCB (x1)
  • Solder (xA LOT)
  • Extra Wire (xMany)


When experimenting with various objects in the induction heater, I pressed the heated objects into a piece of scrap wood in order to cool it down more quickly.

After testing a few times, I found myself leaving gentle burn marks on the piece of wood which reminded me of wood burning crafts which are typically made with heated “pens,” almost like a soldering iron.


Image result for wood burn art

This made me think about how people “sketch” on wood using heat whereas it’s possible to sketch on paper using ink. Furthermore, I think it’s a cool method to have to dip a pen into an inkwell and then be able to create something from it on paper. Similarly, I thought it would be cool if this same methodical motion could be generated with wood burning art using an induction heater as an “inkwell” for a metal pen.

For the purpose of viewing the circuit within, I printed a clear box to encase the heater as a prototype to see how it compacts. To function, the box can be placed on its side, thus objects can be inserted vertically into the coil in the same manner as an inkwell.

Additionally, instead of just heating the tip of a metal “pen” to use for drawing, it’s possible also that one could insert an entire metal “stamp” so as to make a more precise imprint in the wood.

During the class presentations, we tested this stamp method with a metal rod bent into the shape of ‘IMA.’ Unfortunately, however, it failed to heat sufficiently for the imprint to be successful as the rod was likely too thick and not in the coil long enough.

Overall, the induction heater’s compact design made it suitable to transport for the purpose of craft projects and is useful for the Inkwell aesthetic when drawing, even on wood.


The process of building this project took a lot of trial and error. However, to further this project some simple improvements would be to add heat-sinks to the transistors to keep them from heating too much and to customize a PCB board to enable a more contained circuit.

More detailed improvements would include connecting the circuit to a 12V rechargeable battery pack so the device can function completely autonomously from a power source or power regulator. With this new design (and as a suggestion from Nick), it would make sense to add a power switch to enable turning the heater on and off since it wouldn’t make sense for it to be active all the time. Furthermore, because it’s essential that the transistors do not give out, it would be important to add some kind of component to read the current and, if it passes the threshold of 3A, indicate this danger (possibly using a string of LEDs).

From this point, I would like to design a more aesthetic and compact enclosure for the heater. While this could be 3D printed, I think it would be especially beautiful in a nice wood to indicate it’s purpose as an “inkwell” specifically for wood burning.

Final Remarks:

This project exposed me to a number of new concepts both technically in terms of construction and theoretically in terms of function. From the technical standpoint, I learned how to solder more effectively, how to use a perfboard along with the process for designing a circuit, how to read a schematic, and grew more comfortable using an oscillator and multimeter. From the theoretical standpoint, I learned more about circuit components such as capacitors, transistors, diodes, and inductors along with how they function within the circuit and developed a better understanding of the relationship between a magnetic field and an electric current. Although this functions relatively differently from my original project proposal, I am very pleased with the results and hope to continue improving this project for personal development.

Works Cited

“What is Faraday’s Law?” Khan Academy. https://www.khanacademy.org/science/physics/magnetic-forces-and-magnetic-fields/magnetic-flux-faradays-law/a/what-is-faradays-law

Midterm Project – Annabel Smit (Young)

The Haunted House

At the beginning of our midterm project, my partner and I were brainstorming on many possible ideas to create products that could actually help people in their daily life. Most of these ideas were quite complicated and complex, and they didn’t seem possible to technologically realize in such a short timeframe. We were meeting up for our project in the café on the second floor one day, and while we were talking about all these possible ideas, my partner focused on the Halloween decoration in the cafeteria and suggested something totally different that we had thought of before: a haunted house. With Halloween coming up we both agreed that this could be a very fun project to be experimenting with. We knew that the target public would be quite broad, and even more; it would be something that our fellow classmates, people of our own age, would find entertaining. Many theme parks have had haunted houses from almost the very beginning, it’s often one of the oldest attractions build and nevertheless people, of any age, still evidentially enjoy the experience of purposely getting scared, shocked, and entertained. It is also one of the most prominent desires of human beings to gain adrenaline by experimenting with fear and the unexpected. For instance, by doing intense sports, climbing high mountains, freefalling, skydiving, cliff jumping, riding rollercoasters, watching frightening movies and in our case: visiting the ‘supernatural’ in a haunted house. Our haunted house however, is slightly different, we want to stimulate people to use their whole bodies to interact and engage with an electronical device and to engage with it. The purpose it to increase the communication and interaction between human and non-human. There are numerous reactions taking place between the user and the variety of functions of the developed device. The reactions of the device are unexpected instead of obvious and we need the users to use their whole bodies to gain them.

One of the readings was incredibly interesting regarding the design of an interactive project.Making Interactive Art: Set the Stage, Then Shut Up and Listen. In which Tigoe says: “The thing you build, whether it’s a device or a whole environment, is just the beginning of a conversation with the people who experience your work. What you’re making is an instrument or an environment (or both) in which or with which you want your audience to take action. Ideally, they will understand what you’re expressing through that experience.” The reading basically addresses that a project should be designed in such a way that the user alone is able to figure out how it functions by interacting with it. There shouldn’t be anything left to say by the creator. We used this in our project by trying to make the haunted house self-explanatory. It definitely helped that almost all of us are familiar with the concept. However, we added a few elements that would give the user more definition. For instance, we added the slogan “I dare you to come a little closer” and images of skeleton hands near the ultrasonic rangers, to encourage the user to decrease its distance with the haunted house and use their hands in front of the sensors to discover what awaits them. The user testing session definitely helped us with enhancing our current suggestions to make it less obvious yet present.

The first haunted house was built in the United States during the Great-Depression and opened in 1969 in Disneyland. There have been ghost houses, but never an actual ‘haunted house.’ In a way, Mr. Walt Disney is one of the inspiring artists of our project. Before his famous theme park, Disney developed film-animations because he wanted to create something new and modern for the public, he wanted to entertain them with his own creations. Something we want to as well.

One other inspiring project was the PomPom Mirror created by Daniel Rozin, who, in his design used the movement of the human body as the signaler for his mirror to produce its reactions by following the movement of the body. This artwork is a collaboration between humans and devices, which is something important and present in the future, since this collaboration is developing incredibly fast. Besides this, the use of the human body is an important element here as well.

Another interesting reading for us was Introduction to Physical Computing by Igoe and O’sullivan. In which they talk about the senses seen by the computer, even though his portrait of the human senses seen by the computer is incomplete, missing a mouth, it’s very significant. Our device focusses mainly on the movement of the person increasing and decreasing his distance, in order to activate the movement of the mask, the lights to turn on, and the tones to play. We in return use our vision and listening capabilities to observe these reactions in order to further respond to them.

There were also some videos of interactive designs that were both entertaining yet medically useful, such as the video shown in class of the guys that created an alternative way to physical graffiti by developing a mental form. Which was used by someone who became paralyzed and could now only use his eyes to move. This design actually makes an impact on the life of the user, which is something that would be beautiful to design for our midterm project, however something like this, at this stage, is very difficult to realize.

We thus created our haunted house instead, by adding several elements. First, we thought of adding a reaction with red/yellow LED lights to engage with the user, and to create this Halloween, spooky atmosphere. We connected each of the ultrasonic rangers to a sperate breadboard to enable the possibility of different light reactions with different movements by the user. We added the second element by uploading a code of the tones of O’lantern by Beethoven, a spooky song. Before our user-testing session we didn’t have our third reaction yet, the moving skeleton mask. By adding a stepping motor beneath the mask, we were able to make it move slightly when one would come closer. In an actual haunted house, machines would be timed and programmed to make certain movements, they don’t engage with the public in order to activate these different functions and reactions. There is no communication between the device and its user. However, in our mini haunted house there is, maybe ever so slightly, but there definitely is. The user is able to engage with it and respond to it – as it where, to communicate with it. Which is something we really observed in the user-testing session.

The immediate benefits of our project would of course be: entertainment and an adrenaline boost. However, the long-term benefits, value and effects would be the stimulation of interaction and communication between humans and devices, not just in purpose of enhancing peoples’ life, fixing world problems, but also on smaller scale in the form of entertainment. It could be a great addition to the current attractions to build something more interactive, in order to decrease the distinction made between humans and robots. We expected with our project that people would become curious, excited, and slightly scared by our project, especially if placed in a different setting, in a dark hallway for example. Our haunted house is meant for people of all ages. For everyone who likes the rush of adrenaline that comes from fear, and for people that are curious and intrigued by interacting and communicating with technology in various ways.

We used quite simple material for the outer part of our haunted house: a carboard box. However, we searched for fall and Halloween elements to creatively put together something ‘sophisticated’ yet scary. We 3D printed the smaller pumpkin and added a bigger one. We would have liked to make a box with the laser cutting machine instead, if we had enough time. Our user testing session, as said before, influenced the design of our suggestive elements, such as the hands and the slogan, but also the addition of the 3rdreaction, the moving mask. People were entertained, but not yet frightened, which is why we chose to add a third element. We, of course, would have liked to have time to add more. Besides this, this a very small version of the haunted houses in theme parks, where everything is in human-size and extremely well designed, with a bigger budget and more time, of course.

Our goal was thus to create a haunted house with a variety of reactions between the user and our project. One the one hand, to entertain and frighten the user, and on the other hand, to stimulate the interaction between humans and robots (technological devices) with the use of our whole bodies. In my opinion, on a smaller scale, we succeeded in doing so. We entertained our users, perhaps frightened them (if in a different setting) and most importantly, we realized and increased the communication between humans and devices. It would even more so with more time, by adding more functions, and with more use of the fabrication opportunities. We learned to successfully design a 3D model after failing the first time, and we succeeded in coding multiple reactions onto our project. This midterm project has taught us a lot and gave us more definition on what interaction truly means, and why this is so important now and will continue to be in the future. Besides all other fields, the art and entertainment industry can really demonstrate the future’s more interactive collaboration between technology and humans.

Recitation 6: Processing Basics – Connor

Name: Connor MacFadyen

Instructors: Young/Eric


Image result for sol lewitt



Rather than recreate an image, I tried to create my own art piece after looking at Sol Lewitt’s works online. I enjoyed looking at his use of rectangles and more contemporary style which lead me to create an image of my own. Though the majority of his work is cut and clean and follows the angles of the image precisely, I wanted to take that to the next level and create something more sporadic with a centralized core. Thus: Outside the Box


Different due to the more random design and differing strokeWeight’s but similar in the use of lines and simple shapes, trying to adjust to the reverse coordinate plane was somewhat of a difficulty. I had to redo many rectangles after remembering that the origin is set in the top left rather than the bottom right. Using Processing as a means to draw was enjoyable, even if it was creating simple rectangles branching off a central black box.



Midterm Project Rudi

Instructor: Rudi

Date: October 29, 2018

Documentation: Mike Jung

Project Name: Aces

Project Statement of Purpose

This project was really hard for me and my teammate (Jeff Xing) to come up with ideas, we had more than 20 ideas of what to make but we were not able to come up with one we liked. So we decided to make something directly related to our interest. As we were talking we had one thing in common that we like to do together. One night when we were studying for Calculus, we got so stressed that we decided to have a “Card War” where we would throw around cards to hit each others. The purpose of this project was to make an entertainment that we both like to do without hurting each other throwing cards, and improve our skills of throwing cards. By using this simple idea of our project we can teach other people targeting age 8 to 14. Even now I am interested in throwing cards, and magic tricks, and I am sure that a lot of kids around that age wants to learn magic and throwing cards. This would be a best project to help them learn their learning.

Literature and Art, Perspectives and Contexts

To be honest, we were not basing our project on any online readings and artist rather, we based our own experience of what we like to do as motivation. But we were still able to connect our project with some other games and movies.

First, I really like watching movies and games. On the movie “Now You See Me” Dave Franco is a magician who is really fluent with card throwing. By looking at him, I started to practice card throwing, and also in the game of League Of Legends, Twisted Fate is one of the strongest champion that throws around cards to stun people and get kills. He is one of my favorite champion in the game. These movies and games gave me motivation even more to build our project to learn how to throw cards like them.

Project Description 

Our project Aces were mostly influence by our interest of throwing cards, games and movies. Our motivation was to create a simple game/entertainment for people who are also interested in throwing cards or people who want to have fun. Since we wanted to make the game simple, building the game was simple to put together. But still our understanding of Arduino, and the difficulty of coding made our process slower. We had to get a lot of help from professors, and ask advice from our friends. And also we had to rebuild our project 3 times so it was time consuming and frustrating.

Our first though when we made the project was to use seven segment LED and vibrator sensors. Our biggest concern was if we can connect those two sensors. By using conditional statement with the aid of one of the professor: “if (sensorReading >= threshold || sensorReading1 >= threshold || sensorReading2 >= threshold)” we were able to solve our concern. We had to use these codes since we wanted to use 3 vibration sensors.

The vibration sensors were used so if we hit the sensors, each hit will count on the seven segment sensor to keep the score. We finished our rough project the night before so we can do the user testing. We were happy that we were able to come up with the project that really worked. But during the midterm testing, we found our that our vibration sensor were not responsive as before. We gave many tries, but it did not work well. So we decided to just get advices from people. And it included:

▪So what is the main point of the interaction

▪How many people can play

▪Why are there three targets = more area to hit and connected 3 different sensors to be more innovative

▪What are the things from last week in class that we included in the project

▪Paint some kind of design with illustrator instead of drawing 

▪When doing the laser-cutting we can create a better box 

▪Perhaps we can create a model with two motion sensors and instead of the unresponsive sensors we can track the accuracy of the cards.

▪Two different breadboards and a gap in-between two motion sensors

▪We can even make several motion sensors and a large wall with holes in it

▪Make the intuition of the game more clear to the user

The final project was finished for us on Saturday and Sunday afternoon. We have change the vibration sensors with IRLed sensors because they were more responsible than the vibration sensors. After replacing the vibration sensor with IRLed sensors it worked correctly as what we have wanted it to look like. The day of presentation in class went pretty well as what we wanted. We did not face any technical issues or difficulties.

Project Significance

The importance of our project was to let people get interested in the card throwing, and also targeting at the people with the same interests that Jeff and I shared. As said earlier, we target ages 8 to 14 years old, the reason for that is not only these kind of games are for kids, but also we want to engage them that it is more fun to play with something physical than just computers and phones. Nowadays more and more children were glasses since they spend too much time playing games and watching videos. So WE want to take a step with this project, which we can get them to play with our project and let them find their own interest other than games and videos.

Project Design and Production

Our project counts the number of times the sensors is triggered. Like mentioned previously our vibration sensors were not responsive as we wanted to be to meet the point of our goal, that is why we have changed it to IRLed sensors. But after we have changed to IRLed and change the coding, IRLed sensors were able to detect the cards that were flying at the high speed. By changing the sensors our project became more responsive and larger radius of the target area other than just a small dots.


Our goals of project was to motivate young children to play something physical games other than technology based games. I think we could have done better than our project. It is not that I am not satisfied with our project, but I know we could have done better if we had more time to put in. We would have used laser cutter to make the box and 3D print more things in order to make the box better, but lacking time was a problem for us, since we had to rebuild more than 2 times. But I think we were able to explain ourselves pretty well why we made this kind of project. Given more time, we would have made a project that could have been given to the children for entertaining. As Jeff and I talked about this project, we wished to have one of these machines to play with when we were young.

// these constants won’t change:

const int ledPin = 13;      // LED connected to digital pin 13

const int knockSensor = A0;

const int knockSensor1 = A2;

// const int knockSensor2 = A2;

const int threshold = 500;  // threshold value to decide when the card comes through

//Define the Pinout of 7 segment display

int a = 7;

int b = 6;

int c = 5;

int d = 11;

int e = 10;

int f = 8;

int g = 9;

int dp = 4;

// these variables will change:

int sensorReading = 0;      // variable to store the value read from the sensor pin

int sensorReading1 = 0;

// int sensorReading2 = 0;

int value;

//Display Number 1

void digital_1(void)


  unsigned char j;

  digitalWrite(c, LOW); //Set C Segment to low which lights this segment

  digitalWrite(b, LOW); //Set B Segment to low which lights this segment

  for (j = 7; j <= 11; j++) //Set the rest Segments to high which turn off this segment.

    digitalWrite(j, HIGH);

  digitalWrite(dp, HIGH); //Turn off DP segment (the little dot on the right down part)


//Display Number 2

void digital_2(void)


  unsigned char j;

  digitalWrite(b, LOW);

  digitalWrite(a, LOW);

  for (j = 9; j <= 11; j++)

    digitalWrite(j, LOW);

  digitalWrite(dp, HIGH);

  digitalWrite(c, HIGH);

  digitalWrite(f, HIGH);


//Display Number 3

void digital_3(void)


  unsigned char j;

  digitalWrite(g, LOW);

  digitalWrite(d, LOW);

  for (j = 5; j <= 7; j++)

    digitalWrite(j, LOW);

  digitalWrite(dp, HIGH);

  digitalWrite(f, HIGH);

  digitalWrite(e, HIGH);


//Display Number 4

void digital_4(void)


  digitalWrite(c, LOW);

  digitalWrite(b, LOW);

  digitalWrite(f, LOW);

  digitalWrite(g, LOW);

  digitalWrite(dp, HIGH);

  digitalWrite(a, HIGH);

  digitalWrite(e, HIGH);

  digitalWrite(d, HIGH);


//Display Number 5

void digital_5(void)


  unsigned char j;

  for (j = 7; j <= 9; j++)

    digitalWrite(j, LOW);

  digitalWrite(c, LOW);

  digitalWrite(d, LOW);

  digitalWrite(dp, HIGH);

  digitalWrite(b, HIGH);

  digitalWrite(e, HIGH);


//Display Number 6

void digital_6(void)


  unsigned char j;

  for (j = 7; j <= 11; j++)

    digitalWrite(j, LOW);

  digitalWrite(c, LOW);

  digitalWrite(dp, HIGH);

  digitalWrite(b, HIGH);


//Display Number 7

void digital_7(void)


  unsigned char j;

  for (j = 5; j <= 7; j++)

    digitalWrite(j, LOW);

  digitalWrite(dp, HIGH);

  for (j = 8; j <= 11; j++)

    digitalWrite(j, HIGH);


//Display Number 8

void digital_8(void)


  unsigned char j;

  for (j = 5; j <= 11; j++)

    digitalWrite(j, LOW);

  digitalWrite(dp, HIGH);


void setup()


  int i;//Set Pin Mode as output

  for (i = 4; i <= 11; i++)

    pinMode(i, OUTPUT);



//void setup() {

// Serial.begin(9600);       // use the serial port


void loop() {

  // read the sensor and store it in the variable sensorReading:

  sensorReading = analogRead(knockSensor);

  sensorReading1 = analogRead(knockSensor1);

  // sensorReading2 = analogRead(knockSensor2);

  // if the sensor reading is greater than the threshold:

  if (sensorReading <= threshold || sensorReading1 <= threshold) { // This is a conditional statement…

    value = value + 1;


  // all of the below is just making boom boom every time boom the light changes

  if (value >= 8) {

    value = 0;


  if (value == 1) { // If this is true..


    // this happens…


  if (value == 2) { // If this is true..



  if (value == 3) { // If this is true..



  if (value == 4) { // If this is true..



  if (value == 5) { // If this is true..



  if (value == 6) { // If this is true..



  if (value == 7) { // If this is true..



  //  if (value == 8) { // If this is true..


  //    digital_8();


  //  }


  //  if (sensorReading1 >= threshold) {

  //    // send the string “Knock!” back to the computer, followed by newline

  //    Serial.println(“2”);

  //  }

  //  if (sensorReading2 >= threshold) {

  //    // send the string “Knock!” back to the computer, followed by newline

  //    Serial.println(“3”);

  //  }

  //  delay(500);  // delay to avoid overloading the serial port buffer


Midterm Project: Racing Fans —— Yunhao Ye (Rudi)

1.Project Name: Racing Fans 

Partner: Brett Bian

2. Project Statement of Purpose:

As children like games much, and compared to some boring games, they prefer competitive games which allow many players to play together. They desire to concentrate on the game and enjoy the process to pursue victory, from which they gain excitement and pleasure.

It is a great try to do this in a physical model since children are more likely to spend their time with phones. We not only want children to enjoy their time, but also we want to show them a way different from electronic technology. We want to let them experience our way to spend the childhood. So we want to design a multi-play game modeling after racing cars, it should be a speed race and it must be exciting and attractive for children. And it should be easy to carry so it can be convenient to play together. Also we want it to be changeable and various so children won’t get bored easily.


  • The first one is the “Speed Game” from week2’s recitation, it’s a competition in which the first one to click the button faster in 10 seconds will win the game. We like the idea to make speed to click button be the main factor of the game, thus it can make players concentrated and excited. Additionally, we soldered the push buttons to the switches modeling after the week1’s recitation. Then we fixed them on a cardboard box by tape. So they are now comfortable and convenient for the players to click.
  • The second one is a idea modeled after a certain game (I forget its name). In the game, the colors of your screen changes depending on the speed you click the mouse and type the keyboard. We wanted to do exactly the same with it, to change the colors of LED depending on the speed player click the button. But then the wires will be too long and we can’t hide them. So we then made a little change, letting LED changing colors depending on the distance.
  • We have tried to give a surprise like a melody by speaker when a player win the game, in other word, when the distance sensor output “0 cm”. But the reading I recitation says that Ultrasonic Ranger can only sense 2cm~400cm. Considering 2cm is not so short for a ping-pong ball, we decided to give up this plan.
  • When we compare between Ultrasonic Ranger and Infrared Distance Sensor, we chose the Ultrasonic Ranger. Firstly, because we found in the reading of recitation that Infrared Distance Sensor can only sense 4~30cm, which is much shorter than our board. Also, knowing how Infrared Distance Sensor works, we think it is easy for the IR to give a very large data when the ping-pong is not at the centre of the path. In that situation, it gives its distance from the box instead of the ping-pong.


Since the project let us do something useful, interesting or entertaining. We first considered whether to create something helps us or entertains us. After we came to the conclusion that to build a helping tool is kind of difficult, and we both have more interest in games, we begun to choose the components we would use. Firstly, we decided to use sensors to improve the interaction. And among all the sensors, we think the distance sensor is the most practical and can be affected least by error. So we chose the Ultrasonic Ranger. After that we reflected on all the output components (motor, LED, speaker, etc) and tried to think up a prototype. Inspired by the “Speed Game” mentioned above, we wanted to connected the push button to the motor and fan. And the fan will blow something to the finish line, where will be an Ultrasonic Ranger. We wanted the thing to be floated on the water initially, but it didn’t take us much time to realize it is hard for us to control its trace. So we found a glass board as the ground.

We first want to design the code to transfer the speed of clicking the buttons to the speed of the fan. And then we found it on the internet. It allows the fan to rotate two times every time you click the button. And we adjusted the “delay” to control the speed of fan.

Meanwhile, we also tried to print the holder for the motor. We measured the size of the motor, and designed the holder on “Tinkercad”. But the first edition was kind of small and it was very tight to hold a motor. So we increased the width and printed another two holders. Here are some pictures of our design. (to make it lighter and faster to print, some middle part is unsolid) We also found a cardboard box to hold all the circuits and made some holes to let buttons and wires out.


After that, we begun to design the main part of the game, including the object we will blow, how long will the distance be, how smooth will the board be and how fast will the fan rotate. Since they are connected closely, we thought it was kind of complicated. So we wanted to print a cylinder first, then adjusted all other things to make the game reasonable.And here is a picture of the cylinder we designed.

We made it unsolid to make it as light as it can b. However, it was still to heavy to be blown by the fan since it has 20 sides and was rough on the surface. Then we tried to fix two paper cups together by tape. It is light and round enough and is easy to blow. But it will easily change its directions thus can’t go straight during the game. Hearing from others’ advice, we changed it to ping-pong at last. Additionally, we used cardboard to build the track.

Finally, we started to design the sensor part. After comparing all the components we had, we found using different colors of LED to show different distances was a good idea. Originated from the code in recitation, we used many “if” sentences to let it work. (there are some useless sentences during the game, but they are useful to leave out the very large error when testing the data thorough “print” function) Then we fixed the Ultrasonic Ranger on the board, so our project was done.


Our project is intended for children. First, we want to design a exciting competing game, on which children would like to spend time on. And they can gain excitement and pleasure from the process of pursuing victory. More importantly, we want to get them away from computers and phones and experience how we spent our childhood. Though we didn’t have high-tech at that time, we still enjoyed our childhood, it has its unique beauty. We try to design a game based on a classic idea but in a creative way. So children can know how do we entertained and what the toy before looks like. Just like we also love some old games, such as cards and hide-and-seek, I’m sure children in this generation will also enjoy our game. It’s not only a game, but also tells the story of our childhood. Moreover, we can even recall our childhood by playing the game.


We want to design it on the water initially, but we found it hard to control the direction and place the whole circuit on the same height with the pool. So we chose the glass board which is easier to control.

As I said in part 4, we first printed the cylinder and found it was too heavy and rough, then we changed to the paper cups which are easy to change the directions. Lastly, we chose the ping-pong with fixed track since it’s light, round and we can let it run in a fixed track. And this was a precious from the users tested.

Originally, we have four push-buttons in total, and each player should control two of them. Even there is no difference between those two buttons, we think it is cool to click two buttons together. But most users don’t think it is a good idea, they suggest two buttons should be enough, so we changed four to two after the recitation.

When we worked on the code, it also took us lots of time to adjust the “delay”. We must control the speed of the fan to let the game last about 5 seconds and make the LED blink with a proper frequency.

When we tried to fix the button on the box, we couldn’t come up with any solution at first. After a while, we use soldering to take the button and wires apart. Then we made some holes to let the wires and soldered the button and wires together again. So the button was fixed on the box now.

I think our overall decisions are good enough to reach our goals. But I think we can do better at the track and ping-pong. For ping-pong is not so cool and a straight track is very boring.


In our project, we want to create a competitive game which can make players concentrated on the game, from which they can gain excitement and pleasure. Our project can make players concentrated and is exciting. And we can divide them into some independent part so it is not difficult to carry. But it is kind of dull and boring for we only have one straight track, so if possible, I want to change track by adding slope or other landforms. Additionally, I really want to make some bends in the track, however, if so, the wind can’t blow the ping-pong directly. We have also tried to use the 7-segment LED to show the distance instead of normal LEDs. But it was too difficult for us to design its code.

From this experience, I have known that though it is simple to prototype, it is really hard to turn it into reality since I will face many difficulties. Sometimes some basic test will take you a lot of time. Sometimes you just don’t know the way to achieve a certain affect. Sometimes it’s difficult to consider all the difficulties together. And I need much time to test, improve and eventually work out a product. Also we I found user-test was really helpful, for I sometimes take some idea for granted, but it may seem terrible for most of the users. It’s a great chance for me to make my product suitable for others.

I think our goal is a good one since we not only want to design a good game, but also tell our childhood story to the children. But our final work is far from perfect. One reason is we haven’t got enough ability and tools now, another reason is our progress is slow and we have little experience to deal with complicated circuit. I really hope we can make a better one later, thus we can play with each other to experience our childhood again.










const int  buttonPin = 3;

int buttonState = 0;
int lastButtonState = 0;
int a = 0;

void setup() {
  // 设置按键的针脚为输入状态
  pinMode(buttonPin, INPUT);
// 系统调用,无限循环方法
void loop() {
  // 读取按键的输入状态
  buttonState = digitalRead(buttonPin);
  // 判断当前的按键状态是否和之前有所变化
  if (buttonState != lastButtonState) {
    a = 1;
  }    else {
      a = 0;
    lastButtonState = buttonState;
    Serial.println (a);
   delay (20);
    if (a == 1){
      digitalWrite(9, HIGH);
      delay (50);
      digitalWrite(9, LOW); 

const int pingPin = 7;

void setup() {
  // initialize serial communication:

void loop() {
  // establish variables for duration of the ping, and the distance result
  // in inches and centimeters:
  long duration, inches, cm;

  // The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
  // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  digitalWrite(pingPin, HIGH);
  digitalWrite(pingPin, LOW);

  // The same pin is used to read the signal from the PING))): a HIGH pulse
  // whose duration is the time (in microseconds) from the sending of the ping
  // to the reception of its echo off of an object.
  pinMode(pingPin, INPUT);
  duration = pulseIn(pingPin, HIGH);

  // convert the time into a distance
  inches = microsecondsToInches(duration);

 if (inches < 30) {
  cm = microsecondsToCentimeters(duration);


  if (cm>40) {digitalWrite(9,HIGH);
  } else {
  if (cm>=10) {digitalWrite(10,HIGH);

long microsecondsToInches(long microseconds) {
  // According to Parallax's datasheet for the PING))), there are 73.746
  // microseconds per inch (i.e. sound travels at 1130 feet per second).
  // This gives the distance travelled by the ping, outbound and return,
  // so we divide by 2 to get the distance of the obstacle.
  // See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
  return microseconds / 74 / 2;

long microsecondsToCentimeters(long microseconds) {
  // The speed of sound is 340 m/s or 29 microseconds per centimeter.
  // The ping travels out and back, so to find the distance of the object we
  // take half of the distance travelled.
  return microseconds / 29 / 2;

Midterm Blog Post – Connor

Name: Connor MacFadyen


Instructors: Young/Eric


Radiation Evaluation


2. PROJECT STATEMENT OF PURPOSE (150-250 words):                                                   

The idea for my project surfaced when I was browsing the web. As I was reading articles, I came upon a surprising fact – radiator and thermostat malfunction within the heating block of an engine is one of the main causes of engine failures and accidents. Road transportation being the main method of travel, I wanted to tackle the problem that is caused when leaks within the lower radiator tank throw off the entire cooling system of said engine. Problems arise when not enough coolant is flowing from the radiator to the cooling block – often times this is caused by a leaky or loose hose. By using a moisture sensor built into a hose, the driver will be alerted by an LED corresponding buzzer system in case of malfunction. The intended function of my project is to alert drivers of the danger that they are in before the possibility of an accident arises.                                                                                           

3.     LITERATURE AND ART, PERSPECTIVES AND CONTEXTS:                                                      

Though my project has less immediate interaction between human and system, I chose to pursue this idea after reading an article called “Useful, Usable, and Used: Why They Matter to Designers.” These three keywords, though much in the same, also have specific differences that create different functions for varying projects. For my project, in particular, I decided to focus more on the word “useful,” or the allowing of a task or objective to be completed. Steve Krug’s book Don’t Make me Think, though more to do with UX design and web-based programs makes many good points on the importance of efficiency and simplicity of a good design. Krug’s book helped me stay away from a design that tries to accomplish too much at once as I had originally planned for my project. Though I was at the doctor’s on the day of user testing, his work made me reevaluate my design without seeing it himself. I tried to make a project that would be useful to all, no matter the user. As the majority of the world in this day and age uses motor vehicles as a means of transportation, “Radiation Evaluation” has an intended and executable use that makes travel safer. An article I read by John Pribble III states that “Design describes the planning and decision-making process to determine the functions and characteristics of a product.” After reading this article, I realized that I had done the process of design backwards, as in choosing a sensor and doing research about what I can make said sensor do. Instead, I should have come up with an idea for my project, decided how I wanted to execute it and pick and choose appropriate components from there. This article resulted in me returning the original pressure sensors which I had borrowed from the IMA lab, and design an entirely new project.

 4.      PROJECT DESCRIPTION:                                             

My project, intended to be attached to the lower tank of a radiator within an automobile was designed to alert the user of danger when exposed to certain scenarios. Using a 3D printed container that can fit into the radiator itself, from the box extends a hose with an inserted moisture sensor. This moisture sensor, connected to an LED and a buzzer system through Arduino, alerts the user of any possible malfunctions that can occur within the heating block. If too much or too little coolant is flowing, the sensor will be able to detect this abnormality and the driver will be able to fix the problem before the situation escalates. The interaction I chose to pursue corresponds with concerns for the safety and well-being of the user, preventing danger and possible disaster. Many cases of engine failure are noticed too late – whether it resulting in a crash or a fire, Radiation Evaluation is designed to prevent this entirely and make the road a more comfortable space. When coolant is flowing properly and the engine is at a safe temperature, a separate LED blinks green to reassure the user of their safety. I decided to tackle this specific problem in particular due to past experiences I have with this situation. When I was younger, my brother had his legs almost severely burned (fine now) while driving a dune buggy around at the beach when he flipped over and a hose came loose. With this idea, I started with the code for simply turning on an LED, then slowly (as I learned how to use Arduino alone to complete something besides a circuit) morphed it into an LED activated by the moisture sensor. Afterwards, I was able to set the threshold based on research around the safe temperature for engines for which LED should be blinking, GREEN or RED. Finally, I was reading about how most road accidents other than those caused by a drunken driver, occurs when one or both of the drivers is distracted. FIguring that a small LED is easy to overlook when you’re driving, I decided to implement a looped buzzer melody only when the temperature of the engine falls into a dangerous zone.

5.    PROJECT SIGNIFICANCE:                        

My project, intended to be a solution to the problem that is ignorance on the functioning of engines and simultaneously prevents the problem that is an overheated motor, is significant in its purpose. It also highlights our society’s progression towards a more convenience based environment, removing the need to periodically check the radiator for wear and tear. In the long run, I hope that my design will be able to create a safer environment for all – being that any vehicle with an engine can benefit from my project.


My original design for my project was completely different from the finished project. In fact, my entire project was restarted when I was reminded that our partner was supposed to be from our lecture (something I missed). Starting completely from scratch and on my own, I returned the sensors I had previously borrowed and let my old partner pursue our original design instead. The biggest decision I had to make while creating my project was if I wanted to use a moisture sensor or a temperature sensor. Originally going to use a temperature sensor in turn with the thermostat in the engine, I decided against this for a few reasons; a main being that the thermostat within an automobile is subject to many outside factors like weather, etc.. Instead I decided to focus on the root of the problem, the coolant and work my way from there. Due to the fact that coolant is essential to the temperature and functioning of an engine, I found it much easier to assess and react accordingly to problems in this department as opposed to the thermostat. Though I didn’t receive any feedback from the User Testing Session due to a fever, I got some meaningful feedback from my friends back at the dorms. Their input was what influenced me to add a buzzer (playing an annoying and repetitive tune) in addition to the LED I had initially planned on using.


For the problem I decided to tackle, I would label my project as successful. However, I was unsuccessful in incorporating a significant amount of human interaction with my design. As Eric said, my project takes on more of an engineering problem rather than an interactive one. I don’t think time was an issue with this project except for the days that I was sick and unable to come to class. I also had a problem with the heart that pushed back my presentation which was unfortunate, to say the least. What I would like to improve on is making the design more hands-on and interactive from the perspective of the user. Rather than just alerting the driver that a problem has arisen, it would be nice to solve that problem simultaneously by, for example, adding more coolant. Though I pictured interaction from a complete system to system cause and effect loop, I should have designed the project around and an input and output based on human interaction – rather than somewhat of an alarm. In this regard, I would label my project as a fail. During this project, however, I greatly increased my ability to use code to determine and output, which was exciting for me. Working alone was by far the hardest part of the midterm, though I am fully to blame for it. There was no collaboration between me and my partner, as there wasn’t one and the result was me often just asking someone for a bit of help if I couldn’t get something to function properly. Overall, I enjoyed creating this project, even it wasn’t the best – I definitely learned from the experience and will use the skills I acquired during its creation to better myself for next time.

Midterm Project Blog: Music Cloud by Yanru Zhu


Music Cloud

–music is everywhere, even in the air

Project Statement Of Purpose

There’s an old Chinese saying that “千日琵琶百日筝,半世三弦学唔成” (It takes 100 days to learn Guzheng while it takes 1000 days to learn Pipa, and you might not be able to have a good command of Sanxian even if you take half of your life to learn sanxian) This saying shows the difficulty in learning traditional Chinese instruments, and I am really related to it. As a music lover, I have been learning Erhu (a traditional Chinese instrument) since childhood time, however, I found that the learning process is often too hard for ordinary people. As a starter, you might be depressed by learning for days and still be not able to perform a piece of music because it’s hard to learn the proper posture of playing instruments. To sum up, we want to solve this problem by building an instrument that is easy for everyone to play and this instrument should be played without having physical contact to remind people that music is something very approachable just like air that embraces us all the time.

Literature And Art, Perspectives And Contexts

Readings and projects that influenced the shaping of my project
  • Theremin:

After searching online, we found that we are not the first one to make an instrument that does not require physical contact. In 1919, Léon Theremin invented the Theremin, which consists of two metal antennas that sense the relative position of the thereminist’s hands and control oscillators for frequency with one hand, and amplitude (volume) with the other. The electric signals from the theremin are amplified and sent to a loudspeaker (https://en.wikipedia.org/wiki/Theremin). We watched several videos about musicians playing Theremin and was really amazed by Theremin, however, we found that Theremin still requires much time and effort to learn, so for our project, we decided to make the instrument as simple as possible for everyone to use. 

  • Synthetic Twin ( https://create.arduino.cc/projecthub/cpeckmusic/new-electronic-music-instrument-design-69e29d?ref=tag&ref_id=music&offset=72 )

This amazing sandbox really shocks me! According to the artists, ” I have always loved electronic music, but I have also continually felt the need for more physicality in the performance experience”. I was really amazed by the idea of more physical movement. However, due to the limitation of the technique I grasped now, I can not build an instrument that can detect the precise movement of hand, but what I learnt from the Synthetic Twin was that I can define different distance into different range. This sandbox is quite perfect from my point of view, but if I have to say one thing that my project is better, I would say they don’t have the concept of space as they operation is based on a flat while mine is based on a box which is more “spatial”.

  • Physical Computing – Introduction, O’Sullivan and Igoe

According to the Author, “To change how the computer reacts to us, we have to change how it sees us”. Instead of just putting a finger on a surface, I would rather create some hand gestures that contain more message and can do more interaction. So I use the distance sensor rather than  light sensor or touch sensor, because the information that machine could get from the former is much more than the others. So based on the distance, I wanted to do a pitch change and volume change(however the volume change failed).

The Project inspired me to do this project
  • I Took a Pill in China (An Arduino Instrument Remix)(https://www.bilibili.com/video/av31039350?t=143)

This project uses Arduino and servos to control the traditional instruments, and it combines the electronic music so the whole project is a combination of East and West, traditional and Morden. The part using Arduino to control instruments really inspired me. So that’s when I came up the idea of making an instrument based on Arduino, especially for those who don’t have music background can also enjoy and play music.


Project Description

Our device is a box that has 8 surfaces while 7 of which can be used for playing music. These 7 surfaces all have an ultrasonic distance sensor and a small LED. When user’s hand approach different surfaces, the speaker inside the box will sound with different pitch. Although there’s only 7 surfaces, Music Cloud can make 14 different pitches(C5-B5+C6-B6). Each surface have 2 pitches (C5+C6/D5+D6/E5+E6 etc.), and it uses the distance between the hand and the sensor to determine which pitch should it sound. In a specific range, If the distance is smaller than 15 cm, it will sound the lower pitch(C5-B5) and vice versa. So user can use this simple 7-surface box to perform some pieces of music, and they don’t have to learn complex gesture like piano or violin, all they have to do is to approach their hand to the surface and listen to the sound and see the light lightened up on the surface. Also, the reason why I chose to build a box instead of a line of keyboard is that, from my own perspective, memory of space is deeper than the memory of a flat/ a line, so compared to instrument like piano, people will more likely to remember different pitches by using a box instead of a line of keyboarders which is harder to memorize.

Project Significance

Music Cloud enable more people to play music, it doesn’t have many operations that require much time and effort to learn, so it especially welcome people who don’t have many music background to participate in playing music. To some extent, music is something that very elegant and ordinary people don’t have chance to appreciate it. However, music can also be something that is accessible to everyone, like the air that embraces everyone. We can all feel the music and enjoy it, why should there be a barrier for people to interact with music? So I think that’s the point my project want to express. As for my expectation for this project, I want more people who previously don’t know much about music can be confident towards music and at least have a grasp of playing music. I want to break the barrier between ordinary people and music.

Project Design & Production

As this project is a team project, Wenhao and I splitted the work after confirming the direction of our project. I am mainly responsible for coding and configuring the whole system. We basically use ultrasonic sensors, LEDs and Arduino as electronic components. As for the appearance part, at first, we actually wanted to use 3D print to build shell of the music cloud, but we found that 3D printer is too small that it can not print a shell that is big enough, so we use laser cut to cut acrylic board and assemble them part by part. Besides, we chose a transparent acrylic board since our project is called “Music Cloud”, we wanted to make it looks more transparent just like air.

To be honest, we haven’t finished the prototype of Music Cloud in the User Testing Section because of the voltage problem which was solved later, so it was quite embarrassed to use verbal explanations to tell users what our project is mainly about. After 2days, we finished the prototype and asked some classmates to play with it, we found that it’s often confusing for them to recognize which surface is sounding, because 2 hands often approach almost the same distance with two sensors, so we decided to add LEDs on each surface to indicate which surface is sounding. LEDs can tell users which surface is sounding and after several trials, users can make a connection between light, sound and space, so that they can easily have a good command of this instrument.


It’s hard to define whether our project is successful or not. On the one hand, we did create an instrument that satisfies the previous plan; on the other hand, I think this project has a lot that we can improve. First, the LEDs can be more obvious and it should play a more important role to guide people and provide reaction. Second, the speaker is not good, if I have more time, I would find a better quality speaker to play really music(something like piano sound) instead of the digital music (sometimes it is even noise) or use servo and motors to control the instrument to get a natural sound. Third, the current and voltage of Arduino are still not so stable(even though it was so much better after debugging).

What I learn from this project is Learning by doing!

There are several problems I met during the producing process where I really learnt a lot.  The followings are what I learnt from this project. I never thought there were so many challenges I would meet before I really started doing it.

  • Be cautious. Don’t look down on the simple problem

Once I was testing LEDs, the LED’s lightness is way too low than expectation. I checked the circuit for almost half an hour but it still did not work. I asked for Young’s help and we carefully checked the circuit and the loop part of the code but still found nothing, at last, we found that in the setup part, I forgot to add the pinMode for LED. This simple and silly thing costed me almost one hour, but I will remember it forever because it reminds me to always be careful about the things you think is simple.  

  •   Discover problems by myself and Internet is your friend!

When I was trying to add the second sensor onto the circuit, I found that the detecting speech became much slower. I tried to debug and then I discovered that the code “pulsein” will slow the detecting speed if it does not receive the returning signals that the sensor previously sent out, so I adjust the circuit and it worked. This kind of debug happened a lot during the producing process, I really enjoy the happiness that I dealt a bug by myself.

  • Never afraid to try
  • Life is full of challenges and unknown things, so we have to try it or we will lose chance to discover something new! When I was asking “How many LED can be assemble in one line at the same time on one circuit” to one faculty, after our calculation, we found that in theory we can only install 4 LEDs at one line, however, I tried to connected 8 LEDs at the same time and it actually worked! Although I still don’t know why it worked, I always think to myself: Try it, don’t lose the chance!


  • Ask faculties and fellow students for help

Special thanks to all IMA faculties and my fellow classmates! The Music Cloud won’t be a real thing without all of you guys help. Thanks to the suggestions that all faculties and classmates told to me. Listening to others sometimes is more important than only focusing on me.

Do I solve the problem? Maybe no. But I believe I am on the right track.




const int pingPin1 = 2;
const int pingPin2 = 3;
const int pingPin3 = 4;
const int pingPin4 = 5;
const int pingPin5 = 6;
const int pingPin6 = 7;
const int pingPin7 = 10;

int led1 = 26;
int led2 = 22;
int led3 = 52;
int led4 = 34;
int led5 = 42;
int led6 = 36;
int led7 = 37;

int buzzer = 33; //speaker
int tim = 70;
int dist = 40;

void setup() {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(buzzer, OUTPUT);

void loop() {

  long duration1, duration2, duration3, duration4, duration5, duration6, duration7, cm1, cm2, cm3, cm4, cm5, cm6, cm7;

  pinMode(pingPin1, OUTPUT);
  digitalWrite(pingPin1, LOW);
  pinMode(pingPin2, OUTPUT);
  digitalWrite(pingPin2, LOW);
  pinMode(pingPin3, OUTPUT);
  digitalWrite(pingPin3, LOW);
  pinMode(pingPin4, OUTPUT);
  digitalWrite(pingPin4, LOW);
  pinMode(pingPin5, OUTPUT);
  digitalWrite(pingPin5, LOW);
  pinMode(pingPin6, OUTPUT);
  digitalWrite(pingPin6, LOW);
  pinMode(pingPin7, OUTPUT);
  digitalWrite(pingPin7, LOW);

  // wait

  // send the ping
  digitalWrite(pingPin1, HIGH);
  digitalWrite(pingPin2, HIGH);
  digitalWrite(pingPin3, HIGH);
  digitalWrite(pingPin4, HIGH);
  digitalWrite(pingPin5, HIGH);
  digitalWrite(pingPin6, HIGH);
  digitalWrite(pingPin7, HIGH);

  // wait

  digitalWrite(pingPin1, LOW);
  pinMode(pingPin1, INPUT);
  duration1 = pulseIn(pingPin1, HIGH);
  digitalWrite(pingPin2, LOW);
  pinMode(pingPin2, INPUT);
  duration2 = pulseIn(pingPin2, HIGH);
  digitalWrite(pingPin3, LOW);
  pinMode(pingPin3, INPUT);
  duration3 = pulseIn(pingPin3, HIGH);
  digitalWrite(pingPin4, LOW);
  pinMode(pingPin4, INPUT);
  duration4 = pulseIn(pingPin4, HIGH);
  digitalWrite(pingPin5, LOW);
  pinMode(pingPin5, INPUT);
  duration5 = pulseIn(pingPin5, HIGH);
  digitalWrite(pingPin6, LOW);
  pinMode(pingPin6, INPUT);
  duration6 = pulseIn(pingPin6, HIGH);
  digitalWrite(pingPin7, LOW);
  pinMode(pingPin7, INPUT);
  duration7 = pulseIn(pingPin7, HIGH);

  cm1 = microsecondsToCentimeters(duration1);
  cm2 = microsecondsToCentimeters(duration2);
  cm3 = microsecondsToCentimeters(duration3);
  cm4 = microsecondsToCentimeters(duration4);
  cm5 = microsecondsToCentimeters(duration5);
  cm6 = microsecondsToCentimeters(duration6);
  cm7 = microsecondsToCentimeters(duration7);


  Serial.print("cm1:  ");
  Serial.print("cm    ");
  Serial.print("cm2:  ");
  Serial.print("cm    ");
  Serial.print("cm3:  ");
  Serial.print("cm    ");
  Serial.print("cm4:  ");
  Serial.print("cm    ");
  Serial.print("cm5:  ");
  Serial.print("cm    ");
  Serial.print("cm6:  ");
  Serial.print("cm    ");
  Serial.print("cm7:  ");
  Serial.print("cm    ");


  int lowest = 9999;
  int sensorNumber = 0;

  if (cm1 < lowest and cm1 < dist) {
    lowest = cm1;
    sensorNumber = 1;
  if (cm2 < lowest and cm2 < dist) {
    lowest = cm2;
    sensorNumber = 2;
  if (cm3 < lowest and cm3 < dist) {
    lowest = cm3;
    sensorNumber = 3;
  if (cm4 < lowest and cm4 < dist) {
    lowest = cm4;
    sensorNumber = 4;
  if (cm5 < lowest and cm5 < dist) {
    lowest = cm5;
    sensorNumber = 5;
  if (cm6 < lowest and cm6 < dist) {
    lowest = cm6;
    sensorNumber = 6;
  if (cm7 < lowest and cm7 < dist) {
    lowest = cm7;
    sensorNumber = 7;

  if (sensorNumber == 1) {
    tone(buzzer, 523, tim);
    digitalWrite(led1, HIGH);
    digitalWrite(led1, LOW);
  } else if (sensorNumber == 2) {
    tone(buzzer, 587, tim);
    digitalWrite(led2, HIGH);
    digitalWrite(led2, LOW);
  } else if (sensorNumber == 3) {
    tone(buzzer, 659, tim);
    digitalWrite(led3, HIGH);
    digitalWrite(led3, LOW);
  } else if (sensorNumber == 4) {
    tone(buzzer, 698, tim);
    digitalWrite(led4, HIGH);
    digitalWrite(led4, LOW);
  } else if (sensorNumber == 5) {
    tone(buzzer, 784, tim);
    digitalWrite(led5, HIGH);
    digitalWrite(led5, LOW);
  } else if (sensorNumber == 6) {
    tone(buzzer, 880, tim);
    digitalWrite(led6, HIGH);
    digitalWrite(led6, LOW);
  } else if (sensorNumber == 7) {
    tone(buzzer, 988, tim);
    digitalWrite(led7, HIGH);
    digitalWrite(led7, LOW);


long microsecondsToCentimeters(long microseconds) {
  return microseconds / 29 / 2;

Recitation #6 Processing Basics

This image was not in the ones provided in the document provided in the recitation. The reason I choose this abstract painting by Kandinski rests on the fact of how he represents the sensible world through geometry. Weiches Hart (the painting), as seen from a distance can be perceived as a face of a human staring right towards the spectators. If you pay attention to the nose can be seen to the right of the three stacked triangles in the middle of the painting, what makes this painting interesting is that there is not one right answer towards what you see. The painting becomes more interesting as more conclusions can be drawn from its analysis. This is the reason why I choose this painting.

In order to achieve this goal of producing a work of art that can model reality in an abstract form and therefore be able to create various interpretations to make it more attractive. I started by creating a single triangle, from this initial triangle I started multiplying its values by 1.25. After the triangle with the new parameters was drawn I proceeded to create a new triangle, this time I took the same initial triangle and multiplied its values by 1.50. In order to create this pattern of triangles, I kept adding 0.25 to the multiplier until the multiplier hit 7. I believe I did achieve my goal in portraying reality in an abstract way. In this design, my goal was to re-create a video beam projection but at the same time making it up to the spectators to build up their own story.

void setup(){

void draw(){
 triangle(30, 75, 58, 20, 86, 75); 
 triangle(37.5, 93.75, 72.5, 25, 107.5, 93.75);
 triangle(45, 112.5, 87, 30, 126, 112.5);
 triangle(52.5, 131.25, 101.5, 35, 150.5, 131.25);
 triangle(60, 150, 116, 40, 172, 150);
 triangle(67.5, 168.75, 130.5, 45, 193.5, 168.75);
 triangle(75, 187.5, 145, 50, 215, 187.5);
 triangle(82.5, 206.25, 159.5, 55, 236.5, 206.25);
 triangle(90,225, 174, 60, 258,225);
 triangle(97.5, 243.75, 188.5, 65, 279.5, 243.75);
 triangle(105, 262.5, 203, 70, 301, 262.5);
 triangle(112.5, 281.25, 217.5, 75, 322.5, 281.25);
 triangle(120, 300, 232, 80, 344, 300);
 triangle(127.5, 318.75, 246.5, 85, 365.5, 318.75);
 triangle(135, 337.5, 261, 90, 387, 337.5);
 triangle(142.5, 356.25, 275.5, 95, 408.5, 356.25); 
 triangle(150, 375, 290, 100, 430, 375); 
 triangle(157.5, 393.75, 304.5, 105, 451, 393.75); 
 triangle(165, 412.5, 319, 110, 473, 412.5); 
 triangle(172.5, 431.25, 333.5, 115, 494.5, 431.25); 
 triangle(180, 450, 348, 120, 516, 450); 
 triangle(187.5, 468.75, 362.5, 125, 537.5, 468.75); 
 triangle(195, 487.5, 377, 130, 559, 487.5); 
 triangle(202.5, 506.25, 391, 135, 580.5, 506.25); 
 triangle(210, 525, 406, 140, 602, 525); 


Week 8: Video Project Idea – Jennifer, Angie, and Ellen (Madsen)

Our video project idea centers on the contrast between a fully colorful world and a colorblind world. The video will be shot from a first person narrative, so viewers will be able “act” as the main character. What the screen shows will be from the perspective of the main character. The video will take place in a museum and/or park. Possible shooting locations include People’s Square and the Shanghai Museum. The video will begin with everything in black and white, making the user experience a colorless world as the video brings them around the museum and park. Users will be able to explore and choose to go to different areas by clicking on different parts of the video. As the user walks around, they can click on certain objects, which will make them colorful. Clicking different objects may also prompt text to pop up, which will teach the user about that object, such as the history of a certain painting, or a fact about color blindness. Some objects will have additional interactivity in which the user can adjust the level of colorfulness and get a more detailed look of it. By the end of the video, the user will have clicked on all the items, and the surroundings will be fully saturated with color. We hope to play around with color and make this a fun experience for users through this interactive video.