Snowball-Eric Shen-Eric Parren

CONTEXT AND SIGNIFICANCE

               One of the conclusions that I made from the previous project was that it’s really important for an interactive project to make the interactions between it and users clear and understandable. When users are interacting with the project, they should be able to know how their actions would trigger the response of the project. Based on this understanding, we decided to use some basic components in Arduino in order to let the users know how the interactions work instantly. The feature of “Click Canvas” that the lightness and the color of light boxes would change only when people physically touch them along with the feature of the “Neo-Natur” that encourages users to just walk around and explore the whole project triggered my thought. In my opinion, interactive projects must contain reciprocal communication with users. Therefore, my definition of interaction would be: a cyclic process in which at least two characters take reciprocal actions that contain physical input and output to each other. The feature of our project is that it’s not a traditional maze, but a three-dimensional one. We got the inspiration from “Monument Valley”. We made the mechanism and checkpoints in the game come into reality while maintaining its romantic castle-like style, added a touch sensor and a controllable platform to make the interaction more interesting and diverse. The targeted audience would probably be kids because the general color was light blue and white which looked like Elsa’s castle in “Frozen” and the genre of the project was a game that would catch the kid’s attention. In addition, the form of interaction is not only diverse and intriguing but also it’s easy to understand.

The outlook of Snowball

CONCEPTION AND DESIGN

              My basic understanding of how the interaction between users and my project is that users could create multiple different physical input to the project, then the project would react to the input accordingly and users should know why they need to put physical input to the project. In the initial stages, we decided on creating the project for entertaining so that the form of our project would be a maze. Since the rule for a traditional maze is set and universally known, we made the maze a three dimensional one, inspired by the game called “Monument Valley”. The general outline of the project is a castle, inside which there is a path from the top of the castle to the bottom. There are four checkpoints where the path is not connected and the users’ purpose is to find the controlling devices to change the direction of some parts within the castle and make the whole path connected correctly.

The original sketch

Yet, after due consideration, I found that if the purpose is merely to connect the whole path but for no actual reason, it does not accord with my understanding of the interaction between users and the project. Even though users successfully connect the path together, they would not know why they should have done that. For this reason, we added a little ball and switched the original rule to connecting the whole path so that the little ball could roll from the top of the castle to bottom in order to make the whole game more purposeful. When thinking about the understanding of mine, I found that if the interaction parts with the project for users are only to use buttons or potentiometers to control, the form of interaction would be too monotonous. Therefore, we made the whole castle attached to a foam board and installed a hemisphere underneath the foam board.

0
The controllable foam board

With this design, users are able to control the whole project by wind the foam board like a handle to change the slope of the whole project and thus the direction of the little ball.

              As for the materials, the criteria for choosing a motor is that it could rotate at least 180 degrees, easy to control and to attach things onto it. Stepper motor was eliminated from our consideration for the project due to the difficulty to attach the bridges of the castle and the requirement for a huge amount of power. Compared with stepper motor, servo motor is easier to control and attach things to it and needs less power. In addition, we chose the servo motors that could rotate at maximum of 180 degrees over those that could rotate 360 degrees at most for the reason that the codes for the 180-degree-rotating servo motor are not applicable for the 360-degree-rotating servo motor. Therefore, one 180-degree-rotating servo motor is used to each checkpoint. In order to give instant feedback of users’ interaction, we need some elements that could inform users when they manage to complete one checkpoint. LEDs are the perfect option for us by reason of its easy installation and its perfect performance on giving visual hints. For the materials for the castle, LEGOs are the first thing that came up to our mind, for its convenience to assemble and the possibility to create different shapes.

The LEGOs

However, LEGOs are not hollow inside, and the size of each part is not flexible but fixed, which would increase the difficulty for us to install the LEDs, buttons and the motors inside. With 3D printing, we could have any shape that we want and customize the size of each parts have a much more precise measurement in order to fit all the electrical components needed better. Moreover, when determining how the servo motors should rotate, we were thinking about applying mechanism to make the movements more diverse and interesting. Yet, creating a perfectly functioning mechanism takes too much time and requires very precise measurements.

Mechanism that we abandoned 1
Mechanism that we abandoned 2

FABRICATION AND PRODUCTION

              The final design for the four checkpoints was that the first two is to click the buttons and let the servo motors to rotate 90 degrees, the third one is to use the touch sensor to make the servo motor turn 90 degrees and the last one is using the potentiometer to control the rotation of the servo motor. The first significant step was to code the checkpoints. For the first two checkpoints, I thought I only needed to use one simple “if” structure in Arduino. But I found out that the servo motor would stop rotating after it reaches 180 degrees. Enlightened by the fellows, I realized that the easiest way is to add another two variables. The first integral variable called “countstep”, ranging from 0 to 4 is to count how many times has the user clicked on the button and when it reaches 4, make it become 0 so that the rotation would be in a loop. The second integral variable called “prebuttonState” serves as an indicator of whether the button is clicked instead of being pressed for a long time cooperating with “buttonState”. As for the third checkpoints, the servo would only react to the sensor once after reaching 90 degrees. This time I used the same strategy, adding another variable like “prevtouch” to determine whether the sensor is touched once or is pressed for a long time. “Else if” structure is used in this code as well.

