「Arduino」カテゴリーアーカイブ

M5Stack-Atom_ECG計測

M5Stack-AtomでECG計測
 Atomに関する説明は,152ブログで行われているため詳細は省く。ECGを測定する際の注意点としては,データの量があまりにも多すぎるため,さばききれないという点だ。これに対する解決策としては,UDPというものがあるようだ。

PCのIPアドレス確認方法
 コマンドプロンプトを立ち上げて下記のコードを入力すると,「DHCPサーバー」に記載されているためそれをコピーアンドペーストする。下記画像のオレンジ部分が該当箇所だった。

ipconfig /all

UDP関連のプログラム(UDP_S_ADS1015,UDP_R_basic)
 これらのプログラムに関しては,152の「UDPで生体計測」等が参考になる。こちらのブログでは,Arduino・Processing開発環境のプログラムが添付されており,これのIPアドレスを変更することで使用できる可能性が高い。

==============================================================

無線計測
 ESP32シリーズともあり,Wi-fi・Bluetooth接続が可能なようだ。最後にやったのが半年前とあり忘れていた。Bluetoothでの接続方法は,「プログラムを書き込む > PCの設定画面からBluetooth接続を行う > Arduino開発環境でBluetooth用のシリアルポートを選択する(2つのうちどちらか)」の手順で行うようだ。プログラムは下記の通り。

ECG, SCC 測定アンプ作成

前書き
サイエンスで使用するECG, SCCの測定アンプ10セットをゴールデンウィークまで(4/29(土))に作成することとなった!!

パーツ一覧

【AD変換:計測安定】

【SCC: 皮膚コンダクタンス変化】

【ECG:心電図】

ワークショップ(E-152)

余談
筋電図の時に組み立て参加したから多分大丈夫だと思う。
理想は卒論の実験始めながら、作成したいところ。

装着位置

EMG等 保管庫

Arduinoで生理指標を測る」プログラムを圧縮ファイルに落とし込んだ。

最近、ブログ側の問題でプログラムをコピペすると勝手に全角スペースが入るみたいで、一つずつ手作業で直さないといけないらしい(理由はこれ?)。

今回も同様に全角スペース問題が発生したため、「ECG~SCL (無線はまだ)」までのプログラムを圧縮して下記に添付しておいた。

プログラム
・ECG:心電図
・EMG:筋電図
・EMG2:筋電図の積分値
・SCL:皮膚コンダクタンス水準
・SCC:皮膚コンダクタンス変化

筋電図 (EMG) 測定Ⅰ

長野先生方が執筆された論文「Arduinoで生理指標を測る」で、筋電図(EMG), 心電図(ECG), 計測の動画を作成しようとのことでプロジェクトが動き出した。

今回は計測器作成に用いた資料を基に、「EMG計測器の組み立て」及び「腕・顔の筋電図の計測」をした。回路図・必要パーツは下記の通り。

【回路図】

完成図をもとに順次作成。資料では、ワイヤー (ブラックS)が「f24」に差込と書かれているが、「G24」でもなんら問題はないらしい。

資料通りに各種パーツをブレッドボードに差し込んだら電極を装着。それぞれ、手首の下, 白・赤クリップは近くに配置などなど。

【プログラム(EMG2)】

#include <Wire.h>
#include <Adafruit_ADS1X15.h>
Adafruit_ADS1015 ads;

void setup(void)
{
  Serial.begin(115200);
  // ADS1015 gain 16x  input +/- 0.256V
  ads.setGain(GAIN_SIXTEEN); //ゲインを16倍に設定
  ads.begin();
}

void loop(void)
{
  int16_t results;
  results = ads.readADC_Differential_0_1();  //差動入力   
  
  float multiplier = 0.125F; //ゲイン16倍時の係数
  Serial.print(results * multiplier); 
  Serial.print(",100,-100"); 
  Serial.println();
  delay(0);
}

*プログラム参考:リンク

【注意点】

装着し終えたら計測をするのだが、その前にいくつか注意点がある。

① 計測中はPCの充電をしない
 →体に凄い量の電流が流れ込んでくる恐れがある

②机の上は必要最小限にとどめる
 →ノイズを検出してしまうため、PC充電器は悪影響

充電中のノイズ関連はアースを繋げば多少は抑えられる。

といっても屋外にはかなわないが…

(左:〇  右:×)

てなことで、ノイズが乗らなければ左画像のようにきれいに計測できる。

反対に充電器や3Dプリンタなど稼働中の物があると右画像のようにぶれるようで。以前計測した心電図と言い、どれほど繊細なものなのか実感した。

【計測中】

とりあえず腕の方を計測した。

EMGプログラムでは、力の入れ始めしか検知できていないのでは?との意見もあり、このプログラムをベースに積分した値を算出するEMG2を作成した。

(積分理由は、縦軸:電位の変位を見やすくするため)

(左:EMG 右:EMG2)

赤のライン (100)を超えたり、持続させることは難しかったが、瞬発的になら100超えの値を出すのは簡単だったな。とのことで、今回はここまで。

顔面筋電図の計測は別のブログに投稿したのでそちらを参照していただければ。

Facial EMG

【Facial EMG】

筋電位の延長線上で、顔面筋電位を計測してきた。

腕に装着したみのむしクリップをそのまま顔面に移行した。

装着位置
・黒=眉間
・白=眉近く
・赤=白の隣

しかし、みのむしクリップが重たいせいか計測中に外れることがあり、ヘッドバンド・カチューシャが必須なのかもしれない。重量以外にも顔の油なども事前に拭き取らなければならず、女性の場合化粧を落とすなど不便さが残る。

ネットで調べてみると黒電極は眉間近くではなく、画像の通りおでこ近くらしい。本格的に、顔面の筋電位を計測するのであれば貼る位置も考えねば…と思いきや

先生が約10年前から既にやっていた

電極作成:サイト
EMGアンプ:サイト

もろもろの詳細は上記リンクから確認。これならクリップの重さ等を気にしなくていいし、テープやヘッドバンドで止めればいいからね。

とまあこんな感じで、BF装置で培った基盤作成スキルを考慮して、Facial EMG基盤も作成してみようかと思った次第。できたら投稿しておく。

【途中経過】

たぶん間違ってるけどとりあえず形にできた!

詰めれば、もう少し縦幅を狭められそう。