このページにはアフィリエイト広告またはアフィリエイトリンクが含まれます。
序章
お久しぶりです〜
さらだぼぉるでございます。
久しぶりにブログ書いてるんですけども、この前台湾に行ってきたんですよね。
台北にはなんだか秋葉原のラジオデパートみたいなところがあるらしく向かってきました。
その名も「光華 国際電子広場」


んで、そこ行ったら、

謎の心電図測定キットがあったんですよね。
買うしかねぇ。ということで買ってきました、350台湾ドル。日本円で大体1750円くらい。安いですね。

「心電量測套裝」
っていうらしいです。
???「心電量測套裝っていうのかい?贅沢な名だね。今からお前の名前はキットだ。いいかい、キットだよ。」
中身は?
冗談はさておき、中身はなんなのかですね。
このキットには、AD8232というICを搭載したモジュールが入っています。
AD8232は、皮膚に貼った電極から得られる小さな心電信号を増幅し、マイコンのADCで読み取りやすい信号に整えるためのアナログフロントエンドというもの。
AD8232自体がAD変換を行うわけではなく、AD8232が整えたアナログ信号を、接続先のマイコンでAD変換するという構成らしい。
まぁ詳しいことはわからないので気になる人は↓を見てもらって。
https://www.analog.com/jp/products/ad8232.html
一応、スイッチサイエンスでの取り扱いもあるようですが、Aliexpressとかで買う方が慣れてるなら安いし(1500円くらい)パッドまでついてきます。
心電図っぽいのを表示してみよう
ここからが本題。
M5 Tab5がちょうど手元にあったので、ここに心電図でも表示させてみましょう。
M5 Tab5は本体側面にピンが生えてます。
そしてこのAD8232は3.3V駆動ですので、側面のピンから3.3vとグランド、そしてAnalogの入力をするためにG50にAD8232のOUTPUTを繋ぎましょう。
対応表にするとこんな感じ
AD8232 3.3V → Tab5 ExtPort1 3V3
AD8232 GND → Tab5 ExtPort1 GND
AD8232 OUTPUT → Tab5 ExtPort1 G50

これだけで配線は終わりです。
あとは、ただのアナログリードをすれば良いので
constexpr int ECG_PIN = 50;
void setup() {
pinMode(ECG_PIN, INPUT);
analogReadResolution(12);
}
void loop() {
const int raw = analogRead(ECG_PIN);
}
とかで組んであげると、読み取れます。
見慣れないものでいくと、analogReadResolution(12)というもので、これはADCの分解能を12bitに設定するやつらしい。12bitの場合、取得できるraw値は基本的に0〜4095になり、分解能を細かくすることで、AD8232のOUTPUTに現れる小さな電圧変化を捉えやすくできると、チャッピーが言ってました。
それをいい感じにしたのがこれ。
GitHubで公開してます
https://github.com/saladbowl77/AD8232_M5TAB5
最後に
最後になんですけど、
この装置は医療機器ではないので、取り扱いには気をつけてください。人体へ電極を装着して試す場合は、過電流が流れないよう電源や配線に気をつけて人体に影響がないようにしてください。
なんかね、なんとなくこれつけたら計測されてる感みたいなのあったので()
ということで、台湾ネタ一つ目でした。
パッドが使い捨てなのでね、ちょっと不便ですね。一回使ったら一応終わりなので……
一応使い捨てのパッド50個セットとかもあるのでやりたくなったら増やせます。モノタロウでも取り扱いあったし。
ただ僕らがよく目にするこういうやつ

とかも売ってるので、色々遊べそうっちゃ遊べそうです。
まぁそんなとこで、また次回は、心電図じゃない似たやつで遊びたいと思います。
P.S.
そうそう、そういや、このブログも実はv3になって、CMSが新しくなってます。またどこかでその話もできたら。