Galvanic skin response (GSR) sensor
GSR 센서는 피부의 습기에 의한 전류 변화를 감지하는 센서입니다. 이게 좀 재밌는 센서인데요.
대뇌의 제어에서 어느정도 자유로운 자율신경계라는게 있습니다. 자율신경계는 교감신경계과 부교감신경계로 나뉘는데 피부의 습기 변화는 교감신경계에 의해서 제어됩니다. 즉, 강한 감정이 발생하면 교감신경계에 의해 피부 습도가 변하게 되고 이걸 전기적인 저항의 변화로 읽어낼 수 있습니다. 다른말로 GSR 센서는 각성, 흥분과 같은 감정의 변화를 읽을 수 있는 센서입니다.
정확도는 둘째 치더라도 원리가 재밌는 센서라 연구용 혹은 거짓말 탐기지 용으로 사용할 수 있겠습니다.
해외 사이트를 좀 뒤져보시면 가격이 천차만별인데 테스트 용으로 쓸만한건 10$ 에도 구할 수 있습니다. 손가락 두 개에 끼워서 사용하는 형태이네요.
모듈의 측정값을 아날로그 핀으로 읽을 수 있습니다. 아두이노의 아날로그 핀 하나를 연결해서 값을 읽기만 하면 끝.
Arduino –> GSR sensor
- GND –> GND
- 5V –> VCC
- A2 –> SIG
예제소스는 아래를 참고하세요.
// Watch video here: https://www.youtube.com/watch?v=O5Ye5xJF44c /* GSR connection pins to Arduino microcontroller Arduino GSR GND GND 5V VCC A2 SIG D13 RED LED */ /* GSR, standing for galvanic skin response, is a method of measuring the electrical conductance of the skin. Strong emotion can cause stimulus to your sympathetic nervous system, resulting more sweat being secreted by the sweat glands. Grove – GSR allows you to spot such strong emotions by simple attaching two electrodes to two fingers on one hand, an interesting gear to create emotion related projects, like sleep quality monitor. http://www.seeedstudio.com/wiki/Grove_-_GSR_Sensor */ const int LED=13; const int GSR=A2; int threshold=0; int sensorValue; void setup(){ long sum=0; Serial.begin(9600); pinMode(LED,OUTPUT); digitalWrite(LED,LOW); delay(1000); for(int i=0;i<500;i++) { sensorValue=analogRead(GSR); sum += sensorValue; delay(5); } threshold = sum/500; Serial.print("threshold ="); Serial.println(threshold); } void loop(){ int temp; sensorValue=analogRead(GSR); Serial.print("sensorValue="); Serial.println(sensorValue); temp = threshold - sensorValue; if(abs(temp)>60) { sensorValue=analogRead(GSR); temp = threshold - sensorValue; if(abs(temp)>60){ digitalWrite(LED,HIGH); Serial.println("Emotion Changes Detected!"); delay(3000); digitalWrite(LED,LOW); delay(1000); } } }
참고자료 :