Arduino-Powered Cherub Wings
I created a small set of articulated wings made of bass wood, powered by a servo attached to an Arduino! I have grand goals for creating a large set of Arduino-powered wings, so I wanted to prototype my designs out on a smaller scale! This design uses a 3D printed pinion and rack attachment to translate a servo's rotational force into a linear force.
Supplies
Wings:
- Bass wood (can also substitute with other craft wood, like balsa wood)
- #8-32 metal screws (1" and 3/4")
- #8-32 metal bolts
- X-acto knife
- super glue
- Foam sheet
Electronics:
- Arduino Rev3
- Servo
- 3D printed linear actuator
- Jumper wires
- Alligator clips
- Breadboard
- 2 AA batteries
- 2-pack AA battery holder
Constructing the Wings
Cut strips of wings out of the balsa wood. The relative measurements of the wings and where the joints are placed are pretty important here. I made a model in CAD and played around with it to determine the lengths I used here.
The lengths of the bass wood wing sections here are as follows:
- 10 in
- 3 in
- 4 in
- 8 in
- 6 in
All widths were 1 in.
All end holes were 1.5 cm from the edge. From here, it's best to play with various distances of joint holes, as the mechanics really seem to depend on these angles.
Servo Adjustment: Translating Rotational Motion Into Linear Motion
To translate the rotation motion of the servo to linear motion, I 3D printed this rack and pinon attachment. Use some of the #8-32 metal screws (preferably the smaller 3/4" ones) to attach the rack and pinon attachment to your servo.
Take some time to figure out the best orientation of your 3-piece Y setup that moves both wings in relation to the rack and pinion attachment! This will depend on the exact measurements of your wings, how far apart they are from each other, and how far you want the wings to open and close. Once you've found a good place, attach the servo-plus-attachment to the foam board.
You'll need to calibrate the rotation. The linked servo can move 180 degrees, so you'll need to set the servo to it's furthest rotation (either 0 degrees or 180 degrees, depending on the orientation of the servo), then screw the rack
Electrical
Use the diagram above (helpfully provided by MertArduino here), attach the AA battery pack to the Arduino and the servo.
Here's the code for moving the wings up and down in a loop:
#include <Servo.h> Servo myservo; // servo object used to control the servo int pos = 0; // variable used to store the position of the servo void setup() { myservo.attach(3); // attaches the servo connected to pin 3 on the Arduino } void loop() { // loop code writes to the furthest ends of the servo's rotation with a 2 second gap in the middle myservo.write(0); delay(2000); myservo.write(180); delay(2000); }
Final Project!
Next Steps
This serves as a fantastic prototype for what I hope will eventually be a larger set of wings. I prepared some of the materials for that larger set, made of aluminum tubing. I'm hoping to use this smaller set of wings as a way to prototype interactions for the larger set in a less expensive and time consuming way! Here's some of the preparation I've done for the next set!