This week we focused on refining our project further to remove the use of a shaft, or the develop the shaft into being part of the flower. After receiving some advice, we looked at changing the flower type to suit the scenario, possibly an iris. This would mean that we could blend the stem into being an stigma.
We also wanted to include more sensory receptors into our design, so we have decided to increase our outputs to producing music as well as pulsing. If we have enough time later on in the project, we may try a blossom that pulses to the music.
Night Light Motor Schematic
Concept on movement 3
The main shaft of the rose will move up and down, with the help of the spring to return back to its resting position. The shaft has arms connected to it, which are attached to the petals. This movement will open the petals as the shaft moves up and the arms push out, resulting in the petals to “blossom”. The arms will act as stoppers to keep the shape of the blossomed rose intact, instead of the petals falling backwards.
The input mechanism, which is a photo sensor, will create 2 outputs. A sound and a motion output.
Final concept of movement:
We decided to stick with concept of movement 2, as it allowed for a simple way to provide motion. I removes all the complexity of cogs, increases the possibility of accuracy and allows us to focus on the code. We have adapted the movement to have 4 “petals” which will animate and produce the flower.
We decided to follow through with a winding system where the petals will be pulled open in the below form. The strings are attached to each petal individually, and wrapped around a cylindrical pulley. Which with the detection of light change, will start to wind, leading the petals to open. Therefore as the string unwinds, the petals will close.
Below you can see a cad preview of what it would look like, provided we have enough time to 3D print the project.
How does it work?
We have come up with a flowchart to demonstrate how the code should be structured to allow for the flower to animate.
We tried to realise this through the code, but unfortunately it didn’t work. We were able to get it so that it would rotate backwards and forwards, relating to the number of rotations set, but unfortunately it would not recognise the absolute function and would not work. (the code seen below):
boolean checkIsChanged(int _current, int _last)
boolean isChanged = false;
Serial.println(abs(_last – _current));
if (abs(_last – _current) > 20)
isChanged = true;
If you would like to see the entire code for this part of the project please click here