Friday, July 6, 2012

A very simple Heart Rate monitor

I got from brother in law stationary bike. It is old but in excellent condition. I ride it for a quite a while and I'm using watch with heart rate monitor because bike does not have one. Heart rate monitor in watch has many advantages, but it lacks a few features I wanted it to be available during cycling.

First of all, I wanted such parameters  to be constantly visible on the screen: 
- Heart Rate
- Current % of maximum Heart Rate 
- Total number of burned calories 
- The amount of time spent in each of the three zones (fat burn, fitness, performance)

Project assumption 
The design have to be simple. Very simple. With the smallest possible number of elements. For the central unit I chose immortal Arduino. The transmitter module is a BM-CS5SR (I bought it when I was buying ezChronos watch), while the receiver is a BM-MM5 (both available here priced at EUR 49 and 29 respectively). BM-MM5 receiver is available in two versions, SPI and UART. I chose the UART option. 

Circuit diagram is very simple. Is limited to a few elements. ATmega328 (where I have uploaded the Arduino bootloader), the receiver module BM-MM5, three buttons (UP, DOWN, ENTER / ACK), plus a few elements to allow the receiver to talk to the microcontroller (3.3V voltage regulator, two transistors to convert the voltage levels of the RX and TX line and a bunch of resistors and capacitors [all resistors are 10k, capacitors 0.1uF and polcap is 10uF]).

The program is not finished yet (and probably has many errors) - but I decided to publish it anyway, if someone was thinking of building his own HR monitor will have the basis for its modification. 
90% of the code is screen menu. The rest are functions to receive pulse, calculate the displayed values and driving the display itself. 
Enclosure is made from Plexiglas. Unfortunately I do not have near by the workshop which would be able to laser cut the plexi to size I wanted, so I took a hand saw and I did what I could. 
As it came out - judge yourself.

Transmitter 49 EUR 
Receiver 29 EUR 
ATmega328 3 EUR 
LCD display 5 EUR
rest of the elements ca. 3 EUR

Eagle files + source code for Arduino

No comments:

Post a Comment