Muscle Manager

img_20190207_083929 docu3screenshot_20190207-085348

Github: https://github.com/npyalex/Muscle-Sensor/

Concept

I get headaches often. I clench my jaw when I’m stressed, when I’m focusing, or when I’m nervous. Discussions with many professionals  throughout my life have convinced me that habitual jaw clenching is bad for my teeth, my bones, my muscles, and is major factor in my headaches.

Mindfulness practice has helped somewhat. With increased body awareness I have been better able to notice when my jaw is clenched, and adjust. I then also ask myself “why might I have been clenching my jaw? What here is making me stressed, or anxious, or focused?” With the symptom noticed I am then able to look outward for the cause.

1

I imagined a simple wearable (a hat or band?) that could conceal the sensor-stickers of an EMG muscle sensor. I’ve been enjoying playing around with If This Then That (IFTTT) in another class and having fun with it, and I thought this might be a fun way to integrate it as an unobtrusive opportunity for self-reflection.

My concept, then, was a wearable that detects jaw tension. When the tension is sustained the wearable sends a notification to the wearer’s phone, reminding them that their jaw is tense. No judgement is implied; it is simply a statement of fact. The wearer can self-reflect and adjust as required.

A high sensor reading is sent to Adafruit IO, which triggers an IFTTT applet, which sends a notification to the user’s phone.

Process

After playing with and testing the sensor on various muscles with the help of my friend and colleague Amreen, I wrote some code interfacing with Adafruit IO and commented it for clarity, viewable here.

The code uses the Adafruit Feather microcontroller and Adafruit IO Wifi to connect the board to the internet. I used the Adafruit IO Arduino library and the guide here. Note that the Adafruit Feather won’t connect to 5G wifi networks!

In summary, the code checks every ten seconds to see if your tension is above a threshold. If it’s above the threshold twice in a row (signifying extended tension) it sends a “1” value to Adafruit IO. An IFTTT applet, listening to the feed, sends a notification to the user’s phone with a non-judgemental reminder that they are experiencing jaw tension.

img_20190207_091230

Wiring is simple.  From Getting Started with MyoWare Muscle Sensor from the Adafruit website:

docu4

My code includes an LED so you can have a real-time visual representation of the sensor’s readings. That LED is currently assigned to pin 13, the built-in LED on the microcontroller, so no wiring is necessary.

docu2

The Adafruit IO feed is created automatically when the Feather sends data to it.

docu3

screenshot_20190207-085348

Stumbling Blocks

Everything works in theory, but the fact that the electrodes on the EMG sensor are only good for two or three placements has been an impediment to testing. Early in testing I was able to get values consistently from the sensor, but by the end it was unresponsive and was only delivering the same, very high, result.

docu1

The upshot of this is that the infrastructure of the project – Adafruit IO to IFTTT – can still be tested, and that it works consistently.

Next Steps

More tuning of sensor placement and adjustment of thresholds and timing is required. If this project was to become a wearable it would have to move away from the MyoWare EMG sensor, as the sticker-based electrodes are not feasible for long-term use or use with a piece of clothing.

Thoughts

This is ultimately a very personal self-reflection project, as I have lived most of my life with physical issues caused by or related to jaw tension. I imagine that this system, were it used by other people, would be adapted into a system that manages whatever tension points they hold.

I chose to send a smartphone notification rather than some other form of feedback because the smartphone is ubiquitous, and notifications tend not to draw undue notice. As monitoring one’s body is a personal experience, I would prefer to have the feedback presented in a relatively subtle and unobtrusive way.

The other option for feedback I considered was haptics, but this still felt more obtrusive than I would have liked. A smartphone notification can be ignored or forgotten, while a physical sensation can not. The intention with this piece is to gently remind the user that they’re carrying tension, and communicate that information when the user is ready for it, not to force them to confront it.

References

Welcome to Adafruit IO. (n.d.). Retrieved from https://learn.adafruit.com/welcome-to-adafruit-io/arduino-and-adafruit-io

and

https://learn.adafruit.com/getting-started-with-myoware-muscle-sensor/placing-electrodes

Ifttt. (n.d.). IFTTT helps your apps and devices work together. Retrieved from https://ifttt.com/