Sit up straight !!
Inspiration
We set out on our journey to help people fix their postures after spending our first year of university turning our backs into parabolas. After doing some research, we found various studies linking bad posture to orthopedic problems such as pain in the joints, neck, shoulders and lower back. Furthermore, an article published by Harvard Health states that poor posture leads to incontinence, constipation, heartburn, & slowed digestion. On the other hand, having good posture is very important to a person’s quality of life. Good posture centers a person's weight over their feet, which makes it easier for them to maintain comfortable form while performing everyday movements, such as walking, standing up from sitting, using stairs, and carrying heavy items.
What it does
Professor Puddles is a duck-shaped desk buddy that is equipped with a camera, water gun, and speaker. To use Professor Puddles, the user simply has to run our provided code, which will launch our posture-detecting program. Using both the front camera of the laptop and the side camera angle provided by Professor Puddles, our program keeps track of the user’s posture from various angles. If either camera detects bad posture the user receives an initial warning in the form of a notification on their laptop. If the bad posture continues, the consequences intensify. After 15 minutes of bad posture, Professor Puddles will verbally abuse notify the user that their posture is poor. 15 minutes after that if you ignore his final warning, he loses it and spits at you. Surely when you are getting wet you will fix your posture, right?
How we built it
The Python program uses OpenCV to track various points on the user's body and detects when these points exceed standard sitting proportions and sends desktop notifications. The user can view the tracking live and create custom profiles for better accuracy with one click in our Tkinter user interface. In the case you ignore the messages, Professor Puddles is running a server on a Raspberry Pi that the computer connects to wirelessly via socket connection. When it sends the message over this connection saying that you have been a naughty boy or girl and haven't been taking your posture seriously, Puddles gets mad and uses his Python codebase to play sounds and control the servo motor that has been integrated with the parts of a dissected water gun.
Challenges we ran into
It turns out that when you buy something for only two dollars, it functions as if you only bought it for two dollars. Our cheap water mechanism extracted from a water gun slowly began to need more torque from the motor as you used it and the servo motors were too cheap to apply enough force. Even when we made creative designs to maximize the torque and got something that works, over time the mechanism got too stiff and stopped working. By taking advantage of every law of gravity/friction/kinematics that we can, we were able to optimize it to spray just enough to embarrass you.
In the process of building Professor Puddles, one of our motors was fried, resulting in us having to remodel the project. Additionally, having to work with low quality materials to build our project was a struggle but despite our dollar store water gun and duct tape, we persevered.
Accomplishments that we're proud of
Our software is able to detect poor posture very accurately. We would also like to mention that this was the first hackathon for 2 out of 4 of our teammates, and we are very proud of Professor Puddles for winning first place! Finally, we are very proud that we found a way to make computer science students shower. Even if it is just showering in a little bit of duck spit, its better than nothing!
What we learned
- Do not trust anything worth less than $2 (Especially from Dollarama)
- Maybe don't use Tkinter
- Don't make 76 commits and try to make the commit message a different spelling of "monkey" every time. There are only so many variants and with no sleep at 6 am, your unique spellings like "munkee" will have degraded to become just "m". Surely employers won't look at your GitHub right??? 😐
What's next for Professor Puddles
In future variants of Professor Puddles, we are hoping to create a smaller version and work with higher-quality materials. We would also like to work on optimization so it can run in the background with no effect on performance. We plan to do this by only analyzing a frame every x seconds rather than running a continuous window. Also, we can scrap that silly Tkinter UI for a nice tray popup.
Log in or sign up for Devpost to join the conversation.