The Finger
So the final form of this project represents how I feel about this project Actually never mind, by the end of the project, due to a litany of technical difficulties and having to scrap what I thought I was coding and reinstall the entire arduino driver, this is actually pretty much how I felt about it:
In any case, the original conception of this project was that I wanted to make a hand. Just in general. Hands are expressive and they move in ways that seem pretty basic but aren’t. Initially I thought I was going to do something ridiculously complicated with like sixteen itty bitty gears that would replicate finger joints, just to prove that I could make a hand. Once I’d gotten that far it was too late to come up with a different concept, so I thought, “Okay, I’m making a hand. How can I make it interesting and/or amusing?”
And so this happened. Basically it’s a horribly lumpy little clay hand about the size of a ten-year-old’s, which gives the middle finger to its audience when you twist a potentiometer. There’s that saying, something like “it takes 4o something muscles to frown and only 4 to smile” and I don’t know how many it takes to flip someone the bird. I don’t know how many more muscles it is to turn a dial on a potentiometer, but I bet it’s more than just sticking up the middle finger yourself. Essentially, this is a machine that says that you’re putting some real effort into telling someone “fuck you.”
(Sketches are coming I promise)
Fritzing diagram:
Arduino code (borrowed under extenuating circumstances):
// Controlling a servo position using a potentiometer (variable resistor)
// by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>
//code adopted under emergency circumstances
#include
Servo myservo; // create servo object to control a servo
int potpin = 0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop()
{
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}