Midterm Project: Cloud Machine

Name: Serena Cajigal | Instructor: Andy Garcia | Project Title: Cloud Machine 

Context and Significance

A project called “The Ambient Machine” that I previously researched for the Group Research Project helped me in my understanding of what interaction was. The machine was a box that consisted of switches; each switch played a certain background sound when switched. This conversation of switches, sounds, and different combinations is what incited my interest in zooming in on this particular project. The uniqueness of sound that depended completely on the user’s will primarily influenced my definition. Inspired by “The Ambient Machine,” I defined ‘interaction’ as an ongoing conversation that promoted freedom of expression. In the midterm project, my partner and I wanted to incorporate this type of interaction into our Cloud Machine. With the Cloud Machine, the user (or more specifically, the music therapy patient) is able to translate their mood directly into sound. If feeling stressed, all one has to do is squeeze the cloud controller as hard as they desire (like a stress ball). In response, the Cloud Machine creates music according to the intensity of the squeezing. I believe the Cloud Machine has a special value to the music therapy community because it is a fun toy-like instrument that the users can have fun playing with, while also connecting to the music and their emotions.

Conception and Design

To make the interaction accessible and straightforward, we added two conspicuous cloud-like controllers to activate the music machine. Since the machine was dedicated to music and lightening the user’s mood, it was designed like a cloud to keep the mood light. We designed the machine while keeping a light spirit in mind; we wanted our users to feel the same way as the design while interacting with the music-maker since our project’s intended use was as a music therapy instrument. To make the cloud-like appearance, we used cotton covered with iridescent cloth. We used the same cotton and iridescent cloth to make the cloud controllers too. The overall structure of the machine was constructed using cardboard. At first, my partner and I debated keeping the Cloud Machine as just cardboard and decorating it with designs (similar to a real instrument) but later decided against it because we wanted to keep in mind the purpose of our machine (as a mood-lightening therapy instrument). We also debated on whether or not we should show the chimes in the design. In the end, we decided to show the chimes through a little window to engage the user by showing feedback when the user squeezes the cloud controllers.

Fabrication and Production

When we first started creating our project, our initial plan was to have a fan (analog) placed in front of the chimes to create sound. The fan would have been manipulated by a potentiometer or a blowing sensor (as shown in the sketch below). Therefore, I utilized code learned during a lecture to control the fan with a potentiometer.

However, when testing the fan on the chimes, we found that the fan was not strong enough to make the chimes make music, even with a higher voltage.

During the User Testing Session, we still had not come up with an alternative to the fan, so we had the users try to create music by directly hitting the moving fan on the chimes. Therefore, a lot of the feedback from the User Testing Session consisted of suggestions for improving the interaction (and functionality) between the user and the machine. Additionally, some users recommended that we improve the design to make the experience with the machine more aesthetically pleasant. Here is my partner and I at the User Testing Session:

After receiving all the feedback, my partner and I decided to add the clouds to the entirety of the design and add a window so that the users could see the chimes. Here is the final design of the machine:

Regarding the functionality of the machine, we decided to use servo motors instead of a fan to create sound. The servos were attached to the top of the individual chime to create music more easily; the intensity of the servos was controlled by an analog steam sensor. When testing the servo motors with our four chimes, we found that two of our chimes did not make a sound as easily as the other two. Therefore, we decided to use those two chimes as decoration and use the other two to make the music. When constructing the actual code for the servos, I used elements of code from a lecture and from a very helpful YouTube video**.

However, we did run into some problems with the code; both of the servo motors would react when one sensor was activated. We later found out that we needed to add a double ‘delay’ function to give the voltage some time to configure itself. After adding two delays into the code, the servo motors worked perfectly. We also could not manage to use the steam sensors as intended. Instead of using steam to control our machine, we found that pressing the sensor gave a greater result (the motors moved more when we touched the sensors directly). Here is the finalized (and working) code!

#include <Servo.h>

//**** servo 1 settings
Servo servo1;
const int servo1SensorPin = A0;
const int servo1Pin = 9;
int servo1Value;
//**** servo 1 settings END

//**** servo 2 settings
Servo servo2;
const int servo2SensorPin = A1;
const int servo2Pin = 10;
int servo2Value;
//**** servo 2 settings END

int servo1map;
int servo2map;

void setup() {
  Serial.begin(9600);
  servo1.attach(9);
  servo2.attach(10);
}

void loop() {
  servo1Value = analogRead(servo1SensorPin);
  delay(10);
   servo1Value = analogRead(servo1SensorPin);
   delay(10);
  servo1map = map(servo1Value, 0, 1023, 0, 180);
  servo1.write(servo1map); 
   Serial.println(servo1Value);

  servo2Value = analogRead(servo2SensorPin);
  delay(10);
    servo2Value = analogRead(servo2SensorPin);
    delay(10);
  servo2map = map(servo2Value, 0, 1023, 0, 180);
  servo2.write(servo2map);
 
  delay(15);
}

Finally, here is a demonstration video of the Cloud Machine in its entirety:

Overall, my partner and I made a great team. My partner is more creatively coded than I am, so she did most of the designing of the machine. Adding the clouds to the design was my partner’s, CJ’s, idea, and I am so grateful that she came up with the plan because it adds so much to the Cloud Machine’s purpose as a therapeutic device. Since she designed the machine, I created the code and constructed the entirety of the circuit for the machine. Throughout the entire building process, we consistently communicated with each other on what we were working on, and how our machine should function based on the design and code. What a great collaboration 🙂 !

Conclusion

The goal of this project was to create an interactive instrument that could be utilized in music therapy. Our project aligns with my definition of interaction due to its nature as a direct response to the user’s emotions and free use of expression when interacting with the Cloud Machine. However, in a way, the project did fail to align with my definition due to its limited mode of interaction. Our project contained a strict input/output (squeeze/sound) interaction, with only one type of sensor to initialize that interaction.

Ultimately, the audience did interact with the project as expected; although faced with a bit of hesitation, the users squeezed the sensors to their heart’s content and created as soft or as loud of a sound as they wanted. If I had more time, I would add different sounds (as there was only one type of sound, which was the chime). I would also add different sensors, or add to the design such as lights when the machine starts to make noise. Overall, I have learned that seeing things from different angles and other perspectives really helps grow a project. If enough work is put in, all one has to do is trust and enjoy the process.

Appendix

More pictures!

/**
* Two servo motors are controlled separately on the same Arduino Uno.
* This was adapted from the tutorial found here:
* https://www.youtube.com/watch?v=5zT9iZRa5b4 
*/