Breathing Flower

by noavanderlaak in Circuits > Arduino

187 Views, 0 Favorites, 0 Comments

Breathing Flower

IMG_3090.jpeg
IMG_0890.jpeg
IMG_2471.jpeg
IMG_2472.jpeg
IMG_2473.jpeg
IMG_3018.jpeg

Introduction

Of course breathing is important for everyone, but breathing in the right way may give you benefits.

This project's end product will force and learn you to breathe consciously and through your stomach, but why breathing through the stomach?

Diaphragmatic Breathing can bring many benefits, here are some points I found:

  • Helping you relax.
  • Improving muscle function during exercises and preventing strain
  • Increasing how much oxygen is in your blood
  • Making it easier for your body to release gas waste from your lungs
  • Reducing blood pressure
  • Reducing heart rate

It is also a way to use the maximum capacity of your lungs, while when you aren't consciously paying attention to your breathing you will normally breath shallow and through the chest.

Here are some articles I read that might peak your interest:

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5455070/

https://my.clevelandclinic.org/health/articles/9445-diaphragmatic-breathing

https://journals.lww.com/jbisrir/fulltext/2019/09000/effectiveness_of_diaphragmatic_breathing_for.6.aspx

https://www.uofmhealth.org/conditions-treatments/digestive-and-liver-health/diaphragmatic-breathing-gi-patients#:~:text=Diaphragmatic%20Breathing%2C%20also%20called%20deep,encourage%20the%20body%20to%20relax.

"Diaphragmatic Breathing, also called deep breathing or belly breathing, is a simple technique taught to GI patients to help them manage stress caused by GI conditions. Focusing one's breath is an effective way to encourage the body to relax"

This exercise is also used for different hobbies and jobs, such as:

  • Diving
  • Swimming
  • Singing/Opera
  • Yoga


Iterations

From the beginning I knew what I wanted to make and with what end goal - a flower that breathes with you - so my iterations were in the workings and design of my flower. The most iterated part of my design went to the mechanics of the leaves movement.

The first design I had was that all the leaves had to move independently and moved through help of gaps in a disk and with hinges (see photo). This did not work as good as I hoped it did, so I thought of another idea where the leaves were pulled open by string with the servo and pulled clove with springs. This put too much strain on the servo and it would become overheated. This idea I also had but instead the string would rotate around a bold so it twisted together, this had the same problem.

At last I had the idea to use the disk idea, but instead of curved gaps I used hard wiring with loops and a separate disk with holes to make them move, this did work but I realised I had to rotate the disk a bit zo the leaves moved open and close instead of left to right (see photo), which it couldn't (it bend the wiring).

In the end I made the ingenious design that it is today and it works quite well I must say.


What did I learn?

This was a fun project to do, before this I had never worked with Arduino. I knew of it, because my father works with it and a lot of other mechanical stuff as a hobby. So I had a bit of a safety net when I could not figure things out.

From school I learned the basics and how to get around with an Arduino kit and soldering, this was very fun to learn, especially the soldering I liked.

After I learned the basics on how to handle an Arduino I learned from my father all the tips and tricks from the best way to solder things together and how the wiring works and the theoretical stuff behind it.

Before I never would have thought I would ever do this, but now I know I can do this and it was not that impossible as I first thought it was.

I absolutely do want to do this again!



Downloads

Supplies

Arduino components

  • Arduino (UNO) x1
  • Conductive rubber cord x1
  • 10 kΩ Resistor x2
  • Servo (3kg) x1
  • Push button (Start/reset) x1
  • Switch button (on/off) x1
  • LED red x1
  • LED blue x1
  • LED green x1
  • 22 Ω Resistor x2
  • 3.9 kΩ Resistor x1
  • Voltage regulator (LM2596S) x1
  • Adapter (DC Jack 12 volt) x1
  • PCB (Printed circuit board) 1x


Breathing sensor

  • Suitcase strap with buckle
  • Alligator clamps x2
  • Power cord or wire x1
  • Sewing thread + needle


Flower

  • Flowerpot (14 cm diameter) x1
  • Wood plank (20 x 20 cm) x2
  • Thin plastic sheet x1
  • Contact Glue
  • EVA foam (leaves) appropriate amount for your leaves
  • Color paint (leaves)
  • Copper instalation wire (2,5 mm)
  • Clear varnish paint
  • Thin metal plate
  • Long bolt (used: M4) 1x + nut + washer + nylon bush 2,5 cm x2


Tools

  • Soldering iron + tin
  • Small drilling machine
  • Rotary tool
  • Needle nose pliers
  • Hot glue gun
  • Side cutter plier

Prepping the Lid

