로그인회원등록 내글장바구니주문조회현재접속자
 상품 검색








 게시판 검색





 
 
회원등록 비번분실


온라인 입금계좌
ㆍ기업은행
ㆍ219-043192-01-028
ㆍ이건영

      거래은행 바로가기
 
 Sensor Applications
아듀이노 공개소스
작성자 avrtools™        
작성일 2008/09/03
첨부#1 SG105F.pdf (284KB) (Down:723)
Link#1 still-alive-heartbeat-irsensor-report.html (Down:546)
ㆍ추천: 0  ㆍ조회: 9645   
  아듀이노 맥박검출기
참조 : http://suchamagicworld.blogspot.com/2008/04/still-alive-heartbeat-irsensor-report.html
제목 : still alive? heartbeat (IR)sensor report
 
목적 : 반사형 적외선 센서를 사용하여 손가락을 올려 놓거나, 팔찌형으로 손목의 맥박을 측정한다.
원리 : http://www.oximetry.org/pulseox/principles.htm

 
 
센서 제조사(한국) : Bio Medical Technology http://www.bm-tech.co.kr/product2.html 


사용 부품 
센서는 적외선 LED와 적외선 TR이 하나로 제조된 부품을 사용한다.
IR 센서는 파장이 970nm로 적색보다 긴 파장으로 눈에는 보이지 않는다.
적외선을 발광하는 IR LED의 구동전류는 최대 50mA 까지 구동이 가능하다.

사용할 수 있는 센서는 TCR1000, SG105F 등을 사용할 수 있다. 
SG105F는 디바이스마트에서 소매가격으로 370원에 판매하고 있다.
  
 
Polar Heartrate 수신모듈
운동기구 제조사인 폴라에서 나온 전극형 맥박검출기의 5KHz 무선신호를, 80cm 이내에서 수신한다
폴라의 무선 맥박검출기에서 검출된 맥박신호는, ASK방식으로 변조된 5KHz 전파로 송신한다.
5KHz 전파는 Lx1과 Lx2에 연결된 안테나 코일에서 수신되어,  RMCM01로 들어간다.

수신신호는 RMCM01 수신모듈에서, 포락선 검파방식으로 ASK 복조되어, HR 핀에 출력한다. 
맥박검출기의 송신신호가 정형된 디지털 펄스이므로, 이 장치로는 맥박신호의 파형을 볼수 없다.
또한 이 수신기는 폴라에서 만든, 무선 맥박송신기를 필요로 한다. 
 
참고 제품
ExmoCare는 차세대용 BT2 라는 팔찌형 건강감시기 (health monitor)를 2008년 초에 발표하엿다.
참조 : http://www.exmocare.com/

   
 
ExmoCare사의 BT2 감시화면
 
 
검출기 제작
ExmoCare 제품과 비슷한 팔찌형 맥박검출기를 제작한 사이트 : http://hrsensor.wordpress.com/

 
 
접속 방법
다음 회로도를 빵판이나 만능기판에 제작하여, 맥박신호를 아듀이노의 아날로그 입력포트 A0 에 연결한다.
아듀이노의 UART 포트(원래 연결되어 있는 USB 포트)는 USB 케이블을 사용하여 PC에 연결한다.
아듀이노의 USB 인터페이스는 PC의 USB포트로 연결하며, 가상직렬포트로 COM3 ~ COM8로 설정할 수 있다. 
 
회로도 #1
Vishay 사의 HCRT1000을 사용한 맥박 측정회로. (증폭회로는 없음, 시험용)
   
회로도 #2
suchmagicworld.blogspot.com의 맥박신호 측정회로 (증폭기를 사용)
회로에 사용한 OP-Amp는 성능을 향상하기 위해서, 고정도 AD822로 교체할 수도 있다.
   

회로도 #3 
참조 : http://www.phoenix.tc-ieee.org/004_Piezo_Film_Blood_Flow_Sensor/Phoenix_PiezoPulse.htm 
  
