|
——瘋殼·智能穿戴開發(fā)系列 心率監(jiān)測
1心率測量原理簡介
我們手環(huán)的心率測量, 采用的是 PPG 光電容積脈搏波描記法原理(PhotoPlethysmoGraphy)。簡單來說,就是利用血液中透光率的脈動變化,折算成電信號,對應的就是心率。
當一定波長的光束照射到皮膚表面時,光束將通過反射方式傳送到光電接收器,在此過程中由于受到皮膚肌肉和血液的吸收衰減作用,檢測器檢測到的廣強度將減弱。其中皮膚、肌肉組織等對光的吸收在整個血液循環(huán)中是保持恒定不變的,而皮膚內的血液,容積在心臟作用下呈搏動性變化。當心臟收縮時外周血容量最多光吸收量也最大,檢測到的反射光強度最小。而在心臟舒張時,檢測到的光強度最大,使光接收器接收到的光強度隨之呈脈動性變化。最后,我們通過DA14580 的 ADC 采集光接收器的電信號,計算出心率。
2硬件設計
我們的心率傳感器由兩部分組成,如下圖所示。
第一個張圖 HY1303 其實是一個 LED 和一個光傳感器,將采集到的光強轉換成電壓,從第 6 引腳輸出。然后通過第二張圖 HY232 放大電壓。
圖 1
圖 2
3軟件設計
第一步,就是系統(tǒng)的初始化。
代碼1
由于本次要使用串口打印,我們就設置串口管腳,使能串口,對串口進行初
始化。
GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_TX_PIN, OUTPUT, PID_UART2_TX, false);
GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_RX_PIN, INPUT, PID_UART2_RX, false);
SetBits16(CLK_PER_REG, UART2_ENABLE, 1);
// Initialize UART component
uart2_init(UART2_BAUDRATE, UART2_DATALENGTH);
我們的心率需要的采樣周期是 4ms 到 10ms,這里用 的是 10ms,就需要通過 void my_timer_init(void)開啟一個定時器。
代碼2
每 過 10ms , 定 時 器 0 就 會 產 生 一 次 中 斷 , 進 入 回 調 函 數(shù)
timer0_general_user_callback_function,在回調函數(shù)中,我們就使用 ADC 采集數(shù)據(jù)。
最后通過函數(shù) ADC_CAPTRUE(adc_heart ,&hr_capture)就可以得到心率值。adc_hreat 是 ADC 數(shù)字電壓,hr_capture 就是心率值了。
代碼3
代碼4
4實驗現(xiàn)象
首先,插好 Jlink 和 USB 轉串口,然后打開打開串口調試助手。
(1)選擇串口號,我們圖中是 COM1,這個根據(jù)實際情況選擇。
(2)配置串口參數(shù),波特率為 115200,數(shù)據(jù)位 8,停止位 1,沒有校驗位和控制流,與下圖一致。
(3)點擊打開串口。
圖 3
配置完串口之后,打開我們提供的代碼。
(1)點擊仿真按鍵。
圖 4
(2)點擊運行代碼。
圖5
完成之后,就能看到串口調試助手接收框信息如下。
圖 6
如需定制開發(fā),請通過官網(wǎng)“瘋殼”網(wǎng)頁底部的“聯(lián)系我們”進行聯(lián)系
文件下載請點擊:
7_(100%開源)藍牙心率防水運動手環(huán)_心率監(jiān)測.pdf
(677.56 KB)
2022-8-30 11:56 上傳
點擊文件名下載附件
下載積分: 積分 -1
|
|