In March, we celebrated the 5th anniversary of our workshop “Sketching with Hardware”. In 7 days, 12 students learnt to use electronic components, to create new creative user interactions and realized their own physical computing projects. The overarching topic for this course was ”Bionics”. Again, at the final presentation the crowd had the chance to experience five extraordinary experience prototypes. During the following days, all projects will be presented on this blog. Today: Part 5, Glowworm Love!
What is it?
„Glowworm Love“ is an ambient room light, consisting of 4 individually colored artificial glowworms. These worms can be combined by bringing two glowworm bodies together. If they like each other, they will mix their color and produce a new color. They will keep this new color even after splitting them again.
This way the user can produce many different colors and create different moods within the room by playfully combining the glowworm lights.
While searching for interesting phenomenons and mechanisms in nature we took a closer look at glowworms (like the ones that can be found inside caves in Australia or New Zealand) and at the way they use the glowing light which they can produce.
The purpose of the glow varies. Some worms are believed to glow as a warning signal to predators not to eat them as they are mildly toxic. Others glow to attract prey. But we found the most interesting usage of the glow to be communication: adult females that glow do so to attract a male for mating.
And with that principle of using light to find and attract the right partners the idea of „Glowworm Love“ was born.
Adapting and adjusting the idea
So we decided to build artificial glowworms. There would be several worms and they would use light in some way to interact with and react to each other. Using different colors for the glowworms would then create some very nice effects and would allow for all kinds of atmospheres to be created within the room.
But how should our glowworms interact exactly?
The idea that came to our mind was to simulate the mating of two glowworms. There should be different colors and/or light signals that would indicate matching and non-matching combinations of worms so that only the „right“ partners could come together and „fall in love“ with each other.
Of course we would not be able to make our artificial glowworms produce little glowworm children so we thought about something else: what if matching glowworms would – instead of producing new glowworms – give birth to a new color of light? This idea was very appealing to us and we decided to go with it.
Color comes into play
To step it all up a little bit we wanted to provide the user with some kind of challenge and generate some learning effect: to do so we derived the rules for matching glowworms from the RGB color model.
This is an additive color model in which red, green, and blue light is added together in various ways to reproduce all sorts of different colors. The name of the model comes from the initials of the three primary colors, red, green, and blue. The RGB color model is used in all sorts of electronic display devices where red, green and blue pixels are combined to all other colors as follows:
the 3 primary colors can be displayed simply by lighting the corresponding red, green or blue pixel. Yellow is produced by combining red and green, cyan by combining green and blue and magenta by combining red and blue. Finally, white is generated by lighting red, green and blue at the same time. Black – which means no light at all – is simply achieved by turning all pixels off.
By gradually mixing all the aforementioned colors it is possible to create all the colors the human eye can perceive.
For our glowworms we decided to stick with the pure primary and secondary colors red, green, blue, yellow, cyan and magenta without gradually mixing them. This makes it possible to have the following rule-set for the combination of worms:
Primary colors can be mixed to get secondary colors. Secondary colors can be mixed back to primary colors again. So red, green and blue worms can be combined. They then both change their color and turn into the secondary color given by the (primary) color-circle.
Furthermore yellow, cyan and magenta worms can be mixed and then both turn into the according primary color, again given by the (secondary) color-circle.
The following graphic illustrates that process for two exemplary combinations:
This implies, that for example a red and yellow worm can not be mixed, because red is a primary color and yellow a secondary (in fact, the mixture of red and green). When mixing two worms of the same color, nothing happens and they do not change.
These rules can eventually lead to configurations, where no matching worms are left to combine. One such combination would be one red worm and three yellow worms in a system of 4 worms in total (worms of the same color can not be mixed, red and yellow can not be mixed either). To solve this problem we needed some sort of mechanism to release the system once it got stuck. So we planned to integrate a reset button to each worm that would change its color back to the original color it had after turning the system on.
One thing we wanted to do as well was adding the possibility to change the brightness of each worm independently to adapt our glowworm lights to different situations – one could make very bright worm lights or dim the worms down to create a more moody atmosphere.
Our final concept
Finally our conceptual system contained:
- 4 individual artificial glowworms
- RGB LEDs within each worm to control its color
- the ability to connect 2 worms and mix their color in respect to the mixing rules
- a reset button on each worm to change it back to its original color
- a potentiometer on each worm to control the brightness of its LEDs
- a micro-controller to run the mixing algorithm and control the LED colors
Building the Prototype
After deciding, what elements and functions we wanted to integrate into our prototype we had to think about how to realize and design the glowworms.
We found that clear plastic spheres would be a pretty asthetic and very practical solution for the glowworm-bodies. A few spheres of this kind attached to each other in a row then form a worm. All technical stuff like LEDs, cables and switches can then be put inside the plastic balls.
This way we got a nice, modular structure that made the process of building all 4 worms quite effective: first we prepared all spheres and built the LEDs and switches separately and then we put everything together in the end.
This straightforward „mass production“ was crucial due to the limited amount of time we had to build the prototype.
The different steps of building the prototype were as follows:
Writing the code for lighting and mixing the RGB LEDs
This was done within the Arduino coding environment. We tested the algorithms by simply connecting some LEDs to the Arduino board directly.
Making the LED stripes for the individual glowworms
As we had no ready-to-use LED stripes in a length that would have fit our design, we had to adapt the RGB LEDs by cutting and soldering them back together as well as adding wires to them.
Making the worm-bodies out of 25 plastic spheres
After we got simple decorative plastic balls from the handicraft store we had to cut holes into the spheres to create places where the LED stripes and all cables could go into and out of every sphere. To cover the inside and make the light emitted by the LEDs more ambient and soft we scratched and sanded the surface of every sphere until it got a white, milky look instead of being fully transparent.
Designing and building the mix-switches
This task was more complicated than expected. Since the system needs to be able to detect which two worms were put together, we needed some mechanism for that.
Due to our limited resources and building material we came up with the following plan:
This 3-point-switch controls 3 seperate electricity circuits. As each circuit can be open or closed we have effectively a 3 Bit encoding mechanism that allows us to distinguish between 8 different states, each one being a combination of open and closed electricity circuits. Since there are 6 different possibilities to connect the 4 glowworms this is a sufficient number of states to clearly differentiate between all possible combinations. We cut the switches out of plastic with a laser cutter and attached 3 metal plates to each one. These plates resemble the contacts for each of the 3 electricity circuits.
Designing the reset buttons
The reset buttons are simple on/off-switches. When the user presses the button, the correspondent worm will reset its color. We found it an interesting and funny idea, to put the buttons on top of some „eye“ of each worm. This way the user feels like „I’m squeezing the glowworm’s eye“ instead of „I’m pressing a button“ which makes for a much more natural and vivid experience. At the end of the day the user shall play around with the glorwworms without thinking too technically.
Enabling dimming of each worm
To integrate the possibility to change the brightness of every worm, we made the RGB LED’s color values dependant on a potentiometer attached to each worm-body. By turning the potentiometer one can change from full brightness to complete darkness and everything in between, since it is an analogous input. Again, we wanted to integrate the potentiometer well into the glowworm-metaphor, so we decided to attach it at the end of the worm-body to represent some sort of tail.
Putting everything together
Finally we had to combine all 4 individual worms by connecting them to the Arduino board and hiding all electric cables and bread boards inside a cardboard box. This way it became possible as well to attach the box to the ceiling and make the glowworms hang down from it.
Values and potentials
„Glowworm Love“ can obviously be used as a fun and eyecatching ambient room light. The number of worms is not restricted to 4. Extending the system would allow for use cases and scenarios only limited by imagination, ranging from small systems with 4 to 6 worms within private rooms (living room, bedroom etc.) to large applications in restaurants or even public places with hundreds of glowworm lights.
Another value of the system is the implied rule set. Mixing light colors is something people are not used to from their everyday life. Everyone has learned how to mix pigment colors like crayons or watercolors, where red and blue create purple, blue and yellow create green and so on. But the RGB color model is different and more abstract and therefore not that intuitive. Surprisingly we realized that playing around with „Glowworm Love“ changed that totally. After a short time we felt that mixing RGB colors was as natural as mixing pigment colors. So there is a great potential in the system to be used as an educational device to illustrate the RGB color model at schools, universities or museums. The fact that „Glowworm Love“ is quite an eye-catcher would draw people to it and encourage them to experiment and learn.
Having build the prototype the upcoming steps would include testing the system in different scenarios with different users and improving and extending it. One thing that should be improved is the detection of worms being mixed. Our 3-point switch was sufficient for this prototype, but another solution where worms could be combined at any point of their body would be nice and worth striving for. Another thing would be reducing the size of the system. Hence this is a rather rudimentary prototype, everything was build from quite huge components and connected via breadboards. Printing circuit boards and using smaller components would reduce the size down from the big cardboard box to a cigarette-box-sized system or even smaller. It would be interesting as well to experiment with different shapes and sizes for the glowworm bodies. Very small glowworms could be created as well as very large ones. There are many more things that could follow building this first prototyp like adding more functionalities to the software to create even more effects or implementing other rule sets for mixing the glowworm lights.
Problems we encountered and tips for upcoming participants of „Sketching with Hardware“
If you plan to use LED RGB strips as we did within your work, have a look at the tutorial that the following link points to:
And do not forget, that you need 3 transistors for each RGB LED! So make sure there are enough there for your work…
Arduno Uno vs. Arduino Mega
We started with an Arduino Uno Board just to realize rather soon that there were not enough pins at all. We needed 12 pins for the RGB LEDs, 3 pins for the reset-buttons and another 3 pins for the 3-point mix-button. And finally we needed 4 analog-input pins for the potentiometers. So do not underestimate the number of pins you need, especially when working with RGB LEDs!