Our project aimed to create a calm, screen-free way to guide breathing and meditation. By analyzing differences between pitch and roll from IMU sensor data, we were able to track users’ breathing patterns in real time. We then synchronized a polarized lens to darken and brighten with each breath, gradually guiding the user through a timed meditation.
Keywords: Wearable, Arudino Microcontroller, Gyroscope/Accelerametor Sensors, C++
Team Members: Brian Bishop with help from Andre Lira, Christina Tang, Fabrizio Guccione, Audrey Oh, Jacob
My role: Coding (C++ in Arduino IDE) and prototyping
Status: Completed Prototype, Github
Process
Inspiration/Initial Research: To have a sensor to monitor the breathing cadence of an individual (Figure A). Then match the breathing rhythms to different colors (Ex: fast is red, slow is blue). There are strokes of color that get displayed on a screen and the color of the stroke changes based on how fast their breathing.
Alternatives:
Prototype: We used the Nano 33 IoT’s built-in gyroscope and accelerometer to detect subtle chest movements from breathing. When placed on the chest, the difference between pitch and roll decreases during inhale and increases during exhale. To capture this data seamlessly, we designed a wearable necklace (by laser cutting a box) that positions the Arduino at the center of the chest. We soldered the arduino and wires on a protoboard to fit it in the necclace.
Pivot to Glasses: We pivoted from a screen-based display to a more immersive, electronics-free experience using glasses with polarized lenses. Two polarized lenses were attached to a servo motor, which rotated 90 degrees to darken during meditation and another 90 degrees to brighten once the session ended—creating a subtle, rhythmic visual cue that mirrors the user’s breathing.
Pseudocode
Testing:
Biggest Challenges:
1.) We discovered that a 9V alkaline battery couldn’t provide a consistent current to power the servo motor. After switching to a smaller servo, the issue persisted, so we moved to four 1.5V alkaline batteries in series, which offered steadier power throughout the session. In the future, we plan to use a lithium-ion battery for improved current stability and longer runtime.
2.) Breath Calibration - Calibrating each user’s breath was another challenge. We implemented a sliding window and threshold method, using 50 IMU readings with pitch/roll variation below 0.5 to establish a stable baseline. The system then detected deeper or slower breaths and prompted users to “slow their breath down.” While effective for most, the system struggled with users who moved frequently or shifted posture.
WorkFlow:
1.) The system calibrates the user’s breath.
2.) The user is guided to take longer, deeper breaths.
3.) The first four extended breaths rotate the polarized lens 90° to darken.
4.) The next four breaths allow the user to meditate without feedback.
5.) The final four breaths rotate the lens 90° back to lighten.
Gif
Video
PlayTest + Reactions:
Documentation
Gif
Full - Sped Up Video
Feedback + Future Directions:
Feedback:
Can teach people how to breath
Coding Breathing Patterns
It fet like the ability to meditate Anywhere
Future Directions:
Could this be grow into a larger ecosystem allowing the participant to go deeper into meditation using other modalities (sound, noise cancelling, lights, haptics, with a partner, wind, etc.). can pressure test this in a noisy environment
Future Imrovements:
Make the box lid have a transparent cover so we can see the debug lights from the closed box
Iterate on the goggles and positioning of the servo and polarized lens
Add a button to help with starting calibration