劉 聰, 張莉萍
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 210600)
自行車作為傳統(tǒng)工業(yè)時代的產(chǎn)物,在信息化與智能化的今天,應(yīng)該使其具備更多人性化的功能。設(shè)計騎行運動智能輔助系統(tǒng)配備于普通自行車,可使普通自行車更加的智能化。在提升騎行體驗的同時,實現(xiàn)自行車與人的互動,帶來安全、智能的新感受。本文設(shè)計的自行車智能輔助系統(tǒng)除了具備普通碼表的顯示速度里程時間等基本功能外,還具有顯示卡路里消耗、環(huán)境溫度、心率監(jiān)測的功能,當(dāng)環(huán)境不適合騎行或超負荷騎行時系統(tǒng)發(fā)出提示信號,并可通過藍牙將自行車騎行數(shù)據(jù)傳輸至手機端。
設(shè)計采用模塊化設(shè)計思路,系統(tǒng)的硬件電路設(shè)計主要包括STM32單片機為核心的數(shù)據(jù)處理模塊、液晶顯示模塊(liquid crystal display,LCD)、多個傳感器的數(shù)據(jù)采集模塊、以及藍牙傳輸模塊。數(shù)據(jù)采集傳感器有霍爾傳感器、DHT11溫濕度傳感器、可吸入微粒濃度傳感器和設(shè)計的心率傳感器。由STM32F103單片機處理各傳感器采集到的數(shù)據(jù)后實現(xiàn)自行車速度里程、環(huán)境參數(shù)、騎行者心率,以及騎行消耗的卡路里的顯示。當(dāng)環(huán)境不適合騎行或超負荷騎行時系統(tǒng)會發(fā)出提示,并可通過藍牙將自行車騎行數(shù)據(jù)傳輸至手機端。設(shè)計可輸入騎行者的性別、年齡和體重,騎行卡路里消耗的計算將根據(jù)騎行者性別、年齡和體重的差異采用不同的算法。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)示意
對于自行車速度的測量,由安裝于自行車前叉上的傳感器捕捉前車輪輻條上的感應(yīng)磁鐵帶來的脈沖信息實現(xiàn)??紤]到實際可操作性以及設(shè)計要求方面,本設(shè)計選用的傳感器為AH3144E霍爾電壓型傳感器[1]。自行車行駛時,車輪輻條上的感應(yīng)磁鐵隨前輪轉(zhuǎn)動。當(dāng)感應(yīng)磁鐵轉(zhuǎn)到霍爾傳感器處時,磁場的變化使霍爾傳感器輸出電壓脈沖,霍爾傳感器輸出的1個脈沖周期就是車輪轉(zhuǎn)動1圈的時間?;魻杺鞲衅鞯妮敵鲂盘枮槟M信號,為提高信號抗干擾能力以及方便對脈沖周期的測量,使用74HC14芯片對霍爾傳感器輸出波形進行變換[2,3]。速度測量模塊電路如圖2所示,速度測量模塊輸出的波形為矩形脈沖。
圖2 速度測量模塊電路
設(shè)計使用DHT11數(shù)字式溫濕度傳感器采集環(huán)境溫濕度數(shù)據(jù),DHT11集溫濕度采集和模/數(shù)(analog to digital,A/D)轉(zhuǎn)換于一體,輸出數(shù)字信號,具有體積小、功耗低以及抗干擾能力強等特點[4]。DHT11 支持“單線總線”接口,通過一個4.7 kΩ的上拉電阻器將數(shù)據(jù)輸出端 DQ和 單片機I/O口相連,單片機通過該總線初始化傳感器,完成溫濕度采集。傳感器的GND接地,VDD可以用數(shù)據(jù)線供電,也可以外部供電,為提高傳感器的抗干擾能力,設(shè)計采用外部電源供電。
采用光電容積法采集心率信號,光電容積法是利用人體組織在血管搏動時造成透光率不同來進行心率測量[5,6]。心率傳感器由光發(fā)射器和光電變化器兩部分組成,可固定在被測者的手指或手腕上。光發(fā)射器采用波長為500~700 nm的發(fā)光二極管,當(dāng)光束透過人體外圍血管,動脈搏動充血容積變化引起光束透光率的變化[7]。由光/電變換器接收經(jīng)人體組織反射的光線,轉(zhuǎn)換為電信號并將其放大、輸出。光發(fā)射器采用了峰值波長為515 nm型號為AM2520的綠光發(fā)光二極管(light emitting diode,LED),而光接收器采用了APDS—9008[8]。由于脈搏信號的頻帶一般在0.05~200 Hz之間,信號幅度均很小,抗干擾能力差,在傳感器后面使用了低通濾波器和由運放MCP6001構(gòu)成的放大器,將信號放大了330倍,同時采用分壓電阻器設(shè)置直流偏置電壓為電源電壓的1/2,使放大后的信號可以很好地被單片機采集到[9],如圖3所示。
圖3 心率測量模塊電路
通過檢測空氣中塵埃的反射光來實現(xiàn)對環(huán)境中可吸入微粒濃度信號采集。檢測裝置由紅外發(fā)光二極管(infrared light emitting diode,IRED)和一個光電二極管(photodiode,PD)組成,兩者呈對角排列[10]。由紅外LED光源發(fā)射光束,由光電二極管接收經(jīng)灰塵反射后的光束,光電二極管將光信號轉(zhuǎn)換為電壓信號,經(jīng)信號放大電路處理后輸出。對于不同的可吸入微粒濃度,檢測裝置輸出不同的脈沖信號,可調(diào)電阻器Rs調(diào)節(jié)檢測裝置的靈敏度。[11]可吸入微粒濃度檢測原理如圖4所示。
圖4 可吸入微粒濃度檢測原理
當(dāng)可吸入微粒濃度為0 mg/m3時,檢測裝置的輸出電壓為0.6 V。隨著可吸入微粒濃度的增加,檢測裝置的輸出電壓線性增加,當(dāng)可吸入微粒濃度大于0.5 mg/m3時,檢測裝置的輸出電壓趨于恒定為3.6 V[12]。裝置輸出電壓隨可吸入微粒濃度的變化如圖5所示。
圖5 輸出電壓隨可吸入微粒濃度的變化
系統(tǒng)軟件的設(shè)計主要包括系統(tǒng)初始化程序設(shè)計、按鍵輸入檢測程序設(shè)計、數(shù)據(jù)處理程序設(shè)計以及LCD液晶顯示程序設(shè)計。系統(tǒng)的初始化包括STM32單片機系統(tǒng)時鐘的初始化,定時器的初始化,以及各傳感器模塊的初始化。按鍵輸入檢測程序主要對用戶的設(shè)置進行錄入,如用戶的性別和體重等。數(shù)據(jù)處理程序包括對霍爾傳感器輸入脈沖信號的處理,DHT11傳感器等輸入環(huán)境參數(shù)的處理,以及心率傳感器輸入心率信號的處理。傳感器輸入的信號經(jīng)過處理和計算后,形成速度、里程、溫度、心率、卡路里消耗等信息,最后通過LCD液晶屏顯示出來。程序流程如圖6所示。
圖6 程序流程
本文設(shè)計中使用STM32單片機中通用定時器的輸入脈沖捕獲功能對霍爾傳感器輸入的脈沖頻率進行測量,根據(jù)脈沖頻率即可計算出騎行速度。當(dāng)通用定時器設(shè)置為輸入功能時,可以用來檢測輸入到單片機GPIO口的信號,通用定時器中的捕獲/比較寄存器TIMx_CCR用作捕獲功能。
將要測量的脈沖信號通過GPIO引腳輸入到定時器的脈沖檢測通道,將脈沖計數(shù)器TIMx_CNT配置為向上計數(shù)模式。當(dāng)捕獲通道上出現(xiàn)上升沿時,第一次觸發(fā)IC1和IC2輸入捕獲中斷,這時將脈沖計數(shù)器TIMx_CNT復(fù)位為0,脈沖計數(shù)器從0開始計數(shù)。直到捕獲通道上出現(xiàn)下降沿時,觸發(fā)IC2捕獲事件,并把脈沖計數(shù)器的當(dāng)前值N1保存到捕獲寄存器TIMx_CCR2中。脈沖計數(shù)器繼續(xù)計數(shù),直到捕獲通道上出現(xiàn)第二個上升沿時,觸發(fā)IC1捕獲事件,并將脈沖計數(shù)器的當(dāng)前值N2保存到捕獲寄存器TIMx_CCR1中。脈沖信號輸入捕獲過程如圖7所示。
圖7 脈沖信號輸入捕獲時序
定時器時鐘頻率為f(Hz),輸入的脈沖信號周期為T,占空比為d,則
(1)
自行車的車輪半徑為R(m),則騎行的速度V(km/h)為V=(7.2πR)/T。
采用基于用戶心率的卡路里消耗計算方法[13,14]。根據(jù)用戶輸入系統(tǒng)的個人信息,包括體重、年齡、性別計算用戶騎行過程中的卡路里消耗,男性(Cm)和女性(Cf)分別為[15]
(2)
(3)
式中HR為心率,次/min;W為體重,kg;A為年齡;t為鍛煉持續(xù)的時間,min。
系統(tǒng)開機以后,需要輸入騎行者的體重、性別、年齡等相關(guān)數(shù)據(jù)。在騎行過程中,系統(tǒng)主機的顯示屏上顯示出相關(guān)騎行數(shù)據(jù),包括速度、行駛里程、卡路里消耗、心率、空氣質(zhì)量等。系統(tǒng)主機界面如圖8所示。
圖8 系統(tǒng)主機界面
每0.5 h對騎行的數(shù)據(jù)進行1次記錄,如表1所示。
表1 騎行數(shù)據(jù)統(tǒng)計
本文設(shè)計除了具備普通碼表的顯示速度里程時間等基本功能外,還具有顯示卡路里消耗;環(huán)境參數(shù)以及心率監(jiān)測的功能。設(shè)計的騎行運動智能輔助系統(tǒng)配備于普通自行車,使普通自行車變得智能化。提升人們騎行體驗,實現(xiàn)自行車與人的互動。未來將著手對所設(shè)計的騎行運動智能輔助系統(tǒng)功耗進行優(yōu)化,使系統(tǒng)更加符合實際使用要求。相信隨著自行車運動越來越受到大家歡迎,騎行運動智能輔助系統(tǒng)將具有更廣闊的市場前景。