Tangible Interactions Workshop - Week 1 - Kitchen Timer Prototype


The assignment this week was to develop a tangible interface for setting the time on a clock in addition to controlling one other related function. In class we had talked about some examples of simple, elegant design and I was generally interested in designing some sort of controls that would be as simple (but still intuitive) as possible. However without a clear idea of the specific design or additional feature I would like to add, I hit the internet looking for inspiration.


What I eventually found was this incredible alarm clock designed by Jeremy and Adrian Wright. It is a digital bedside clock with an alarm, and to turn off the alarm you simply flip the whole clock over. I loved this (incredibly tangible) idea of turning the whole device into a button, and I decided to use this concept as a launching-off point. What I eventually realized is that this motion of turning over an object is almost even more intuitive when thinking about a timer. Before timers were digital, sand hourglasses required this exact turning-over motion to begin their countdown. And so as a result, I decided to have my added feature be a timer that would be turned off and on by flipping over the whole device.

When it came to the other controls, I was set on getting comfortable with the rotary encoder that Tom gave us during the first class, and I initially planned on having an additional button as well. This way the rotary encoder would increase or decrease the time or timer value, pushing down on the rotary encoder would put the device into “set mode” so those changes could be made, and the additional button would switch between the time and the timer. I went so far as to build out the circuit board for this set up.

But as I thought more about simplifying the design and streamlining the user experience i realized that there actually was no need for the additional button at all because there was no need for a button to put the device into a mode where the time or timer value could then be changed. Because the dial has no function but to increase or decrease the time, in the final design the user can simply turn that dial at any time to adjust the time values without needing to activate any sort of state change.


Because this was just a prototype, I wanted to find a prefab enclosure that would be compact, tall and narrow and symmetrical. I ended up simply going to the grocery store where I found a baking soda container that was a perfect size and shape. I drilled two holes in it for the USB and the encoder and then spray painted it to make it a more uniform surface. Then I simply stuck my very small breadboard with an Arduino nano and my simple circuit mounted on it in the bottom of the container and closed the top.

Moving forward this project has plenty of work left before I would call it finished. Most importantly it currently only displays the time and timer values in the serial monitor while connected to a computer, so a portable version would be ideal. Its design also needs a lot more polish. And finally, within the code I would hope to implement a way in which the speed at which the user turns the dial actually increases the time value exponentially, allowing for larger value changes in a shorter amount of time.

Arduino project code