Midterm Project by Barry Wang

Midterm Project – KAMEHAMEHA!

1. Preparation Stage: Ideas, Early Attempts and Failures

The most important point that the group project enlightens is the distinction between interactive and responsive. In my group project, the “Paint Your Day” machine is more like a responsive product. It is interactive only in the sense that the machine is making different choices according to different data that the sensor gives. The user only sees the output, which means that the user cannot directly feel the process of interactivity. The level of interactivity is not high enough. And we have analyzed several projects on the Internet, basically, those projects which we consider interesting involves human interaction strongly. For example, we looked at a mini arcade game machine.

One example game on it is the retro snake. The interactivity lies in the point that once the user moves the joystick, there is an immediate change on the direction the snake is going. By doing this, the user has a strong sense that I am controlling it, and it interacts with the user.

So the most important point that my partner and I would like to address is to create something that the user can be easily and strongly involved in. By that time, the class has just finished the content about controlling a motor fan, and we consider the motor fan might be a good point to start off since the output can be directly seen and heard.  

We started from the simplest point, trying to reproduce a remote control fan, and then add some extra features in it. We thought about putting an auto-mode in it, which is to adjust the fan speed according to the surrounding temperature. But we had never thought that this simple idea is such difficult to implement. We spent a whole night trying to figure out the difference between a TIP 122 and TIP 127 transistor since there wasn’t any TIP 122 transistor in stock and spent another afternoon trying to make the IR Receiver working properly. But the plan ended up because the IR Receiver keeps transmitting wrong data due to electronic noises that we cannot cancel even if we applied RC filter.

Besides the mechanical problem, we still do consider this product is too boring. So we ditched the whole plan and started to do more research. In the next stage of research, we looked at more interesting projects and reflected on the in-class projects. We reflected the mini arcade machine and the speed competition game in class and discovered that the most interesting and interactive way to create a project is to gamify it. 

At this point, Joseph came up with an idea of another speed game. It uses a distance sensor and a motor fan. The machine detects hand moving speed using a distance sensor, and the faster you move your hand, the stronger the wind will be. We then tried to gamify the project by setting up barriers and rewards. We consider that the speed of the fan is not direct, or visual enough. Thus we decided we make the fan to blow away something. The easiest way is by setting a paper cup wall. In this way, we have a complete gamified interaction. We have the user providing input data, Arduino mapping the moving speed to the rotation speed of the fan and the fan blows away cups as a gamified result.

This is a product that can be played by anyone, and the result is straightforward. The intention of this project is to make the user feel that they are applying a magical, invisible power to those cups. The users can feel a strong sense of achievement through the process of destroying the cup wall. This interaction involves the user in strongly. Besides, we consider this sequence of movements is similar to the “KAMEKAMEHA” action in animation Dragonball. We therefore decided to theme this project as Dragonball cause we believe this will make our project easier to be comprehended and much more interesting for those who watched the animation before. With the idea set, we started to design and produce this product.

2. Designing 

To maximize the user experience, we would like the machine to be placed in the middle of the user and the cup wall. The user pushes towards the machine, and the machine blows the cup away. This way, the user can feel that their energy is transformed in the air to the cup wall. We find a big cardboard box and decided the position of the distance sensor. (The reason we use a cardboard box is that it is easy to be modified, in case we improvise some features or some of the parts does not fit in properly. We do not need to laser cut a new one. It takes a long time and requires a small residual. )In our case, we put the sensor in the up-of-centre position, so that most of the users don’t have to bend down or reach up when doing the “KAMEHAMEHA” action. On the panel opposite, we would like to cut two slots to fit two motor fans. Using two fans can blow away more cups thus lead to a better visual effect.

Besides, since our output is a one-time output, we need to give the user a clear instruction on when to start. So we added a start button, a led and a buzzer to indicate the countdown and start command when playing.

