手順とリンク
1.準備と基礎編
http://qiita.com/tkyko13/items/62ff91bce7d9e555c434
2.アナログ入力確認編
http://qiita.com/tkyko13/items/981989a006a95821ccde
3.pythonで確認
http://qiita.com/tkyko13/items/44ca53b027fa249acdc6
4.脈拍センサ
http://qiita.com/tkyko13/items/e4afc73add81d7bbb426
5.csv出力
ここ
pythonでCSV
探すとたくさん参考記事が見つかると思います。
以下のURLからも参考にさせて頂きました。
http://qiita.com/okadate/items/c36f4eb9506b358fb608
まずは、脈拍センサ関係なくシンプルなサンプルコードを乗せます。
これを実行すると、このpythonコードと同じフォルダにdata.csvが作られ、縦に0から99の数字が並んでいると思います。
最終的にこの数字を脈拍の数値にします。
import csv
f = open('data.csv', 'w')
for i in range(0, 100):
writer = csv.writer(f, lineterminator='\n')
writer.writerow([i])
f.close()
動くことが確認できたら、for文ではなく、前々回の「3.pythonで確認」で作ったサンプルコードと合わせていきます。
import smbus
import time
import threading
import csv
I2C_ADDRESS = 0x48
bus = smbus.SMBus(1)
f = open('data.csv', 'w')
def loop(count):
count = count+1
bus.write_byte(I2C_ADDRESS, 0xFF)
value = bus.read_byte(I2C_ADDRESS)
print value
writer = csv.writer(f, lineterminator='\n')
writer.writerow(value)
if count < 100 :
t = threading.Timer(0.1, loop, args=(count,))
t.start()
else :
f.close()
print 'finish'
t = threading.Thread(target=loop, args=(0,))
t.start()
いざ脈拍測定
さて、脈拍センサが配線でき(前回)、上のpythonコードを実行できるようになったら測定していきます。
コツとしては指を少し離すといいらしいです。
csvデータ転送
無事ラズパイ内にcsvデータができれば成功です。
自分のPCにデータ転送します。
方法は自由ですが、自分はftpソフト(macですのでCyberduck)を使いました。
ラズパイにUSBメモリを差すのもありです。
エクセルでデータを開きグラフを挿入
自分のデータはうまくいっていなかったっぽいです。
指を置いたときと、まったく置いていないときを比較したグラフ画像が以下です。
配線か、環境か、データ取得間隔が開きすぎたか・・・
もしくわ・・・既に死んでいる・・・?
まとめ
結果はどうあれ、これにて半無理矢理終了です。
改善改良は引き続き行って行きたいと思います。
長くなりましたがお疲れ様でした。