Stupid Pet Trick & Assignment 4

For my stupid pet trick, I started with the idea that I like to bully my brother by repeating an action that creates an annoying sound. So I decided to make something that you can put on the door to create continuous knocking sound until the person has to come to the door to find out what is happening.

When the door is closed, the person with the controller can push the button to start the knocking and use the potentiometer to control the speed of the knock. When the person inside the room finds the sound annoying and opens the door to see who is outside, the knocking stops.

Here is the code I used for the stupid pet trick:

#include ;

int angle = 0;
Servo myServo;
int button = 3;
bool onOff = false;
bool prevButtonState = LOW;
int knob = A0;

void setup() {
pinMode(button, INPUT);
myServo.attach(9);
Serial.begin(9600);
}

void loop() {
bool currButtonState = digitalRead(button);
int knobState = analogRead(knob);
int knockSpeed = map(knobState, 0, 1023, 0, 350);

if (currButtonState == HIGH && prevButtonState == LOW) {
onOff = !onOff;
}

if (onOff) {
for(angle = 0; angle < 90; angle ++);
myServo.write(angle);
delay(analogRead(knockSpeed));
for(angle = 90; angle >0; angle –);
myServo.write(angle);
delay(analogRead(knockSpeed));
} else {
myServo.write(LOW);
}

prevButtonState = currButtonState;
}

Developing on my stupid pet trick, I created a small scale demonstration of the device in action. In doing so, I made the device work more automatically by getting rid of the button and the potentiometer, so now, the knocking continues when the door is closed until the door opens.

Here is the code I used for Assignment 4:

#include ;

Servo fistServo;
int button = 3;
bool onOff = false;
bool prevButtonState = LOW;
int knockRate = 500;
bool knockOn = false;
unsigned long currentMillis = 0;
int knockDirection = 0;
int nextKnockTime;

void setup() {
pinMode (button, INPUT);
fistServo.attach(5);
Serial.begin(9600);
fistServo.write(30);
}

void loop() {
bool currButtonState = digitalRead(button);
Serial.println(currButtonState);

bool prevOnOff = onOff;
onOff = currButtonState;
if (onOff)
currentMillis = millis();

if (currentMillis > nextKnockTime) {
knockOn = true;
nextKnockTime = currentMillis + knockRate;
}

if (onOff) {
if (knockOn) {
if (knockDirection == 0)
fistServo.write(30);
else if (knockDirection == 1)
fistServo.write(0);
knockOn = false;
knockDirection = 1 – knockDirection;
}
}
}

Physical Computing’s Greatest Hits and Misses Response

Taking an already existing idea and building onto it is great. Just take a look at the world’s most valuable tech company, Apple. Apple has been lagging behind in terms of groundbreaking innovation in recent years (despite their wild claims repeated 100x during their keynotes). Yet, their devices are still selling well enough to keep them atop that list. Why buy Apple’s products when you can just as easily spend your money on something that’s actually fresh and new? For many of us, the answer is simple: Apple’s products are designed and manufactured to such a high level of reliability that we would rather be a few months/years late to a technology than have it now and have it break in a couple of days. Apple knows this and they are not afraid to keep taking existing ideas, perfecting it, and spice it up with a cool minimalistic, Apple design.

Making Interactive Art Response

The author/artist can try to incorporate his/her intention when creating the piece. Whether or not that intention translates into reality is completely up to the audience/user. Without the aid of a forceful “user manual”, it is almost impossible for the author to accurately convey his/her intentions to all of his/her audience, especially since artists are notoriously bad at portraying their message clearly. What happens then is that users make wild guesses and end up interpreting the piece/item in a way that was not aligned with the author’s intentions… and that is how its true utility and/or significance is born. As authors/artists, we should strive to be open to letting our work go once we’ve completed it. Let it stretch out its wings and explore the cruel realms of humanity. Let it discover its true purpose and be whatever it is destined to be. Perhaps, its destiny is was far more remarkable than the one you envisioned for it.

Human Motion Simulation

