1. 심박센서 원리 

 

심박센서는 LED불빛을 손끝에 비추고 여기에서 반사되는 빛을 측정하는 방식이다. 심장이 박동되어 손끝에 피가 흐를 때에는 세포에 혈액세포에 빛이 흡수되므로 반사되어 측정되는 빛의 감도가 감소되고 이에 따라 저항값이 변동되므로 흐르는 전압도 변화되게 된다. 이 전압변화를 증폭시켜 펄스로 인식하고 심장의 박동으로 인식하는 것이다. 통상 저가의 심박센서는 녹색LED 하나를 사용하지만 여기에 적외선LED를 추가하고 적외선 반사량을 측정함으로써  혈중산소포화도 측정 용도로 사용하기도 한다. 

 

 

2. 심박센서의 구조 

 

심박센서는 전면에 LED전구와 수광센서가 나란히 배열되어 있으므로 이위에 손가락 끝을 올려놓고 측정하면 되고, 통상  3개의 단자가 있는데 전원공급용 +, - 단자와 신호수신을 S단자가 있는데 이 S단자에 출력되는 신호를 아두이노 등에서  아날로그 신호로 읽어 해성하면 된다. 

 

3. 심박센서 사용을 위한 Library설치 

 

아두이노 IDE에서 스케치 -> 라이브러리 포함하기-> 라이브러리관리 화면에서 Pulsesensor를 검색하여 설치하면 된다.  

 

  

4. 심박센서 작동 예제   

 

Pulsesensor 라이브러리를 설치하고 파일 -> 예제 메뉴를 보면 다음과 같이 pulsesensor 관련 예제들이 포함되어 있는것을 확인할 수 있다. 

 

 

예제 중 가장 간단한 GettingSstartedProject를 선택해서 실행시켜 본다. 

 

/*  PulseSensor™ Starter Project and Signal Tester
 *  The Best Way to Get Started  With, or See the Raw Signal of, your PulseSensor™ & Arduino.
 *
 *  Here is a link to the tutorial
 *  https://pulsesensor.com/pages/code-and-guide
 *
 *  WATCH ME (Tutorial Video):
 *  https://www.youtube.com/watch?v=82T_zBZQkOE
 *
 *
-------------------------------------------------------------
1) This shows a live human Heartbeat Pulse.
2) Live visualization in Arduino's Cool "Serial Plotter".
3) Blink an LED on each Heartbeat.
4) This is the direct Pulse Sensor's Signal.
5) A great first-step in troubleshooting your circuit and connections.
6) "Human-readable" code that is newbie friendly."

*/


//  Variables
int PulseSensorPurplePin = 0;        // Pulse Sensor PURPLE WIRE connected to ANALOG PIN 0
int LED13 = 13;   //  The on-board Arduion LED


int Signal;                // holds the incoming raw data. Signal value can range from 0-1024
int Threshold = 550;            // Determine which Signal to "count as a beat", and which to ingore.


// The SetUp Function:
void setup() {
  pinMode(LED13,OUTPUT);         // pin that will blink to your heartbeat!
   Serial.begin(9600);         // Set's up Serial Communication at certain speed.

}

// The Main Loop Function
void loop() {

  Signal = analogRead(PulseSensorPurplePin);  // Read the PulseSensor's value.
                                              // Assign this value to the "Signal" variable.

   Serial.println(Signal);                    // Send the Signal value to Serial Plotter.


   if(Signal > Threshold){                          // If the signal is above "550", then "turn-on" Arduino's on-Board LED.
     digitalWrite(LED13,HIGH);
   } else {
     digitalWrite(LED13,LOW);                //  Else, the sigal must be below "550", so "turn-off" this LED.
   }


delay(10);


}

예제프로그램을 실행시켜 보기 위해서는 +,-전원단자를 연결하고 S단자에서 나온 케이블을 아두이노 A0 (아날로그 단자 0번) 단자에 연결한다. 

 

프로그램을 LOAD하고 녹색LED 불빛이 보이는 쪽 위에 손가락을 대고 있으면 심박 작동에 따라 아두이노 내장LED가 깜박깜박하는 것을 확인할 수 있다. 

 

아두이노 IDE에서 툴 -> 시리얼 모니터를 선택해서 보면 다음과 같이 심장박동을  챠트형태로 확인할 수 있다. 

 

