DIYてんかん発作検出器

私の友人には奇妙な健康上の問題があります。 医師は、これは「潜在性てんかん」であると言います。 一番下の行は、彼は時々夜に彼の睡眠中に「シェイク」攻撃を持っているということです。 最後に、私は、愛する人に通知し、タイムリーに助けるために約10秒間振った場合、腕に装着し、きしむような厄介なデバイスを作るように頼まれました。



最も明らかな解決策は、加速度計を使用することです。 私が最初に手に入れたものの1つ、ボッシュのBMA150を購入しました。



画像





小さく、わずか3x3mmの伝染ですが、はんだ付けされていません。



私はこれをアマチュアレベルでのみ行っているとすぐに言わなければならないので、あまり批判しないでください。



データシートを読んだ後、I²CまたはSPIを介して加速度計と通信することが可能であることが判明しましたが、さらに外部割り込み用の特別な出力があります。 つまり 特定の条件下でそこに論理ユニットを出力するように、一度設定することができます。 私たちの場合、これは理想的です-センサーに絶えず質問する必要はありません。一定量の揺れがあると、センサー自体がスリープモードからウェイクアップします。 これは、電力に関して可能な限り経済的にデバイスを作成する必要があるため、非常に重要です。



加速度計のセットアップ



実験とチューニングのために、簡単にはんだ付けできるようにボードをエッチングしました。







何らかの理由で、I²C加速度計は動作しませんでした。 どこかに間違われた可能性があります。 しかし、SPIではすべてが問題なく機能しました。 センサーは、2つの部分に分かれているメモリの配列として利用できます。







最終的にデータを受け取ったとき、私の喜びは際限がありませんでした。







加速度計は、さまざまな場合に外部割り込みを自動的に生成できます。 最も単純なイベント、つまり十分に強い動きが必要です。 次の条件がいずれかの軸に当てはまる場合、センサーはこれを行います。



|acc(t0)-acc(t0+3/(2*bandwidth))| >= any_motion_thres







any_motion_thresは、特殊レジスターに設定されます。 経験的に、25Hzのリフレッシュレートでは、最適値は20hであることがわかりました。 この状況では、センサーを振ることが容易な場合、割り込みフラグが設定されます。 条件がしばらく満たされなくなると、フラグは自動的に削除されます。



すべてのパラメーターが最適に設定されていることを確認した後、これらの設定を既にEEPROMに保存しました。 したがって、スイッチをオンにした直後の加速度計は、動きがあれば論理ユニットをINTに出力し、SPIは不要になります。



ボード開発



私はATMEGA8Aマイクロコントローラーを選びました。 2つの外部割り込みがあり(そのうちの1つをボタンに使用し、もう1つを加速度計自体に使用することにしました)、2.7-5.5Vの電圧範囲で動作し、最も深いスリープモードでは、「パワーダウン」の消費電力はわずか0.5μAです。 省エネは非常に重要であるため、マイクロコントローラーはほとんど常にスリープ状態になると想定されています。 ただし、このスリープモードから目覚めるには、INT0 / INT1の足を地面に近づける必要があり、加速度センサーは、動きがある場合、逆に高いレベルを与えるため、反転用のトランジスターを配置する必要があります。 不要な損失なしにセンサーをオン/オフできるように、マイクロコントローラー自体の足からセンサーに直接電力を供給することにしました。 スピーカーも直接接続されました。 デバッグのために、別のLEDを配置することが決定されました。 ダイアグラムを描画しなかったため、結果としてボードは次のようになりました。







レディボード:







残念ながら、私はツイーターしか利用できませんでしたが、それはボード自体よりも大きいことが判明しました:







ファームウェア



ここではすべてが非常に簡単です。 デバイスには2つの動作モードがあります。







ちなみに、加速度計にはスリープモードもあり、そこから所定の時間間隔で起動することができますが、精度と信頼性に影響を与えないように、加速度計を使用しないことにしました。 文書によると、このセンサーは200μAを消費します。これは多くの夜に十分なはずです。



ボディービル



ケースは3Dプリンターで印刷することに決定しました。







その結果、内部はすべて次のようになりました。







残念ながら、最終的にデバイスは非常にかさばり、集合農場であることが判明しました。







しかし、これはまだ最初の実験モデルです。 後でサイズと外観を大幅に最適化できると思います。 まあ、この形でも人の命を救うことを忘れないでください。



動作中のビデオデバイス:



指が汚れてすみません、彼らはまだプラスチックと塩化第二鉄の中にいます。



特定の質問を予見し、すぐに回答します。







2014年7月6日の更新



私が約束したように、私は最初のバージョンで止めることができませんでした。その結果、応答時間を短縮し、感度を上げるように頼まれました。



残念ながら、BMA150加速度計はストアで使用できなくなりましたが、BMA250がありました。 データシートを一目見ただけで、さらに格段に格好いいことがわかりました。 本当、さらに少ない:







2 x 2ミリメートル、12接点。 ただし、今回はサイズに問題はありませんでした。 それはむしろプラスです。



このモデルには、非常に優れた設定がいくつかあります。 また、割り込みの極性(さようなら、追加のトランジスタ)、およびその期間などを指定できます。 はい、それは素晴らしいです! すべてのレジスターに最適なパラメーターを選択したとき、私はすでに非常に満足していましたが、BMA250にこれらの設定をEEPROMに保存する機能がないことに気付いたとき、すべての喜びが失われました。 これは軟膏のハエで、長い間信じられませんでした。



ボードと加速度計へのSPIを分離する必要がありました。そのため、電源を入れるたびに再度セットアップする必要がありました。







ただし、設定のいずれかを変更する必要がある場合は、蒸発させる必要はありません。 そして、はい、私はコメントのアドバイスに耳を傾け、小さなピエゾブザーを使用しました、バッテリーはボードの下に配置され、その結果、デバイスのサイズが大幅に小さくなりました。 オンにした場合でも、バッテリーの電圧が測定されるようになり、2.8Vより低い場合、追加の信号が発せられます。 このため、2.56Vの安定器と分圧器を内蔵したADCを使用して、この範囲に適合します。



その場合:







そして閉じた形で:






All Articles