Initially, I wanted to create a slapping machine that would wack us across the face with a palm shaped cardboard cut out. But then, that kind of seemed too dark so I opted to make a leg that would simulate the kicking motion.

I used a few pieces of acrylic that were cut into rectangles to form the actual leg and I implemented a standard servo motor to generate the motion. The motion was triggered by a button. To finish things off, I added some lovely decorations that would bring the device to life.

My code:

#include <Servo.h>

Servo myServo;

const int servoPin = 5;

const int buttonPin = 3;

bool buttonState = LOW;

bool prevButtonState;

void setup() {

// put your setup code here, to run once:

pinMode(buttonPin, INPUT);

myServo.attach(servoPin);

Serial.begin(9600);

}

void loop() {

// put your main code here, to run repeatedly:

buttonState = digitalRead(buttonPin);

Serial.print(buttonState);

if (buttonState == HIGH && prevButtonState == LOW){

myServo.write(30);

delay(500);

myServo.write(160);

delay(100);

}

prevButtonState = buttonState;

 

}

Device Demo:

 

 

 

Response – Physical Computing’s Greatest Hits (and misses)

This article presents us with a list of most reoccurring themes in the field of physical computing design. Most projects can be reduced down to very simple concepts. As I read through the list, I realized that I have the knowledge to handle most of the technicalities. Therefore, a lot of emphasis should be put on how to creatively use the same old concepts to give people difference experiences.

Therefore, there is no shame in making something that has been made somewhere by someone. There is value in repeating someone else’s work and add your personal touch to it later.

Response – Physical Computing’s Greatest Hits (and misses)

“So if you’re thinking of an interactive artwork, don’t think of it like a finished painting or sculpture.  Think of it more as a performance. Your audience completes the work through what they do when they see what you’ve made. ”

This part of the reading really reminded me of the essence of designing an interactive experience. I often think that once I finish a piece, the piece is finished. However, I tend to forget that the users are the ones who complete the experience. Only after observing user behaviours and getting feedback without telling the user what to do can a designer improve the art piece and the interactive experience as a whole.

Making Interactive Art: Set the Stage, Then Shut Up and Listen

I fully agree with what the author is saying in this reading. I believe good design does not need to be explained, it talks for itself! For example, you shouldn’t have to consult a manual to operate a blender or a shaver, you should be able to figure out how to do that without explanation. There have been too many times when a song has been ruined for me because the artist explained the meaning behind the song and it didn’t align with what I had thought the song meant!

Physical Computing’s Greatest Hits (and misses) Response

This article is, as it says, a list of some of the most effective categories of projects done in physical computing. I don’t have much to analyze here, but this is an article I will certainly refer to again if I need ideas for a project. The most interesting bit is actually the specific comment that just because something has been done before doesn’t mean you can’t be original in the same theme. That he was able to identify multiple successful variants of each theme that separately contribute to fleshing out the theme is impressive, but suggests to me that as much as the technology for interactive media is advancing, its most effective applications are still to come. In particular, while many of the devices he described are interesting and exciting for the user, and most often beautiful, he never describes any as life-changing or the like. I can see the theoretical potential of physical computing to allow people to have experiences that would otherwise be impossible, but are also relevant to their life experience on a large scale, and it seems to me that once this becomes commonplace the number of ways a theme can effectively be repeated will shrink.

Making Interactive Art: Set the Stage, Then Shut Up and Listen Response

This article summarizes itself well, “don’t interpret your own work”. Interactive media gives far more flexibility in allowing the observer to interpret and re-evaluate the themes explored by the artist than conventional art, and artists sell them short if they try and force the observer down a specific path to aggressive. The art should guide their thinking, but there should be no need for additional signifiers where the art itself is unclear. Or at least, this is the point made by the author. I agree that this is certainly one very effective way to approach interactive art, but I have a hard time believing that additional separate instructions forced on the observer won’t contribute to its effectiveness ,and sometimes be the ideal way to express something. In particular, intentionally subverting the process the author describes could be effective.