심장의 박동수는 위 파형의 피크값 사이의 시간 간격을 계산하여 1분에 볓번 발생되는지 산출한 숫자인데 예제 중 Getting_BPM_to_Monitor 프로그램을 실행시켜 표시해 볼 수 았다. 

 

 

5. 평균 심박수 

심박수는 운동 또는 긴장상태에서는 빨라지고 편안하게 안정된 상태에서는 느려진다. 남녀구분이나 나이에 따라서도 달라지는데 휴식기의 평균 심박수는 다음과 같다고 한다. 

 

  

1.  아두이노 마이크로(Micro)

 

아두이노 프로 

아두이노 마이크로 (Arduino micro) 기종은 아두이노 레오나르도(Leonardo) 기종을 소형화한 모델로서 ATmega32u4라는 메인 칩을 사용하고 있다는 것이다. 기능상 가장 큰 차이는 USB통신기능이 내장되어 있어 USB마우스나 USB키보드로도 인식될 수도 있다는 것이다.

 

즉, 아두이노 마이크로를 USB키보드처럼 작동되게 하여 PC에 연결되면 자동으로 암호를 입력하게 한다든지, 특정 명령어 입력이 자동으로 키인되게 할 수 있고, USB 마우스의 동작을 아두이노 프로마이크로를 시뮬레이션하는 기능을 개발할 수 도 있다.

 

2.  아두이노 프로 마이크로( Pro Micro)

아두이노사의 오리지널 아두이노 마이크로와 동일한 프로세서를 사용하고 비슷한 성능을 가지지만 조금 다른 모양으로 미국 Sparkfun사에서 나온 기동이 아두이노 프로 마이크로이다.  

 

아두이노 프로 마이크로 

이 아두이노 프로 마이크로 동일한 형태로 중국산 클론이 제작 판매되고 있고, 통상 주변에서 쉽게 구할 수 있고 많이 사용하는 것이 아래와 같은 아두이노 프로 마이크로 클론 제품이다.    

 

아두이노 프로 마이크로 클론

 

3.  아두이노 프로 마이크로오 유사한 아두이노 기종 

아두이노 나노
아두이노 프로미니 

아두이노 우노를 소형화 한것이 아두이노 나노이고 이것을 조금 더 간략화 한것이 프로미니이므로 이 기종들은 아두이노 우노에서 파생된 것이지만 아두이노 마이크로는 아두이노 레오나르도에서 파생된 것으로 ATmega32u4라는 메인 칩을 사용하고 있다는 것이다.

 

 

4.  아두이노 마이크로 사양 ( 나노와의 비교) 

  Arduino Micro  Nano
Processor    ATmega32u4 processor   ATmega328 processor 
Voltage provided to processor  5 V.  5 V.
EEPROM 1 KB. 0.51 KB.
Flash size 32 KB. 32 KB.
SRAM  2.5 KB. 1 KB.
Total digital input/output pins  20. 22.
Number of analog inputs 12.  8.
Board size length (in mm)  48  X 18 mm. 45  x 18 mm.
Total PWM enabled pins  7.  6.
Clock (MHz) 16 MHz. 16 MHz.

 

5.  아두이노 프로마이크로 PIN LAYOUT

 

             

6. 사용방법

아두이노 IDE에서 툴 -> 보드에서 "Arduino/Genuino Micro" 를 지정하고 사용하면 된다  

 

 

7. 예제 프로그램

 

아두이노 프로 마이크로에서 USB 키보드 기능을 제어하는 샘플 프로그램을 Test해 보기 위해서 예제 -> USB -> KeyBoard -> KeyboardSerial 을 선택하여 로드.

 

 

 

/*
 Keyboard test

 For the Arduino Leonardo, Micro or Due

 Reads a byte from the serial port, sends a keystroke back.
 The sent keystroke is one higher than what's received, e.g.
 if you send a, you get b, send A you get B, and so forth.

 The circuit:
 * none

 created 21 Oct 2011
 modified 27 Mar 2012
 by Tom Igoe

 This example code is in the public domain.

 http://www.arduino.cc/en/Tutorial/KeyboardSerial
 */

#include "Keyboard.h"

void setup() {
  // open the serial port:
  Serial.begin(9600);
  // initialize control over the keyboard:
  Keyboard.begin();
}

