M-04911

ドップラーレーダーは、秋月電子で購入しました。IPM-165-A01という型番になります。

http://akizukidenshi.com/catalog/g/gM-04911/

Kバンドを利用しており、出力は電圧値でのアナログ出力になります。ドップラーレーダーはドップラー効果を利用することから、動くものを検知できます。バイタルセンシングを考えると、肺や心臓、それ以外の消化器等の動きが図れることが期待されるのではないでしょうか。

内臓の動きは早く、一秒間に数10から100程度のデータはサンプリングできないと何も測れない可能性があります。このスピードだとArduinoでは処理能力に不安がありますのでRaspberry PIで接続することにしました。ただ、RapberryPIはAD変換を持っていないので外付けしてそれから、センサーを接続するという方法になります。

ADコンバーターは同じく秋月電子でMCP3425を購入しました。1 channelしか入力はありませんが、接続が簡単で、かつPGA(Programal Gain Amplifier)が付いており、信号の増幅も最大8倍まで実行できます。OPアンプのアナログ回路を追加するのは面倒なので、大変助かる機能になります。

K-08018

接続および、Pythonのプログラムは下記のサイトを参考にさせていただきました。

http://www.denshi.club/pc/raspi/5raspberry-pi-zeroiot4a-d1-3.html

以下が拝借したPythonコードになります。raspberry pi 3を使用しました。

#!/usr/bin/env python
importsmbus
importtime
i2c = smbus.SMBus(1)
addr=0x68
Vref=2.048
config =0b10011000
i2c.write_byte(addr, config) #16bit
time.sleep(0.2)
defswap16(x):
        return (((x << 8) & 0xFF00) |
                ((x >> 8) & 0x00FF))
defsign16(x):
        return ( -(x & 0b1000000000000000) |
                  (x & 0b0111111111111111) )
#main
while1:
        data =i2c.read_word_data(addr,config)
        raw = swap16(int(hex(data),16))
        raw_s = sign16(int(hex(raw),16))
        volts = round((Vref * raw_s / 32767),4)
        print(volts)
        time.sleep(0.01)
センサーがあまり、からだから離れていると肺の動きしか取れないようです。ほとんど体に接触(胸の真ん中)に取り付けると以下のようなになります。心拍の短いサイクルと大きな肺の動きがよく表れていると思います。下記は、1倍のデータなので8倍に増幅する必要がありそうです。
図1
広告
Report this ad
Report this ad