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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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 | |
} | |
} |
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.