cavedu
  • CAVEDU教育團隊
  • BOSON電子積木套件
    • 認識BOSON
      • 輸入模組
        • i1旋鈕模組
        • i2r按鈕模組
        • i3自鎖開關
        • i4光感測器
        • i5傾斜感測器
        • i6水分感測器
        • i7火焰感測器
        • i8觸碰感測器
        • i9聲音感測器
        • i10紅外線接近度感測器
        • i11溫度感測器
        • i12導電感測開關
        • i13動作感測器
        • i16土壤濕度感測器
        • i17酸鹼值感測器
        • i18濕度感測器
        • i19防水溫度感測器
        • i20心律監測感測器
        • i22超音波感測器
      • 輸出模組
        • o2LED燈模組
        • o5蜂鳴器模組
        • o6風扇模組
        • o7錄音機模組/喇叭
        • o9馬達模組
        • o10伺服機模組
        • o11OLED顯示模組
        • 七彩燈條
      • 功能模組
        • f1運算邏輯模組AND
        • f2運算邏輯模組OR
        • f3運算邏輯模組NOT
        • f4分配模組
        • f6閾模組
        • f7計數模組
        • f8計時模組(0-60秒)
    • 實作範例教學
    • 資源鏈結
  • LinkIt 7697 BlocklyDuino 使用指南
  • LinkIt 7697 - Arduino IDE 開發指南
  • 💻Raspberry Pi Pico介紹
    • Raspberry Pi Pico 擴充板
    • Raspberry Pi Pico 使用Arduino IDE
  • 洞洞么教學材料包
    • 新版LinkIt 7697開發板 V1.1版使用序列埠印出指令亂碼問題
    • 模組使用教學
      • LED模組
      • LED模組(三色)
      • 按鈕模組
      • 旋轉電位計模組
      • 光敏模組
      • 微動開關模組
      • DHT11溫溼度感測器模組
      • 無源蜂鳴器模組
      • 有源蜂鳴器模組
      • 震動開關模組
      • 滾珠開關模組
      • 超音波測距感測器
      • 伺服機
      • 紅外線偵測模組
      • I2C 1602液晶顯示模組
      • 熱敏(溫度)模組
      • DHT 22溫溼度模組(For Pico)
    • micro:bit影片教學
  • 洞洞兩教學材料包(貓咪盃硬體組材料包)
    • 模組使用教學
      • LED模組
      • 繼電器
      • 大顆LED紅綠燈整合模組
      • 旋轉可變電阻
      • 光線模組
      • 土壤溼度模組
      • 避障紅外線模組
      • 按鈕模組
      • 滾珠開關模組
      • 霍爾磁性模組
      • RGB LED共陰模組
      • 電晶體MOS模組
      • 兩路L9110S馬達模組
      • 無源蜂鳴器
      • SR-04P超音波
      • DHT11溫溼度模組
      • 舵機
      • LCD1602液晶模組
      • Max7219 8X8 矩陣LED模組
      • WS2812 RGB12燈燈環模組
  • 洞洞伍AIoT教學材料包
    • Raspberry Pi Pico W 介紹
    • 程式撰寫軟體下載
    • 模組使用教學
      • 溫溼度感測器
      • 旋轉電位計模組
      • RFID模組
      • RGB全彩LED模組(共陽極)
      • 按鈕模組
      • OLED 顯示器模組
      • 有源蜂鳴器模組
      • SG90伺服馬達模組
      • PIR生物紅外線感測器模組
      • 氣體感測器Gas Sensor(MQ7)模組
      • 數位式光強度感測器模組
  • Arduino首次接觸就上手
    • 認識Hangeekduino圖形化介面
    • Hangeekduino範例程式
      • 輸入模組
        • 按鈕模組
        • 旋轉電位計模組
        • 聲音感測模組
        • 光感測器模組
        • 溫溼度感測模組
        • 三軸加速度模組
        • 氣壓感測模組
      • 輸出模組
        • LED模組
        • 蜂鳴器模組
        • OLED顯示模組
    • 書籍內容更新_202012更新
    • [Processing 互動裝置藝術結合 Arduino ]
      • 範例01_Processing IDE 下載、基本範例
      • 範例02_連接Arduino_數位輸入與類比輸入
      • 範例03_Processing控制LED
      • 範例04_療癒海浪 - 按鈕與多個類比感測器
      • 範例05_天空飄著雲 - DHT溫溼度感測器
      • 6. 滾球小遊戲 - 三軸加速度感測器
      • 範例07_風車轉轉 - 聲音感測器
    • Arduino BLE藍牙通訊 - Android 手機
      • Example 01
      • Example 02
      • Example 03
  • 其他感測器模組
    • 火焰感測器
    • 手指偵測心跳模組
    • 心律感測器
    • 科易KEYES 雨水感測器
    • Grove–VOC與eCO2 氣體感測器 (SGP30)
    • 高精度升降壓電源模組XYS3580
  • MCS Lite 介紹及感測器網頁遠端監控
    • 5-4 MCS Lite 介紹及MCS Lite 環境建置
    • 5-5 網頁遠端監控LED
    • 5-6 雲端溫濕度監控
  • 初學Jetson Nano不說No-CAVEDU教你一次懂
    • 書籍更新修改內容