void loop() {
  // check for incoming serial data:
  if (Serial.available() > 0) {
    // read incoming serial data:
    char inChar = Serial.read();
    // Type the next ASCII value from what you received:
    Keyboard.write(inChar + 1);
  }
}

 

35 Line에서 시리얼로 입력 받은 문자를 37 Line에서 다음 코드 문자로 변환하여 키보드로 출력해 준다. 즉 , 시리얼 모니터를 띄워 놓고 숫자를 입력하면 다음 숫자로 변환되어 현위치(키보드 커서가 있는)에 표시된다.   

 프로세서

        │

         아두이노 

              │

                아두이노 프로미니 

 

사용법참조 : 

 

아두이노 프로미니 사양 및 사용법

아두이노 프로미니는 아두이노 나노 기종보다도 더 소형화 시킨 기종으로서 USB연결 단자도 생략되어 있어 개발작업할 때에는 조금 불편하지만 개발이 완료된 후 기기에 부착해서 활용하기에

makernambo.com


1. 아두이노 프로미니 

아두이노 프로미니에는 USB 연결장치가 없으므로 정품과 호환기종의 기능 차이가 없고, 모델이 종류가 다양하다.

메인 칩에 따라 ATmega328칩,Atmega128칩을 사용한 경우가 있고, 사용 전압에 따라 3.3V용과 5V용이 있다. 

 

1-1 ATmega328, 5V용 

s.click.aliexpress.com/e/_9QZWKB

 

3.67US $ |1pcs ATMEGA328P Pro Mini 328 Mini ATMEGA328 5V/16MHz for Arduino new DORNURRY|Air Conditioner Parts| - AliExpress

Smarter Shopping, Better Living! Aliexpress.com

www.aliexpress.com

 

1-2 ATmega328, 3.3V용

s.click.aliexpress.com/e/_AaGs2X

 

3.59US $ |Arduino Board with The Bootloader Pro Mini Atmega328 Pro Mini 328 Mini ATMEGA328 3.3V/8MHz for Arduino Electronics|Int

Smarter Shopping, Better Living! Aliexpress.com

www.aliexpress.com

 

1-3 ATmega128용 

Atmega128를 탑재한 Arduino pro mini기종은 상위칩인 Atmega328로 교체되어서인지 Atmega128칩을 탑재한 Arduino pro mini 판매처는 찾아 보기 어렵다. 

 

2. USB연결 장치

아두이노 프로미니는 소형화를 위해 USB연결 모듈이 생략되어 있기 때문에 PC에서 프로그램을 다운로드하기 위해서는 중간에 USBtoTTL연결장치를 통해 연결시켜 주어야 한다. 즉 PC와 연결되는 USB와 아두이노 프로미니에 있는 TTL장치와의 중간 변환 모듈이 필요한데, DTR 핀이 있는 6핀 짜리와 DTR핀이 없는 5핀 짜리가 있다.

 

DTR핀이 없는 5핀 짜리는 다운로드시 시단에 맟춰 버튼을 한번 눌러 주어야 하는 불편이 있으므로 DTR핀이 있는 모듈이 편리하고, 통상 5V용과 3.3V용 아두이노 프로미니는 하나의 컨버트 모듈에서 동시에 지원된다. 

 

일반적으로 많이 사용하는 모듈은 FTDI사에서 나온  ft232 모듈이다.    

s.click.aliexpress.com/e/_A6Xy9d

 

2.56US $ |1pcs only good quality FT232RL FTDI Basic USB to serial for Arduino pro mini download cable USB TO 232 FT232 TTL modul

Smarter Shopping, Better Living! Aliexpress.com

www.aliexpress.com

 

3. SET형 상품 

 

따로 구매한 아두이노 프로미니 기종과 USBtoTTL 모듈이 함께 잘 작동할지 걱정된다면 다음과 같이 SET로 파는 상품도 있다.

 

s.click.aliexpress.com/e/_ANEYv5

 

1.05US $ |1PCS 6pin CP2102 USB 2.0 to TTL UART Module + 1PCS Pro Mini Module Atmega328 5V 16M For Arduino Compatible With Nano|I

Smarter Shopping, Better Living! Aliexpress.com

www.aliexpress.com

 

+ Recent posts