Interactive Flowerpot Project Build Guide

by kf21667 in Workshop > 3D Printing

22 Views, 0 Favorites, 0 Comments

Interactive Flowerpot Project Build Guide

final design.png

The Flowerpot is a desktop productivity device designed to help users maintain focus while working or studying. It takes the form of a plant that "grows" or "wilts" in response to the user's behavior. By providing a visual representation of work progress, it encourages users to stay on task for a predetermined period.

Supplies

Before you begin, make sure you have the following components ready:

Component List

  1. Raspberry Pi Zero and associated camera cable
  2. Raspberry Pi Camera module 2
  3. Nema 17 Stepper Motor x2
  4. A4988 stepper motor driver x2
  5. 6V peristaltic liquid pump with associated tubing
  6. DRI0044 2x1.2A DC Motor Driver TB6612FNG or equivalent for the pump
  7. Syringe
  8. Toothed drive belt ISO5296 at least 40cm in length/circumference
  9. M2.5 x 8mm screws x8

Hardware/Tools

  1. Soldering iron
  2. 3D-printer with PLA filament
  3. Stanley Knife
  4. 6V DC power supply

3D Printing All Required Parts

Screenshot 2025-04-26 at 22.23.38.png
Flowerpot.png

1.1 Flower Parts:

  1. Download STL files from GitHub: Flower Files
  2. Parts to print:
  3. 5 × Shaft A
  4. 5 × Shaft B
  5. 5 × Buckles
  6. 5 × Bearings
  7. 1 × Circular Base Disk
  8. 1 × Circular (middle disc)
  9. 1 × Circular Top

1.2 Leaf Molds:

  1. Download the mold STL files from GitHub: Leaf Mold Files

1.3 Flowerpot:

  1. Download STL files for the pot: Flowerpot Files
  2. Suggested dimensions: Width ~150mm, Height ~180mm
  3. Print using PLA filament (may take 25–30 hours depending on printer).


Assembling the Flower Structure

Screenshot 2025-04-26 at 22.35.21.png
Screenshot 2025-04-26 at 22.30.27.png
Screenshot 2025-04-26 at 22.30.40.png
Screenshot 2025-04-26 at 22.30.51.png
Screenshot 2025-04-26 at 22.31.01.png
Screenshot 2025-04-26 at 22.31.17.png
Screenshot 2025-04-26 at 22.33.51.png
Screenshot 2025-04-26 at 22.34.09.png
Screenshot 2025-04-26 at 22.34.19.png
Screenshot 2025-04-26 at 22.34.30.png
  1. Place the circular base disk on the 28/42 stepper motor and secure it with two M2.5 screws
  2. Use M2.5 screws to connect Axis A and Axis B. The hole of axis A is 2.2mm and the hole of axis B is 2.5mm, so the screws can be tapped directly. The picture below shows how they connected, make sure the joint can move freely when tightening the screws.
  3. After assembling the 5 joints, put them into the slots on the circular base disk. Use 3D printed bearings and screws as bearing fixation.
  4. After fixing the 5 joints, open them to the maximum and put the circular in (align the D hole of the disc with the D axis of the motor)
  5. Next, make the support part of the petals. Take a transparent PVC card, draw the shape of 5 petals on the card, and cut them out.
  6. To fix the card, first gently place the buckle into the slot of the joint. After inserting the card, insert the buckle to the bottom.
  7. The last step is to add the origami flower. First, insert a long M3 screw into the hole of circular top to fix the flower. Then insert the three legs of the circular top into the slots on the circular base. The whole flower is assembled.

Origami Tutorials

  1. Take a few longer tissues and overlap them.
  2. Fold forward and backward repeatedly into a long strip.
  3. Use wire or rubber band to fix the middle.
  4. Use colored pencils to paint the edges with nice colors
  5. Unfold each layer of paper carefully. Origami flower done.


Making the Silicone Leaf

Screenshot 2025-04-26 at 22.37.31.png
Screenshot 2025-04-26 at 22.37.43.png
Screenshot 2025-04-26 at 22.37.55.png
Screenshot 2025-04-26 at 22.38.04.png

1. 3D print the molds

First 3D print the moulds for the leaf, using the files in the “instructables files” folder on the GitHub repo. Once the molds have cooled, remove them and make sure to clean off any excess material of fibres that could get stuck in the silicone.

2. Prepare the workspace and materials

While making the leaf, make sure to wear latex or nitrile gloves to avoid staining, and tie back/remove any long hair or loose jewellery to avoid contamination. Find a flat, smooth, clean area to work. You will also need a pane of smooth, flat and clean material, preferably acrylic to hold the molds closed and avoid air bubbles. The materials for the silicone can be found at https://www.smooth-on.com/products/ecoflex-00-30/. Place a ~5kg weight to the side to be used when making the leaf.

3. Preparing the silicone

Remove part A and part B (they are labelled) from the ecoflex kit and remove their lids – making careful note of which is which. You want to avoid any cross-contamination, so always use different tools for each. Using a different stirrer for each, thoroughly but slowly stir the contents of the bottles. Using a balance and separate spoons, measure out 15g of each part into a single beaker, then remove the stirrers and replace the lids. Using a fresh stirrer, thoroughly but slowly mix the two parts together in the beaker. (You can use one of the previous stirrers, but it cannot be re-used with either part without washing and drying). Mixing the slowly prevents air bubbles from forming, which can interfere with the behaviour of the leaf.

