Raspberry Pi로 심박 센서 값 읽기
8874 단어 RaspberryPiMCP3008Python심박 센서
라즈파로 심장 박동 센서의 정보를 읽다.
준비물
MCP3008(AD 변환기)
점퍼
경로설정
직접 사용이 사이트.
가장 중요한 심장 박동 센서를 못 봐서 미안해요...
SPI
이 사이트와 같이 py-spidev를 설치합니다(라즈파에서 SPI driver를 유효하게 해야 합니다).
$ git clone git://github.com/doceme/py-spidev
$ cd py-spidev
$ sudo python setup.py install
예제 프로그램
다음 Python 파일을 만듭니다.
pulse.py
#!/usr/bin/python
#coding: utf-8
import spidev
import time
import sys
Vref = 3.3
Criteria = 530
#spiパスへのアクセスを開く
spi = spidev.SpiDev()
spi.open(0,0)
spi.max_speed_hz = 1350000
adc_channel = 0
delay = 0.01
f = open('pulse.dat', 'w')
pulse = 0
digital = 0.0
index = 0
#ADコンバータからSPIデータの読み込み
def ReadChannel(channel):
adc = spi.xfer2([1, (8+channel)<<4, 0])
data = ((adc[1]&3)<<8) + adc[2]
return data
try:
while True:
#心拍センサの値読み取り
analog_level = ReadChannel(adc_channel)
#値がいったん基準を超え、次に基準を下回った瞬間に"pulse"を出力
if(analog_level == 0):
time.sleep(delay)
continue
if((analog_level < Criteria) and (pulse == 1)):
print("Pulse")
if (analog_level < Criteria):
pulse = 0
else:
pulse = 1
#値を電圧[V]に変換
digital = analog_level * Vref / float(1023)
data = "{} {} {} \n".format(index, analog_level, digital)
f.write(data)
time.sleep(delay)
index += 1
except KeyboardInterrupt:
print("Exit")
f.close()
명령 프롬프트에서 실행합니다."Pulse"를 박자에 맞추어 출력하면 성공합니다.dat 파일을 썼지만 이번에는 사용하지 않았습니다.
$ python pulse.py
딱 초록색 동그라미 때 "Pulse"출력하는 느낌이에요.
※ 이 사진은 인상입니다. 이번에 치즈파이로 만든 그래프가 아닙니다(다른 시기에 아르두노가 찍은 데이터로 만든 그래프입니다)
지원
아까 펄스.py로 쓴 다음 문장
spi.max_speed_hz = 1350000
처음에 이것을 쓰지 않고 실행하면 MCP3008에서 값을 읽을 수 없습니다.웹 사이트 축소 이미지 위의 문장을 더하면 값을 잘 읽을 수 있으나 읽을 수 없는 원인은 불분명하다.data = ((adc[1]&3)<<8) + adc[2]
이 수수께끼 같은 문장의 뜻웹 사이트 축소 이미지에 상세한 기록이 있다.AD 변환기를 사용할 때 자주 나타나는 코드이기 때문에 많은 것을 배웠습니다.
Reference
이 문제에 관하여(Raspberry Pi로 심박 센서 값 읽기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ymtkds/items/b9bc533c9c93a67d5e53텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)