はじめに
先日、作った「micro:bitとMLX90614で非接触体温計」。測定結果を音と共にPCのディスプレイに大きく表示する装置をScratchと組み合わせて作ってみました。
注意事項
あくまでも試作になります。
実際に運用して、誤検出によりクラスターが発生しても責任は取れません。
仕様
- 補正
- 初めにだけ1度行います
- 予め一般の体温計で自身の体温を測定します
- センサーを自身の額に当てます(1cm程度離す)
- micro:bitのBボタンを押すと体温を測定した上で一般の体温計で測った値を質問します
- 一般の体温計で測った値を入力し、誤差を補正値として記憶します
- 測定
仕組み
Scratch3.0標準のmicro:bit拡張では、I2Cで取得した値をScratchに渡す事が出来ません。そこで、Yengawa LabのMicrobit Moreを使います。
Micro:bit More にはslotという機能があり、MakeCode上で、独自の計測値をScrachに渡すプログラムを書く事が出来ます。ただ、前回使ったMakeCode用機能拡張 https://github.com/DoraLC/pxt-MLX90614 は、入れようとするとMicrobit Moreが必須としているBluetooth拡張とコンフリクトを起こすようです。対策として今回は、pxt-MLX90614は使わずに直接I2Cを叩きます。
また、体温を小数点第一位まで表示したかったので、温度を10倍してslotに渡し、Scratch側で1/10にする事にしました。
用意する物・配線・ボディ
micro:bitとMLX90614で非接触体温計を参照願います。なお、コードレスにしたい場合はmicro:bit用の電池ボックスが必要となります。
micro:bit側のプログラム
- Microbit Moreのファームウェア scratch-microbit-more-0.3.2 をMakeCodeで開きます。
- MLX90614の値をslot0に書き込むプログラムを作成します。500msの一時停止は無くても動作しますが、長時間運用すると動作が不安定になるケースがあったため入れてみました。
https://makecode.microbit.org/_FLie6gTkih9U
- 作ったプログラムをmicro:bitにダウンロードします。
Scartch3.0側のプログラム
- Micro:bit More専用のScratch3.0サイト https://yokobond.github.io/scratch-ext/microbit-more/ にアクセスします
- Scratch Link(Scratch3.0がmicro:bit拡張用として標準で提供されている物)を起動し micro:bitをBluetoothで接続します。
- 仕様に従い、以下のようなプログラムを組みます。
https://www.dropbox.com/s/i6tvbktb89mewe2/noncontact_thermometer.sb3
動作確認
- まずは補正を行います
- 被験者の額に当てて検温を行います
非接触体温計の宿命だと思いますが、実測値はかなりずれる事が判ります。
おわりに
繰り返しになりますが、あくまでも試作になります。
実際に運用して、誤検出によりクラスターが発生しても責任は取れません。
仮に運用する場合は、自己責任でお願いします。
また、新型コロナウイルスは発熱の無い感染者も多くいるそうなので、測定する事自体がどこまで意味があるかは不明です。
やらないよりやった方がマシという事ですね。