4. Pouring the leaf

Place the molds next to each other with the “stems” facing you in the middle of the workspace. Carefully spoon the mixture into each mold. Start by spooning it into the middle, and slowly moving outwards. By letting the silicone spread, it helps reduce air bubbles. You should expect both molds to overflow with excess silicone, to prevent air bubble or holes. Continue until both molds, and their stems are overflowing with silicone. Leave any excess material in the beaker to cure, it can be easily removed like the leaves once solid.

5. Sealing the molds

Place the acrylic pane over the molds. Start by placing it on its side behind the molds, then lower it towards you, so that the far side of the molds is pressed down first, moving towards you. This will prevent any large air bubbles from forming, and the air and excess silicone will be forced out through the stem. Place the weight on top of the acrylic to hold it in place. Leave the molds alone for at least two and a half hours to cure.

6. Removing the leaf from the mold

Once the leaf parts have cured, carefully remove them from the molds. The flat part can be removed by just slowly pulling it out. To remove the part with grooves, repeatedly tug the tips of the leaflets outwards to “unhook” them, and work inwards. Clean and dry the acrylic and set off to the side, as you will need it later.

7. Sealing the leaf

To glue the two halves together, repeat the process from step 3 with 5g of each part this time. Place the large flat leaf part down with the stem facing you, and spoon a small amount of silicone into the centre of the leaf. Spread this out with the spoon to produce a thin, solid film over the surface of the flat leaf. Place the smaller leaf half in the middle of the large, flat half with the grooves facing down. Start by letting the top leaflets rest on the base, and lower the rest down, not dissimilar to the acrylic. Once in place, use a small spoon to carefully smooth the remaining silicone around the boundary of the two leaf halves. You should expect it to seal the end of the air channel between the stems. Once sealed, place the acrylic back on top again, and place the weight on top to keep it in place. Leave for another two and a half hours to cure.

8. Final touches

Once cured, use a stanley knife or scalpel to carefully cut away any excess silicone around the leaf. Once the leaf in clean, insert the syringe into the air channel in the stem. The leaf is now complete, and can be added to the flower.

Assembling the Flowerpot

  1. Mount the Raspberry Pi and motor assembly into the 3D-printed flowerpot.
  2. Ensure cable management to allow clean movement of the flower and leaf.


Setting Up Electronics

  1. Connect stepper motors to A4988 drivers.
  2. Connect the liquid pump to DRI0044 motor driver.
  3. Connect the Camera Module to the Raspberry Pi.

Power everything with a 6V DC power supply.

Installing and Running the Code

Screenshot 2025-04-26 at 22.41.49.png

Raspberry Pi 4B

- Main Control Thread: Coordinates module operations (main.py)

- E-ink Display: Renders dynamic clock/expressions (uses epd3in7 driver)

- Motor Control: Synchronizes 3 motors (RPi.GPIO implementation)

- Camera Capture: Acquires 240×180 images via libcamera-jpeg

- Network Detection: HTTP POST to backend (detection_loop() function)

Backend Server

  1. YOLOv5: Optimized ONNX model (320×320 input)
  2. Detection Result: Returns binary "yes"/"no" response

Code Repository: https://github.com/UoB-Interactive-Devices/ID25-TeamM-The-MasterMinds.git

Running the Flowerpot

1. Power up the Raspberry Pi

Once the assembly process is complete, power up your Raspberry Pi. You can do this by connecting the power supply to the Raspberry Pi's power jack.

2. Verify Functionality

After powering up, take a moment to verify that everything is functioning as expected. This may involve checking the Raspberry Pi's LED indicators and ensuring the Waveshare display turns on.

3. Download Source Code

The next step is to download the source code for the flowerpot application on to your Raspberry Pi. You can download the code from the following GitHub repository: https://github.com/UoB-Interactive-Devices/ID25-TeamM-The-MasterMinds.git

git clone https://github.com/UoB-Interactive-Devices/ID25-TeamM-The-MasterMinds.git

4. Edit the Source Code (server.py & merge.py)

To deploy the system, first connect your computer or host device to the same local network as the Raspberry Pi. Locate the server.py file on your host machine and modify the host parameter to specify the Raspberry Pi's IP address, while noting the designated port number - this will configure your primary server endpoint for receiving data transmissions. Then access the Raspberry Pi and open the merge.py client script, where you must update the requests.post endpoint URL to match the server's IP address (the address of whichever device is running the server.py instance). This completes the bidirectional network configuration between your Raspberry Pi client and the host machine server.

The complete deployment requires two specific code modifications: in server.py set the host to the Raspberry Pi's IP

(e.g., host = '192.168.1.100')

and in merge.py update the POST request URL

(e.g., requests.post('http://192.168.1.100:5000/detect', ...))

Verify both devices maintain persistent network connectivity throughout operation, and confirm the specified port remains accessible through any local firewalls.

5. Run the Flowerpot Code

Python3 merge.py