Also, we would like to decorate our project with the Dragonball themed elements. On the surface which we put sensors on, we used this picture and tried to make the sensor at the centre of Son-Goku’s energy ball. We would also want this picture as an implication of how the machine works. And on the two sides, we made two energy beam so that it looks the energy is sent from the user to the paper cups.

     

       Decoration on the panel that the user faces                                                          Decoration on the side panel

To provide instructions to the users who have no experience with the animation, we wrote a few lines on the top panel to illustrate how should the user interact with the machine. We consider putting them on the top panel would be the most efficient way since all the users will need to push a button to start. Then these sentences are less likely to be completely ignored. 

Instructions on the top panel

3. Fabrication & Production

Having learned and improved from the previous failures, the circuit building was no longer a difficulty for us. The whole circuit is functioning properly outside the cardboard. For the software part, we discovered that some times the signal from the distance sensor is nor correct, especially when the users put their hands very close to the sensor or the user is too far from the sensor. We optimized our code so that most of the correct movements can be detected. But there are still some accidental circumstances that the readings from the sensor are not correct. More testing and optimization can be made if we had more development time.

However, when we put all the components into the box, the problem comes. We put the circuit into the box and fixed the two motor fans on the front panel. And here is the test video:

In the design part, we neglected a huge factor, that is the airflow of the fan. Since we put the fan too close to the box, there simply was not enough air to blow the cups. On the contrary, since the air wasn’t flowing fast enough, the air pressure is pushing the cups in the opposite way. This was a huge setback to us since at this point, we didn’t have to much time, only about 1 day to the user test session.

To sort this problem out, we drilled some holes on the panel, but that did not help much either. The fans are still unable to blow away the cups.

Then we decided to use two pillars to hold the motors and mount the pillar to the front panel so that the pillar can stick out to provide more air to the fan. But we did not have enough time to print 3D models before user test, so we used two cardboard pillars instead. Finally, the fans are producing enough airflow.

– User Test Session

The mechanism of the project worked well in the user test session, with only a few times that the machine didn’t work although the user did the correct movement. However, the biggest problem is that some users still can not play with this machine without our explanation. We overestimated the scale of the animation viewers, and we realized that we need to put more easy-understood instructions on it.

One of the user test cases:

– Further Improvements

First of all, is a better instruction system. We realized the fact that nobody is taking time to read anything like an operation manual. And it is difficult to describe a sequence of movements using words only. On this point, we decided to apply visual instructions. We found a picture that exactly shows the sequence of movements. And we put this picture on the panel that the user faces. In this way, they have a visual reference while preparing the movement. 

Secondly, we would like to substitute the two cardboard pillars with 3D printed models. They are tougher and more beautiful to look. While in the 3D printing process, I would say that it went far beyond my expectation. We built up a model using tinkercad and firstly tried to print them on the 3D printers in the 826 Studio. A compelling situation is that, somehow, while printing, one corner of the bottom surface will rise up, causing the whole model to distort.

Then we tried to print using the printers in the FABLAB. The first model we built was not big enough that the motors didn’t fit in because of the thickness of the 3D printing material. When printing the second model that we modified, another accident happened. Somehow the printing material tangled together and material roll got stuck. It affected the movement of the printer head and thus ruined the whole model.

Having changed the materials, we started our third attempt and printed two models using two separate printers together. One of them had a problem with the distance between the printer head and the tray. The distance was too close so that print materials got stuck together. We tried to initialize the printer, which didn’t help. Finally, we had to manually adjust the bias of z-axis of the printer head to move it further away from the tray. After all, we managed to get both printers working properly.

And here are the printed pillars:

Up to this point, the main body of our project has been all set. The remaining was just some decorations. We redesigned a better side panel picture,  stuck our new instruction picture on and wrapped the whole product using orange coloured paper. This marked the end of our production phase. Here is what it finally ended up look like.

  

4.Conclusion