The second important step was to 3D print the whole castle. Before asking Andy, we thought that things printed by 3D printer would look exactly the same as those in the files. It turned out to be impossible, so we separated things in the files in order to print them one part by one part and then assemble them together later.

0
The overlook of the 3D model

In addition, the colors that we chose for the castle was white and light blue. Yet during the process of 3D printing, we ran out of the light blue material, so we had to print them all in white and spray light blue on to them.

Spraying process

In the beginning, we built 4 separate circuit on 4 Arduinos and 4 separate code for the checkpoints, yet it was unnecessary and would increase the difficulty to connect them to the computer. After receiving suggestions from my instructor, we merged those separate things together in order to run the 4 programs in one single code.

     

Our original plan for the touch sensor was that when the little ball touched its key0, the servo motor would turn 90 degrees and connect to path together. However, in reality, the little ball could not trigger the touch sensor, even though we had already changed a bigger and heavier one. Therefore, we had to ask users to trigger the sensor by their own hands.

During the user testing process, we got some compliments about the fascinating outlook of the project, the basic concept and the variety of interactions. More importantly, we received several suggestions for improvement: 1. Adding a reset system in order to facilitate the next player 2. Making the wires longer and adjusting the position for the wires so that they would not affect playing the game 3. Adding an instruction to make players understand the game quickly 4. Adding more audio hints when users successfully finished the game 5. Add a visual hint to let the audience know that the foam board is involved in their interaction. We took the first four advice and they all turned out to be effective and very helpful for improving the users’ playing experience.

We also found out that there is a connection problem which existed between the first two checkpoints. So we made adjustments on the abandoned material after due measurement and applied it to the project.

mending the gap

We would say that deciding not to take the fifth advice may be one of the crucial mistakes that we’ve made throughout the process.
This is the display of our project

CONCLUSIONS

              The main goal of our project is to let users employ different forms of interaction to play with it as a game. The interaction that users could click on buttons, rotate the potentiometer, trigger the touching sensor and handling the foam board would all cause a series of changes of the project, while if the bridges are placed in the same order and position, users’ would get instant visual feedback that they’ve successfully complete the tasks.Therefore, users’ action and the project itself would have an ongoing effect on each other, aligning with my definition of interaction. The ultimate outcome of the user’s reaction was that he knew how those checkpoints work exactly with one look, yet he found it hard to detect those buttons and sensors attached to the checkpoints. Also, he didn’t get the idea that the foam board could be controlled by users. Though it took him some time to figure the things mentioned above out, the whole process of the game was smooth after that. If we had more time, there are a few we need to improve. The first is to write the instruction more clearly so that users would instantly know the function of the foam board in order to take users’ experience with the project to the next step. The second thing is to give more visual hint like making all the LEDs light up about the location of those buttons, the potentiometer and the touch sensor, so that people would enjoy the process of playing the project instead of making so much effort to try to find those things. After encountering the setbacks I learned that if we ever encounter with difficulties and problems, as long as we take time to be patient and examine the problems carefully, we would always get them done. And with the failure of perfectly applying the touch sensor, we’ve learned that next time we do a project, we need to first get clear knowledge about the materials that we are going to use before it’s too late to replace them with other materials. While from the accomplishments, I’ve learned that we should not be afraid of coming up with creative ideas and feel overwhelmed when we try to make those difficult and innovative concept come true because as long as we pay enough efforts and attention to those ideas, we would always work a way out. The significance of this project is that we perfectly combined the use of electrical components in Arduino and a physically controllable board to create a game involving different forms of interactions with users. The 3D modeling part was extremely complicated compared with other project, and the process of combining the whole circuit and the 3D printed castle was even harder, but we managed to construct such a complicated project with careful measurement and delicate design.

References:
“Click Canvas.” Accessed October 10, 2019. https://www.creativeapplications.net/member-submissions/click-canvas/.
“Neo-Natur – A Space for Thought, about and for Nature / @artcom @FuturiumD.” Accessed October 10, 2019. https://www.creativeapplications.net/environment/neo-natur-a-space-for-thought-about-and-for-nature-artcom/.

Geneva Stop

Rack and Pinion

Recitation 4: Drawing Machines by Eric Shen

This week, we were asked to first build a circuit to control a stepper motor, then build a circuit that could control the stepper motor with a potentiometer and finally work with a partner to build 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: Build the circuit

