メインコンテンツまでスキップ

Grove - GSR センサ

GSR は galvanic skin response(皮膚電気反応)の略で、皮膚の電気伝導度を測定する方法です。強い感情は交感神経系を刺激し、その結果として汗腺から分泌される汗の量が増加します。Grove - GSR を使えば、片手の 2 本の指に 2 つの電極を取り付けるだけで、そのような強い感情を検出できます。睡眠の質モニタのような、感情に関連したプロジェクトを作るのに適したおもしろいモジュールです。

注意

Grove-GSR センサは人の抵抗値を測定するものであり、導電率を測定するものではありません!

バージョン

製品バージョン変更点リリース日
Grove - GSR_Sensor V1.0初期リリース2013 年 6 月 19 日
Grove - GSR_Sensor V1.2M324PW-TSSOP14 と GND 間に C3 100nF を追加2014 年 7 月 31 日

仕様

パラメータ値 / 範囲
動作電圧3.3V/5V
感度ポテンショメータで調整可能
入力信号抵抗値(導電率ではない)
出力信号電圧(アナログ読み取り)
指接触部の材質ニッケル
ヒント

Grove モジュールの詳細については Grove System を参照してください

対応プラットフォーム

ArduinoRaspberry Pi
注意

上記の対応プラットフォームは、このモジュールのソフトウェアまたは理論上の互換性を示すものです。ほとんどの場合、ソフトウェアライブラリやコード例は Arduino プラットフォーム向けのみ提供しています。考えられるすべての MCU プラットフォーム向けにソフトウェアライブラリやデモコードを提供することはできません。そのため、ユーザー自身でソフトウェアライブラリを作成する必要があります。

はじめに

Arduino で遊ぶ

ハードウェア

  • Step 1. 以下のものを準備します:
Seeeduino V4.2Base ShieldGrove - GSR
Get ONE NowGet ONE NowGet ONE Now
  • Step 2. Grove-GSR を Base Shield の A0 に接続します。
  • Step 3. Base Shield を Seeeduino-V4.2 に挿し込みます。
  • Step 4. USB ケーブルを使って Seeeduino-V4.2 を PC に接続します。
注記

Base Shield がなくても心配はいりません。センサは Arduino に直接接続できます。以下の表に従って Arduino と接続してください。

SeeeduinoGrove-GSR センサ
GND
5V
NC
A0

ソフトウェア

  • Step 1. 以下のコードを Arduino IDE にコピーしてアップロードします。
const int GSR=A0;
int sensorValue=0;
int gsr_average=0;

void setup(){
Serial.begin(9600);
}

void loop(){
long sum=0;
for(int i=0;i<10;i++) //Average the 10 measurements to remove the glitch
{
sensorValue=analogRead(GSR);
sum += sensorValue;
delay(5);
}
gsr_average = sum/10;
Serial.println(gsr_average);
}

  • Step 2. GSR センサを装着しないでください。
  • Step 3. Arduino IDE の Tools -> Serial Plotter をクリックします。
  • Step 4. ドライバーを使って抵抗を調整し、シリアル出力が最小になるようにします。このときのシリアルポートのデータを Serial_calibration として記録します。
  • Step 5. GSR センサを装着します。
  • Step 6. 下図のようなグラフが表示されます。深呼吸をして、トレンドを確認してください。

Human Resistance(人体の抵抗値) = ((1024 + 2 x Serial_Port_Reading) x 10000)/(Serial_calibration - Serial_Port_Reading)

  • 単位はオームです。
  • Serial_Port_Reading はシリアルポートに表示される値(0~1023 の範囲)です。
  • Serial_calibration は Step 4 で得られた値です(ドライバーを使って抵抗を調整し、シリアル出力が最小になったときのシリアルポートのデータを Serial_calibration とします)。

Raspberry Pi で遊ぶ(Grove Base Hat for Raspberry Pi 使用)

ハードウェア

  • Step 1. このプロジェクトで使用するもの:
Raspberry piGrove Base Hat for RasPiGrove - GSR センサ
Get ONE NowGet ONE NowGet ONE Now
  • Step 2. Grove Base Hat を Raspberry Pi に挿し込みます。
  • Step 3. Grove - GSR センサを Base Hat の A0 ポートに接続します。
  • Step 4. USB ケーブルで Raspberry Pi を PC に接続します。
注記

Step 3 では、Grove - GSR センサを 任意のアナログポート に接続できますが、その場合は対応するポート番号に合わせてコマンドを変更してください。

ソフトウェア

  • Step 1. 開発環境を構成するために、Setting Software に従って設定します。
  • Step 2. grove.py ライブラリをクローンしてソースファイルをダウンロードします。
cd ~
git clone https://github.com/Seeed-Studio/grove.py

  • Step 3. 以下のコマンドを実行してコードを動かします。
cd grove.py/grove
nano grove_gsr_sensor.py

その後、次のコードをこのファイルにコピーし、++ctrl+x++ を押して終了・保存します。


import math
import sys
import time
from grove.adc import ADC


class GroveGSRSensor:

def __init__(self, channel):
self.channel = channel
self.adc = ADC()

@property
def GSR(self):
value = self.adc.read(self.channel)
return value

Grove = GroveGSRSensor


def main():
if len(sys.argv) < 2:
print('Usage: {} adc_channel'.format(sys.argv[0]))
sys.exit(1)

sensor = GroveGSRSensor(int(sys.argv[1]))

print('Detecting...')
while True:
print('GSR value: {0}'.format(sensor.GSR))
time.sleep(.3)

if __name__ == '__main__':
main()


  • Step 4. 以下のコマンドを実行してコードを動かします

python grove_gsr_sensor.py 0

ヒント

すべてが正しく動作していれば、次のような結果が表示されます


pi@raspberrypi:~/grove.py/grove $ python grove_gsr_sensor.py 0
Detecting...
GSR value: 503
GSR value: 503
GSR value: 503
GSR value: 503
GSR value: 503
GSR value: 383
GSR value: 256
GSR value: 314
GSR value: 348
GSR value: 361
GSR value: 368
GSR value: 371
^CTraceback (most recent call last):
File "grove_gsr_sensor.py", line 69, in <module>
main()
File "grove_gsr_sensor.py", line 66, in main
time.sleep(.3)
KeyboardInterrupt

ctrl+c を押すだけで、このプログラムを終了できます。

注記

アナログポートでは、シルク印刷のピン番号が A1, A0 のようになっていることにお気付きかもしれませんが、コマンドではデジタルポートと同様にパラメータ 01 を使用します。そのため、必ずモジュールを正しいポートに接続してください。そうしないと、ピンの競合が発生する可能性があります。

FAQ

Q1: 出力の単位は何ですか?

A1: 信号は電圧で測定し、COM ポートへ (0~1023) の値として出力します。

Grove - GSR v1.0

Grove - GSR v1.2

リソース

プロジェクト

eMotion - Towards a Better Future:私たちは、生体センサー、Helium プラットフォームのセキュリティ、そして Google Cloud の強力な機能を活用することで、起こりうる不安状態を可視化できると考えています。

技術サポート & 製品ディスカッション

弊社製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに応じてお選びいただける、複数のコミュニケーションチャネルをご用意しています。

Loading Comments...