Assignment 7: Two Hearts Beat as One

Inspiration

We’ve all had the intuition that the music we listen to can affect our heart rate, whether its getting us excited or calming us down, and at least one scientific study has found some evidence to confirm this suspicion. There is even some evidence that we may match heartbeats with our partners when we’re near them.

With this in mind I attempted to create a prototype to play a melody with the goal of encouraging the user to raise or lower their heart rate to match a target.

Setup

The program measures time between beats and translates that into a BPM measurement. This measurement is averaged with the target to create a match beat halfway between the target and measured BPM. As the rates converge the music plays in time with the heart beats of the user.

Beat measurements are simulated with a pushbutton, and a modulated sound output plays an F6 arpeggio at the match rate. F6 was chosen from experience to work well both as an uplifting and calming chord for either raising or lowering heart rate.

Demo

Tech Stuff

The circuit is pretty basic. A button pulls down pin 3 to trigger an interrupt which calculates the time since the last interrupt to measure current heart rate (this represents a heart monitor). Audio output is on pin 13 (with a 100Ω resistor in series), and the onboard RGB LED cycles along with each note in the sequence.

Code and wiring: BeatMaker.zip

 

 

Assignment #7 – Airplane Announcement

Problem: Info monitors on the back of seats in airplanes provide nice-to-have information, such as total flight time, time till destination, and nearby locations on the ground.  These monitors are often visual-only, assuredly to not disturb nearby guests, but this makes them inaccessible to the visually impaired.  Converting this information to audio inside earbuds or headphones would be an easy and unobtrusive fix.

Solution: Because these headrest monitors already have audio jacks, reusing them to communicate this information would be easy using established screen reading tech or more elegant selection methods beyond a touch screen.  This introduces the difficulty of limiting audio, and potentially distracting from important announcements.  This leads to the second possible part of this assignment: making often garbled announcements more understandable for those hard of hearing with this audio jack.  More or less, this all boils down to an interruptable info stream of important flight info.

Solution: The solution is simple, two psuedo-threads of audio, switchable between with a button press simulating a pilot or flight attendant’s announcement.  The “information” like distance to destination is simulated with a tone from a pot right now, since I have no idea about playing samples yet.  Being interruptable lets any outside announcement alert the user to plug in and listen, actually give them the info, or more.

Files + Video

Crit 2 – Stabilizing Device for Tremors

Premise

My family and I struggle with a progressive nervous system disorder that causes an essential tremor that starts in your hands when you’re younger (i.e. me), and migrates throughout your body as you get older (i.e. my mom).

Proposal

For this project I wanted to look into ways to help stabilize things you’re holding if you have a tremor. I made this device that uses an accelerometer to detect movement, and offset that movement by using 2 servo motors to control the x and y rotations.

To do this I researched Quaternions and Spatial Rotations.

There are three different state options: stabilizer: help for when you need to hold something still; pouring: help for when you need to pour something; normal: device does nothing.

Proof of Concept

Because of the complexity of offsetting movements and the fact that I am not knowledgeable enough with physics, I found it really difficult to make the stabilizer and pouring states work together. Hence, the demonstration above only shows the stabilizing state.

Adding to that, I struggled with the adjustment between the relationship of input data and sensitivity/stability of the device. In other words, I didn’t know how to make sure the device doesn’t jitter as much while reading live data. For future iterations, learning how to normalize the input data should help.

Fritzing Circuit Sketch

stabilizer_code