본문 바로가기
아두이노 센서

[센서/심박] 광학식으로 심박수를 측정하는 Pulse heart rate sensor

by 작동미학 2015. 4. 1.
반응형

센서를 통해 심박수를 얻어 출력하는 예시

 

▶ 이 가이드를 따라하면,

- 심박 센서(pulse heart rate sensor)를 사용할 수 있다.

- 시중 웨어러블의 대표적인 심박 측정 방식을 이해할 수 있다.

 

▶ 부품 설명 및 회로 구성

심박 센서는 흥미로운 센서 중의 하나이다. 대략 $9 정도면 구할 수 있는 이 센서는 사실은 조도 센서와 동일하다. LED로 약하게 빛을 내뿜고, 반사되는 빛의 양을 측정하는 것이 이 센서의 기본 동작이다. 이 빛의 양을 전압으로 바꾸어 출력을 내준다.

아니 이것으로 어떻게 심박을 측정하지? 원리는 피가 잘 보이는 피부 표면에서, 심장이 박동될 때 혈류가 달라짐으로 인해 이 빛의 반사 양이 바뀐다는데 있다. 작은 변화지만 이 크고 작음을 측정하면 심박을 알아낼 수 있다. 물론 잡음이 다소 끼어있으므로 높고 낮은 부분을 잘 파악해야만 측정이 가능하다. 이건 쉽지 않으므로 역시 공개된 소스를 사용하자.

<심박 센서 Arduino 연결. +à5V, -àGND, SignalàA0 로 연결한다>

전원이 연결되면 곧바로 센서 중앙의 LED가 빛난다. 출력 핀을 Arduino의 A0로 연결한다. 이는 전압측정을 위한 연결이다.

<심박 센서의 앞뒤면 구성>

 

▶ 소스 코드 및 설명

여기서는 http://pulsesensor.com/pages/code-and-guide 를 참조하도록 한다. 소스코드는 https://github.com/WorldFamousElectronics/PulseSensor_Amped_Arduino 에서 받을 수 있다. 해당 소스는 별도의 라이브러리를 필요하지는 않고 소스코드 폴더에 상기 다운받은 소스 중 PulseSensorAmped_Arduino_1dot4폴더를 통째로 복사하자(윈도우의 경우는 아두이노 소스 코드 폴더는, 문서폴더\Arduino\ 에 존재)

컴파일하여 아두이노에 업로드하고, 실행 후 시리얼 모니터를 띄우자. 센서를 적절히 몸에 가져다 붙이면 S값(실제 조도센서 값)이 출력되다가 파형이 잡히면 B(분당박동수)가 출력된다. 아래 그 결과를 보자.

<시리얼 모니터 출력 화면>

B??가 출현할때마다 UNO보드의 LED가 깜박일 것이다. 당신의 심박이다. 참고로 Q뒤의 수치는 심장 박동간 시간간격(ms)을 의미한다.

이러한 결과를 얻기 위해 과연 센서는 어떻게 가져다 붙여야 할까? 테스트 결과 귀 아랫볼이 가장 좋다. 조도센서 영역을 귀 아랫볼에 가져다 붙이면 되는데 너무 가깝게 붙여서 센서가 귀에 붙으면 곤란하다. 그래서 영문사이트 가이드에는 센서 위에 얇은 셀로판지를 붙이라고도 되어 있는데, 여기서는 그냥 남은 투명 비닐을 살짝 대고 이후에 귀에 붙였다.

<투명 비닐을 댄 후, 귀 아랫볼에 가져다 대자. 귀에서 수mm정도 떨어져야 조도 센서가 반사 빛을 감지한다>

<이해를 돕기 위한 심박파형 모양/pulsesensor.com 발췌>

필요에 따라 상기 소스를 가져다가 응용하면 간단한 심박측정 웨어러블을 만들 수도 있겠다. 조금 더 매니아라면 LED와 조도센서를 가지고 이 심박센서를 직접 만들 수 있다. 아이폰은 카메라와 조명용 LED가 가까이 있는데, 손가락을 LED도 가져다 대고, 이를 카메라로 조명용LED반사값을 읽어 심박수를 측정하기도 한다. 같은 원리를 사용한다.

 

▶ 구매 가이드

심박센서 : http://www.aliexpress.com/wholesale?SearchText=pulse+heart+sensor+arduino

 

강의 키워드

아두이노 심박센서, Arduino pulse heart sensor, 아두이노 심박측정

 

반응형