When building this circuit, I had two problems. The first one is that I didn’t quite understand how the components on the breadboard were connected. Therefore, I was not sure where to put some of the components shown on the diagram. One of the learning assistant showed me the back of the breadboard where shows how components are connected. The second problem was that after the learning assistant checked my circuit, I put the H-bridge upside down. Since we were working with 12 voltage, if the circuit was connected incorrectly, there is potential damage to my computer. It was fortunate for me not to connect the circuit to 12 voltage after checking it again. After I solved these problems, nothing wrong happened.

1
Diagram

Step 2: Control rotation with a potentiometer

The circuit was pretty simple because I only needed to add a potentiometer to the circuit for Step 1. The tricky part was the code. First we should modify the steps of the potentiometer to 200. Then, we ought to use the function “map()” in order to match the movement of the knob with the rotation of the motor. Yet, the function “map()” was not used in the common way that we were used to. At the beginning, I don’t what things that I should map. After asking one of the learning assistants, I realized that we needed to map the range of analogRead to the steps of the motor. After that, I modified the code in the right way and the circuit worked smoothly

Step 3: Build a drawing machine

After finishing Step 1 and Step 2, my partner and I started to work on the drawing machine. We collected the materials needed and assembled them correctly. The drawing machine worked, and we drew things by spinning the potentiometers that controlled the rotation of the motor

2
The drawing

Question 1: 

  The machine that I want to build is a huge LED projection wall that could reflect the movement of people who stands in front of the camera. I’d like to make people’s physical movement to turn into digital information and then to be shown in other physical form which is LED. With different actuators, we could easily create all kinds of physical output that we want to produce, using various mechanism for help. With the digital manipulation of art, the projections on the wall would be a bit different from people’s original movement, adding artistic visual effect. 

Question 2: 

  In the reading ART + Science NOW, Stephen Wilson (Kinetics chapter), I found The Firebird created by Paul DeMarinis, 2005 quite interesting and intriguing, which invokes my thought. This project could change adjust the temperature around the flame accordingly.  Yet this technology was applied in such a long time ago, as a person from the contemporary society, I still don’t quite understand how it works. Compared with the drawing machine that we’ve built during the recitation, one of the similarities is that these machines could all react accordingly with our physical interaction to it. 

Group Project Individual Reflection by Eric Shen

              From my own perspective, the definition of “interaction” would be: a cyclic process in which at least two characters alternatively input from the physical world, process and output. I made some adjustment based on Crawford’s definition of “interaction”: a cyclic process in which two actors alternately listen, think, and speak (Crawford, 5). The reason why I stress the “input from the physical world” is that after I browse many interactive projects, most of them would contain multiple sensors for the physical world. If the “input” is just like what it is in the digital world, then every project that involves computer would be considered as interactive project.

              The project I choose that accords with the definition is “Click Canvas”. This project has 187 Boxes of light constructed as creative tools likes pen and pencil, but the color of each box would be changed each time the audiences press it. And the other project that I found which doesn’t align with definition is “Neo-Natur”. It features an elaborate and huge sculpture that could stimulate your thought to some extent.   

              It’s the feature of “Click Canvas” that only when people press the light boxes, the lightness or the color of the light boxes would be changed that triggers my thought. A person’s pressing on the boxes equals to the “input from the physical world” and the change of the boxes represents “process and output” in the definition. In addition, when other people press the boxes, the process mentioned above would repeat itself, aligning with the cyclic process in the definition.

Click Canvas
Click Canvas

Link: https://www.creativeapplications.net/member-submissions/click-canvas/

              For the “Neo-Natur” project, the purpose of it invokes my thinking. The purpose is merely to let people think after walking around the sculpture, yet this sculpture would not respond to anything. If appreciating the sculpture is considered as the input and people’s thinking is interpreted as processing, but it’s still impossible to find anything as the output. Therefore, it’s just a single-way communication, let alone the cyclic process.

Neo-Natur
Neo-Natur

Link: https://www.creativeapplications.net/environment/neo-natur-a-space-for-thought-about-and-for-nature-artcom/

              The idea of our group is an interactive device called “FitBox”. It could project a hologram that can both detect the mistakes you make when you are exercising and provide moral support and lift your spirit when you need. The Fitbox intends to provide people with the possibility that they could work out in whatever environment that they like. The most common way to learn how to exercise without any instructor would be watching videos. Yet this way is not interactive because you don’t get any response from the video according to your movement. In order to derive from that, we add another character—hologram that could provide feedback according to your movement. The physical input would be people’s movement, and then after the box processes it through scanning and analyzing, the box creates an output, using a hologram to either correct the improper form or life one’s spirit. Whenever you make a mistake or your form indicates that you are not motivated to work out, it could offer output accordingly, which can be considered as a cyclic process.

