韓 君,張慶平
(深圳職業(yè)技術學院 電子與通信工程學院,廣東 深圳 518055)
脈搏是常見的生理現(xiàn)象,健康的成年人每分鐘脈搏跳動在60-100次左右[1].脈搏的快慢可以一定程度反映人體心臟和血管的機能狀態(tài),每分鐘脈搏跳動的次數(shù)稱作脈率.
本文提出的基于Android平臺的脈搏檢測實驗系統(tǒng)由脈搏傳感器、單片機系統(tǒng)、智能手機組成.把脈搏傳感器固定在中指或拇指處,學生可以簡便地測出脈率值,測量的結果在學生手機上顯示出來.該實驗系統(tǒng)已應用于我校物聯(lián)網(wǎng)應用技術專業(yè)“傳感器應用技術”課程的實踐教學中.通過使用該實驗系統(tǒng),學生在系統(tǒng)設計、電路調試、Android應用開發(fā)、軟件調試等方面都有了很大的提高.
傳統(tǒng)傳感器教學中常用萬用表、示波器等儀器對傳感器檢測的信號進行測量和觀察.隨著集成化程度提高,智能傳感器應用越來越廣,智能傳感器可以通過WIFI、藍牙等無線網(wǎng)絡和移動終端相連,移動終端方便快捷的接收并顯示傳感器的測量信息[2].Android系統(tǒng)手機就是一種便捷的移動終端,利用學生自己的手機不會增加實驗成本,將Android手機作為實驗系統(tǒng)中的一個組成部分,也會大大提高學生的參與興趣.
自2019年以來,我校物聯(lián)網(wǎng)應用技術專業(yè)開展了基于Android的“傳感器技術”課程建設項目,將培養(yǎng)學生在移動終端軟件層的設計和調試能力融入到“傳感器應用技術”課程教學中,有利于充實傳感器課程資源庫的知識點和技能點體系[3].
基于上述思想,選取脈搏信號檢測作為傳感器實訓教學的典型實驗案例,通過該實驗系統(tǒng)不僅僅使學生了解脈搏傳感器的基本原理,還能更大程度提高學生將傳感器、單片機系統(tǒng)和移動終端設備綜合使用的能力,整體提升學生軟硬件開發(fā)綜合能力.實驗系統(tǒng)框圖如圖1所示,由脈搏傳感器模塊,單片機模塊、WiFi傳輸模塊和移動設備顯示端組成,可以將傳感器模塊采集到的脈搏數(shù)據(jù)經(jīng)單片機模塊處理,計算出脈率值,再通過 WiFi傳輸模塊發(fā)送到移動安卓終端上顯示.
圖1 系統(tǒng)組成框圖
本系統(tǒng)使用的脈搏傳感器是是一種集成式脈搏傳感器.它的內部由發(fā)光管、光敏管和放大電路組成.隨著心臟的搏動,手指端的血流量發(fā)生周期性的變化[4],照射到手指端的光信號反射到光敏接收管,反射的光信號強度同樣也會發(fā)生周期性變化,利用光敏接收管及放大電路,最終傳感器輸出與人體脈搏同步的電壓信號.
脈搏傳感器輸出電壓信號Up經(jīng)過由AD8615組成的電壓跟隨器變換,輸出電壓U0接到單片機的模擬輸入通道PA0.另外,脈搏傳感器輸出信號Up經(jīng)LMV358電壓比較器輸出Upo控制指示燈D1,通過指示燈D1觀察脈搏跳動的情況.脈搏傳感器電路如圖2所示.
圖2 脈搏傳感器電路
ATmega16單片機最小系統(tǒng)[5]組成了單片機模塊,主要完成AD轉換,脈率計算和數(shù)據(jù)通信功能,電路如圖3所示.脈搏傳感器模塊的模擬電壓信號U0接入PA0模擬通道,進行AD轉換,本實驗系統(tǒng)可以實現(xiàn)1~3個通道的脈搏檢測,其他兩個通道的脈搏傳感器電路與圖2原理相同,不再贅述.AD轉換的結果由串口—WiFi轉換模塊傳至移動設備顯示端.
圖3 單片機最小系統(tǒng)電路
系統(tǒng)采用HLK-RM04WiFi傳輸模塊,它可以將來自串口的信號轉換成 WiFi通信模式的信號,借助這個通信模塊我們就可以將脈搏傳感器采集數(shù)據(jù)發(fā)送給移動終端等設備顯示[6].WiFi傳輸模塊與單片機連接電路如圖4所示.
圖4 WiFi傳輸模塊與單片機連接電路
脈搏顯示界面上顯示三個脈搏采集點的狀態(tài)和數(shù)值,界面程序MainActivity.java流程圖如圖5所示.學生手機通過獲取服務器IP地址,與傳輸模塊生成的 WiFi節(jié)點連接,接收傳輸模塊上傳的數(shù)據(jù),并在顯示控件對應位置顯示脈率值,未連接傳感器的采集點顯示待連接狀態(tài).界面運行效果如圖6所示.
圖5 顯示界面程序流程圖
圖6 顯示界面運行效果圖
為了能夠接收到參數(shù)數(shù)據(jù),需要在項目包下新建Client.java文件,在文件中創(chuàng)建connect方法連接服務器.在顯示界面的程序流程中連接服務器部分即調用了 connect方法.數(shù)據(jù)請求客戶端Client.java程序流程圖如圖7所示.
圖7 客戶端數(shù)據(jù)請求程序流程圖
定義對象是為了后面的創(chuàng)建構造方法和創(chuàng)建連接方法做準備.采用Socket通信方式,這種方式方便與底層傳感器模塊通信,速度快而且靈活高效[7].
創(chuàng)建Client構造方法,相當于定義使用它時的入口和出口參數(shù).前面獲得的服務器 IP地址傳到這里,又通過myHandler返回傳感器數(shù)據(jù)和狀態(tài)消息,流程圖如圖8所示.
圖8 Client構造方法程序流程圖
創(chuàng)建 connect連接方法,這是數(shù)據(jù)請求客戶端設計的核心部分.利用 socket通信方式,通過 IP地址和端口port,啟動子線程thread讀取數(shù)據(jù)輸入流.程序流程圖如圖9所示.
圖9 connect連接方法程序流程圖
數(shù)據(jù)流讀取在子線程thread中進行,讀取的數(shù)據(jù)放在數(shù)組buffer中,如果讀到數(shù)據(jù)符合傳感器的數(shù)據(jù)格式,則通過myHandler發(fā)送buffer中的數(shù)據(jù)和連接成功消息.
本實驗系統(tǒng)由脈搏傳感器電路實驗部分、單片機模塊實驗部分、界面設計實驗部分三個實驗模塊組成.每個實驗模塊安排了具體的實驗內容.實驗內容豐富,由簡入繁,可以根據(jù)學生程度自由選擇.表1列出了實驗的具體內容、知識點、技能點,下面對實驗過程進行簡要說明.
表1 實驗內容列表
首先,為了讓學生建立質量管理的概念,實驗中對選用的脈搏傳感器進行質量測試,使用示波器觀察其輸出電壓Up,根據(jù)說明書進行對比,進一步掌握脈搏傳感器轉換原理.示波器測量Up點的波形如圖10所示.然后,按照文中圖2電路進行脈搏傳感器電路焊接,焊接完成后用示波器測量電路輸出信號U0和Up0.示波器測量U0和Upo點的波形如圖11所示,圖中上方藍色波形是U0,下方黃色波形是經(jīng)過比較器電路的輸出信號Upo.對比觀察兩個信號在時序上對應關系,并繪制脈搏波形曲線,計算脈率值.
圖10 Up點的波形圖
圖11 U0和Upo點的波形如圖
進一步指導學生連接單片機和 WiFi傳輸模塊,下載單片機程序,按照文中所述系統(tǒng)界面設計的流程,在AndroidStudio開發(fā)平臺上指導學生進行 APP界面的布局設計,及脈率數(shù)據(jù)讀取設計,進行軟件調試,最終在手機上顯示采集點的脈率值,顯示效果在文中圖6所示.通過這個實驗,學生能夠基本掌握脈搏傳感器原理和選型,電路制作和調試、常規(guī)電子儀表使用、Android界面布局,客戶端數(shù)據(jù)請求程序設計和調試方法,并可以直觀的在手機上觀測到脈率值.
基于Android平臺的脈搏檢測實驗系統(tǒng)在本校物聯(lián)網(wǎng)應用技術專業(yè)的“傳感器應用技術”課程的實踐教學中充分調動了學生的積極性,收到良好的教學效果.通過使用該實驗系統(tǒng),學生可以掌握脈搏傳感器的原理,更加熟練使用常規(guī)電子儀表,對模擬電路和單片機系統(tǒng)也有了更深的認識,學生在Android應用軟件設計和調試方面的能力也有了顯著的提高.實驗內容由簡入繁,學生的選擇更靈活.可以分組進行實驗,組成員之間相互配合,分工合作,硬件電路調試和界面開發(fā)可同時進行,對學生團隊協(xié)作能力的培養(yǎng)也有很大的幫助作用.