Photos from the "Powered by Fiction: Artists, Makers, Tinkerers and the Backstories that Inspire Them to Create, presented by Intel" exhibition at Arizona State University.
From These Idle Hands...
Sunday, April 15, 2012
Tuesday, February 21, 2012
Wings selected by Intel to be part of exhibition!!!
A few months ago I received an email from a member of Intel's Interaction and Experience Research Lab inquiring about my wings. He said he had seen them at World Maker Faire 2012 and wanted me to be a part of an exhibition being put together about artists at the nexus of design and fiction.
"Powered by Fiction: Artists, Makers, Tinkerers and the Backstories that Inspire Them to Create, presented by Intel", will feature my work and the works of two other groups as part of an exhibition developed in tandem with the 2012 Emerge conference. The conference will be held from March 1-3rd at Arizona State University, but the exhibition will be open for another two weeks. More info on the conference can be found here: http://emerge.asu.edu/
There isn't much information available on it right now, but I'll post pictures about it when Intel flies me down to visit next week!
Side note:
As part of the exhibition, Intel hired a team of professional comic book artists to illustrate fictional backstories for each of the exhibitors. Here is the story board they sent me along with the script for the comic. Not going to lie, I'm pretty excited to have my own comic book!
"Powered by Fiction: Artists, Makers, Tinkerers and the Backstories that Inspire Them to Create, presented by Intel", will feature my work and the works of two other groups as part of an exhibition developed in tandem with the 2012 Emerge conference. The conference will be held from March 1-3rd at Arizona State University, but the exhibition will be open for another two weeks. More info on the conference can be found here: http://emerge.asu.edu/
There isn't much information available on it right now, but I'll post pictures about it when Intel flies me down to visit next week!
Side note:
As part of the exhibition, Intel hired a team of professional comic book artists to illustrate fictional backstories for each of the exhibitors. Here is the story board they sent me along with the script for the comic. Not going to lie, I'm pretty excited to have my own comic book!
PAGE ONE
PANEL ONE
Exterior establishing shot of a comic book store in New York.
Caption: Adiel Fernandez and his brother didn't know it yet, but their decision to visit the comic book shop that day would prove fateful.
PANEL TWO
Adiel and his brother Daniel inside the store, looking at a comic book together.
Adiel: I like that character's wings—they're so sleek and angular.
Daniel: You should make a pair and wear them to the comic-con, Adiel!
PANEL THREE
Close-up on Adiel as inspiration strikes.
Adiel: Yes, I could make those... I'll do it!
PANEL FOUR
Close-up on Daniel's hands holding the comic book.
Daniel: With your engineering skills, I bet you'll win the costume contest.
PAGE TWO
PANEL ONE
Exterior establishing shot of Adiel's apartment building.
Caption: His brother's suggestion ignites a spark of inspiration, but Adiel's ambitions aim higher than cosplay.
PANEL TWO
At home, Adiel tinkers with circuitry. Behind him, we see the half-built wings in the background.
Adiel (thinking): The new alloy I developed is so lightweight, I bet I can do more than win the costume contest.
PANEL THREE
Close-up of his servo gloves.
Caption: For weeks, Adiel works into the wee hours every night, until—
PANEL FOUR
Still in his apartment, Adiel tries on the wings.
Adiel: A perfect fit! Now to test them.
PAGE THREE
PANEL ONE
Up on the roof of his building, Adiel spreads his wings.
Adiel (thinking): Hmm... What if the wings don't work? Maybe I should start closer to the ground.
PANEL TWO
Adiel looks as if he's being dragged toward the roof's edge by his wings.
Adiel: What the—?! I can't control them!
PANEL THREE
Adiel flies up into the sky.
Adiel 1: It works! I CAN FLY!!
Adiel 2: Wheeeeee!!!
PAGE FOUR
PANEL ONE
Adiel soars through the clouds.
Adiel: Strange... I feel compelled to fly higher and faster. And what's that vibration in my wings?
PANEL TWO
High in the clouds, Adiel sees a futuristic city in the sky.
Caption: Suddenly, a floating city appears, as if out of nowhere.
Adiel (thinking): Where did that come from? I can't turn away—I'm being pulled toward it!
PANEL THREE
Adiel comes in for a landing at the sky city.
Adiel (thinking): At least they seem friendly.
Sky person: Welcome, wingmaker!
PAGE FIVE
PANEL ONE
Long shot. In the sky city, Adiel meets a group of its residents and learns their story.
Sky person 1: We are a peaceful people who solved the mysteries of flight long ago. We left behind the ground-dwelling barbarians and built this city on a parallel plane, invisible to most of your kind.
Sky person 2: Your wings, made of the same material we use, achieved a sympathetic frequency that drew you here.
Adiel: Remarkable!
PANEL TWO
Closer shot as the sky people explain their dilemma to Adiel.
Sky person 1: If other ground-dwellers discover our existence, it will mean the inevitable end of our world.
Sky person 2: Will you help safeguard our secret, and the secret of your wings? In return, all our science is yours for the learning.
PAGE SIX
PANEL ONE (SPLASH)
Adiel stands/floats heroically among the clouds, with the sky city in the background.
Adiel: You have my word. So long as I draw breath, no harm shall befall you.
Caption: And so it was that he became Adiel Angel, pledged to protect Sky City from discovery by his Earth-bound brethren!
Thursday, December 1, 2011
Wings Update
So, it looks like the wings were better received than I thought they'd be. Its a tremendous relief since I thought I was going to be fending off judgemental remarks at the sheer scale of my nerdiness.
Popular Mechanics listed me as one of the 7 coolest projects of World Maker Faire 2011!
I got news from the CEO of my museum (New York Hall of Science) that we're going to turn the wings into an installation piece that will live on the museum floor. They are going to be placed up on a stand and programmed to flap on their own continuously. I might even build a manual control box to allow visitors to control them. Then again, I might not. Visitors destroy everything. Everything.
And last but not least, the museum's fund raising department asked me to bring the wings to our annual gala to show it off to the big wig trustees and investors! Was definitely a nice photo op (see below).
Popular Mechanics listed me as one of the 7 coolest projects of World Maker Faire 2011!
I got news from the CEO of my museum (New York Hall of Science) that we're going to turn the wings into an installation piece that will live on the museum floor. They are going to be placed up on a stand and programmed to flap on their own continuously. I might even build a manual control box to allow visitors to control them. Then again, I might not. Visitors destroy everything. Everything.
And last but not least, the museum's fund raising department asked me to bring the wings to our annual gala to show it off to the big wig trustees and investors! Was definitely a nice photo op (see below).
Sunday, September 4, 2011
Great Success!!!
So, Im a little speechless right now. Like I said before, I have been sitting on this idea for about a year so to see it get to this point is kind of a big moment. Im not going to say too much more, but here is a video of the wings in operation, both front view and back:
I have to admit, they work well, but not quite as well as I had built them up in my mind. Because of the limitations of the springs and servos, the wings are very easily overcome by gravity. That means I have to stand pretty straight up so that the wings' weight are neutral and the pushing of the spring hinges and pulling of the servos can do their job. Overall the wings weigh under 20 pounds and have a wingspan of close to 12 feet. There is still a lot of work to be done in terms of making them more robust and sturdy and also polishing them up to display status (which might have to wait till after Maker Faire). Feel free to comment and share your thoughts!
-Adiel
P.S. I want to thank everyone that didnt laugh and call me a ridiculous nerd (there really isnt any doubt that I am one, but its nice not to have other people call you one :P) as soon as I told them I was building a giant set of wings based on a super hero. My roommate Marcia for tolerating the insane mess and aluminum shavings and dust that now coat our apartment, and my great friends from work (too many of you to name, but you know who you are), you guys really are awesome. If anything, thanks for just being excited for me.
Above all, I want to thank my girlfriend Valery for being so supportive and not leaving my obsessive compulsive ass when I worked on them for 12 hour stints when I should have been taking her out to a fancy dinner.
I have to admit, they work well, but not quite as well as I had built them up in my mind. Because of the limitations of the springs and servos, the wings are very easily overcome by gravity. That means I have to stand pretty straight up so that the wings' weight are neutral and the pushing of the spring hinges and pulling of the servos can do their job. Overall the wings weigh under 20 pounds and have a wingspan of close to 12 feet. There is still a lot of work to be done in terms of making them more robust and sturdy and also polishing them up to display status (which might have to wait till after Maker Faire). Feel free to comment and share your thoughts!
-Adiel
P.S. I want to thank everyone that didnt laugh and call me a ridiculous nerd (there really isnt any doubt that I am one, but its nice not to have other people call you one :P) as soon as I told them I was building a giant set of wings based on a super hero. My roommate Marcia for tolerating the insane mess and aluminum shavings and dust that now coat our apartment, and my great friends from work (too many of you to name, but you know who you are), you guys really are awesome. If anything, thanks for just being excited for me.
Above all, I want to thank my girlfriend Valery for being so supportive and not leaving my obsessive compulsive ass when I worked on them for 12 hour stints when I should have been taking her out to a fancy dinner.
Thursday, September 1, 2011
Shrunken Circuits and Reinforcement
Hey Everyone,
I am starting to get tired. Really tired. I'm so into this project that Im losing massive amounts of sleep slouching over a soldering iron inhaling some fine lead fumes in the middle of the night. But, I regret nothing. I've been thinking about this project for about a year now and there were times where I thought it wasn't going to happen due to cost or that it just wouldn't work. Seeing it get to a point where I can actually wear them and operate the electronics with a pair of gloves has made me more excited and determined than ever. And thats right, you heard me, they are developed enough that I can put them on and walk around! However, I'm not posting any pictures just yet. Not until they are more polished, I gotta build up a little bit of anticipation. I've been working at these for months, you guys can wait in suspense for a week :)
Last night, I spend a good amount of time reinforcing the wings, but more on that in a later post.
Most of my time, however, was spent moving the electronics from the purely-prototype stage into a more robust version that will actually go on the wings. Here's what the electronics looked like before without all the servos and gloves:
And here it is next to the gloves and servos for scale:
For those that don't know, a normal Arduino (the blue microcontroller thats doing all the thinking) and a "breadboard" (the white rectangle you put all the parts on) are a bit bulky because they are designed to be totally plug and play. Wires and pins can be pushed into slots and moved around very quickly to build a circuit and get a working prototype very quickly. However, because it's so easy to put together, it falls apart very easily and is a bit on the bulky size.
The next stage is moving all those components (like resistors, lights, switches, etc) onto a board you can hardwire them onto called a perfboard. Since theres much more flexibility regarding positioning on a perfboard, you can also make the whole circuit much smaller by routing the little connections more efficiently. Also, by using a different microcontroller, in this case the Arduino Pro Mini, thats designed to be hardwired (and not so plug and play) you can shrink it down to a fraction of the size. It took me hours, well into the wee hours of the morning, to optimize the arrangement and solder it onto the perfboard, but here is how it turned out:
With a new (and better) battery pack, servos and gloves for scale:
By itself with a sharpie (again for scale)
Considering it was my first time wiring anything onto a perfboard, I'm extremely proud of how it came out. Now its small enough to be concealed in a small space between the backplate and my back so everything but the servos will be completely hidden from view, giving the wings a very minimal tech-presence.
Thats it for now, next up will be a little bit of switch debugging and mounting everything onto the wings! Are you excited over there? Because I am kind of freaking out from the excitement over here.
I am starting to get tired. Really tired. I'm so into this project that Im losing massive amounts of sleep slouching over a soldering iron inhaling some fine lead fumes in the middle of the night. But, I regret nothing. I've been thinking about this project for about a year now and there were times where I thought it wasn't going to happen due to cost or that it just wouldn't work. Seeing it get to a point where I can actually wear them and operate the electronics with a pair of gloves has made me more excited and determined than ever. And thats right, you heard me, they are developed enough that I can put them on and walk around! However, I'm not posting any pictures just yet. Not until they are more polished, I gotta build up a little bit of anticipation. I've been working at these for months, you guys can wait in suspense for a week :)
Last night, I spend a good amount of time reinforcing the wings, but more on that in a later post.
Most of my time, however, was spent moving the electronics from the purely-prototype stage into a more robust version that will actually go on the wings. Here's what the electronics looked like before without all the servos and gloves:
And here it is next to the gloves and servos for scale:
For those that don't know, a normal Arduino (the blue microcontroller thats doing all the thinking) and a "breadboard" (the white rectangle you put all the parts on) are a bit bulky because they are designed to be totally plug and play. Wires and pins can be pushed into slots and moved around very quickly to build a circuit and get a working prototype very quickly. However, because it's so easy to put together, it falls apart very easily and is a bit on the bulky size.
The next stage is moving all those components (like resistors, lights, switches, etc) onto a board you can hardwire them onto called a perfboard. Since theres much more flexibility regarding positioning on a perfboard, you can also make the whole circuit much smaller by routing the little connections more efficiently. Also, by using a different microcontroller, in this case the Arduino Pro Mini, thats designed to be hardwired (and not so plug and play) you can shrink it down to a fraction of the size. It took me hours, well into the wee hours of the morning, to optimize the arrangement and solder it onto the perfboard, but here is how it turned out:
With a new (and better) battery pack, servos and gloves for scale:
By itself with a sharpie (again for scale)
Considering it was my first time wiring anything onto a perfboard, I'm extremely proud of how it came out. Now its small enough to be concealed in a small space between the backplate and my back so everything but the servos will be completely hidden from view, giving the wings a very minimal tech-presence.
Thats it for now, next up will be a little bit of switch debugging and mounting everything onto the wings! Are you excited over there? Because I am kind of freaking out from the excitement over here.
Tuesday, August 30, 2011
Gloves and Code Update
So, I've made a bit of progress the past few days/weeks but I'll update it in stages.
Ive put together the gloves and general circuit that controls the servos that will be attached to the wings. The gloves took me several hours to do just because the buttons I am using are so small (not to mention have tiny tiny metal contacts that are made for surface mount PCBs) that it took me a while to solder them, wire them, sew them into the gloves and then reinforce them so they stand up to repeated bending and pushing while I am wearing them. I think the result is fairly robust. Of course, if I get my hand caught in a car door it doesnt matter how much hot glue I use, the push-button is gonna be totaled.
Here are some pictures of the gloves solo and attached to the circuit board.
So, each finger has its own push-button responsible for a different behavior in the wings. Also, I built the gloves so that they could be detached from the leads that connect them to the microcontroller.
Messy, I know. You can see the servos in the back with little metal bobbins attached to the servo horns. I used epoxy rated for 3200 PSI to glue the bobbins. Im sure I couldve gotten away with krazy glue, but the epoxy was the same price at home depot so I figured I'd over engineer it so I wouldnt have to worry about it later on.
I've spent the past few days working on changing the code to give me better functionality out of the wings. The way I originally had it setup, holding a button on a finger would cause the servo to wind up the line that would pull or release the wing, so if you let go the button it would stop. This is easy to use, but because the Arduino is so focused on the button thats being pressed, it isnt able to do anything else in the meantime. That means I was restricted to moving only one segment at a time which is kinda boring and awkward to look at.
To solve this, I designed the code so that pushing (and releasing a button) would start the servo and pushing it again would stop it. This means that once a servo is activated, the arduino is free to do whatever else it pleases, i.e. activate other servos. This means that now, all the servos are free to be operated simultaneously, so I can move the wings any way I see fit, when I see fit.
But, that was a pain in the ass to do. I am the first one to admit, I am not a very strong programmer. I've only really been at it for a few months and its still a little new. With this new method of using the buttons, I had to combat this weird property of electric circuits called "bouncing". Basically, when you try to push a button down, the electricity tends to bounce back and forth in the button, so much so that the microcontroller thinks its switching back and forth a dozen times. So now I have to make it smart enough to recognize this noisey button for what it is and really identify whether or not Im pressing the button. Also, it has to remember what the button was the last time it was pressed.
I was able to get it done, but not without a lot of frustration. But, I think Im a more experienced programmer for it, so all's well that ends well. I could post a video of the gloves turning on the servos, but all you would see are the little silver spools spinning. Once I get the servos mounted to the wings I'll take a video and post it.
Below is the code. If you dont speak code, then feel free to take this as the end of the blog post, theres nothing really interesting down there :)
#include //call up library
#define RI_Pin 2 //Define pins
#define RM_Pin 3
#define RR_Pin 4
#define RP_Pin 5
#define LI_Pin 6
#define LM_Pin 7
#define LR_Pin 8
#define LP_Pin 9
#define rightOuterServoPin 10
#define rightInnerServoPin 11
#define leftInnerServoPin 12
#define leftOuterServoPin 13
int RI_State = LOW; //Current switch states
int RM_State = LOW;
int RR_State = LOW;
int RP_State = LOW;
int LI_State = LOW;
int LM_State = LOW;
int LR_State = LOW;
int LP_State = LOW;
int RI_Old_State = LOW; //Old switch states
int RM_Old_State = LOW;
int RR_Old_State = LOW;
int RP_Old_State = LOW;
int LI_Old_State = LOW;
int LM_Old_State = LOW;
int LR_Old_State = LOW;
int LP_Old_State = LOW;
int RI_Servo_State = LOW; //Switch state stored to send to servo
int RM_Servo_State = LOW;
int RR_Servo_State = LOW;
int RP_Servo_State = LOW;
int LI_Servo_State = LOW;
int LM_Servo_State = LOW;
int LR_Servo_State = LOW;
int LP_Servo_State = LOW;
const int EXPAND = 0; //expand = servo value 0 = CCW motion
const int STOP = 90;
const int CONTRACT = 180; //contract = servo value 180 = CW motion
Servo rightOuterServo; //Create instances of Servos
Servo rightInnerServo;
Servo leftInnerServo;
Servo leftOuterServo;
void setup() {
rightOuterServo.attach(rightOuterServoPin); //attach servos to proper pins
rightInnerServo.attach(rightInnerServoPin);
leftInnerServo.attach(leftInnerServoPin);
leftOuterServo.attach(leftOuterServoPin);
pinMode(RI_Pin,INPUT); //set finger buttons as inputs
pinMode(RM_Pin,INPUT);
pinMode(RR_Pin,INPUT);
pinMode(RP_Pin,INPUT);
pinMode(LI_Pin,INPUT);
pinMode(LM_Pin,INPUT);
pinMode(LR_Pin,INPUT);
pinMode(LP_Pin,INPUT);
rightOuterServo.write(STOP); //make sure servos begin sketch as stopped
rightInnerServo.write(STOP);
leftInnerServo.write(STOP);
leftOuterServo.write(STOP);
}
void loop() {
//Read Switch States
RI_Old_State = digitalRead(RI_Pin);
RM_Old_State = digitalRead(RM_Pin);
RR_Old_State = digitalRead(RR_Pin);
RP_Old_State = digitalRead(RP_Pin);
LI_Old_State = digitalRead(LI_Pin);
LM_Old_State = digitalRead(LM_Pin);
LR_Old_State = digitalRead(LR_Pin);
LP_Old_State = digitalRead(LP_Pin);
delay(10);
RI_State = digitalRead(RI_Pin);
RM_State = digitalRead(RM_Pin);
RR_State = digitalRead(RR_Pin);
RP_State = digitalRead(RP_Pin);
LI_State = digitalRead(LI_Pin);
LM_State = digitalRead(LM_Pin);
LR_State = digitalRead(LR_Pin);
LP_State = digitalRead(LP_Pin);
//Right Index
if (RI_State != RI_Old_State) {
if(RI_State == 1) {
RI_Servo_State = !RI_Servo_State;
}
if (RI_Servo_State == 1) {
rightOuterServo.write(EXPAND);
} else {
rightOuterServo.write(STOP);
}
}
//Right Middle
if (RM_State != RM_Old_State) {
if(RM_State == 1) {
RM_Servo_State = !RM_Servo_State;
}
if (RM_Servo_State == 1) {
rightInnerServo.write(EXPAND);
} else {
rightInnerServo.write(STOP);
}
}
//Right Ring
if (RR_State != RR_Old_State) {
if(RR_State == 1) {
RR_Servo_State = !RR_Servo_State;
}
if (RR_Servo_State == 1) {
rightOuterServo.write(CONTRACT);
} else {
rightOuterServo.write(STOP);
}
}
//Right Pinky
if (RP_State != RP_Old_State) {
if(RP_State == 1) {
RP_Servo_State = !RP_Servo_State;
}
if (RP_Servo_State == 1) {
rightInnerServo.write(CONTRACT);
} else {
rightInnerServo.write(STOP);
}
}
//Left Index
if (LI_State != LI_Old_State) {
if(LI_State == 1) {
LI_Servo_State = !LI_Servo_State;
}
if (LI_Servo_State == 1) {
leftOuterServo.write(EXPAND);
} else {
leftOuterServo.write(STOP);
}
}
//Left Middle
if (LM_State != LM_Old_State) {
if(LM_State == 1) {
LM_Servo_State = !LM_Servo_State;
}
if (LM_Servo_State == 1) {
leftInnerServo.write(EXPAND);
} else {
leftInnerServo.write(STOP);
}
}
//Left Ring
if (LR_State != LR_Old_State) {
if(LR_State == 1) {
LR_Servo_State = !LR_Servo_State;
}
if (LR_Servo_State == 1) {
leftOuterServo.write(CONTRACT);
} else {
leftOuterServo.write(STOP);
}
}
//Left Pinky
if (LP_State != LP_Old_State) {
if(LP_State == 1) {
LP_Servo_State = !LP_Servo_State;
}
if (LP_Servo_State == 1) {
leftInnerServo.write(CONTRACT);
} else {
leftInnerServo.write(STOP);
}
}
}
Ive put together the gloves and general circuit that controls the servos that will be attached to the wings. The gloves took me several hours to do just because the buttons I am using are so small (not to mention have tiny tiny metal contacts that are made for surface mount PCBs) that it took me a while to solder them, wire them, sew them into the gloves and then reinforce them so they stand up to repeated bending and pushing while I am wearing them. I think the result is fairly robust. Of course, if I get my hand caught in a car door it doesnt matter how much hot glue I use, the push-button is gonna be totaled.
Here are some pictures of the gloves solo and attached to the circuit board.
So, each finger has its own push-button responsible for a different behavior in the wings. Also, I built the gloves so that they could be detached from the leads that connect them to the microcontroller.
Messy, I know. You can see the servos in the back with little metal bobbins attached to the servo horns. I used epoxy rated for 3200 PSI to glue the bobbins. Im sure I couldve gotten away with krazy glue, but the epoxy was the same price at home depot so I figured I'd over engineer it so I wouldnt have to worry about it later on.
I've spent the past few days working on changing the code to give me better functionality out of the wings. The way I originally had it setup, holding a button on a finger would cause the servo to wind up the line that would pull or release the wing, so if you let go the button it would stop. This is easy to use, but because the Arduino is so focused on the button thats being pressed, it isnt able to do anything else in the meantime. That means I was restricted to moving only one segment at a time which is kinda boring and awkward to look at.
To solve this, I designed the code so that pushing (and releasing a button) would start the servo and pushing it again would stop it. This means that once a servo is activated, the arduino is free to do whatever else it pleases, i.e. activate other servos. This means that now, all the servos are free to be operated simultaneously, so I can move the wings any way I see fit, when I see fit.
But, that was a pain in the ass to do. I am the first one to admit, I am not a very strong programmer. I've only really been at it for a few months and its still a little new. With this new method of using the buttons, I had to combat this weird property of electric circuits called "bouncing". Basically, when you try to push a button down, the electricity tends to bounce back and forth in the button, so much so that the microcontroller thinks its switching back and forth a dozen times. So now I have to make it smart enough to recognize this noisey button for what it is and really identify whether or not Im pressing the button. Also, it has to remember what the button was the last time it was pressed.
I was able to get it done, but not without a lot of frustration. But, I think Im a more experienced programmer for it, so all's well that ends well. I could post a video of the gloves turning on the servos, but all you would see are the little silver spools spinning. Once I get the servos mounted to the wings I'll take a video and post it.
Below is the code. If you dont speak code, then feel free to take this as the end of the blog post, theres nothing really interesting down there :)
#include
#define RI_Pin 2 //Define pins
#define RM_Pin 3
#define RR_Pin 4
#define RP_Pin 5
#define LI_Pin 6
#define LM_Pin 7
#define LR_Pin 8
#define LP_Pin 9
#define rightOuterServoPin 10
#define rightInnerServoPin 11
#define leftInnerServoPin 12
#define leftOuterServoPin 13
int RI_State = LOW; //Current switch states
int RM_State = LOW;
int RR_State = LOW;
int RP_State = LOW;
int LI_State = LOW;
int LM_State = LOW;
int LR_State = LOW;
int LP_State = LOW;
int RI_Old_State = LOW; //Old switch states
int RM_Old_State = LOW;
int RR_Old_State = LOW;
int RP_Old_State = LOW;
int LI_Old_State = LOW;
int LM_Old_State = LOW;
int LR_Old_State = LOW;
int LP_Old_State = LOW;
int RI_Servo_State = LOW; //Switch state stored to send to servo
int RM_Servo_State = LOW;
int RR_Servo_State = LOW;
int RP_Servo_State = LOW;
int LI_Servo_State = LOW;
int LM_Servo_State = LOW;
int LR_Servo_State = LOW;
int LP_Servo_State = LOW;
const int EXPAND = 0; //expand = servo value 0 = CCW motion
const int STOP = 90;
const int CONTRACT = 180; //contract = servo value 180 = CW motion
Servo rightOuterServo; //Create instances of Servos
Servo rightInnerServo;
Servo leftInnerServo;
Servo leftOuterServo;
void setup() {
rightOuterServo.attach(rightOuterServoPin); //attach servos to proper pins
rightInnerServo.attach(rightInnerServoPin);
leftInnerServo.attach(leftInnerServoPin);
leftOuterServo.attach(leftOuterServoPin);
pinMode(RI_Pin,INPUT); //set finger buttons as inputs
pinMode(RM_Pin,INPUT);
pinMode(RR_Pin,INPUT);
pinMode(RP_Pin,INPUT);
pinMode(LI_Pin,INPUT);
pinMode(LM_Pin,INPUT);
pinMode(LR_Pin,INPUT);
pinMode(LP_Pin,INPUT);
rightOuterServo.write(STOP); //make sure servos begin sketch as stopped
rightInnerServo.write(STOP);
leftInnerServo.write(STOP);
leftOuterServo.write(STOP);
}
void loop() {
//Read Switch States
RI_Old_State = digitalRead(RI_Pin);
RM_Old_State = digitalRead(RM_Pin);
RR_Old_State = digitalRead(RR_Pin);
RP_Old_State = digitalRead(RP_Pin);
LI_Old_State = digitalRead(LI_Pin);
LM_Old_State = digitalRead(LM_Pin);
LR_Old_State = digitalRead(LR_Pin);
LP_Old_State = digitalRead(LP_Pin);
delay(10);
RI_State = digitalRead(RI_Pin);
RM_State = digitalRead(RM_Pin);
RR_State = digitalRead(RR_Pin);
RP_State = digitalRead(RP_Pin);
LI_State = digitalRead(LI_Pin);
LM_State = digitalRead(LM_Pin);
LR_State = digitalRead(LR_Pin);
LP_State = digitalRead(LP_Pin);
//Right Index
if (RI_State != RI_Old_State) {
if(RI_State == 1) {
RI_Servo_State = !RI_Servo_State;
}
if (RI_Servo_State == 1) {
rightOuterServo.write(EXPAND);
} else {
rightOuterServo.write(STOP);
}
}
//Right Middle
if (RM_State != RM_Old_State) {
if(RM_State == 1) {
RM_Servo_State = !RM_Servo_State;
}
if (RM_Servo_State == 1) {
rightInnerServo.write(EXPAND);
} else {
rightInnerServo.write(STOP);
}
}
//Right Ring
if (RR_State != RR_Old_State) {
if(RR_State == 1) {
RR_Servo_State = !RR_Servo_State;
}
if (RR_Servo_State == 1) {
rightOuterServo.write(CONTRACT);
} else {
rightOuterServo.write(STOP);
}
}
//Right Pinky
if (RP_State != RP_Old_State) {
if(RP_State == 1) {
RP_Servo_State = !RP_Servo_State;
}
if (RP_Servo_State == 1) {
rightInnerServo.write(CONTRACT);
} else {
rightInnerServo.write(STOP);
}
}
//Left Index
if (LI_State != LI_Old_State) {
if(LI_State == 1) {
LI_Servo_State = !LI_Servo_State;
}
if (LI_Servo_State == 1) {
leftOuterServo.write(EXPAND);
} else {
leftOuterServo.write(STOP);
}
}
//Left Middle
if (LM_State != LM_Old_State) {
if(LM_State == 1) {
LM_Servo_State = !LM_Servo_State;
}
if (LM_Servo_State == 1) {
leftInnerServo.write(EXPAND);
} else {
leftInnerServo.write(STOP);
}
}
//Left Ring
if (LR_State != LR_Old_State) {
if(LR_State == 1) {
LR_Servo_State = !LR_Servo_State;
}
if (LR_Servo_State == 1) {
leftOuterServo.write(CONTRACT);
} else {
leftOuterServo.write(STOP);
}
}
//Left Pinky
if (LP_State != LP_Old_State) {
if(LP_State == 1) {
LP_Servo_State = !LP_Servo_State;
}
if (LP_Servo_State == 1) {
leftInnerServo.write(CONTRACT);
} else {
leftInnerServo.write(STOP);
}
}
}
Saturday, August 27, 2011
Archangel Wings: Full Disclosure
So, I've told most people about my Maker Faire project, but I havent mentioned it on here very often because this site was restricted mostly to ITP class assignments. But, class is over and all of you loyal fans (all 3 of you, you are too kind) are here waiting for more, so here goes a full description of the project.
The details:
Life size metal wings inspired by the superhero Archangel
They are going to be made from 7075 alloy, air-craft grade aluminum with a final wingspan of close to 12 feet wide, not exactly to scale from the photo, but those would be impossible to wear. The wing will be be articulated at two joints per wing, one on the aluminum backplate I'll be wearing, and another joint half-way down the wing. At the joints will be spring hinges that spring the wings outwards when contracted. Here is a picture of all the panels laid out on the floor with me in the middle for scale: The wings were originally supposed to be actuated by shape memory alloy ("muscle wire"), but due to limitations of the high maintenance material I had to abandon it in favor of using servos. All's well that ends well, because they will now be completely under my control with full range of motion as opposed to the 20-30 degrees of motion that the muscle wire was capable of producing. The servos will be attached to the wing panels and backplate and will wind up a low-profile, high-strength fishing line, pulling the wings towards them. Wind it one direction and the wings contract, spin the servo in the other direction and the spring hinges take over and open the wings. Heres a video I made while testing the servo control on small sample pieces of aluminum:
I am working on two different methods of control. Manual control of the wings will definitely be ready by Maker Faire (if not sooner), but I am having a really hard time procuring the right components to make the other work. The other method is to have a heart rate monitor I am wearing send signals to the arduino microcontroller which will then flap the wings at a rate proportional to beating of my heart. A simple toggle switch will alternate between one mode and the other (if I can just get that damn heart rate receiver!)
Manual control of the wings will be wired into two gloves I'll be wearing. Each glove will have small push-button switches hidden in the tips of each of the fingers, each responsible for an individual wing panel. Pressing one finger tip will move a certain panel outwards, pressing another finger will bring it back. This will allow me to control each of the wing panels individually and position them any way I want (even fold them up behind me) just by moving certain fingers. I'm hoping it will give the illusion that they are moving on their own since most people dont often notice what you're doing with your finger tips.
So, thats the full description. I hope you got as excited and curious to see it as I am to build it, because I am pretty F**king stoked.
More updates to come, but on that note, Peace!
The details:
Life size metal wings inspired by the superhero Archangel
They are going to be made from 7075 alloy, air-craft grade aluminum with a final wingspan of close to 12 feet wide, not exactly to scale from the photo, but those would be impossible to wear. The wing will be be articulated at two joints per wing, one on the aluminum backplate I'll be wearing, and another joint half-way down the wing. At the joints will be spring hinges that spring the wings outwards when contracted. Here is a picture of all the panels laid out on the floor with me in the middle for scale: The wings were originally supposed to be actuated by shape memory alloy ("muscle wire"), but due to limitations of the high maintenance material I had to abandon it in favor of using servos. All's well that ends well, because they will now be completely under my control with full range of motion as opposed to the 20-30 degrees of motion that the muscle wire was capable of producing. The servos will be attached to the wing panels and backplate and will wind up a low-profile, high-strength fishing line, pulling the wings towards them. Wind it one direction and the wings contract, spin the servo in the other direction and the spring hinges take over and open the wings. Heres a video I made while testing the servo control on small sample pieces of aluminum:
I am working on two different methods of control. Manual control of the wings will definitely be ready by Maker Faire (if not sooner), but I am having a really hard time procuring the right components to make the other work. The other method is to have a heart rate monitor I am wearing send signals to the arduino microcontroller which will then flap the wings at a rate proportional to beating of my heart. A simple toggle switch will alternate between one mode and the other (if I can just get that damn heart rate receiver!)
Manual control of the wings will be wired into two gloves I'll be wearing. Each glove will have small push-button switches hidden in the tips of each of the fingers, each responsible for an individual wing panel. Pressing one finger tip will move a certain panel outwards, pressing another finger will bring it back. This will allow me to control each of the wing panels individually and position them any way I want (even fold them up behind me) just by moving certain fingers. I'm hoping it will give the illusion that they are moving on their own since most people dont often notice what you're doing with your finger tips.
So, thats the full description. I hope you got as excited and curious to see it as I am to build it, because I am pretty F**king stoked.
More updates to come, but on that note, Peace!
Subscribe to:
Posts (Atom)