압전소자를 맥박신호의 검출에 사용한 증폭회로이며, 12.5 Hz의 LFP 회로를 사용하고 있다. 
Heart Rate 신호에 혼입된 잡음을 제거하기위해서는 LPF 회로를 사용해야 한다.
사용하는 OP AMP는 TLV2444를 1개 쓰는 것 보다, TLV2442를 2개 사용하면 배선하기 쉽다,
잡음제거는 하드웨어 방식이 아니라도, 소프트웨어 smoothing 함수를 사용할 수 있다.

압전 필름
  



압전소자를 사용한 맥박신호 파형
측정된 파형의 진폭은 400 mV(p-p), 주파수는 1.56 Hz로 약 60 ppm이다.
 
 

작동
맥박신호 증폭기의 파형과 USB 포트로 입력된 맥박신호를 프로세싱으로 표현한 화면.
 
 

아듀이노 소스는 아듀이노 소프트웨어에서 컴파일한 펌웨어는, AVRISP 없이 타겟에 구울 수 있습니다.,
PC의 USB 포트에 연결된 아듀이노 기판은, 아듀이노 소프트웨어에서 M168-USB 기판으로 업로드합니다.
 
 
아듀이노 소스
int an1,an2 = 0;
int redLedPin =13;
boolean triggered = false;

 
void setup()
{
  Serial.begin(9600);  // 직렬 통신을 9600 bps로 설정
  pinMode(redLedPin, OUTPUT); // 기판의 RUN-LED를 점등

  Serial.println(”Starting”);           // 시작 문자열을 직렬포트에 송신한다
}


void loop()
{
  int an2 = analogRead(0);  // 아날로그 포트 0번을 읽는다

  Serial.print(”Y”);             // Y축을 표시한다
  Serial.println(an2,DEC);  // 아날로그 포트 0번 값을 10진수로, 직렬포트에 송신
  int an1= analogRead(5);  // 아날로그 포트 5번에 추가된 가변저항값을 읽는다
  Serial.print(”X”);            // X축을 표시한다
  Serial.println(an1,DEC);  // 아날로그 포트 5번 값을 10짐수로, 직렬포트에 송신
 
  if(an1 > an2 && !triggered)       // 센서값이 가변저항값 보다 작으면 LED를 끈다.
 {
   triggered = true;
   digitalWrite(redLedPin, HIGH); // RUN-LED를 끈다.
  }

  if(an1 <= an2 && triggered)     // 센서값이 가변저항 값보다 크더라도 트리거가 안되엇으면 LED를 끈다. 
 {
   triggered = false;
   digitalWrite(redLedPin, LOW);  // RUN-LED를 끈다.
  }
}

 
신호레벨 검토 소스
이 소스는 센서와 아날로그 증폭회로의 출력신호의 레벨을 판정한 다음,
실제의 프로세싱에서 신호변동이 작은 값을 무시하는데 사용한다.
이 소스는 A0~ A2 포트에 맥박신호 증폭회로의 내부회로를 연결하여
증폭회로의 측정값을 PC에서 직렬통신 소프트웨어를 사용하여 점검한다.
 
int an1, an2, an3 = 0;
void setup()
{
  Serial.begin(19200);             // 통신포트를 19200으로 설정
}

 
void loop()
{
  an1 = analogRead(0);         // 아날로그 포트 0번을 읽어서 저장 
  delay(5);
  an2 = analogRead(1);         // 아날로그 포트 1번을 읽어서 저장
  delay(5);
  an3 = analogRead(2);         // 아날로그 포트 2번을 읽어서 저장

  Serial.print(”X”);
  Serial.println(an1,DEC);     // 아날로그 0번 값을 10진수로, 직렬포트에 송신 
  Serial.print(”Y”);
  Serial.println(an2,DEC);     // 아날로그 1번 값을 10진수로, 직렬포트에 송신
  Serial.print(”Z”);
  Serial.println(an3,DEC);     // 아날로그 2번 값을 10진수로, 직렬포트에 송신
  delay(15);
}

