Pulse to P5: First Working Prototype

The components that we ordered for the wearable came in last week. Thanks to Aaron’s pcomp genius, and help from some folks on the floor, we **drum roll** got our first prototype of the pulse data going to a P5 sketch.

(See this post on logistics to learn more about how the hardware works.) When we got the heart rate sensor working, we attached the sensors, then used a Processing sketch of a heart rate to see if the sensor was working. It looked pretty good.

Me wearing sensors.
Wearing sensors attached to the SparkFun Single Lead Heart Rate Monitor and Montenio wireless transmitter.
Initial input. Looking pretty good.
Initial input in Processing sketch. Looking pretty good.

But, when I started moving at all, we immediately got a ton of noise. This is obviously a big problem for our use case.

The input with movement becomes very noisy.
The input with movement becomes very noisy.

Before tackling the noise issue, we got the input from the heart rate monitor working with a P5 sketch. The sketch that we used for this prototype started from one of Moon’s bezier curve examples. With Moon’s help, we’ve been learning how to use radians and bezier curves in P5. It’s been really fun diving into this.

This was a great start, but we definitely have a lot of work to do to get this working well. We’ve done some research on what might be giving us all of the noise on the heart rate.

When we looked back at the datasheet for the heart rate sensor, we realized that there are two settings for the board: one that is very sensitive and assumes a relatively still subject, one that is less sensitive and assumes some movement.

Our board was set up for the first scenario, with the “cardiac monitor” configuration. So, we are working on either reworking our board to have the alternate, less sensitive, configuration, and/or ordering a new board with the alternate configuration from Sparkfun.

Now that we know what the serial input will be like for the P5 sketch, we will continue to build sketches that we would like to include in the final project.

Here’s the code: