Having lived in "unprecedented" times for over a year now, we have all started working from home a lot more. Knowing that is such an irritating experience, we decided to make it all the more annoying but with a good intent - to correct bad posture and keep procrastination at bay.
What it does
It's a villainous chair with super powers (but no different to your annoying little sibling). It detects when you are slouching and/or procrastinating and brings down God's fury on you, albeit a God who likes to create minor inconveniences in your life.
In more technical terms, a velostat pressure sensor in the back of the chair detects when your posture changes. This pressure sensor causes the arduino to detect a slouch and as long as you slouch, the chair pokes you with a little, pointy cardboard arrow while beeping continuously. It also keeps track of what websites you are visiting on your laptop through an apple script to know when you sneak off to advertise your profound lockdown thoughts on personal data hogs such as Messenger, Twitter, Facebook or WhatsApp, amongst other sites.
This script, through a Python intermediary, triggers the Arduino to start being a pest again. At the same time, it also monitors how long you are on the site to get your computer to make it a team effort to annoy you. The computer's taunts get more annoying the longer you remain on a site. It stops taunting you as soon as you navigate away. We used Google Cloud Platform's text to speech service to accomplish this and devised our own poisonous taunts to wound our egos. As a last resort, when the warnings have not worked, it will tweet your activity out for the whole workd to see, at https://twitter.com/TheIPChair/.
How we built it
Key ingredients on the hardware side, like any professional product, were blue tack and sellotape. We used an Arduino Uno alongside a servo and 3D printed clamp and arm. The pressure sensor was made using a combination of velostat, cardboard and copper foil. Every hardware bit on the chair was held together by generous use of blue tack (shown in the images).
The software side was a combination of arduino, shell, apple and python scripts. The arduino script communicated with the pythons script over a serial interface to listen for prompts to trigger the chair. The python script used multithreading to asynchronously monitor procrastination events and play the taunts while keeping an eye on the user's shenanigans. It also uses the Tweepy API to shame you on Twitter. The apple script was used to get information on the websites in use.
Challenges we ran into
We had a lot of servo issues since our continuous servo was proving to be very inaccurate and overstepping the distances it had to move, often deciding to go for a free spin and take all the hardware on the back of the chair down with it.
We had no alligator clips and/or solder to connect to the copper foil, so we had to improvise a lot with blue tack and jumper cables to get a reasonably secure connection.
We also had to use a flexible wire to get an approximate design for the clamp that holds the servo at the top of the chair.
Apple throwing a wrench in our plans due to its hyper-vigilance of MacOS.
Accidentally exposing API credentials on Github and letting rogue actors mine bitcoin for a bit.
Accomplishments that we're proud of
We have actually managed to build something that our friends and family members would want to use despite how annoying it is.
It has achieved an almost Pavlovian effect on correcting my posture and procrastin ......
What we learned
- We learnt a lot about using servos and the factors that influence its performance.
- We attempted 3D modelling at a hackathon for the first time.
- Don't tempt fate with exposed API credentials.
- It's hard to come up with an impractically practical project and stupid ideas. Much harder than hacks that do good.
What's next for Impractically Practical Chair
Currently trying to decide between building a feature where too much procrastination locks your laptop and you have to enter your password using morse code by moving your laptop lid up and down or rm -rf impractical-hackers-project.
But if it gets traction, we might add more annoying features like where it squirts cold water down your shirt.
As much as we'd like to demo it live, it's going to be hard to do a setup in 2-3 minutes where the screen can be shown and heard alongside the arm poking.