みなさん、こんにちは。
私の名前はMarianoです。私は生物医学エンジニアです。私は、Bluetoothを介してAndroidデバイス(スマートフォンまたはタブレット)に接続されたArduinoボードをベースにした低コストのECGデバイスのプロトタイプを設計し、実現するために数週間かけて過ごしました。私の「ECG SmartApp」プロジェクトをあなたと共有したいのですが、ECGデバイスを構築するためのすべての手順とソフトウェアが見つかります。この装置はデザイン研究プロジェクトとしてのみ意図されており、医療装置ではありませんので先に進む前に警告をお読みください。このデバイスは、身体からECG信号を取得するためのハードウェアボードと、信号を記録、処理、保存するためのAndroidアプリで構成されています。
単純な回路設計とレイアウトは、低コスト(部品数が少ない)と優れた性能の両方を実現するための優れた妥協点です。
スマートフォンと使い捨て部品(電極とバッテリー)を除くと、デバイス全体のコストは約40ユーロ(43米ドル)です。
このECG機器プロジェクトはデザイン研究プロジェクトとしてのみ意図されており、医療機器ではありませんので、次に進む前に次のステップで警告と安全性の問題をお読みください。
用品:
ステップ1:警告
このECG機器プロジェクトはデザイン研究プロジェクトとしてのみ意図されており、医療機器ではありません。バッテリーのみを使用してください(最大電圧供給:9V)。重大な怪我や自分や他の人への感電を防ぐために、AC電源、トランス、またはその他の電圧源を使用しないでください。ここで提案されているECG装置にAC電源の計装機器を接続しないでください。 ECG装置は人と電気的に接続されており、安全上の注意と装置への損傷を防ぐために、低電圧バッテリー(最大9V)のみを使用する必要があります。身体上に電極を配置することは、電流が流れるための優れた経路を提供する。身体がどのような電子機器に接続されているときでも、それは深刻で致命的な感電さえ引き起こす可能性があるので、あなたは非常に注意しなければなりません。このマニュアルに記載されている回路または手順を使用したことによって生じたいかなる損害についても、作者は一切責任を負いかねます。作者はいかなる回路または手順が安全であるとも主張しない。自己責任。この装置を作りたい人は誰でも安全で管理された方法で電気を使うことをよく理解していることが不可欠です。
ステップ2:必要なソフトウェアファイル(AndroidアプリとArduinoスケッチ)
ECG装置は容易に構築することができ、電子機器の基本的な知識のみがハードウェア回路を実現するために必要とされる。 Andriodスマートフォンからapkファイルを開き、提供されたArduinoスケッチをArduinoボードにアップロードするだけでAppをインストールすることができるので(ArduinoソフトウェアIDEと次のいずれかを使用して簡単に実行できます)、ソフトウェアプログラミングの知識は必要ありません。 Web上で利用可能な多くのチュートリアル)
ステップ3:説明
装置は電池式であり、共通電極を通してECG信号(四肢リード線のみ)を取得するためのフロントエンド回路とアナログ信号をデジタル化してBluetoothプロトコルを介してAndroidスマートフォンに送信するためのArduinoボードから成ります。関連するアプリは、リアルタイムで心電図信号を視覚化し、ファイルに信号をフィルタリングして保存する可能性を与えます。
ステップ4:組立説明書とユーザーマニュアル
それを使用するためのすべての情報がユーザーマニュアルファイルに記載されている間ECGデバイスを構築するためのすべての詳細な指示はまた、アセンブリマニュアルファイルに記載されています。
ステップ5:ハードウェアの説明
単純な回路設計とレイアウトは、低コスト(部品数が少ない)と優れた性能の両方を実現するための優れた妥協点です。
デバイスの電源がオンになると、バッテリはArduinoボードとLED L1に(+ Vb)を供給します(R12 = 10kΩはL1電流を制御します)。デバイスの他の部分はArduino 5 V電圧出力(+ Vcc)によって供給されます。基本的に、このデバイスは0 V( - V CC)から5 V(+ V CC)の間で動作しますが、単一電源は等しい抵抗(R 10とR 11 = 1 Mオーム)の分圧器とそれに続くユニティゲインバッファによってデュアル電源に変換されます。 (1/2 TL062)。出力は2.5 V(TL062電源の中間電圧:0〜5 V)です。正と負の電源レールは、共通端子(基準値)に対して両電源(±2.5 V)を供給します。コンデンサC3(100 nF)、C4(100 nF)、C5(1 uF、電解)およびC6(1 uF、電解)は、電圧供給をより安定させます。安全性の問題のために、各電極は560kオームの保護抵抗器(R3、R4、R13)を介して装置に接続され、装置内部の故障の場合に患者に流れる電流を制限する。これらの高抵抗(R3、R4、R13)は、低電圧電源(使用されているバッテリー供給電圧に応じて6または9 V)が誤って、またはINAコンポーネントのために直接患者の導線に届くときに使用されます。失敗しました。さらに、2つの入力に配置された2つのCRハイパスフィルタ(C1-R1とC2-R2)がDC電流をブロックし、電極の接触電位によって発生する不要なDCおよび低周波ノイズを低減します。 ECG信号は、増幅段の前で0.1Hz付近(-3dBで)のカットオフ周波数で非常にハイパスフィルタリングされている。 (R2としての)R1の存在は、(R2及びR4としての)R1及びR3の値に依存するファクタによって信号が低減されるように、前置増幅段の入力依存性を低減させる。そのような係数は次のように近似できます。
R1 = 2.2Mオーム、R2 = 560kオームの場合、R1 /(R1 + R3)= 0.797である。
容量値が互いに非常に近いカップルC1 - C2(1 uF、フィルムコンデンサ)、抵抗値が互いに非常に近いカップルR1 - R2(2.2 MOhm)を選択し、カップルR3 - と同じにすることをお勧めします。 R4このようにして、不要なオフセットが減少し、計装アンプ(INA128)によって増幅されません。二重入力回路内の構成要素の回路パラメータ間のいかなる不一致もCMRRの劣化に寄与する。そのような部品はそれらの許容誤差ができる限り低く選ばれるように(物理的なレイアウトでさえ)非常によく一致するべきである(あるいはオペレータは可能な限り近い値で結合部品を選ぶためにマルチメーターで手動でそれらの値を測定できる) ) R 5(2.2kΩ)は、次式に従ってINA 128ゲインを定義します。
G_INA = 1 +(50kΩ/ R5)
ECG信号はINAによって非常に増幅され、C7とR7(C7 = 1 uFとR7 = 2.2 MOhmの場合は約0.1 Hzのカットオフ周波数で-3 dBカットオフ)で連続的にハイパスフィルタ処理され、最後のDCオフセット電圧が除去されます。ゲイン付きの非反転構成のオペアンプ(1/2 TL062)によるより高い増幅度
G_TL062 = 1 +(R8 /(Rp + R6))
実行時にユーザーがゲインを変更できるようにするために、オペレータは、(はんだ付けされていないので)変更可能な抵抗にRpまたはメスソケットストリップの代わりに可変抵抗(トリマー/ポテンショメータ)を使用することを選択できます。ただし、前者の場合はECG信号の実際のゲインを正確に知ることはできません(データのmV単位の値は正しくありません)。後者の場合は、次のように指定してmV単位の正しい値を取得できます。アプリの「設定」セクション内の式「ゲイン」内のRpの値(ユーザーマニュアルを参照)。 C8コンデンサは、R9とC9で構成されるRCフィルタと同様に、カットオフ周波数が約40 Hzの-3 dBのローパスフィルタを作成します。カットオフ周波数値は次の式で与えられます。
f = 1 /(2 *π* C * R)。
40 Hz 1のローパスフィルタの場合、RC成分の値は次のとおりです。
R8 = 120kオーム、C8 = 33nF、R9 = 39kオーム、C9 = 100nF
ECG信号は、0.1から40Hzの間の帯域でそのようにフィルタリングされ、以下に等しい利得で増幅される。
ゲイン= 0.797 * G_INA * G_TL062
R5 = 2,2キロオーム、R8 = 120キロオーム、R6 = 100オーム、Rp = 2,2キロオーム、
ゲイン= 0.797 *(1 + 50000/2200)*(1 + 120000 /(2200 + 100))= 1005
フィルタカットオフ周波数に正確な値を設定するには、RCフィルタ部品の公差をできるだけ低くする必要があります(あるいは、オペレータが希望する値に最も近いものを選択するためにマルチメータを使用して手動で値を測定できます)。
アナログ信号はArduinoボード(A0入力チャンネル)によってデジタル化され、シリアル通信ピンによってHC-06モジュールに送信されます。最後に、データはBluetoothによってスマートフォンに送信されます。
参照電極(黒)はオプションであり、ジャンパJ1を取り外すことで除外できます(またはオペレータがジャンパの代わりにスイッチを使用できます)。回路構成は2つの電極でも機能するように設計されています。しかしながら、参照電極はより良い信号品質(より低いノイズ)を持つために使用されるべきです。
ステップ6:コンポーネント
スマートフォンと使い捨て部品(電極とバッテリー)を除くと、デバイス全体のコストは約43米ドルになります(ここでは単一製品と見なします。大量の場合は価格が下がります)。
すべての部品の詳細なリスト(説明と概算のコスト)については、組み立てマニュアルファイルを参照してください。
ステップ7:ツールが必要
- 工具が必要:テスター、バリカン、はんだごて、はんだワイヤー、ドライバー、ペンチ。
ステップ8:作り方 - ステップ1
- 23×21の穴(約62 mm×55 mm)の穴あきプロトタイプボードを準備する
- 図に示されているPCBの上面レイアウトによると、はんだ:抵抗器、接続ワイヤ、メスソケットストリップ(Rp用)ソケット、オスおよびメスヘッダーコネクタ(ここでのメスヘッダーコネクタ位置はArduino NanoまたはArduinoに適しています)マイクロ)、コンデンサ、LED
ステップ9:作り方 - ステップ2
- ここに示されているPCB底部レイアウトに従ってすべての部品を接続します。
ステップ10:作り方 - ステップ3
- バッテリーストラップ/ホルダー、メスヘッダーコネクター、および熱収縮チューブを使用して、バッテリー用のワイヤーコネクターを実現します。それをPCBの「con1」(コネクタ1)に接続します
ステップ11:作り方 - ステップ4
- 3本の電極ケーブル(同軸ケーブル、メスヘッダーコネクタ、熱収縮チューブ、ワニ口クリップを使用)を実現し、それらをPCBに接続して、いくつかの固定ケーブルでボードに固定します。
ステップ12:作り方 - ステップ5
- スイッチ(スライドスイッチ、メスヘッダーコネクタ、熱収縮チューブを使用)を実現し、それをPCBに接続する
- INA128、TL062、およびRp抵抗を対応するソケットに取り付けます。
- Arduino Nanoボードをプログラムし(ソフトウェアの説明の節を参照)(他のArduinoボード(UNOやNanoなど)を使用する場合は、穴あきプロトタイプボードとメスヘッダーコネクタをPCB上で調整する必要があります)。
- HC-06モジュールをPCBの「con2」(コネクタ2)に接続します。
ステップ13:作り方 - ステップ6
- 参照電極を使用するためにジャンパーJ1を接続してください
- バッテリーを接続する
ステップ14:作り方 - ステップ7
- LED、ケーブル、およびスイッチ用の穴がある適切な箱の中に回路を置きます。
より詳細な説明はアセンブリマニュアルファイルに示されています。
ステップ15:その他のオプション
- モニタリング用途のためのECG信号は、0.1から40Hzの間でフィルタリングされる。ローパスフィルタの上限帯域幅は、R8またはC8とR9またはC9を変更することによって増やすことができます。
- Rp抵抗の代わりに、実行時に利得を変更する(そしてECG信号を増幅する)ためにトリマまたはポテンショメータを使用することができます。
- ECG装置は異なるArduinoボードでも動作します。 Arduino NanoとArduino UNOがテストされました。他のボード(Arduino Micro、Arduino Megaなど)を使用することもできますが、提供されているArduinoスケッチファイルはボードの機能に応じた変更が必要です。
- ECG装置は、HC-06モジュールの代わりにHC-05モジュールでも動作します。
ステップ16:ソフトウェアの説明
ソフトウェアプログラミングの知識は必要ありません。
Arduinoプログラミング:ArduinoソフトウェアIDE(Arduino公式Webサイトから無料ダウンロード)をインストールし、Arduino公式Webサイトで入手可能なチュートリアルに従って、ArduinoスケッチファイルをArduinoボードに簡単にアップロードできます。 Arduino NanoとArduino UNOの両方のための単一のスケッチファイル(“ ECG_SmartApp_skecht_arduino.ino”)が提供されます(スケッチは両方のボードでテストされました)。同じスケッチはArduino Microでも動作するはずです(このボードはテストされていません)。他のArduinoボードの場合は、スケッチファイルを変更する必要があります。 ECG SmartAppのインストール:Appをインストールするには、提供されているapkファイル「ECG_SmartApp.apk」(または150Hzの帯域幅のバージョンの場合は「ECG_SmartApp_upTo150Hz.apk」)をスマートフォンのメモリにコピーし、それを開いて次の手順に従います。許可を承認します。インストールする前に、未知のソースからのアプリのインストールを許可することでスマートフォンの設定を変更する必要があるかもしれません(「セキュリティ」メニューの「未知のソース」オプションのボックスにチェックを入れてください)。 ECGデバイスをHC-06(またはHC-05)Bluetoothモジュールに接続するには、モジュールとの最初のBluetooth接続の場合、ペアリングコードまたはパスワードを要求されることがあります。「1234」と入力します。アプリがBluetoothモジュールを見つけられない場合は、スマートフォンのBluetooth設定(ペアリングコード「1234」)を使用して、スマートフォンとHC-06(またはHC-05)Bluetoothモジュールをペアリングしてみてください。この操作は一度だけ必要です(最初の接続)。
ステップ17:ソースファイル
アプリケーションを変更またはパーソナライズするためのオプションのソースファイルがここにあります。ただし、Androidのプログラミングスキルが必要です。
ステップ18:心電図SMARTAPPから始める - ステップ1
- 装置に接続されているバッテリー(最大電圧供給:9V)が充電されていることを確認してください。
- 電極を配置する前に肌をきれいにしてください。通常私たちの体の表面に存在する乾燥した死んだ皮膚層、および皮膚と電極との間にあり得るエアギャップは、電極へのECG信号伝達を促進しない。だから電極と皮膚の間の湿った状態が必要です。電極ゲルパッド(使い捨て)を配置する前に、皮膚を清潔にする必要があります(ティッシュクロスにアルコールまたは少なくとも水を含ませた)。
- 下の表に従って電極を置きます。使い捨てでない電極の場合には、電極導電性ゲル(市販されている)を皮膚と金属電極の間、または少なくとも水道水または食塩水に浸した布ティッシュのパッドの間に使用するべきである。
装置はまた2つの電極だけを使用することによってECG(LI、LIIまたはLIII)を記録することを可能にする。参照電極(黒)はオプションであり、スイッチを使用するかジャンパJ1を取り外すことで除外できます(組み立て説明書を参照)。しかしながら、参照電極はより良い信号品質(より低いノイズ)を得るために使用されるべきです。
ステップ19:心電図SMARTAPPから始める - ステップ2
- スイッチを使用してECG装置の電源を入れます(赤いLEDが点灯します)。
- スマートフォンでアプリを実行する
- スマートフォンをECGデバイスに接続するには「ON」ボタンを押し(アプリはBluetoothをオンにする許可を要求します:「Yes」を押します)、HC-06(またはHC-05)Bluetoothの検出を待ちますECG装置のモジュール。モジュールとの最初のBluetooth接続の場合、ペアリングコードまたはパスワードを要求されることがあります。「1234」と入力します。アプリがBluetoothモジュールを見つけられない場合は、スマートフォンのBluetooth設定(ペアリングコード「1234」)を使用して、スマートフォンとHC-06(またはHC-05)Bluetoothモジュールをペアリングしてみてください。この操作は一度だけ必要です(最初の接続)
- 接続が確立されると、ECG信号が画面に表示されます。 LIの場合(デフォルトの誘導はLIです。誘導を変更するには「設定」の段落に進んでください)、心拍数(HR)がリアルタイムで推定されます。信号は3秒ごとに更新されます
- デジタルフィルタを適用するには、「フィルタ」ボタンを押してリストからフィルタを選択します。デフォルトでは、40 Hzのローパスフィルタと(設定に保存されている設定に従った)ノッチフィルタが適用されます。
ステップ20:設定
- 「設定」ボタンを押して設定/設定ページを開きます。
- 「User Manual(help.pdf)」を押してユーザーマニュアルファイルを開きます。
- 心電図誘導を選択します(LIがデフォルト)。
- ノッチフィルタ周波数を選択します(干渉周波数に応じて:50または60 Hz)。
- ファイル保存オプションを選択して、フィルタ処理されたまたはフィルタ処理されていない心電図信号をファイルに保存します。
- 「設定を保存」ボタンを押して設定を保存します
ハードウェアの変更またはECGデバイスのパーソナライゼーションの場合は、ゲイン値を変更できます。
ステップ21:心電図信号の記録
- ファイル名を挿入します(ユーザがファイル名を変更せずに同じセッションでより多くのECG信号を記録する場合は、前の記録を上書きしないようにファイル名の末尾にプログレッシブインデックスが追加されます)。
- 「Rec。」ボタンを押してECG信号の記録を開始します
- 録音を停止するには、「停止」ボタンを押します
- 各ECG信号は、スマートフォンのメモリのメインルートに置かれているフォルダ「ECG_Files」内のtxtファイルに保存されます。 ECG信号は、設定に保存されている設定に応じて、フィルタ処理またはフィルタ処理なしで保存できます。
- 実行時に取得されたECG信号を再度視覚化するために「再起動」ボタンを押す
- 新しいECG信号を記録するには、前のポイントを繰り返します
ECGファイルには、ECG信号振幅の一連のサンプル(サンプリング周波数:600 Hz)がmV単位で含まれています。
ステップ22:心電図ファイルを開いて分析する
- 開くボタンをクリックします。ECG_Filesフォルダに保存されているファイルの一覧が表示されます。
- 視覚化するECGファイルを選択してください
ECGファイルの最初の部分がグリッドなしで表示されます(10秒)。
ユーザはECG信号の任意の時間間隔を視覚化するためにディスプレイ上を手動でスクロールすることができる。
ズームインまたはズームアウトするには、虫眼鏡アイコン(グラフの下部にある右隅)を押すか、スマートフォンのディスプレイで直接ピンチズームを使用します。
時間軸、電圧軸、標準のECGグリッドは、5秒未満の時間間隔が拡大表示されると自動的に表示されます。電圧軸(y軸)の値はmV単位で、時間軸(x軸)の値は秒単位です。
デジタルフィルタを適用するには、「フィルタ」ボタンを押してリストからフィルタを選択します。デフォルトでは、40 Hzのローパスフィルタ、さまよう線を除去するフィルタ、および(設定に保存されている設定に従った)ノッチフィルタが適用されます。グラフのタイトルが表示されます。
- ファイル名
- 適用されたフィルタに従ったECG周波数帯
- 放浪ベースラインフィルタが適用されている場合は、ラベル「放浪ベースラインが削除されました」
- 適用されたノッチフィルターに応じたラベル「〜50」または「〜60」
ユーザーは「Get Pt1」および「Get Pt2」ボタンを使用してグラフの2点間の測定(時間間隔または振幅)を行うことができます。最初の点(Pt1)を選択するには、ユーザーは「Get Pt1」を押してグラフを直接クリックしてECG信号の点を手動で選択します。赤い点がECGの青い信号に表示されます。ユーザーが心電図曲線を見逃した場合、ポイントは選択されず、「ポイントが選択されていません」という文字列が表示されます。ユーザーは選択を繰り返す必要があります。 2番目の点(Pt2)を選択するために同じ手順が必要です。このようにして、ms(dX)単位の時間値とmV単位(dY)の振幅値の差(Pt 2 - Pt 1)が表示されます。 「クリア」ボタンは選択した点をクリアします。
ユーザーは「+」ボタン(拡大)と「 - 」ボタン(縮小)を使用してECG信号のゲインを調整できます。最大ゲイン:5.0、最小ゲイン:0.5
ステップ23:フィルターメニュー
- デジタルフィルタなし:適用されているすべてのデジタルフィルタを削除します。
- さまようベースラインの削除:ベースラインのさまよいを削除するために特定の処理を適用します。信号が非常にノイズが多い場合、処理は失敗する可能性があります。
- ハイパス「x」Hz:指定されたカットオフ周波数「x」に従ってIIRハイパスフィルタを適用します。
- ローパス「x」Hz:指定されたカットオフ周波数「x」に従ってIIRローパスフィルタを適用します。
- 50 Hz除去ON(ノッチ+ LowPass 25 Hz):特定の非常に安定した、50 Hzのノッチと約25 HzのローパスのFIRフィルターを適用します。
- 60 Hz除去ON(ノッチ+ LowPass 25 Hz):特定の非常に安定した60 Hzのノッチと約25 HzのローパスのFIRフィルターを適用します。
- 50 Hz除去ON:50 Hzで再帰的ノッチフィルターを適用
- 60 Hz除去ON:60 Hzで再帰的ノッチフィルターを適用
- 50/60 Hz除去OFF:適用されたノッチフィルターを除去します
ステップ24:ハードウェア仕様
- 最大入力信号振幅(ピークツーピーク):3.6 mV(最大入力信号振幅はハードウェアゲインによって異なります)
- 電圧供給:唯一の電池を使用する(充電式と非充電式の両方)
- 最小電圧供給:6V(4 x 1.5V電池など)
- 最大電圧供給:9V(6×1.5Vまたは1×9V電池など)
- サンプリング周波数:600 Hz
- 周波数帯域幅 - - 3dB(ハードウェア):0.1 Hz - 40 Hz(ローパスフィルタの上限帯域は、RCフィルタ部品を変更することで0.1 Hz - 150 Hzまで上げることができます(組立説明書を参照))。
- CMRR:最小1209 dB
- 増幅率(Hardware_Gain):1005(ゲイン抵抗を交換することで変更できます(アセンブリマニュアルを参照)) - 分解能:5V /(1024 x Hardware_Gain)
- バイアス電流最大10 nA - ECGチャンネル数:1
- 心電図リード:肢リードLI、LIIおよびLIII
- スマートフォン接続:Bluetooth経由
- 理論供給電流:<50 mA(各部品のデータシート情報に基づく)
- 測定供給電流:60 mA未満(9 V電源およびArduino Nanoを使用)
- 電極数:2または3
装置はまた2つの電極だけを使用することによってECG(LI、LIIまたはLIII)を記録することを可能にする。参照電極(黒)はオプションで、ジャンパJ1(またはスイッチS2、組み立てマニュアルファイルを参照)を取り外すことで除外できます。しかしながら、参照電極はより良い信号品質(より低いノイズ)を得るために使用されるべきです。
ステップ25:ソフトウェア仕様
- 記録中の心電図の視覚化(タイムウィンドウ:3秒)
- 心拍数の推定(LIのみ)
- サンプリング周波数:600 Hz
- ECG信号の記録とスマートフォンの内部メモリ(フォルダ:メインルートに配置された“ ECG_Files”)上のtxtファイルへの保存(フィルタリングされた信号またはフィルタリングされていない信号は設定に従ってtxtファイルに保存できます)
- データ(サンプル)は600 HzでmV単位の値として保存されます(16桁の値)
- ズームオプション、グリッド、ゲイン調整(「x 0.5」から「x 5」まで)および2点選択(時間距離と振幅差を測定する)による保存されたファイルの視覚化
- スマートフォンディスプレイ:アプリのレイアウトは異なるディスプレイサイズに合わせて調整します。ただし、見やすくするために、解像度が480 x 800ピクセルの3.7インチ以上のディスプレイを推奨します。
デジタルフィルタリング:
- 0.1、0.15、0.25、0.5、1 Hzでのハイパスフィルタリング
- 25、35、40 Hzのローパスフィルタリング(ECG SmartAppバージョンでは、150 Hzで帯域幅が150 Hzの場合、@ 100および150 Hzが使用可能です)
- 50または60 Hzで電力線の干渉を除去するためのノッチフィルタリング
- さまようベースラインの削除
ステップ26:連絡を取ってください。
2人がこのプロジェクトを作りました!
あなたはこのプロジェクトを作りましたか?私たちと共有しましょう!
おすすめ
-
Arduinoコードサンプルのマッシュアップ
-
オープンソースのOrnithopterプロトタイプ。 Arduinoの電源とリモートコントロール。
-
モノのインターネットクラス
-
木工コンテスト
-
Arduinoコンテスト2019
-
ガーデニングコンテスト
ディスカッション
0DIYハックとHow Tos4ヶ月前
とてもかっこいい。私はDIYの科学機器が大好きです。