[졸업프로젝트] #3 심박센서 값 읽기

박휘버그·2024년 4월 14일
0

졸업프로젝트

목록 보기
3/4
post-thumbnail

들어가기 전...

개요


지난 포스팅 #1, #2에 걸쳐 leaf에 필요한 부분까지 포스팅 했다.
이번 포스팅 부터는 table 부분에 들어간 심박센서 관련하여 포스팅을 해보겠다!

table부분에 심박센서가 있고,
그 심박센서에 5초간 손가락을 올려두면 본인만의 꽃이 피는 미디어아트인데,

뭔가 심심한 거 같아서 손가락을 올릴 때 모터도 같이 움직이게 끔 설계했다.
최종전시해는 큰 잎이 피는 듯하게 모터를 달 예정(중간전시에서는 작게나마... 구현함)

중간전시 회고

시작하기 전,,, 4월 11일 - 12일 이틀에 걸쳐 중간전시를 무사히 마쳤다 !!

최종 전시에서는 3면 프로젝터를 써야하는데,
학부에 있는 프로젝터는 투사거리가 너무 높아서..
학교에 전시를 할 수 없는 상황이었다...

그래서 !! !!!
큐레이터분을 엄청 설득한 결과
우리 학부에 하나있는 LED 스크린 공간을 차지했다 ( ˶ˆᗜˆ˵ ) 뿌듯

4월 7일부터 11일까지 10시간정도 잔 거 같다 !
4월 9일부터 11일까지는 그냥 날밤을 샜다.. (일주일이 3일처럼 느껴짐...
울기도 많이 울면서 정말 힘들었지만.. (4월10일-11일은 이유없이 눈에서 눈물이 나오는데 몸은 작업함..)
잘 마친 지금 시점에서 생각해보면 왜이리 힘들어했는지 ^^ 모르겠다

최종전시까지도 더 열심히! 힘을 내보려고 합니다..^^

필요한 것

심박센서

심박센서 링크 .. 쿠팡에서 구매함

이거 테스트하다가 연기났다.. 학교에 불 낼 뻔
여유있게 3-4개 정도 사두시길!

서보모터, 빵판

학교에서 나눠준 아두이노 키트에 있는 거 활용했다 !!

작업시작

이번 시간에는 심박센서->모터 움직이게 하는 법까지 알아보고,
다음 시간에 심박센서값으로 유니티에서 랜덤하게 꽃을 피우는 원리를 설명하겠다!!

아두이노 코드 작성

#include <Servo.h>

Servo myServo;  // 서보 모터 제어를 위한 서보 객체 생성
int pulsePin = A0;  // 심박 센서의 데이터를 읽을 아날로그 핀 설정
int servoPin = 9;   // 서보 모터 연결 핀 설정
int pulseValue; 
int angle = 0;    // 심박 센서로부터 읽은 값을 저장할 변수

void setup() {
  myServo.attach(servoPin);  // 서보 모터 핀을 서보 객체에 연결
  Serial.begin(9600);        // 시리얼 통신 시작
}

void loop() {
  pulseValue = analogRead(pulsePin);  // 심박 센서에서 심박 데이터 읽기
  Serial.println(pulseValue);         // 시리얼 모니터에 심박 데이터 출력
  
  if (pulseValue < 10) {
    for(angle=0; angle<180; angle++){
      myServo.write(angle);
      delay(5);
    }
    for(angle=180; angle>0; angle--){
      myServo.write(angle);
      delay(5);
    }
  } else {
    // 심박 데이터가 10 이상일 경우 필요한 로직을 추가
  }

  // 다음 심박 데이터 읽기 전에 잠시 대기, 너무 빠른 반복을 피하기 위함
  delay(1000);
}

일단 pulse센서에 손을 올리면 심박수가 0이 된다.
(근데 가끔 오차값때문에 4에서 7까지 나올 때도 있음)

그 원리를 사용해서 pulseValue가 10보다 적은 값이 나오면
모터를 움직인다.

나머지 5초동안 받은 값을 평균내는건
유니티 msgListener에 작성해줘야한다..

빵판 연결

사실 아두이노 배워본 적 없이 졸프땜에 처음 해봐서
빵판 하기 전에 겁을 많이 먹었는데..

해보니까 별거 아니었던것 ^^

이게 내가 서보모터도, 심박센서도 같은 포트에 끼워야하기 때문에 빵판이 필요했는데
그래서 같은 부분에 끼워야 하는 (사진에서 아두이노 보드의 5v) 그 부분에 양옆이 뾰족한 선을 꼽아서 빵판의 버스 스트립에 꽂아주고, 이제 서보모터랑 심박센서에서 5v에 끼워야했던 그 선을 아까 버스스트립 같은 라인에 꽂아주면 됨(?)

설명이 그지같지만.. 같은 라인에 전류를 나눠준다?고 생각하면 됩니다...
https://binworld.kr/13
이 블로그를 참고하면 됩니다...

결과물

위에 대로 적용하면, 심박센서에 손가락을 올리면 모터가 움직인다!

앞으로 해야할 일

심박센서 유니티와 연결해서 꽃 랜덤으로 피게 하기

profile
I'm coding bakhwee bug🪳

0개의 댓글