If you are
reading this you are most likely sitting in front of a computer of some sort,
maybe even slouching into the chair. Often we don’t care about our posture
which can result in back pain and worse. If someone tells you to sit upright this is easy to do, but it won’t hold on for more than a few minutes. Now wouldn’t
it be great to have a device that can remind you to improve your posture?
Ideas
There already are some very intelligent approaches on this topic. One of the best known should be lumoback or lumolift as the new version is called. As far as I understand, they use an accelerometer for a sensor to measure the angle at a certain point of the spine. While these sensors should be relatively accurate, they also need tiny electronics and clever power management to be wearable. Something that is really difficult to achieve with simple electronics and tools.
What is left is making a chair-mounted device. One solution would be using a few pressure sensors on the chair that measure the weight distribution. The downside is that a lot of those sensors are needed for a reliable result. And pressure sensors are not too cheap.
Something that changes significantly between good and poor posture is the position of the head. So what I finally came up with is a device that simply measures the distance to the head.
Hardware
The
simplest distance sensors are ultrasonic or infrared sensors. I went with a SR-HC04
because it is cheap and sufficiently precise. There are no special requirements
to the controller so I am using an Attiny85. A small piezo speaker provides acoustic
feedback to the user. The only thing left is the power supply for which 5V are
needed because of the ultrasonic sensor. You could easily use an USB port but I
did not want to rely on a computer, 3 button cells deliver around 4,5V and
should work for a few days.
Soldering
everything together is very easy, the circuit does not need a single resistor
although the piezo speaker could use one when longer used. The components are
soldered onto a piece of prototyping PCB and some pin headers to connect to
the sensor and power supply.
The whole
device is not mounted directly onto the chair, but is connected to a piece of
fabric that hides the battery and can be laid over the chair’s rest.
Software
The attiny85
is programmed using Arduino and luckily there is no difference in using the
hc-sr04. There are basically 3 modes:
The configuration-mode waits until the user holds his head still and saves the
distance of a comfortable position. After this the watch-mode starts, what
compares the current distance to the saved distance. If your head is too far
away it will sound an alarm. If you get your head back the alarm will stop
immediately. If not the device beeps a few times and then mutes. After some
time it enters standby-mode. This is meant for leaving the device alone, the
sensor reads the distance only every few seconds during this to save energy. If you get back
to your chair the configuration-mode starts again.
Programming this was not too difficult but there
still are some strange bugs I cannot get rid of.
Conclusion
Apart from
the minor software issues, the project was successful. This sensor can easily be built for less than 10$.
But keep in
mind: This is simply meant as a reminder to sit upright, not as a medical
application.