PostureUp

postureup

Context

As we spend more and more time on computers, especially laptops, whether for entertainment or work, the long and dreadful list of injuries and syndromes keep getting longer and more real. Maintaining a bad posture for too long can cause injuries that in some cases can be chronic and extremely painful. So, building on that logic, the need for creative solutions for workstations and workstyles to maximize productivity and minimize side-effects has never been higher. As a result of this, I decided to use assignment 4 as an opportunity to explore what I believe the right approach is and build a prototype of that tool based on my own requirements and expectations.

Eventually, I decided to create a wooden laptop stand that raises the laptop about 15-inches off the tabletop, which allows the user to raise their heads and keep their neck at a healthier angle. In addition to that, it is highly recommended to take regular breaks while working for long hours to stretch, or use a toilet, etc. So, in addition to improving the user’s posture, I also added 14 LEDs at the bottom of the stand to communicate to the user that their work session is done, and it is time to take a short break. Similar products exist in the market, however, this is a DIY solution that anyone can re-create at home easily and without the need to spend a lot of money.

Assembled
Assembled

Link to Video

Link to Code

 

Objective

The main goal for this assignment is to use an ambient information system that acts as a timer for work sessions. To achieve that, I added an LED strip of 14 LEDs that would communicate to the user, through colour, that the 1-hour work session is finished and it is time to take a break. I decided to follow Pousman et al’s guidelines for the ambient information system in order not to interfere with the user’s focus and get their attention when needed.

In addition to that, another main objective of this project is to make sure it can still be considered a DIY project that can be disseminated online and shared with makers around the world. To be a successful DIY project, in my opinion, it has to be scalable to fit people’s needs and capabilities.


Design Process

Initial sketch
Initial sketch

First, I started by figuring out the dimensions of the stand. I decided to raise my laptop screen by 15-inch because that was sufficient for my desk to keep my neck at a healthy angle rather than keep bending it downwards, which the usual posture using a laptop. For the dimensions, I decided to go with a size that fits a 17-inch laptop screen, I own a 15-inch MacBook Pro, which is sufficient for most laptops available today.

Fabrication
Fabrication

I decided to use wood because durability is something I care about deeply as a designer and wood is both strong and durable. Also, this stand will be used on tabletops and since most tabletops are wooden, a wooden stand is more consistent and less distracting to look at while working.

I decided to create a 4-legged rectangular stand because the four legs ensured four fixed points which are needed when using a laptop. After some trial and error, I realized that for a laptop stand, it is much better to rely on four legs because with 3-legs, the laptop was not stable enough and when both hands are used, can become really unstable.

A diagram of the circuit I used to build this tool
A diagram of the circuit I used to build this tool

After building the stand for the laptop, I started preparing to install the LED strip at the bottom. At first, I was just going to glue the LED strip to the bottom of the stand, however, after some trial and error, I noticed that the LED light are too overpowering based on Pousman et al’s guidelines. So, I decided to build a base for the LED strip that tilts the LED light inwards and deflects the light from the user’s foreground to the background.

Coding this device was a real challenge for me because, until this assignment, I have not been able to fully back an LED strip. With the help of Adafruit’s NeoPixel library, I was able to define each LED in the strip and give it different values at different times. Originally, I wanted to blend the colours and have them slowly change over time, I could not figure it out and after long trials, I decided to use a different approach.

For testing purposes, I have another set of intervals made of 2 seconds each
For testing purposes, I use a testing set of intervals made of 2 seconds each
A selected colour had to be assigned for each interval by assigning a colour to each LED in the strip at each step
A selected colour had to be assigned for each interval by assigning a colour to each LED in the strip at each step

Using Illustrator, I identified a specific spectrum of colours that I want to use to communicate time. Then I divided the hour into 12 intervals and assigned a colour for each interval. Starting with greens then blues then magentas, the user can tell in which third of their work session they are in and roughly how long they have until it is time to break. In the code, each interval was assigned 300,000 ms duration and a colour and using the “millis“ function, the program switched from the first to the last colour over an hour period.

 

Tools & Materials Used

Wood

Arduino Uno

LED Strip – 14 LEDs

worksheet

Challenges

The biggest challenge I faced with this project was hacking the LEDs fully. My aim was to assign two colours for the beginning and end of the duration and have the Arduino program blend between those two colours. However, after constantly trying, I decided to give up on that idea and pursue something more tangible and achievable.

 

Critical Analysis & Future Steps

In general, I am happy with the results of this experiment considering the requirements and expectations I set at the beginning. However, the choppy colour change between the colours is distracting and does not meet my requirements for this tool. So, I plan to continue looking into more ways to control LED strips, and find more blending options. When I tried to use the Adafruit NeoPixel library, my attempts to repurpose it for this project did not work.

Also, I want to consider looking into covering the LED with an acrylic sheet or another material in order to hide the strip and smooth out the light.