Powered by GitBook
On this page
  • 實體照片
  • 基本信息
  • 功能簡介
  • 使用說明
  • 原理介紹
  • 應用範例
  • (1) 跳動的心
  • (2) 使用OLED顯示模組監測心率
  • (3) 使用Micro:bit監測心率
  • 商品規格

Was this helpful?

  1. BOSON電子積木套件
  2. 認識BOSON
  3. 輸入模組

i20心律監測感測器

Previousi19防水溫度感測器Nexti22超音波感測器

Last updated 3 years ago

Was this helpful?

實體照片

基本信息

中文名稱:心律監測感測器

英文名稱:Heart Rate Monitor Sensor

序號:i20

SKU:BOS0043

功能簡介

心律監測感測器採用光學技術通過皮下毛細血管內的血氧量變化來檢測人體的心率,心率檢測可廣泛應用於可穿戴設備、健身輔助器材等場景。

使用說明

心律監測感測器在使用時需要測量者將任一手指放於下圖所示位置①處進行測量,心律監測感測器的輸出信號是數位信號,即高低電位。

按照下圖所示連接電路,通電後將手指放在心律監測感測器指定位置處即可通過OLED顯示模組查看測量者的心率。

心律監測感測器在使用時需注意以下四點事項:

(1)手指皮質厚薄程度會影響測量結果;

(2)測量過程中手指不宜按壓過緊;

(3)測量過程中不宜隨意移動身體;

(4)心律監測感測器並非專業醫療儀器,不能用作醫療診斷或治療。

原理介紹

心律監測感測器採用PPG光電容積脈搏波描記法(PhotoPlethysmoGraphy)測量心率。這是一種低成本光學技術,通過檢測皮下毛細血管內的血氧量變化量來檢測對應的人體心率。該技術擁有回應性快、性能穩定、適應性強等特點。

應用範例

(1) 跳動的心

範例說明:當心律監測感測器輸出高電位時,Micro:bit的LED燈點陣顯示“大愛心”;當心律監測感測器輸出低電位時,Micro:bit的LED燈點陣顯示“小愛心”。

元件清單:心律監測感測器;Micro:bit;Micro:bit BOSON擴充板。

連線圖:

設計意圖:當心律監測感測器輸出高電位時,Micro:bit在LED燈點陣上顯示圖示“大愛心”;否則,Micro:bit在LED燈點陣上顯示圖示“小愛心”。將程式上傳到Micro:bit後,當手指沒有放在心律監測感測器的感應位置時,你會發現愛心閃爍的頻率會很快,而當你把手指放在心律監測感測器的感應位置上時,你會發現愛心閃爍的頻率變小了,這是因為心律監測感測器正在根據你的心跳週期有節奏地輸出高低脈衝。

執行流程:

① 顯示“大愛心”;若P0腳位輸出高電位(即1),Micro:bit顯示“大愛心”;

② 顯示“小愛心”:若P0腳位輸出低電位(即0),Micro:bit顯示“小愛心”。

程式示意圖(中文版):

Example program(English):

(2) 使用OLED顯示模組監測心率

範例說明:使用心律監測感測器監測人的心率變化,OLED顯示模組即時顯示心律監測感測器的測量結果。

元件清單:心律監測感測器;主控板:3組輸入/輸出端;OLED顯示模組。

連線圖:

(3) 使用Micro:bit監測心率

範例說明:使用心律監測感測器監測心率變化,Micro:bit在LED燈點陣上顯示心律監測感測器的測量結果。

元件清單:心律監測感測器;Micro:bit;Micro:bit BOSON擴充板。

連線圖:

範例程式一:通過累計一定時間的心跳次數測量心率

設計意圖:由於心率表示的是人每分鐘心跳的次數,所以測量心率的一個思路就是使用一個變數累計一分鐘內心律監測感測器監測到了多少次心跳。這裡,設置變數“心跳次數”用來累計心跳發生的次數。每當心律監測感測器檢測到心跳發生時,連接心律監測感測器的P0腳位就會被按下,此時“心跳次數”加1。理論上,讓“心跳次數”這樣累加1分鐘即可測量出心率,但這一方法會導致Micro:bit每次都需間隔一分鐘才能顯示出心率測量結果。為了改善用戶體驗,我們將間隔時間設定為15秒,在顯示心率時,由於“心跳次數”只累計了15秒,所以Micro:bit最終顯示的測量結果還需要用“心跳次數”再乘以4。這樣做雖然會導致每次顯示的心率都是4的倍數,但這一誤差相對來說是可以接受的(如果想讓測量結果更加精確,可以考慮範例程式二和範例程式三)。每次顯示心率測量結果後,還需要把“心跳次數”重新置1,為下一個心率測量週期做準備。

