As single households are on the rise, discussions about a loneliness epidemic was a serious subject before the pandemic, everything got worse with physical distancing. While the health risks of loneliness are difficult to quantify, the issue is real. While we are not designing a solution, we hope to have a product that helps people feel more connected and encouraging interaction.
We have a vision to make people feel more connected. Bloom provides its users with a physical presence, based on remote movement. Even though your partner, friend or grandchild cannot be there physically, Bloom provides a reassuring and non-intrusive presence.
Both users place a bloom in their homes. If your Bloom lights up and starts moving it means that your loved one is home and close to their lamp. You can thereby feel each their presence. The same goes for the other user when you are close to your Bloom.
Bloom is easy to use for people of all ages. If you wish to further personalize the experience, it is possible to sign up in an app interface and alter settings such as how the color of the light is displayed and how fast the blooming motion is. The settings you choose will be applied on the partner product. This means that the product can be enjoyed by people who might not be technologically fluent.
The Prototype
As we developed the prototype, we worked on different areas simultaneously, before integrating all elements in the final result. Overall, our work can be divided into three different areas; developing a mechanism that moves the petals, developing the electronics and code, and developing the visual expression of the product. The result of our work is described below.
Moving the Petals
For the opening mechanism, we started with cardboard mock-ups and gradually moved on to 3D-printed parts. The first quick and dirty mock-ups gave us rough proof of concept while the 3D parts where crucial later on in the process when we needed sturdier prototypes with higher strength and smaller tolerances as described in this blog post. An important aspect in all our prototypes was that they should be easy to assemble and disassemble, so that we could alter them continuously and reuse many of the parts in the next generation prototype.
With our mechanism of choice, the rotational movement of a stepper motor is translated into a lifting movement of five arms, which are connected to a (rotating disc via strings)[]. The strong points of this solution is that many of the parameters are easy to adjust, which allowed us to try out many different versions throughout the project. The speed of the movement follows a sine curve, which makes the movement of the lamp soothing and organic. We have also integrated gearing. Gearing enables use of the full power of the stepper motor, while still achieving a slow unfolding of the lamp, and reduces the noise significantly. A switch is integrated as well, to ensure the mechanism doesn’t rotate too far.
Coding and Communication
The functionality of bloom is made possible by controlling hardware with Arduino using NodeMCU and NodeRed. Communication between partnering lamps goes through NodeRed, which is also in charge of the user interface. The user interface is the main hub for bloom’s customization. Through the user interface bloom brings a customizable journey with vast color options and opening speeds. The sensor attached to the NodeMCU sends a signal through MQTT to NodeRed which sends a signal back to the MCU telling bloom to bloom or fade as well as the user's chosen settings. A basic communication test was used in our early stages. The user’s settings are stored in a global variable array in NodeRed, which is called upon whenever the sensor sends a signal to tell bloom if it should bloom or fade, this way the user settings can be changed on the fly and take effect immediately as you apply your changes. bloom is intelligent and knows when to not be active. After 60 seconds of inactivity from the sensor, bloom will automatically close itself and go idle. The architecture is designed to store most of the variables and settings in NodeRed as written about in this blog post This also ensures that bloom has more flexibility in implementation and process information more dynamically.
The hardware is all controlled by Arduino, accepting settings and instructions from NodeRed. The settings stored in the data array from NodeRed are sent to the Arduino, where the Arduino handles the information through switch cases. The data arrays from NodeRed are sent to the Arduino, which handles how the stepper motor should move and LED’s should light according to the user’s settings stored in the data array. The Arduino makes sure that every phase of bloom is controlled properly using the stepper motor. The LED’s are made sure the effects work properly by Arduino as well, changing the lighting colors or patterns. Every time the user updates their settings, the local variable is redefined according to the data changes in the array.
The Aesthetics
Since Bloom is an interactive lamp, the look of the product is a big part of its functionality. We have been through many iterations of the overall shape of the lampshade, and made prototypes out of garbage bags, silkpaper, printer paper and finally sheets of thin translucent plastic. We wanted the lamp to resemble a flower, but at the same time achieve a classic design, that would complement the interior of many kinds of homes.
Our solution consists of five petals, folded in a manner that displays the tradition of Danish design with a modern twist.The petals create an enclosed dome, which are slowly separated as bloom does its thing. The thin stiff plastic, as well as the folding technique, enables bloom to have no outer support, thereby providing a clean look. A folded bud hides the electronics and diffuses the light of the LED’s throughout the lamp.
Reflections for Future Improvements
To further improve our product, we would like to add a touch feature which makes the product light a certain way or increase the intensity of the light as the partner touches bloom. We would like to expand the number of users there can be connected to the same device so there could be more than two users connected. Additionally, the mechanism could easily be optimized and iterated upon further.
From the beginning we have had this in our mind and have designed the architecture of the code in a way this would be easily implemented Architecture of the code. Finally we would develop the hardware further. As breadboards are good for testing purposes it does not belong in a finished product for consumers. For the stability and reliability of our product we would therefore like to implement our hardware onto a PCB as discussed in our final hardware post.
Bill of Materials
The current BOM is based on bulk purchase where the parts we bought are bought with a discount of 60% off. It provides a rough overview of the cost of the product but it is necessary to improve the list to get a better approximation of the final selling price. To do this, it is necessary for us to get closer to a final design of the whole product to map all components present in the product. Next step would be contacting suppliers and getting a good price for bulk purchase. Finally with an upscaling of the production we would contact manufacturers.