IMG_2918.jpeg
92F87A37-5BCA-48E3-BD92-81C5FD8CCDFA.jpeg

First take one wooden plank and mark the middle, draw 2 circles around the centre. The first circle about 7 cm in diameter and the second one about 10 cm in diameter. Mark 8 points evenly spaced on each of the circles, but not parallel to each other (Or else the leaves will be in each other’s way). Now drill 8 or 10 mm holes on each mark with a small drilling machine and one in the middle for the servo axis for later.

After the holes are made, make from the circles octagonal shapes with the holes in the middle of each edge as the photo above (red = holes, green = line markings). With the rotary tool make a shallow cut on the green lines the depth and width of the copper cord.

For the other wooden plank make the same circles with the holes, but without the shallow cuts (only the holes!) but instead of round cuts, make them a bit wider to the middle like an oval shape.

Making the Flower Pins

8B0E9363-77BF-49D4-B9EB-CA1A8852AB76.jpeg
27ADD44D-6332-48B2-BE8B-9A284E178C08.jpeg
IMG_0886.JPG
C6B268E0-D149-4657-8A29-7C57E0FEA5C0.jpeg
IMG_2955.jpeg
IMG_3016.jpeg

After the wooden plank is made per the previous step, we’re going to make the pins where the flower leaves will be attached.

With the copper wire you will need to cut 16 pieces a bit smaller that the grooves made in the wood and 16 longer pieces 15 cm in length, with the longer pieces make with the needle nose pliers a mall loop at one end of the wire where the diameter of the copper wire will fit (see photo).

After you have all the pieces (16 small and 16 long pieces with a loop at one end) grab the soldering iron and tin and attach on each long pin 4 to 5 cm down from the top of the loop at a 90 degree angle cross from the loop (see photo). When all the pins are made fit them in the grooves of the wood and test if each pin fits and is deep enough to not feel from above, but not to deep to disappear.

When all the pins are done and they fit well into the wood, take a bit of plastic sheet and make the same oval shaped holes as the other wooden plank and glue it onto the plank where the pins fit (see photo). If everything fits and nothing jams or moves too much you can glue the other piece of wood to the wood with the pins.

Last but not least, after drying for a while saw the glued pieces in a circle in a way it fits nicely on top of the flowerpot (not in) without sticking out too much.

Mechanics Under the Lid

IMG_3016.jpeg
IMG_3018.jpeg
b8df50e6-541c-437c-b34b-368cf1c64c72.jpeg
616820ad-131f-4426-94e9-1c43ab95f55f.jpeg
f4548122-8327-4379-af79-06f611eefd3d.jpeg
3f69b63f-a8fe-420f-b6df-2163af7aa4e5.jpeg

Next step is to make the mechanics to move all of the 16 leaves. This a bit of tinkering and what works the best for you.

In my case I made a small metal disc +7 cm in diameter with 16 holes around the edge where the copper wire will fit in (you will only need 9).

Through the hole in the middle of the lid the bolt is put with the new metal plate and the nylon bushes on the underside where the loops are, on the topside the washer is put with the nut on top and screwed on tight enough so it does not fall off or loosen when moved and turned (see photo).

With the copper wire I made 8 pins with again a loop at one end. when all 8 pins are done I threaded one end through a loop of the inner circle of the big pins and hooked the loop of the pin through the loop of one of the pins of the outer circle (see photo), twisted them trough the metal plate down in a loop and bend them in the middle a bit upwards so all the wires did not conflict with each other. (so 1 wire pulls 2 leaves, one inner circle, one outer circle)

Afterwards I twisted the long wires on the topside to big loops so it will support the flower leaves later on.

When all is done, first the new metal plate on the underside of the bolt, then the bushes and on the topside the washer first and then the nut. Then I made a little wooden setup for the servo on the underside (see photo) and screwed it on the lid and the servo on te setup so it will not move.

Now this is done, later you can connect the wires of the servo to the wiring in the pot.

Adjusting the Flower Pot

IMG_3006.jpeg
IMG_3007.jpeg

This step is a small step and can be easily done. For the LED's, the press button, the switch and the wiring for the plug and sensor you need to drill holes in the pot. The holes need to be big enough to fit the buttons, LED's, switches and plug wires. I made 3 holes next to each other for the LED's. Red, green, blue (left to right respectively). Left to the lights I made the start/reset button. At the back of the pot I made 2 holes, 1 for the on/off switch and one for the wires (on/off switch not shown in photo, I made it above the wiring).

Breathing Sensor

IMG_3009.jpeg

With this step I used a reference to somebody who made a breathing sensor with conductive rubber cord

https://www.sciencebuddies.org/science-fair-projects/project-ideas/HumBio_p055/human-biology-health/train-belly-breathing