프로세싱 소스
아듀이노 기판에서 PC의 USB 포트로 들어오는 직렬통신 신호를 수신하여 
화면에 맥박파형을 그리는 목적이로 사용한다, 별도의 프로세싱 소프트웨어를 설치한다.

import processing.serial.*;  // 직렬통신 프로세싱 라이브러리를 부른다.
String buff = “”;
int val = 0;
int xPos,yPos,zPos = 0;
int displaySize = 10 ;
int an1;
int an1synth;  // 파형을 조금 깨끗하게 주무른다
int threshold= 3;  // 신호레벨 점검에서 구한 값을 상수로 넣는다

//an1 pot; an2 ir;
int lastx=0;
int lasty=0;
int marker;         // 60초 간격을 점검한다
boolean finterval=false;
Serial port;        // 직렬통신 포트를 사용한다
 
void setup()      // 프로세싱 초기화
{
  background(80);  // 화면 바탕
  size(800,600);     // 화면 크기
  smooth();          // 필터링 사용
  port = new Serial(this, Serial.list()[1], 9600);  // 통신포트를 9600으로 설정
}
 
void draw()         // 파형 그리기 함수
{
  fill(80,5);           // 새그림을 그리기 위해서 화면을 지운다
  noStroke();
  rect(0,0,width,height);  // 800 x 600의 사각형을 그린다.
 
  stroke(255,0,0);       //새로운 값을 표시하기 위해서 작은 영역을 지운다.
  line(0,375,800,375);  // 375/800 위치에 신호 기준선을 그린다
  noStroke();
  fill(80);                  // 색을 칠한다
  rect(xPos+displaySize,0,50,height);
 
  while (port.available() > 0)   // 프로세싱을 하기위해 직렬통신 신호를 점검
  {
    serialEvent(port.read());    // 직렬통신 포트에서 데이터를 읽는다.
  }
}
 
void serialEvent(int serial)
{
  float m = millis();
  float m1=(m%60000);
  println(”m1 is” + m1);

  if(m1 ==0)  // 60개의 샘플을 읽으면 수직의 검은선을 그린다 
 {
   print(”set to true”);
   stroke(255);  // 백색 수직선
   line(lastx,400, lastx, 0);
   // marker=0;  // 마커를 흑색으로 지운다
  }

  print(” Value of Sensor X “); // 문자열 표시
  println(an1);                       // 아듀이노에서 들어온 값을 표시한다
  //Serial.print(10, BYTE);     // 줄을 넘긴다 (line feed)

  if(serial != ‘ ’)                     // 아듀이노에서 데이터가 들어오면
  {
    buff += char(serial);          // 데이터를 버퍼에 저장 
    // print(”debug this serial ["+serial+"]“);   // 필요하면 벌레잡기용으로 데이터를 표시한다.
  }
 
  else
  {
    int curX = buff.indexOf(”X”);
    // print(”debug this buffer ["+buff+"]“);
  
  if(curX >=0)
  {
    String val = buff.substring(curX+1);
    an1 = Integer.parseInt(val.trim());
    an1synth=(an1*100)/10;               // 파형값에 100을 곱하고 10으로 나눈다.
    xPos=xPos+2;
 
    if(xPos > width) xPos = 0;           // 폭을 넘으면 리셋한다
    // sensorTic2(xPos, 400- threshold );
    // xPos++;
    sensorTic1(xPos,400- an1synth);  // x와 y값으로 선을 그리는 함수를 실행한다.
   }
   buff = “”;  // 버퍼에 저장된 값을 지운다
 }
}
 