Our goal was to create a gamified interactive product. I think we have done a satisfactory job. We have successfully formed interactions using this product. The users are strongly involved in. In the final presentation, though there were some users who did not look at any instructions at all, overall, the result was good. The users were competing with each other to see who can blow away more cups. I think this is an interesting and highly interactive product. If we had more time, we would build another machine which blows in the opposite way, so that two users can compete with each other at the same time. Also, we would add a speaker to it to enhance the sense of participation. Moreover, we would work harder on the instruction system so that it is easy-understood and obvious enough.

Looking back on what we succeeded and failed to do, I would say that the most important thing is to start off as a user. Only in this way will we be able to create something that the users really like. During our research phase, we all like an interactive game or other cool stuff, then why do we create an automatic fan for the users in the first place? It is interactive but boring. What we need to keep in mind is that product is always oriented at users.

As a product that is centred at game and animation, this product brings a real sense of the movements in the animation into life to the users who have previous experience with the animation before. This product can be furtherly made into a toy for the kids. As a kid, who does not want some cool stuff? Who does not want to make the clips in the animation come true? This product is bringing absolute joy and interactivity with animation to these users. Bringing joy to the users is definitely the best praise to a product, and one of the ultimate goal of interactivity itself. 

Recitation 4: Drawing Machine by Barry Wang

Recitation 4:Drawing Machine

In this week’s recitation, we are learning to control the step motor. Moreover, we are combining the step motor with the H-Bridge to create a drawing machine. 

Materials:

For Steps 1 and 2

1 * 42STH33-0404AC stepper motor
1 * L293D ic chip
1 * power jack
1 * 12 VDC power supply
1 * Arduino kit and its contents

For Step 3

2 * Laser-cut short arms
2 * Laser-cut long arms
1* Laser-cut motor holder
2 * 3D printed motor coupling
5 * Paper Fasteners
1 * Pen that fits the laser-cut mechanisms
Paper

Step 1:  Hooking up the step motor:

The first step is to hook up the step motor. Since the step motor is controlled by the H-Bridge, the wiring is a bit complicated. One thing especially needs to pay attention is the direction of the H-Bridge. I need to make sure the semi-circle gap aligns with the picture in the diagram. Another important point is to separate the 12V and 5V power so that the Arduino doesn’t get burned. After hooking up the wire, we are using the sample code to make the motor turn a full circle.

Here is the circuit and the test video:

Step 2: Control the step motor with a potentiometer

Similar in the way of controlling a fan with a potentiometer, I connected the third pin to an ANALOG IN pin to read data from the potentiometer. Then I map the input to a value in the range of (0,200) to the output pin that is connected to the H-Bridge.

Here is the test video:

Step3: Building the Drawing Machine

With both my and my teammate’s step motor running, we put them together and assembled the mechanical arms. Boom! A drawing machine comes to work!

And our final painting!

Question 1:

I am interested in creating an interactive game. For example, a labyrinth controlled by a joystick. The users can tilt the labyrinth to roll a ball from the start point to the finish point.

The idea of using digital devices to create art is an interesting idea. It looks or sounds cool. But to create an exquisite piece of art requires a high level of controlling the movement of the digital parts. In our case, though the step motors work well, yet it is difficult to control such a machine.

Question 2:

I like the wooden mirror creation. This project is not very difficult to realize, yet creates a strong sense of aesthetic joy. The actuator used is the servo. Using the servo to flip the wooden block is easily controllable. And it provides an expected output. While in our project, though the step motor works fine, yet controlling it proves to be a difficulty. 

Individual Reflection by Barry Wang

In Crawford’s article, interaction is defined in three steps. He used an example of two people talking to illustrate these steps, listening, thinking and responding (Crawford 5). Simpler, it can be concluded as input, processing and output. Indeed, these steps are necessary to interaction. But are they sufficient? No, I don’t think this definition depicts the full picture of interaction. In Igoe and O’sullivan ‘s Introduction to Physical Computing, the figure of “How computer sees us”, which is a finger with one eye and two ears, enlightened me (xix). I consider that besides the basic definition, high-level interaction should always be related to human. It is human who can really feel the sense of interacting. This is what really matters.

