Howdy,
This year I decided to make my own version of the HeartSpark which I gave my girlfriend last year for Valentine's Day:
http://www.element14.com/community/blogs/pdp7/2011/02/14/heart-spark-an-open-source-valentine-3
I posted last week about the Open Heart LED display that I assembled:
I've now connected it and a Polar chest strap receiver chip to an Arduino:
By combining source code from the Heartspark and Open Heart, a heart beat animation is played each time a pulse is received:
The receiver chip is a Polar RMCM-01:
http://www.sparkfun.com/datasheets/Wireless/General/RMCM01.pdf
It is the same chip as used in the HeartSpark and works with the Polar WearLink 31 chest strap:
http://www.amazon.com/Wearlink-31-Transmitter-by-Polar/dp/B001J8W5N2
The receiver chip simply outputs a 3V 1ms pulse for each heart beat detected. My scope shows a pulse about every 1,000 ms when sitting which translates to about 60 bpm:
After doing some push-ups, the time between pulses cuts in half which indicates my heart rate has nearly doubled:
The Arduino code prints out the BPM and microseconds since previous pulse, and I found it matches what I observed on the scope. Although I think the code still needs some tweaking, especially for edge cases. I've attached the current version to this blog post.
My plans now are to assemble the Adafruit data logging shield:
http://www.adafruit.com/products/243
I will use it to log the BPM data with a timestamp to a SD card. The data can then be plotted later on a computer.
I'll use the prototyping area on the data logging shield to solder on Polar receiver & components along with a header for the Open Heart. My goal is place the Arduino, shield & Open Heart along with a USB power source (like a Duracell cellphone charger) into an enclosure which my girlfriend can take to yoga and set it near her mat. I'll probably have to add switch to disable the Open Heart animation when needed so it doesn't annoy others.
Cheers,
Drew