If you want to follow this, you can. You only need one.

Adjust the strap to your size (not minimum size) and cut it, sew it back together so the size is not too big and cut the access and burn-seal the ends. Now cut one side in 2 and fold it with space in beween where the cord will fit. Sew the fold and cut 2 holes on each ends, now thread the cord through the holes in a loop and put a knot at the ends (this is where the alligator clamps will go).

And done

Test on Breadboard

IMG_2960.jpeg
Untitled_Artwork 6.jpg

I worked with different ideas to make this work, breathing is a hard thing to measure.

The first idea was to make the measured variables equal to the rotation of the servo, this created a problem. While it does work, it doesn't work if people are built different or breathe different. It also looks erratic if the servo moves directly with every difference in input. So I made it that it had a threshold it could hold on to. So now it has to cross a certain threshold to open or close, it did go too fast so I also made a delay.

Then I realised it had to be used multiple times, so I made a reset button. This also serves as a start button, so I solved 2 problems with 1 solution.

But I still had the problem with incorrect measurements when tested on another different body. Not everyone is the same so I had to adapt my design. I made it calibrate the highest and lowest points while you breath for a certain time. So now you can press start, it will calibrate, measure and set the higher and lowest point it got and used those measurements as a threshold, now it did not matter how your body shape looked like.

The reset still has a slight problem, it will not reset if the measured variable hit above and below the threshold it set. It will only work in the variable between the two.

Code

This is the code used for the breathing flower. I first started with some sketches on how I wanted it to work. When testing it I realised everyone has different sizes and I had to have a calibration somewhere, so I made a calibration that works with most people.

The code will also force the servo to first fully open or close, before it can do anything else, this way the person who uses it will out of habit also wait till the flower is fully closed or opened before breathing in or out, this will cause the user to fully breath in or out.


/*
Noa van der Laak - 23 april 2023
This code is for the Breathing flower project. It calibrates your breath and depending on the measured variables it breathes with you.
Warning: most variable and function names are in Dutch
*/

#include <Servo.h>

//Servo
Servo servoBloem;

//Time variable
unsigned long startTijd;

//Other variables
int minWaardeBuik = 1023;
int maxWaardeBuik = 0;
int servoGraden = 0; //where the servo starts when turned on
int servoDelay = 30; //speed in which the servo moves

//Booleans
bool ademhalingActief = 1;

void setup() {
Serial.begin(9600);

//Input naar de Arduino
pinMode(A0, INPUT); //Analog input A0 = Input breathing sensor
pinMode(13, INPUT); //Analog input 13 = Input Button

//lampjes
pinMode(5, OUTPUT); //Blue
pinMode(6, OUTPUT); //Red
pinMode(7, OUTPUT); //Green

//Output van de Arduino
servoBloem.attach(9); //Digital output 9 = output servo

servoBloem.write(0); //Sets servo to 0
}

void loop() {

digitalWrite(6, HIGH); //When buttun pushed

//Pressing the button = 1.starting the calibration 2.timer 3.breathing sequence
if (digitalRead(13) == HIGH) {
startTijd = millis();
Calibratie();

//Reset of breathing
ademhalingActief = 1;

AdemHaling(); //call breathing function

startTijd = 0;
minWaardeBuik = 1023;
maxWaardeBuik = 0;
}
}

void Calibratie() { //calibration function

digitalWrite(6, LOW);
digitalWrite(7, HIGH);

while (millis() <= (startTijd + 6000)) { //6 second calibration

int buikAdemhalingMin = analogRead(A0); //reads and sets minimal variable measured
if (buikAdemhalingMin < minWaardeBuik) {
minWaardeBuik = buikAdemhalingMin;
}

int buikAdemhalingMax = analogRead(A0); //reads and sets maximum variable measured
if (buikAdemhalingMax > maxWaardeBuik) {
maxWaardeBuik = buikAdemhalingMax;
}

//prints the measured variable in the monitor
Serial.print(minWaardeBuik);
Serial.print("-");
Serial.println(maxWaardeBuik);

delay(300);
}
}