Let me explain my definition by giving an example, which has low level of interactivity. This project is an automatic plant waterer. It is made up of three parts, a soil moisture sensor, which reads the moisture as an input. An Arduino UNO as a computation unit. And a DC motor to control the water valve. Is it interactive? Sure, it involves input, processing and output. It also is quite handy to save your plant from drying to death when you are absent for a long time. But obviously we can see that this project is not as interesting as we would imagine interactive to be. Why? Because there is no human involved in. In fact, I personally prefer defining this kind of low-level interaction as a part of automation.

So, what is high-level interaction then? I also have an example here. It is called Volume, designed by Filip Visnjic. This project is an array of mirrors that redirect light and sound to “spatialize excitement”. It reads the distance and angle of the user and moves the mirrors accordingly. It is also made up of three parts, depth cameras, Arduino controller and motors to drive the mirrors. But when I looked at this project, immediately, it gave me a different feeling. This project is sensational, not only because it is a piece of art. Most importantly, it involves human. We can feel it moving according to our inputs, this feeling creates a strong sense of interacting. In this way, we can call this device a high-level interactive device.

Having defined interaction in my own way, I would like to show what are we doing in our group project. We discussed about some simple devices, including some what I called “automation” device before. Then we decided we would fix our core on human. Also, having looked at some fancy projects, like the mirror one I mentioned above, since we are working on Interactive Media Art, we decided to do more art related stuff. Guided by these ideas, we came up with our “Paint Your Day” device. The project derived from an idea of creating a picture by voice pitch. It sounds like an interesting idea, but it may be a bit difficult to paint with only one parameter. Then we thought about multiple inputs, and finally decided our plan. This device focuses on human. All the data are from the user him/herself. Though the input part is automatically done by our wearable devices, but the key is that we want our users have a sense of being cared when using our device. The idea is that when the users got the final picture, they will be happy/astounded… to see what their day looks like. By doing these, I think our final project aligns with my definition of interactive well. This might be a combination of interaction and art in the real future. I am happy to develop on this project and explore more about it.

References:

Automatic Plant Watering System: https://create.arduino.cc/projecthub/neetithakur/automatic-plant-watering-system-using-arduino-uno-8764ba

Volume: https://www.creativeapplications.net/processing/volume-interactive-cube-of-responsive-mirrors-that-redirects-light-and-sound/

Crawford, “What Exactly is Interactivity,” The Art of Interactive Design,  pp. 1-5.

Igoe and O’Sullivan,  Introduction to Physical Computing.

Recitation 3: Sensors by Barry Wang

Recitation 3: Sensors

This week, we are getting our hands on different sensors. As two game manics, my partner Joseph and I chose joystick as the component we would like to work on. We correctedly wired the sensor to Arduino board, and improvised a small device that is controlled by this joystick.

Materials:

From Arduino Kit:

1 * Arduino Uno
1 * USB A to B cable
1 * breadboard
5* LEDs
5 * 220 ohm resistors
A handful of jumper cables

From cart:

1*Joystick
1 * Multimeter (optional)

Basics: Monitoring the joystick through serial port

We looked at the joystick, and discovered that it has two axis, x,y and a pushbutton z. Each of them has three pins, two for power and one for transimitting signal. So we used a breadboard to wire power them up, and plugged the signal pin into the analog in socket. When finished, we opened the serial monitor to check the status of che joystick.

Here is the video:

Playtime: A joystick position indicator

We used 5 LEDs in total, four for x and y axis, and one for the pushbutton.  We placed the four LEDs in a diamond shape, and the other pushbutton LED aside.  Accoding to the values being inputed through analog in pins, we developed conditional statements into the loop() function. We light up the different LED according to the different signals. In this way, we are able to see which direction the joystick is heading.

Here is the test video:

Question 1:

Our idea is to create a machine that can detect your activity in one day and generate a nice painting about your day. We are trying to use different sensors, like brainwave sensors, heartbeat sensors, mood sensors, body temp sensors… (Hopefully they will be functional in 2119.) Since our product does not require any specefic skills, it can be used by anyone who wants to try something new with a bit pursuit in art, or just fancies a nice picture of their day. People use this invention because comparing with dairy, pictures is a much interesting and aesthetic way of keeping track of one day. It is a cool stuff. Just wear our wearable devices, like watches or glasses, and you will end up with an enjoyment of art.

