06 October 2019

The Myth of Servo

For my Expressive Motion project, I wanted to see what I could convey with as little as possible, trying to maximize the motion of the servo as the main vessel of expression.

First, I drew some sketches:

Some ideas drawn out

The cyclical nature of the servo code reminded me of perseverance, futility, depression, and the Myth of Sisyphus, by Albert Camus. Since the project was not interactive, the concept of this never-ending, uninterrupted cycle was even more prominent.

For those unfamiliar, Sisyphus is a man condemned by the gods to roll a boulder up a mountain, only to have it roll back down every time he reaches the top. Camus reflects on this story as a parable for absurdism, and suggests that we must imagine that Sisyphus has found the joy in his endless task, as we also endeavor to find in our own lives.

Since we were only allowed to use the servo, the set-up here was relatively simple:

Set-up
Schematic

Servo becomes a person, carrying a great weight (or, bead). Every time Servo is able to stand, they inevitably fall again. My intent here is to convey perseverance, but it can easily be viewed as futility depending on your perspective. I debated prolonging the time Servo stands to potentially convey a more positive angle, but ultimately I wanted to emphasize the difficulty and strength of getting back up again after every fall, which to me meant making the 'fallen' and initial upward movements the longest portions of the cycle.

Here's a video of Servo's endless efforts to stand, weight lifted:




--- Toupee4


#include <Servo.h>
Servo myservo;
int pos = 0; // variable to store the servo position
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop() {
delay(1500); //moment of triumph
//I noticed the downward movement doesn't need to be specified if I want it to move quickly-
//the servo will jump from the last position to the next one
for (pos = 120; pos >= 119; pos -= 1) { //I found 120 was a good starting point for a 'fallen' position
myservo.write(pos); //the first step back up from falling is often the hardest
delay(5000); //I used an extra delay to add weight to this stage of the cycle
}
for (pos = 119; pos >= 90; pos -= 1) { // goes from 119 degrees to 90 degrees
myservo.write(pos); // moving a little faster, but still difficult/slow
delay(200); // persevere!
}
delay(500);
for (pos = 90; pos >= 0; pos -= 1) { //from 90 to 0
myservo.write(pos); //Servo moves to standing!
delay(20); //motivation and hope, the 'light at the end of the tunnel' makes this last stretch faster
}
}
view raw mythofservo.ino hosted with ❤ by GitHub


No comments:

Post a Comment

Note: Only a member of this blog may post a comment.