void sensorTic1(int x, int y)            // 선 그리기 함수
{
  stroke(0,0,255);  // stroke(0,0,255);
  // fill(255,0,0);
  // ellipse(x,y,displaySize,displaySize);
  line(lastx, lasty, x, y);                 // lastx에서 x까지, lasty에서 y까지 선을 그린다. (꺽은선 그래프) 
  lastx =x;                                    // 현재 x값을 저장
  lasty =y;                                    // 현재 y값을 저장
}

이 프로그램은 무료 소프트웨어로, 신체와 재산 상의 어떤 위험과 손해를 보상하지 않습니다.
이 프로그램은 GNU 무료 소프트웨어 배포규정을 따릅니다.
Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
AVRTOOLS™
   
윗글 아듀이노 32x16 RGB 전광판
아래글 아듀이노 적외선 거리센서
    N         제목    글쓴이 작성일 조회 추천
61 비접점식 QTouch 방식 근접검출 스위치 leeky 2016/01/21 (목) 852 0
60 Arduino 고속 오실로스코프 #3 avrtools™ 2012/03/29 (목) 17930 0
59 아날로그 8ch 데이터 로거 avrtools™ 2012/03/29 (목) 2925 0
58 Arduino DMX512 송신기 제작 avrtools™ 2012/03/15 (목) 3063 0
57 nRF24L01 무선모듈의 사용방법 avrtools™ 2012/03/07 (수) 6112 0
56 초음파 거리 측정기의 제작 avrtools™ 2011/09/18 (일) 5029 0
55 3축 가속도 센서 ADXL335 avrtools™ 2011/09/09 (금) 3560 0
54 Arduino Uno USBserial 펌웨어의 변경 avrtools™ 2011/08/27 (토) 3123 0
53 Arduino MIDI의 소개 avrtools™ 2011/08/19 (금) 3524 0
52 Arduino 고속 Oscillo Scope #2 avrtools™ 2011/08/12 (금) 3149 0
51 Arduino Uno 및 USB2serial Uno의 소개 [2] avrtools™ 2011/07/30 (토) 3417 0
50 Arduino IDE에서 AVRISP-mkII 사용방법 avrtools™ 2010/10/22 (금) 8093 0
49 아듀이노 초음파 거리측정 및 응용 avrtools™ 2010/03/14 (일) 4234 0
48 M328-USB의 비밀 온도센서 avrtools™ 2010/01/02 (토) 3650 0
47 M168-mini로 만드는 USBasp avrtools™ 2009/10/10 (토) 5504 0
46 OBDuino ISO9141 소스의 설명 avrtools™ 2009/10/08 (목) 4292 0
45 아듀이노 0017 업그레이드 avrtools™ 2009/08/18 (화) 3803 0
44 Arduino 0015 업그레이드 avrtools™ 2009/06/01 (월) 3491 0
43 CC2500 Zigbee RF Modem #1 [4] avrtools™ 2008/11/20 (목) 6772 0
42 아듀이노 소프트웨어 Ver 0012 avrtools™ 2008/09/23 (화) 4086 0
41 Arduino 소프트웨어 설치방법 avrtools™ 2008/08/31 (일) 5701 0
40 아듀이노 PC 카메라 제작 avrtools™ 2008/10/28 (화) 7328 0
39 아듀이노 AVR-ISP V2의 제작 [6] avrtools™ 2008/10/22 (수) 8435 0
38 아듀이노 J1850-PWM 스캐너 avrtools™ 2008/10/15 (수) 4612 0
37 아듀이노 MPGduino의 제작 avrtools™ 2008/10/11 (토) 5039 0
36 아듀이노 OBD-II PID 처리함수 avrtools™ 2008/10/12 (일) 5712 0
35 아듀이노 OBD-II PID 송수신 함수 avrtools™ 2008/10/09 (목) 9786 0
34 아듀이노 ODB-II 스캐너 제작 [9] avrtools™ 2008/10/04 (토) 17564 0
33 아듀이노 AC전원 THD 측정 [2] avrtools™ 2008/09/30 (화) 6890 0
32 아듀이노 소프트방식 16Bit ADC avrtools™ 2008/09/23 (화) 5649 0
31 아듀이노 초음파 모듈의 제작. avrtools™ 2008/09/22 (월) 4962 0
30 아듀이노 Wii 프로세싱 avrtools™ 2008/09/20 (토) 4222 0
29 아듀이노 초음파 거리측정 avrtools™ 2008/09/20 (토) 6161 0
28 아듀이노 8x5 초소형 전광판 avrtools™ 2008/09/11 (목) 4752 0
27 아듀이노 4선식 터치패널 avrtools™ 2008/09/10 (수) 4738 0
26 아듀이노 2색 8x8 LED avrtools™ 2008/09/10 (수) 5015 0
25 아듀이노 24x6 LED 전광판 avrtools™ 2008/09/10 (수) 5553 0
24 아듀이노 8x8 LED 프로세싱 avrtools™ 2008/09/10 (수) 4173 0
23 아듀이노 32x16 RGB 전광판 avrtools™ 2008/09/06 (토) 13763 0
22 아듀이노 맥박검출기 avrtools™ 2008/09/03 (수) 9645 0
21 아듀이노 적외선 거리센서 avrtools™ 2008/09/01 (월) 6053 0
20 아듀이노 DMX 수신장치 [7] avrtools™ 2008/08/31 (일) 6911 0
19 아듀이노 AVR-ISP 만들기 avrtools™ 2008/08/30 (토) 4222 0
18 아듀이노 POV #3 avrtools™ 2008/08/30 (토) 3541 0
17 아듀이노 POV #2 avrtools™ 2008/08/30 (토) 3309 0
16 AVR 병렬포트 굽기장치 avrtools™ 2008/08/30 (토) 5330 0
15 아듀이노 DMX 송신기 avrtools™ 2008/08/28 (목) 5224 0
14 아듀이노 부트로더의 개조 [1] avrtools™ 2008/08/28 (목) 5877 0
13 아듀이노 병렬포트 굽기장치 avrtools™ 2008/08/26 (화) 4284 0
12 아듀이노 POV #1 avrtools™ 2008/08/26 (화) 3558 0
11 아듀이노 MIDI 드럼 leeky 2008/08/24 (일) 4875 0
10 아듀이노 SD/MMC 카드 avrtools™ 2008/08/24 (일) 9878 0
9 아듀이노 MIDI 플륫 avrtools™ 2008/08/24 (일) 3705 0
8 아듀이노 RGB LED avrtools™ 2008/08/23 (토) 5132 0
7 아듀이노 USB 오실로스코프 [2] leeky 2008/08/21 (목) 6545 0
6 가속도계 ADXL202 응용소스 avrtools™ 2008/08/20 (수) 5001 0
5 아듀이노 가속도센서 avrtools™ 2008/08/18 (월) 5011 0
4 아듀이노 RC서보 제어 avrtools™ 2008/08/17 (일) 5337 0
3 아듀이노 910-ISP 만들기 avrtools™ 2008/08/16 (토) 4858 0
2 아듀이노 온도센서, XBee 송수신 avrtools™ 2008/08/15 (금) 7699 0
1 아듀이노 기본명령 avrtools™ 2008/08/07 (목) 6804 0
1

바구니 : 0
 보관함 : 0
오늘뷰 : 0
HOME   |   회사소개   |   제휴안내   |   회사위치   |   서비스이용 약관   |   개인정보 보호정책   |   사이트맵
17015 경기도 용인시 기흥구 동백중앙로16번길 16-25, 508호. 전화 : 031-282-3310
사업자 등록번호 : 697-47-00075 / 대표 : 이건영 / 업태 : 제조업 / 종목 : LED조명, LED전원, 제어장치.
개인정보 관리책임자 : 홈페이지 관리자 . Copyright ⓒ2016 아크레즈 (ACLEDS INC.)
HOME TOP PREVNEXT 0 0 0