Bibliography

Crawford, “What Exactly is Interactivity,” The Art of Interactive Design,  pp. 1-5.
“Click Canvas.” Accessed October 10, 2019. https://www.creativeapplications.net/member-submissions/click-canvas/.
“Neo-Natur – A Space for Thought, about and for Nature / @artcom @FuturiumD.” Accessed October 10, 2019. https://www.creativeapplications.net/environment/neo-natur-a-space-for-thought-about-and-for-nature-artcom/.

 

Recitation 3 Sensors by Eric Shen

During the third recitation, we were asked to pick a sensor, build a circuit that integrates this sensor with our Arduino and use the input from the sensor to drive an output. 

Infrared Distance Sensor: 

For the first circuit we choose the infrared distance sensor

Materials:

From Arduino Kit:

1 * Arduino Uno
1 * USB A to B cable
1 * LED
1 * 10k ohm resistors
1 * breadboard
A few wires

From cart:

1 * Infrared Distance Sensor

Diagram of the circuit

1
Diagram

The circuit itself is not complicated, therefore, when we were building the circuit,  we built the complete circuit without encountering with any problem. Yet, when we initiated the program in Arduino, two problems took place. 

The first one was that we didn’t know what this distance measured by the sensor was. Therefore, we asked Professor Parren for help. Then we understood that this distance was between the object above the sensor and the sensor. Another thing we didn’t understand was that a number always pumped out. I didn’t remember that exact number, but I did remember that this number was about 416 cm, which was impossible distance to reach. Professor Parren explained that this resulted from the limited range of distance that the sensor could measure. So whenever that distance was out of this range , this number would automatically show up. 

The second problem was that when the distance between the sensor and our hand changed, the lightness of the LED didn’t change accordingly, but could only be turned on and off.

After Professor Parren examining it, he pointed out that the first mistake was that we connected the LED to pin 13, which is not a PMW pin. So the LED could either be high or low. We wrote “digitalWrite” instead of “analogWrite”. “digitalWrite” could only switch on or off the LED. 

After solving the problems mentioned above, the circuit and the code was right. And we got the result that the LED could change its brightness accordingly with the distance. 

Question 1

My partner and I intended to build a circuit in which that the LED could change its brightness accordingly with the change of the distance between the sensor and the object above it. If it is for practical purpose, I suppose it could be used as indicator in your car that shows the distance between an object and your car. When your car and the object approaches to each other, the brightness would light up, alarming you that the distance was too close. 

Question 2

Following a recipe and a tutorial requires a person to follow the steps exactly as he was told. Code is something similar to a recipe and a tutorial in essence because it also requires the computer to process the exact steps shown in the code. 

Question 3

As computers are pervading worldwide, they have become an essential part in human’s life. From my perspective, computers has greatly changed the way that humans interact with each other, the way to solve problems worldwide and changed the interactions between many things in the world, connected and associated digitally with each other. 

Recitation 2: Arduino Basics by Eric Shen

During the second recitation, we were asked to build three circuit with the materials that we had from Arduino kit. 

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

Circuit 1: Fade

1
Fade

When building this circuit, my partner and I didn’t encounter with any trouble. It went smoothly and we changed the “delay” in the code to control the fading speed of the LED. 

Circuit 2: toneMelody

2
toneMelody

After we finished the circuit for the first time, it didn’t work while we made sure that the whole circuit was connected in the right way. Then, we found out that the problem was that we didn’t take the positive pole and the negative pole of the buzzer in to account.

3
The negative and positive pole of the buzzer

After we finished the problem, everything went perfectly, but I found that the buzzer would only play the melody once. If I wanted to hear it again, I had to restart the program. So I moved the code from “setup”  to “loop” in Arduino. And then we could hear the melody playing until we turned it off. 

Circuit 3: Speed Game

Before we built the circuit, we found an interesting problem: one of the arcade buttons that we got was not soldered properly for the wire was not connected to the button at all. 

6
Diagram of Speed Game
5
The button

The circuit of the Speed Game was so intricate that we found it very difficult to examine what was wrong with the circuit after the first failure to complete the circuit. After examining it for multiple times, we found that we connect an unnecessary wire to the ground. 

The funny thing was that the circuit which we built was right, but we didn’t realize it because we didn’t fully understand the rules of the game. 

Question1

In the text Introduction to Physical Computing, the definition of interaction would be input, output and processing. With my experience of building circuit, I think interaction would be the instant reaction of the components in the circuit to the information both from the physical world or the computer. 

Question2

The reason why we use the 10K resistor with the button is to control the electric current and  protect the circuit, for the button itself has no resistance for the electric current. 

Question3

For impractical use or fun, I’d like to use them as a giant screen, interacting with people’s movement and projecting their movement on the screen with sensors and other interactive technology.