ロードセル(重量センサ)による簡易SASチェッカー
呼吸の検出方法
秤に使うロードセル(重量センサ)を使ってSASチェッカーを作ってみました。
静電容量センサを使ったものと同じようにベルトで腹部に装着し、呼吸に伴いベルトが引っ張られる力の変化を検出します。
静電容量センサを使ったものと同じようにベルトで腹部に装着し、呼吸に伴いベルトが引っ張られる力の変化を検出します。
回路
PICマイコンは計測結果を記憶するRAM容量が8bitPICマイコンの中で比較的大きいPIC16F1829を使いました。
回路設計、パターン設計はKiCADを使い、基板は片面銅張基板+感光フィルムで自作しました。
3ピンと5ピンのピンヘッダはピン先がケースの上面からはみ出さないように、黒いプラ部品をピンの中央に来るようずらしてからハンダ付けしています。
ハンダ付け後にプラ部品を抜き取り、ソケットを挿したときに充分接触するようにしました。
回路設計、パターン設計はKiCADを使い、基板は片面銅張基板+感光フィルムで自作しました。
3ピンと5ピンのピンヘッダはピン先がケースの上面からはみ出さないように、黒いプラ部品をピンの中央に来るようずらしてからハンダ付けしています。
ハンダ付け後にプラ部品を抜き取り、ソケットを挿したときに充分接触するようにしました。
ロードセルの出力はロードセル用のA/D変換基板を介してマイコンと接続しています。
A/D変換基板を購入するとねじ止め式端子が付属していますが、それは使わずL型ピンヘッダをハンダ付けしました。
ロードセルからの引き出し線には対応するソケットをハンダ付けして接続しました。
A/D変換基板の裏面はショート保護のために絶縁テープを貼り、写真のようにソケットの端子を90度曲げてハンダ付けし、PICマイコン側基板のL型ピンヘッダに差し込みました。
A/D変換基板を購入するとねじ止め式端子が付属していますが、それは使わずL型ピンヘッダをハンダ付けしました。
ロードセルからの引き出し線には対応するソケットをハンダ付けして接続しました。
A/D変換基板の裏面はショート保護のために絶縁テープを貼り、写真のようにソケットの端子を90度曲げてハンダ付けし、PICマイコン側基板のL型ピンヘッダに差し込みました。
回路関連の資料を以下に添付します。
回路図 APNEA_L_circuit.pdf
裏面マスク(ポジ) POS_APNEA_L-B_Cu.pdf
裏面マスク(ネガ) NEG_APNEA_L-B_Cu.pdf
表面部品配置図 APNEA_L-F_Silkscreen.pdf
裏面部品配置図 APNEA_L-B_Silkscreen.pdf
裏面ジャンパ配線図 APNEA_L_jumper.jpg
ドリルマップ APNEA_L-PTH-drl_map.pdf
部品表 APNEA_L_Parts.pdf
A/D変換基板+ロードセル資料 ae-hx711+SC133.pdf (秋月電子通商から取得)
ケースと組立て
ケースは3Dプリンタで製作しました。
3Dプリント用データ
フロントパネル APNEA_L_F.stl
本体ケース APNEA_L_L.stl
電池ケース APNEA_L_B.stl
ロードセル上蓋 APNEA_L_T.stl
ベルト止め APNEA_L_X.stl
3Dプリント後に以下をM3タップ加工
・電池ケース(B)のヒンジ部の2か所
・本体ケース(L)のフロントパネル止めの4箇所
3Dプリント用データ
フロントパネル APNEA_L_F.stl
本体ケース APNEA_L_L.stl
電池ケース APNEA_L_B.stl
ロードセル上蓋 APNEA_L_T.stl
ベルト止め APNEA_L_X.stl
3Dプリント後に以下をM3タップ加工
・電池ケース(B)のヒンジ部の2か所
・本体ケース(L)のフロントパネル止めの4箇所
ロードセルは M5長さ15~20mm の鍋ネジ2本で本体ケース(L)に固定しました。
ベルト止め(X)は M4長さ10~15mm の鍋ネジ2本でロードセルに固定しました。
フロントパネル(F)は M3長さ15mm の鍋ネジ4本で本体ケースに固定しました。
M3長さ20mmの鍋ネジ2本で本体ケース(L)と電池ケース(B)をヒンジ部で接続しました。
圧電サウンダ―はフロントパネル裏に瞬間接着剤で貼り付けました。
基板と接続するために2.54mmピッチの2pinピンソケットをハンダ付けしています。
電池ボックスは両面テープで電池ケース内に貼り付け、リード線には2.54mmピッチの2pinソケットをハンダ付けしています。
ロードセル上蓋(T)は本体ケース(L)に両面テープで貼り付けました。
ベルトは幅50mmで、長さ調節がしやすいように面ファスナー(ベルクロ/マジックテープ)を両端に付けました。
全く伸縮しないベルトだと就寝時にゆるみやすいため、ベルトの途中に幅30mmの織ゴムを伸縮部長さ60mmで付けています。
ソフトウェア
PIC16F1829用ソースコード(MPLAB X ide プロジェクトファイル)をZip圧縮したものと
コンパイル済みの書き込み用データを添付します。
APNEA_L.X.zip
APNEA_L.X.production.hex
(プログラム書き込みについては「PICマイコンと開発ツール」のページやWeb情報を参照)
コンパイル済みの書き込み用データを添付します。
APNEA_L.X.zip
APNEA_L.X.production.hex
(プログラム書き込みについては「PICマイコンと開発ツール」のページやWeb情報を参照)
操作方法と機能
電源を入れる(=電池を入れる)と測定が始まります。
電源をいれた時点、またはいずれかのスイッチを押した時点から1分間のみ液晶のバックライトが点灯します。
またその1分間のみ、スイッチを押した瞬間と呼吸(ベルトの張力の変わり目)を検出した瞬快に圧電サウンダからピッという音がでます。
10秒以上の呼吸停止を検出すると呼吸再開時点の時刻と停止秒数を記録します。
記録できる10秒以上停止のデータの数は最大250個です。
また呼吸停止期間の記録できる秒数の最大値は255秒です。
呼吸停止秒数で255秒が記録されている場合、測定が失敗していると判断できます。
スタートボタンを押すと過去の測定結果を消去し、新しく測定を開始します。
電源をいれた時点、またはいずれかのスイッチを押した時点から1分間のみ液晶のバックライトが点灯します。
またその1分間のみ、スイッチを押した瞬間と呼吸(ベルトの張力の変わり目)を検出した瞬快に圧電サウンダからピッという音がでます。
10秒以上の呼吸停止を検出すると呼吸再開時点の時刻と停止秒数を記録します。
記録できる10秒以上停止のデータの数は最大250個です。
また呼吸停止期間の記録できる秒数の最大値は255秒です。
呼吸停止秒数で255秒が記録されている場合、測定が失敗していると判断できます。
スタートボタンを押すと過去の測定結果を消去し、新しく測定を開始します。
スイッチ操作と機能をまとめた図を添付します。
PCへのデータ転送
測定結果はUSB-Serial変換経由でPCへ転送できます。
PCとの接続にはUSB-Serialの変換基板とUSBケーブル、UART接続用コネクタ付き配線を使います。
USB-Serial変換基板は信号レベルが3.3Vのもの、または5V/3.3Vが切り替えられるものを3.3Vの設定で使います。
私はFT232RQ USBシリアル変換モジュールキット(秋月電子通商注文番号109951)を使用しDIPスイッチ切替で3.3Vの設定にして使っています。
FT234X 超小型USBシリアル変換モジュール (秋月電子通商注文番号 108461)なら信号レベルが3.3Vでそのまま使えます。
変換基板とSASチェッカー間は両端に2.54mmピッチソケットを付けた3線コードを作って接続します。
接続時の注意として変換基板側のTx端子はSASチェッカー側のRx端子へ、変換基板側のRx端子はSASチェッカー側のTx端子へ接続します。
PCとの接続にはUSB-Serialの変換基板とUSBケーブル、UART接続用コネクタ付き配線を使います。
USB-Serial変換基板は信号レベルが3.3Vのもの、または5V/3.3Vが切り替えられるものを3.3Vの設定で使います。
私はFT232RQ USBシリアル変換モジュールキット(秋月電子通商注文番号109951)を使用しDIPスイッチ切替で3.3Vの設定にして使っています。
FT234X 超小型USBシリアル変換モジュール (秋月電子通商注文番号 108461)なら信号レベルが3.3Vでそのまま使えます。
変換基板とSASチェッカー間は両端に2.54mmピッチソケットを付けた3線コードを作って接続します。
接続時の注意として変換基板側のTx端子はSASチェッカー側のRx端子へ、変換基板側のRx端子はSASチェッカー側のTx端子へ接続します。
データ転送手順は以下の通り。
下記のpythonプログラムをダウンロード(右クリックでリンク先を保存)してPCの作業フォルダに置きます。
APNEA_L.py
SASチェッカーの測定終了後、MODEスイッチを何回か押してUART Txを表示させます。
SASチェッカーとPCをUSB-Serial変換基板を介して接続します。
PC側でPythonプログラムファイルを置いたフォルダでコマンドウインドウを開き
python APNEA_L.py 出力ファイル名.txt
と入力して待機状態にします。
SASチェッカー側で↑(UP)スイッチ、または↓(DOWN)スイッチを押します。
テスト結果と使用感等
覚醒時の装着テストでわざと息を止めたりしたテストで問題なく動作しました。
消費電流は液晶バックライトが点灯している最初の1分間が17.6mA
それ以降の液晶バックライトが消灯して測定しているときが10.3mAでした。
MODEスイッチを押してSLEEP状態にすると0.19mAでした。
単3電池容量を少な目の1000mA/hとして測定可能時間は1000/10.3≒97hです。
当初伸縮しないベルトで就寝時テストしたら緩んで失敗しました。
かといってベルトを強く締め付けるように装着すると息がしずらくなります。
そこで織ゴムをベルトの途中につけました。
すると強くしめつけなくても緩まず、うまく測定できました。
ただし長い織ゴムをつけると呼吸に伴う張力の変化が小さくなるため、短かめにする必要があります。
加速度センサによるSASチェッカーに比べ装着時のベルトの張力を強めにする必要があるので装着感はあまりよくありませんでした。
消費電流は液晶バックライトが点灯している最初の1分間が17.6mA
それ以降の液晶バックライトが消灯して測定しているときが10.3mAでした。
MODEスイッチを押してSLEEP状態にすると0.19mAでした。
単3電池容量を少な目の1000mA/hとして測定可能時間は1000/10.3≒97hです。
当初伸縮しないベルトで就寝時テストしたら緩んで失敗しました。
かといってベルトを強く締め付けるように装着すると息がしずらくなります。
そこで織ゴムをベルトの途中につけました。
すると強くしめつけなくても緩まず、うまく測定できました。
ただし長い織ゴムをつけると呼吸に伴う張力の変化が小さくなるため、短かめにする必要があります。
加速度センサによるSASチェッカーに比べ装着時のベルトの張力を強めにする必要があるので装着感はあまりよくありませんでした。