Today's Hardware Friday post shows off an interesting usage of an accelerometer and one that for many of use would not only proudly display our hardware building geekness, but also improve our health too!
People who work in technology often spend many hours at the computer, which can make it difficult to maintain good posture. I’ve been advised by a physical therapist to keep my chest high with my head and neck upright. The problem is that fatigue tends to make me slouch. Then my neck is out of alignment, leading to some unpleasant grinding of vertibrae and tension in the shoulders.
The .NET Gadgeteer device in this example uses the Seeed accelerometer module, which can be calibrated with a single function to set the base position that should be maintained. I use a relay module, also from Seeed Studio, to activate a beeper when the Z axis of my posture varies too far from the calibrated normal.
The accelerometer is similar to the sensor in a cell phone that detects whether the phone is in the horizontal or vertical orientation. The methods that the Seeed module supports are more than adequate for this application. There is a method to calibrate the position from which variation is measured. Monitoring the Z axis of the variation is sufficient to detect the kind of slouching I’m trying to avoid. For this prototype I simply attached the accelerometer to my sweater with a safety pin, as shown in the following photo.
This is a second iteration on the device using a Seeed accelerometer as posture sensor that sends alerts when the user’s posture lapses from the position desirable for working extended periods in the seated position. The previous version used a buzzer on a relay circuit as an alert. It produced a sound that could drive one to distraction. This version uses a LED that simply turns red when the user wearing the accelerometer slouches or leans too far from the desirable vertical position.
The modules used in this application are shown in the following screen shot from the .NET Gadgeteer Designer.
Posture Accelerometer Sensor LED Alert
This implementation of the posture sensor is different from the previous version in that it doesn’t require a relay circuit to turn on a buzzer. It uses the GHI Electronics multicolored LED module. It also uses the Seeed OLED Display module instead of the larger and more expensive Display T35 from GHI Electronics.
The application logic is similar in this version to the previous except that it omits the relay circuit and turns on the LED instead of the buzzer. The following illustration shows the working components.
One surprising discovery in this version is that the Accelerometer.StartContinuousMeasurements method has to be set at a lower frequency than the previous version. Having the relay running on the board changed the configuration so that the button could interupt the continuous measurements and turn off the measurements. In this version I found that pushing the on/ off button had no effect until I slowed the rate of continuous measurements.
Come on, what hardware hacker wouldn't want to wear something like that? Now to make it portable, and report posture results to a web site (and tweet them?), maybe some Bluetooth integration to an app, and... and... and...