Blossoming Flower - Arduino Powered
by esarder in Circuits > Arduino
4781 Views, 20 Favorites, 0 Comments
Blossoming Flower - Arduino Powered
The project is based primarily on the Ever Blooming Mechanical Tulip. I modified some of the aspects, including simplifying the project to fit better within a one week timespan.
Supplies
For the flower:
- 3/64" brass rods
- 1/16" brass rods
- 1/8" x 0.014" bras tubing
- Air dry clay
- Hot glue gun
For the functional setup:
- Arduino Uno
- Vilros Micro Servo SG90
- Jumper cables
- Breadboard
Note on sourcing brass rods and tubing: I had the best luck finding these materials at hobby and RC stores like HobbyTown
Making the Petals
I followed the instructions from the Ever Blooming Tulip Instructable above throughout most of the creation of this flower with one notable (and, as it happens, extremely ill-advised and aesthetically displeasing) exception: I did not solder my connections. Instead, I used a glue gun for my connections, as I have yet to firmly grasp the process of soldering. This, as it happens, was a horrible idea. The end result flower was fragile and marred by large globs of glue. Had I a time machine, I would travel back and spend the couple hours it would take to master soldering to save myself the pain of regluing parts back together. Luckily I was eventually able to glob on enough glue to make it relatively stable. But please dear reader, learn from my mistakes.
I originally planned on making 8 petals, but simplified it down to 4 so I didn't have to deal with too many overlapping petals. The petals consist of 3/64" brass rods twisted in a petal shape with a flat portion at the bottom, onto which is slipped a section of brass tubing to act as a hinge.
To shape the petals, I made a mold out of air dry clay and twisted the brass rods along the mold by hand. While I didn't find it totally necessary to make them perfectly similar, it does improve the final effect, so having a mold will help maintain a little bit of shape consistency.
Before hot gluing the petals closed, I slipped the brass tubing on the straight sections.
Attaching Petals to Frames
My petal frame is an octagon with 4 longer sides and 4 shorter sides (initially created to accommodate overlapping layers of petals). The brass tubing around the bottom of the petals is attached the octagonal frame so the petals can swing freely on the hinges.
Stem and Push Head
The push head on top of the stem provides the opening and closing mechanism for the petals. The push head is made of 3/64" brass rod with brass tubing hinges slipped onto each side. A crossbar is glued in the middle for attachment to the stem. To finish off the stem, the brass rod is slipped into a section of brass tubing.
V Expansion
Four brass rods are attached from corners of the petal frame to the circumference of the brass tubing of the stem in order to suspend the petal frame above the stem. The push head should be free to move up and down, through the petal frame.
Connecting Rods and Final Mechanism
The "shoulder" rods consist of 3/64" brass rods twisted to fit across the base of the petal with brass tubing in the middle. Attached to the brass tubing is a rod that connects the hinge on the "shoulder" rods to the hinge on the push head, which allows the up and down motion of the pushrod to pull and push the petals, opening and closing the flower.
Connecting Motor to Arduino
This project uses a basic servo connected to an Arduino to move the stem and push head up and down. The circuit diagram is attached.
Connecting Flower to Motor and Running!
The stem is connect to the servo motor using some questionable hot glue gun techniques and some wire.
The following code was used to move the motor:
#include <Servo.h> // servo library Servo servo1; // servo control object void setup() { servo1.attach(9); // attaching servo1 object to digital pin 9 } void loop() { // Servo is fed angle of turn using write function servo1.write(90); // Tell servo to go to 90 degrees delay(2000); // delays used for effect of opening and closing flower servo1.write(160); // Tell servo to go to 160 degrees delay(2000); servo1.write(90); delay(2000); servo1.write(160); }
Complications
Midway through the filming of these videos, all the USB ports on my laptop started to give out. Transferring code to the Arduino was spotty at best. This project was supposed to include one last integration: the actual glove! My plan was to a flex sensor glove that controlled the opening and closing of the flower, but given that my Arduino was barely working with the current implementation, I had little faith it would survive the addition of more sensors.