void AdemHaling() { //breating function

digitalWrite(7, LOW);
digitalWrite(5, HIGH);

//prints the results in the monitor
Serial.print("Resultaat ");
Serial.print(minWaardeBuik);
Serial.print("-");
Serial.println(maxWaardeBuik);

while (ademhalingActief) { //while loop for the breating function, if button pressed, resets to standby (red light)
if (digitalRead(13) == HIGH) {
ademhalingActief = 0; //reset
digitalWrite(5, LOW);
}

while (analogRead(A0) >= (maxWaardeBuik + 5)) { //if breating hits maximum variable measured in calibrate, flower/servo moves to open
while (servoGraden <= 30) {
servoGraden = servoGraden + 1; //the moving of the servo
servoBloem.write(servoGraden);
delay(servoDelay);
}

//prints when maximum variable is hit
Serial.print("Resultaat ");
Serial.print(minWaardeBuik);
Serial.print("-");
Serial.print(maxWaardeBuik);
Serial.print("-");
Serial.print(analogRead(A0));
Serial.print("-");
Serial.print("Bloem open!");
Serial.print("-");
Serial.println(servoGraden);
}

while (analogRead(A0) <= (minWaardeBuik + 5)) { //if breating hits minimum variable measured in calibrate, flower/servo moves to close
while (servoGraden >= 0) {
servoGraden = servoGraden - 1; //the moving of the servo
servoBloem.write(servoGraden);
delay(servoDelay);
}

//prints when minimum variable is hit
Serial.print("Resultaat ");
Serial.print(minWaardeBuik);
Serial.print("-");
Serial.print(maxWaardeBuik);
Serial.print("-");
Serial.print(analogRead(A0));
Serial.print("-");
Serial.print("Bloem dicht!");
Serial.print("-");
Serial.println(servoGraden);
}
}
delay(5000);
}


Wiring Inside Pot

IMG_3011.jpeg
IMG_3012.jpeg
IMG_3014.jpeg
IMG_3015.jpeg
IMG_3025.jpeg
4c4e3ad8-034e-4033-bc85-5ba810e8244b.jpeg
IMG_3127.jpeg

I am not going to lie, for me this was a lot of work. Long evenings of work, but it does work very well.

I first started with soldering the resistors to a PCB (Printed circuit board) 3 for the LED's and one for the breathing sensor (conductive rubber cord) - as shown in the photo - I made 3 wires in the colours of the LED's to digital 5, 6 and 7 in Arduino and one white wire for the breathing sensor to analog A0 in the Arduino on one side.

For the LED's and the button, I soldered the ground together with a 10k resistor beween the red LED and the button (see photo). The remaining wires of the LED's are pulled up creating room for the rest.

Next I connected the PCB, LED, button and Arduino together. Resistors to designated LED's and the breathing sensor resistor to the ground of the LED's. From the end of the ground LED's a wire to ground in Arduino and output from the button to digital 13 in Arduino (from the same place as the connected resistor).

Now for the breathing sensor. The power wire is pulled through the designated hole and split in 2, one goes to the other pin of the start/reset button and one goes to the PCB in the place next to the white wire and connect it to the white wire with tin.

As for the servo, you'll need 3 wires (I used new wires and put them together so I can always sever the lid with servo from the pot). One goes in another ground in Arduino, one goes to digital 9 in Arduino and the last one goes to the voltage regulator out-. From the voltage regulator a wire also goes from out+ to a new ground in the Arduino (now you have all the GND's occupied). I stick the regulator to the side of the pot with adhesive tape.

If you do this without the regulator, I noticed the servo will not have enough power to work its best and the flower has difficulty opening and closing. It will not look and work nice.

Now cut the head off of the adapter and pull the wire next to the cable of the breathing sensor and split the wire and reconnect one to the head of the adapter and one to the switch.

One wire from in- (black) from the regulator also to the head of the adapter. One wire (red) will go from in+ from the regulator to the switch and from the switch to the cut head of the adapter. (see photo)

Now you also can connect the servo to the wires, put the lid on and see if it works.

Leaves and Finishing Touches

IMG_3010.jpeg
IMG_3019.jpeg
IMG_3020.jpeg
IMG_3021.jpeg
IMG_3024.jpeg
6aa23959-58f0-4f6b-b44e-32f4a175dff2.jpeg

This is entirely for your own interpretation and imagination. I did do a bit of iteration, because I noticed the leaves I designed in the beginning did not do well with the mechanic. The leaves were in the way of the movement, so I had to simplify them and made single slimmer leaves that I rotated a bit so they will fit nicely next to each other. After the paper prototype I made 18 foam cuts from the format 8 small and 8 big, and painted them in a colour I liked and dried them with a heating gun.

After the leaves were dry I glued them to the loops with a hot glue gun and smoothed and spread the glue with a hot soldering iron.

After a while I noticed the leaves were bending because of gravity and the paint was creating wrinkles. The solution was to paint them with a thick layer of clear varnish paint and let it dry tied up and with a heating gun.

The rest of the decoration is up to you. I glued a lot of fake flowers to the pot to create more color and cover the rim of the lid. If you want you can also spray paint it or do something else creative with it.

Then its done and the flower will breathe with you!