• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于STM32單片機的大學生體能監(jiān)測儀設計與實現(xiàn)

      2022-03-30 14:03:12張中沉
      計算機測量與控制 2022年2期
      關鍵詞:管腳監(jiān)測儀步數

      張中沉,張 軍

      (伊犁師范大學 體育學院,新疆 伊寧 835000)

      0 引言

      教育部明確了中小學學生鍛煉內容、時長、強度,對體育和健康課程進行了剛性的要求[1]。隨著我國的素質教育的推廣,越來越多的主管部門和學校開始重視學生的體質訓練。學生體能鍛煉的有效落實,一方面依賴于各方政策的制定和執(zhí)行,同時對學生體能鍛煉過程中的保護措施提出了更高的要求。

      迄今為止,體能監(jiān)測儀器的設計與開發(fā)取得了長足進步,曹育森等[2]利用STM32單片機進行A/D轉換為數字信號設計了一種非接觸式呼吸暫停檢測與遠程監(jiān)護裝置,裝置外形設計小巧、制作成本低、實時性與可靠性較高。周擇文等[3]采用STC89C52單片機作為控制器核心,通過心率傳感器來輸出方波,當單片機收到相應脈沖波,數碼管即可進行計數向接收端發(fā)送信號。經實際測試,脈搏測量儀成功實現(xiàn)相應功能。杜健寧[4]等設計開發(fā)了基于WeMos D1 Mini開發(fā)板的脈搏與體溫檢測裝置,裝置操作簡單、成本低廉以及體積小巧。時昊等[5]設計開發(fā)了基于單片機的紅外熱成像體溫檢測儀,實現(xiàn)了實時體溫顯示、聲光提示、超溫圖像采集、存儲和WIFI訪問功能。姜笑天[6]搭建出腰部外骨骼樣機作為試驗平臺,對外骨骼關鍵部位進行應力應變測試和分析,通過心率、肌肉收縮率和博格值的分析確定了外骨骼在緩解人體搬運疲勞方面的有效性。丁青鋒等[7]以STC89C52單片機為核心,分別使用電容式壓力傳感器和溫度傳感器測量人體血壓脈搏和體溫,避免了傳統(tǒng)測量方式下因為人的主觀因素影響測量結果的問題。馬鴻斌等[8]STM32單片機設計開發(fā)了便攜式生物阻抗相位角測量儀,該測量儀的精度和測量速率都可以滿足實用化要求。沙益夫[9]開發(fā)的基于AT89C51單片機控制的動態(tài)血壓測量系統(tǒng)可準確測量出人體血壓,具有體積小、使用方便、顯示清晰等優(yōu)點。

      體能監(jiān)測儀是一種能夠對人體運動過程中的生理數據包括心跳、步數等進行記錄的儀器,一般具有小型化、集成化的特點。通過記錄運動時的生理數據并對異常數據進行預警,體能監(jiān)測儀能夠很好地保護學生在運動時免受傷害,為后續(xù)指定鍛煉計劃提供依據。目前的體能監(jiān)測儀存在功能單一、檢測精度低等問題。

      本設計針對學生體能監(jiān)測領域的需求,設計出一款基于STM32的大學生體能監(jiān)測儀,它集成了多種傳感器,包括六軸傳感器MPU6050、Pulse Sensor心率檢測傳感器、LCD1602顯示屏等,能夠有效的檢測包括心率檢測、人體的步數、運動圈速、消耗卡路里等信息。本設計擬解決的人性化面臨以下幾個問題:

      1)體能監(jiān)測儀需要監(jiān)測多種的體能參數,包括心率檢測、人體的步數、運動圈速、消耗卡路里等信息,多參數的監(jiān)測能夠全面的了解人體運動狀態(tài),更好地評估運動結果。

      2)在設計方案時,同樣需要考慮監(jiān)測設備的小型化和集成化。由于是運動時使用,所以設備不宜過大。需要將系統(tǒng)集成到小型設備上,便于運動時攜帶。

      3)作為一個體能監(jiān)測儀,良好的人機交互性也是必不可少的。應該使用多種方式,提高設備的交互能力,讓使用者能夠方便的獲取設備采集到的信息。

      使用嵌入式的技術手段,設計一款基于STM32的大學生體能監(jiān)測儀,集成六軸傳感器MPU6050、Pulse Sensor心率檢測傳感器等,能夠有效地獲取學生的體能信息,更好地反應學生體能的綜合情況。以期為STM32單片機在體育運動研究信息化中應用提供參考。

      1 系統(tǒng)結構與原理

      1.1 體能監(jiān)測儀功能設計

      出于體能監(jiān)測儀的便攜性考慮,本次設計使用了STM32F103作為核心處理芯片。根據體能監(jiān)測儀的具體監(jiān)測需要,設計了人體參數監(jiān)測、信息反饋和異常報警3大功能:

      人體參數監(jiān)測功能即使用傳感器采集人體產生的心率、步數等數據,具體實現(xiàn)則是由單片機通過各種接口包括IIC、模數轉換等,與傳感器進行通信,從而獲取傳感器采集的人體參數信息,并通過系統(tǒng)進行處理。

      信息反饋功能則是將采集到的信息通過反饋給使用者,具體實現(xiàn)是通過通信接口連接顯示器件或者其他上位機等,將采集到的信息進行展示。

      異常報警功能則是通過微處理器實時的監(jiān)測使用者的運動數據,分析使用者運動狀態(tài),當檢測到數據出現(xiàn)異常時,則及時的發(fā)出警報提醒使用者做好休息補水或者就醫(yī)等工作。

      1.2 傳感器檢測

      傳感器能夠將被觀測對象的某種性質,如環(huán)境的溫度、濕度、光照強度等,轉換成電信號或者其他信號的裝置。一般有某性質的敏感元件、信號調理轉換電路組成。其中某性質的敏感元件能夠將該性質特征轉換成為能夠被檢測的量,再由轉換元件將該量轉換成電信號,電信號通過信號調理轉換電路轉換成單片機或者其他處理器能夠讀取的量[7]。

      依照轉換元件的不同,能夠將傳感器分為電阻式傳感器、電容式傳感器、諧振式傳感器等等。以電容式傳感器為例,常見的水滴傳感器,當有水落在傳感器上面時,面板的電阻特性會發(fā)生變化。經過信號轉換和信號放大后,該信號能夠被處理器獲取,從而獲知是否有水滴。

      在本次設計中,使用的MPU6050六軸傳感器為電容式傳感器,當傳感器的姿態(tài)發(fā)生變化時,內部的電容結構會隨之改變,從而被其內部集成的電路處理并通過接口傳輸給單片機。Pulse Sensor心率檢測傳感器屬于光電傳感器,該傳感器能夠向人的皮膚發(fā)射光線,并捕捉反射的光,當心率發(fā)生變化時,發(fā)射的光也會隨之改變,從而被傳感器獲取。

      2 硬件設計

      2.1 硬件總體方案設計

      根據體能監(jiān)測儀的總體功能要求,終端設計由MCU最小系統(tǒng)、六軸傳感器MPU6050、心率監(jiān)測傳感器、數模轉換模塊、顯示電路以及藍牙電路等構成。

      2.2 單片機最小系統(tǒng)電路設計

      在本次設計中,考慮到各個傳感器的通信接口兼容性,使用了STM32作為主控芯片,通過設計單片機的最小系統(tǒng),完成了對大學生體能監(jiān)測核心控制板的設計。核心控制板由3.3 V的電源電路、高速和低速時鐘電路、系統(tǒng)復位電路以及程序下載電路等構成。3.3 V的電源電路,采用了ME6211-3.3電源芯片,該芯片能夠將5V的直流電轉換成為單片機工作需要的3.3 V的電壓。C1、C2、C3、C4用于穩(wěn)定電源,減少因為負載波動給電源帶來的影響。STM32的時鐘電路,其中Y1為8M的高速晶振,給單片機系統(tǒng)內需要高速頻率信號的器件提供信號,如ADC、高級定時器等。Y2為低速晶振,采用的是32.768 KHz的晶振,用于該頻率的特殊性,能夠為系統(tǒng)的RTC提供時鐘信號[8]。

      在本次設計中,采用了按鍵這種經濟便捷的方式設計系統(tǒng)的復位電路。STM32的復位管腳NRST為復位管腳,采用為低電平觸發(fā)方式。C7作為電容應用在復位電路中,能夠延緩電平變化,提供足夠的上電復位時間。

      對于STM32而言,能夠使用多種下載方式,對芯片進行程序的更新和下載。使用管腳更少的SWD下載方式,相較于串口下載,SWD能夠進行在線仿真等優(yōu)勢,同時它與JLINK下載方式相比,它需要SWIO和SWCLK兩個管腳,使用到的管腳更少。

      2.3 六軸傳感器電路設計

      六軸傳感器集成了加速度傳感器和陀螺儀傳感器,之所以被稱為六軸,是因為加速度和陀螺儀包括來自3個坐標軸的數據,即x、y、z軸,所以一共是6個軸的方向信息被傳感器采集。采用的MPU6050來自于InvenSense公司,其內部集成了DMP數字運動處理器,能夠在硬件層面分析采集到的數據[9]。其特點包括以下幾個方面:

      1)體積小,MPU6050芯片封裝僅為4*4*0.9 mm,能夠適應各種姿態(tài)檢測場景;

      2)內部集成了數字運動處理器,提高數據處理能力,能夠減少處理器的負荷。

      3)能夠支持兩個IIC通信接口,便于拓展磁傳感器等設備,同時IIC的最高速度能夠達到400 kHz;

      4)它還集成了溫度傳感器等。

      由于MPU6050的這些特點,使得該芯片廣泛應用于手機、體感游戲機、四軸飛行器等等。

      其中U3為六軸傳感器MPU6050,R36和R37為上拉電阻,C36和C38為濾波電容,JP3為接線端子,通過該端子能夠將設備連接到單片機,進行控制和通信。AD0管腳可以控制MPU6050的設備地址,當AD0連接低電平時,設備的地址為0x68,當AD0連接高電平時,設備的地址為0x69。通過改變AD0連接的電平狀態(tài)能夠有效地避免IIC總線上的設備地址沖突,從而更好地拓展IIC通信業(yè)務[10]。

      2.4 心率傳感器電路設計

      使用的心率傳感器為艾迪遜電子生產的光電反射式心率傳感器,該心率傳感器采用了APDS-9008作為環(huán)境光傳感器,同時通過了1 MHz帶寬的低功耗運放,輸出的信號為模擬信號[11]。

      由于STM32芯片上集成了ADC轉換功能,所以只需要將心率傳感器的輸出管腳連接STM32芯片上具有轉換能力的管腳即可。

      2.5 顯示電路設計

      在本次設計中,使用了LCD1602作為顯示器件。LCD1602廣泛適用于各類工控設備、儀器儀表等領域,其具有以下特點:

      1)LCD1602最多能夠顯示兩行字符,同時每行字符不超過16個。結合按鍵使用,能夠使得LCD1602顯示更多的參數和信息

      2)LCD1602自帶字庫,使得開發(fā)人員不需要獲取字模信息,只需要通過數據管腳傳輸對應的ASCII編碼,就能夠顯示所需要展示的信息。

      3)LCD1602工作電壓在4.5~5.0 V,工作電流為20 mA[12]。

      2.6 藍牙電路設計

      藍牙電路選擇的是TI公司生產的CC2541芯片,該芯片被廣泛應用在低功耗的無線傳輸場景下,如智能家居等。具有以下特點:

      1)該芯片是作用在2.4 GHz頻段下的無線傳輸芯片,能夠滿足多種通信速率的要求。

      2)其實基于8051內核的芯片,能夠支持MCS-51指令集[13]。

      3)具有24通用的管腳,8 KB的隨機存儲內存,能夠滿足很多場景下的業(yè)務需要。

      3 軟件設計

      3.1 軟件總體方案設計

      考慮到體能監(jiān)測儀的實際業(yè)務需要,將系統(tǒng)軟件進行模塊化設計,便于后續(xù)的軟件迭代更新和系統(tǒng)維護。將軟件劃分為:初始化子程序、步數檢測子程序、心率檢測子程序、顯示子程序以及藍牙通信子程序。軟件總體框圖1所示。

      圖1 軟件總體框圖

      具體的程序流程是:初始化子程序完成對系統(tǒng)外設和緩存的初始化后,使用步數檢測子程序和心率檢測子程序獲取相關的體能監(jiān)測數據,然后將這些數據在LCD顯示屏上進行更新顯示,并通過藍牙通信子程序發(fā)送到手機等其他上位機。

      通過將子程序模塊進行封裝成函數,然后在使用時調用函數執(zhí)行對應功能,這樣的程序能夠便于閱讀,同時方便程序優(yōu)化和移植,這對于后續(xù)的產品迭代和程序維護具有重要的意義。

      3.2 初始化子程序設計

      在大學生體能監(jiān)測儀的設計過程中,對于STM32芯片需要使用合適的外設管腳與各個硬件模塊進行通信,同時在使用這些管腳前,必須對相關的管腳進行初始化設置,這樣才能夠執(zhí)行對應的功能[14]。表1為使用的硬件模塊與STM32芯片連接的管腳。

      表1 初始化管腳表

      3.3 步數檢測子程序設計

      在使用MPU6050時,由于其內部集成了DMP,能夠進行運動數據計算處理。在讀取步數時,只需要按照規(guī)定讀取DMP內存的數據寄存器即可。

      在初始化子程序完畢后,PA2被設置成為IIC的時鐘管腳,PA3被設置成數據管腳。讀取寄存器時,一般發(fā)送起始信號,等待響應,然后發(fā)送寫指令,寫指令一般就是器件的地址,如本加速度計的地址為0x68,然后等待響應。得到響應后,在寫入希望讀取的寄存器,而獲取步數需要讀取的內存為D_PEDSTD_STEPCTR部分,即0x3060寄存器,然后連續(xù)讀取即可,最后發(fā)送停止指令[15]。

      需要指出的是,由于D_PEDSTD_STEPCTR寄存器是4字節(jié)寄存器,所以在傳入指針是使用的是unsigned long 類型的,通過IIC總線連續(xù)讀取了4個字節(jié)。具體的寫指令流程如圖2所示。

      圖2 獲取步數流程圖

      在讀取D_PEDSTD_STEPCTR寄存器前,對存放步數的count指針進行了判斷,如果為NULL則返回。由于讀取到的是4個字節(jié),存放在tmp變量中,需要對tmp變量進行處理,處理成為unsigned long類型的數據[16]。具體操作是,將tmp[0]作為最高位,向右移24位,其次的字符向右移16,8以及0位,這樣得到的數據為最終的步數。

      3.4 心率監(jiān)測子程序設計

      心率監(jiān)測子程序需要連接單片機的模數轉換管腳,在使用前需要調用模數轉換功能,所以需要連接單片機的片上ADC進行采集和分析。首先需要初始化單片機片上的ADC,這里選擇的是ADC1的通道4,它被映射到了PA4管腳。

      為了提高采集速度,開啟了DMA功能,使用DMA能夠使得采集到的數據不需要通過MCU上傳輸,避免了浪費MCU的資源。開啟DMA后,只需要訪問對應的DMA地址即可得到轉換后的數字量了[17],心率檢測子程序設計如圖3所示。

      圖3 心率檢測流程圖

      3.5 顯示子程序設計

      在本次設計中,使用LCD1602作為顯示器件,用于顯示體能監(jiān)測儀檢測到的步數、心率等相關信息。該顯示屏模塊需要8個數據管腳和3個控制管腳進行控制,在使用前需要的相關的管腳進行初始化設置。

      LCD1602在使用時,主要包括兩個步驟,一個是對顯示屏進行初始化,另外一個則是控制LCD顯示指定的字符了。在對顯示屏進行初始化時需要設置相關的顯示參數,如顯示區(qū)域、光標位移方向、以及清空顯示屏等[18]。具體流程如圖4所示。

      圖4 顯示初始化流程圖

      圖5中,在控制LCD1602顯示指定的信息時,首先會判斷當前需要顯示的字符是否為“

      汉沽区| 静乐县| 滕州市| 东源县| 六盘水市| 定西市| 北安市| 玉屏| 建瓯市| 巴林右旗| 治多县| 台东市| 扎赉特旗| 临清市| 潞城市| 中江县| 龙里县| 平安县| 青岛市| 永昌县| 清原| 济南市| 厦门市| 富蕴县| 金寨县| 闽清县| 定结县| 开化县| 高州市| 西充县| 江都市| 阿巴嘎旗| 贞丰县| 汉寿县| 永仁县| 加查县| 淮安市| 晋宁县| 龙州县| 诸城市| 林州市|