Question 2:

Code is the recipe and tutorial for computer. We write codes so that the computer what to execute.

Question 3:

Computer is now influencing our behaviour in a deep way. When contacting somebody, in the old days, we write and mail; in modern times, we send email or online messages. It is bring us great convenience. We also use computer to entertain, listening to music or playing games. It brings happiness to us. Computer has changed our life significantly, because it is wonderful, it is user-friendly, it interacts with you… Everyone around is using it. We have reached a point where we cannot get rid of it. The important thing is how to make good use of computer.

Recitation 2: Arduino Basics by Barry Wang

Recitation 2: Arduino Basics

In this week, we are getting hands on the basic principles and coding of Arduino.  My partner Joseph and I succeeded building up all the required three circuits. Besides, we built on the third model and created a 4 player verison of Speed Game.

Materials:

From Arduino Kit:

1 * Arduino Uno
1 * USB A to B cable
1 * breadboard
1 * buzzer
2 * LEDs
2 * 220 ohm resistors
2 * 10K ohm resistors
2 * pushbuttons
A handful of jumper cables

From cart:

2 * arcade buttons
1 * Multimeter (optional)

Circuit 1:

This is a straightforward circuit, which only needs to hook up the wire following the circuit diagram. In the code part, we use digitalWrite() function to switch the LED on and off at with different brightedness to create a fade effect.

Here is the test video of the circuit:

Circuit 2:

Also a pretty straightforward one. We put the notes we want to play in a list, and feed this list into the loop() function so that it plays one note every loop.

Here is the test video of this circuit:

Circuit 3:

This circuit is a simple speed game, which has two buttons , two LEDs and one buzzer. Once the game begins, the two player clicks the button as fast as possible. Winner is the one who reaches 10 clicks first.

This is the most difficult one among these three circuits. There are a lot  required electric components, and the wiring on the breadboard is quite complicated. To simplify, I draw this schematic to make the whole process clear. 

For this circuit, we have two main parts, one part is the button circuit, and the other one is the LED and buzzer part. For the first part, we have two buttons wired with a 10kΩ resistor and another wire to a digital pin. We use the digital pin, with digitalRead() function to detect the current as a symbol of button click. Once a digital pin has detected 10 clicks, it sends siginal to another digital pin to light up the corresponding LED light and to turn on the buzzer.

Here is the test video of this circuit:

Playtime: Four Players Speed Game

As an improvement of circuit 3, we added two more plays into the game. The schematic would be a bit messy, so I called TINKERCAD to help.

The principle is the same as circuit 3, what we are doing is basically power up another breadboard, and connect two more buttons and LEDs.

But in the coding part, there comes a bug of this program. In the detection of click part, the code has a sequence that it detects from button1 to button4. That means that, if button1 and button2 are simutaneously clicked, the click of button2 will not be counted. This could be improved in the future development. But overall, this is a joyful product since we can interact with more players.

Here is the test video of this circuit:

Question1:

In text Physical Computing, it defines a interaction as the flow of input-processing-output. My personal definition is basically same as this. Interatction is a process of act and react, input and output. Processing is not necessary in a interaction, for example, when I turn on a switch, the lights come on. There isn’t any processing part involved.  However, when I type a key on the keyboard, the screen shows the character on the screen. From these examples, we can see that, though processing is not necessary, but input and output are always needed.

Question2:

The 10KΩ resistor is used to protect the circuit. If it’s not there, when we push the button, there will be a short circuit which might damage Aduino and other electronical components.

Question3:

I will probably make a huge “light ball”, a bit similar as those one used in club, but much bigger. It can be put in the center of a fountain in the city square or someplace. I can make the LEDs flash according to the background music. That will definitely add a lot of joy.