執行流程:

② 累計心跳次數:每當P0腳位被按下,“心跳次數”加1;

② 顯示即時心率:每隔15秒在Micro:bit的LED燈點陣上顯示一次心率測量結果;

③ 準備下一個測量週期:“心跳次數”重新置1,為下一個心率測量週期做準備。

程式示意圖(中文版):

Example program(English):

範例程式二:通過計算最近三次心跳發生的時間間隔來測量心率

設計意圖:為了更加準確地測量心率,還有一個思路是先計算出兩次心跳之間的時間間隔,即每次完整心跳需要花費的時間,再通過週期轉換為頻率即可計算出每分鐘心跳的次數。例如,若算得平均間隔為800毫秒,則心跳週期為800毫秒/次,將週期進一步轉為頻率60000÷800=75,即心率為75次/min。最後,讓Micro:bit每隔三秒在LED燈點陣上顯示一次心率測量結果。由於單個心跳週期可能出現較大波動,這裡用兩個心跳週期的平均時間間隔來減小誤差。於是,我們設置了三個變數“心跳時間1”、“心跳時間2”和“心跳時間3”分別用於保存最近三次心跳發生時的系統時間,求出這三次心跳發生的平均時間間隔:平均間隔=((心跳時間3-心跳時間2)+(心跳時間2-心跳時間1))/2。這樣我們就算出了平均單次完整心跳需要花費的時間,只需再把心跳週期轉換成頻率即可計算出心率。

執行流程:

① 初始化變數:設置變數“心跳時間1”和“心跳時間2”用於保存最近兩次心跳發生時的系統時間;

② 監測心跳:當P0腳位被按下後,用“心跳時間3”記錄下當前心跳發生時的系統時間;

③ 計算平均間隔:算出三次心跳發生的平均時間間隔;

④ 顯示即時心率:將平均間隔轉換為心率並讓Micro:bit每隔三秒顯示一次心率測量結果;

⑤ 準備下一個測量週期:更新“心跳時間1”和“心跳時間2”。

程式示意圖(中文版):

Example program(English):

HeartBeat:心跳時間。Interval_1:間隔時間1。Interval_2:間隔時間2。AverageInterval:平均間隔。

概念與上述中文版一樣,差別是這裡將三次心跳的兩個間隔時間分別命名變數為Interval_1、Interval_2,並且將每次偵測到心跳的時間放進HeartBeat的陣列裡作更新,依照心跳時間新到舊的排列順序為:程式運行時間-->陣列項目1-->陣列項目0。

執行流程如下:

  1. 初始化陣列:設定HeartBeat陣列,保存二次心跳時間。

  2. 計算心跳間隔時間:當P0腳位被觸發時,計算三次心跳的間隔時間。

  3. 計算平均間隔時間:將第2項的間隔時間加總計算平均數。

  4. 更新心跳時間:將陣列項目1-->陣列項目0、P0觸發當下系統時間-->陣列項目1。

  5. 顯示心跳數:每隔3秒顯示並計算每分鐘心跳數。

範例程式三:通過計算最近十次心跳發生的時間間隔來測量心率

設計意圖:使用兩個心跳週期的平均時間間隔計算心率如果還達不到理想的精確性,我們還可以使用一個陣列來記錄一組心跳發生時的系統時間,然後計算出這一組心跳的平均時間間隔。陣列設置得越大,記錄的心跳就越多,計算出的心率也就越準確,但程式的時間複雜度和空間複雜度也會隨之增大。這裡,我們設置了一個長度為10的陣列用於保存最近十次心跳發生的系統時間,求出這十次心跳發生的平均時間間隔:平均間隔=(第十次心跳發生的時間-第一次心跳發生的時間)/9。這樣我們就算出了平均單次完整心跳需要花費的時間,只需再把心跳週期轉換成頻率即可計算出心率。最後,讓Micro:bit每隔三秒在LED燈點陣上顯示一次心率測量結果。

執行流程:

② 初始化陣列:設置陣列“心跳時間”用於保存最近十次心跳發生時的系統時間;

② 監測心跳並更新陣列:當P0腳位被按下後,陣列“心跳時間”所有項目值向前移一位元(陣列原來的第一個項目值被覆蓋),將當前這次心跳發生時的系統時間保存到陣列“心跳時間”的最後一個項目值中;

③ 計算平均間隔:算出陣列“心跳時間”中保存的最近十次心跳發生的平均時間間隔;

④ 顯示即時心率:將平均間隔轉換為心率並讓Micro:bit每隔三秒顯示一次心率測量結果。

程式示意圖(中文版):

Example program(English):

商品規格

腳位說明:

編號

名稱

功能說明

1

GND

電源接地

2

VCC

電源正極

3

D

數位訊號

重量:(g)

尺寸:26mm*22mm

工作電壓:3V-5V

工作電流:<10mA