康楚陽(yáng),邵乙飛,陳明蒂,張景越,冉志堅(jiān)
(1. 上海工程技術(shù)大學(xué)機(jī)械與汽車(chē)工程學(xué)院,上海 201620;2. 上海工程技術(shù)大學(xué)材料學(xué)院,上海 201620)
隨著科技的不斷發(fā)展與社會(huì)的不斷進(jìn)步,健康已經(jīng)成為人們生活中越來(lái)越重視的話題。比如近些年來(lái)科技廠商們都在其穿戴設(shè)備上添加了關(guān)于健康檢測(cè)的模塊。以Apple Watch 為例,近年來(lái)Apple Watch 的關(guān)注度越來(lái)越高,其過(guò)半的市占比就可以看出用戶(hù)的肯定與追捧。第一代Apple Watch 以“高端、奢華”為賣(mài)點(diǎn),不過(guò)市場(chǎng)反應(yīng)不積極、銷(xiāo)量一般。其后的第二代、第三代產(chǎn)品逐漸轉(zhuǎn)向以“健康、運(yùn)動(dòng)”為賣(mài)點(diǎn),將睡眠檢測(cè)、運(yùn)動(dòng)數(shù)據(jù)記錄以及心率加入其互動(dòng)系統(tǒng)中,而第四代產(chǎn)品更是將血氧檢測(cè)加入其中,并為女性用戶(hù)專(zhuān)門(mén)開(kāi)發(fā)了經(jīng)期檢測(cè)系統(tǒng),更加關(guān)注呵護(hù)用戶(hù)的健康??梢?jiàn)圍繞“科技與健康”這一主題,有相當(dāng)大的空間進(jìn)行實(shí)踐與創(chuàng)新。
以此為起點(diǎn),本項(xiàng)目組通過(guò)討論并閱讀相關(guān)文章,發(fā)現(xiàn)“睡眠問(wèn)題”也是一個(gè)困擾很多人的問(wèn)題,而打鼾是討論最多的話題。通過(guò)前期制作相關(guān)問(wèn)卷,統(tǒng)計(jì)總計(jì)200份的問(wèn)卷調(diào)查報(bào)告,本項(xiàng)目組認(rèn)為“打鼾”在某種程度上已經(jīng)成為現(xiàn)在寢室的一個(gè)難題?;诰W(wǎng)絡(luò)上已經(jīng)出現(xiàn)的相關(guān)文獻(xiàn),本項(xiàng)目組在現(xiàn)有算法的基礎(chǔ)上進(jìn)行改進(jìn),基于STM32 單片機(jī)設(shè)計(jì)了一款睡眠檢測(cè)裝置。
打鼾是指睡眠中因上呼吸道狹窄使懸雍垂發(fā)生振動(dòng)而發(fā)出的鼾聲,在日常生活中非常常見(jiàn)。打鼾的原因有很多,上了年紀(jì)的人幾乎都有打鼾的癥狀,同時(shí)飲酒、吸煙、不恰當(dāng)?shù)乃咦藙?shì)以及睡眠障礙也會(huì)成為打鼾的原因之一。打鼾帶來(lái)的危害有很多,對(duì)于年輕人,可能會(huì)出現(xiàn)白天嗜睡、乏力、注意力不集中、頭痛、工作能力下降等癥狀,對(duì)于老年人常伴有睡眠呼吸暫停綜合征的出現(xiàn),因此對(duì)個(gè)人健康有一定的不良影響。資料顯示打鼾可以通過(guò)采取一些措施來(lái)緩解,比如在打鼾時(shí)由他人或外在裝置輕推打鼾者,使其改變睡覺(jué)時(shí)的體位,可使打鼾得到緩解。
本文基于STM32F103C8T6 這款單片機(jī)設(shè)計(jì)了可以監(jiān)測(cè)穿戴者睡覺(jué)時(shí)所發(fā)出的聲音分貝并做出一定振動(dòng)輸出的裝置。其中STM32F103C8T6單片機(jī)負(fù)責(zé)將音頻檢測(cè)模塊采集的數(shù)據(jù)處理后數(shù)字化,再用該數(shù)據(jù)與預(yù)先設(shè)置好的數(shù)字范圍做對(duì)比,如果時(shí)間長(zhǎng)達(dá)30 秒及以上,則通過(guò)振動(dòng)馬達(dá)的輸出振動(dòng)穿戴者的手臂使其翻身,從而達(dá)到止鼾的目的。
止鼾裝置模塊如圖1所示。
圖1 裝置模塊
STM32單片機(jī)是ST公司基于ARM Cortex-M內(nèi)核開(kāi)發(fā)的32 位微控制器,STM32 單片機(jī)常應(yīng)用于嵌入式領(lǐng)域,如智能車(chē)、無(wú)人機(jī)、機(jī)器人、無(wú)線通信、物聯(lián)網(wǎng)、工業(yè)控制等產(chǎn)品。STM32單片機(jī)主要包括1 個(gè)ARM Cortex-M 內(nèi)核、儲(chǔ)存器和外設(shè)。通過(guò)接口與不同的外設(shè)進(jìn)行連接,實(shí)現(xiàn)和滿(mǎn)足不同的需求與開(kāi)發(fā)。
考慮到成本以及裝置的運(yùn)行系統(tǒng)的穩(wěn)定,項(xiàng)目組采用STM32F103C8T6 控制芯片,一款增強(qiáng)型的單片機(jī)。內(nèi)核為ARM Cortex-M3,最高工作頻率為72 Mhz,1.25 MIPS/MHz。片上集成32~512 KB 的Flash 存儲(chǔ)器。6~64 KB 的SRAM存儲(chǔ)器。2.0~3.6 V 的電源供電和I/O 接口的驅(qū)動(dòng)電壓。上電復(fù)位(POR)、掉電復(fù)位(PDR)和可編程的電壓探測(cè)器(PVD)。擁有48 個(gè)引腳,屬于中容量產(chǎn)品。通過(guò)GPIO 輸入?yún)f(xié)議,將音頻檢測(cè)模塊與STM32 單片機(jī)進(jìn)行連接。接受音頻檢測(cè)模塊并將其數(shù)字化,判斷其是否在實(shí)現(xiàn)所設(shè)定的范圍內(nèi),判定結(jié)果后,通過(guò)GPIO 輸出協(xié)議,輸出脈沖頻率。主控制器所實(shí)現(xiàn)的原理即通過(guò)應(yīng)用統(tǒng)一的智能化平臺(tái),實(shí)現(xiàn)各個(gè)獨(dú)立子系統(tǒng)的有機(jī)連接,最終形成一個(gè)能及時(shí)進(jìn)行信息交換和管控的網(wǎng)絡(luò)。
該功能模塊指的是聲音傳感器,包括1 個(gè)開(kāi)關(guān)指示燈、電位器、信號(hào)輸出、電源負(fù)極、電源正極(3.3~5 V)和一個(gè)電源LED 指示燈。音頻檢測(cè)模塊的作用是對(duì)環(huán)境聲音強(qiáng)度敏感,作為檢測(cè)周?chē)曇魪?qiáng)度的裝置。模塊在環(huán)境聲音強(qiáng)度達(dá)不到設(shè)定閾值時(shí),OUT 輸出高電平,當(dāng)外界環(huán)境聲音強(qiáng)度超過(guò)設(shè)定閾值時(shí),模塊OUT 輸出低電平。通過(guò)小板數(shù)字量輸出OUT 與STM32F103C8T6 直接相連,通過(guò)單片機(jī)來(lái)檢測(cè)高低電平,由此來(lái)檢測(cè)環(huán)境聲音。
該功能模塊指的是振動(dòng)傳感器,包括1 個(gè)靈敏度調(diào)節(jié)電位器、開(kāi)關(guān)信號(hào)輸出、電源正極3.3~5 V、電源負(fù)極、3.1 mm 可鎖3.0 螺絲。其中需注意的是開(kāi)關(guān)信號(hào)指示燈亮?xí)r輸出低電平、不亮則輸出高電平、信號(hào)輸出的電平接近電源壓。振動(dòng)模塊在不振動(dòng)時(shí),振動(dòng)開(kāi)關(guān)呈斷開(kāi)狀態(tài),輸出端輸出高電平,綠色指示燈不亮;振動(dòng)時(shí),振動(dòng)開(kāi)關(guān)瞬間導(dǎo)通,輸出端輸出低電平,綠色指示燈亮。因?yàn)檎駝?dòng)傳感器輸出端可以與單片機(jī)直接相連,通過(guò)單片機(jī)來(lái)檢測(cè)高低電平,由此來(lái)檢測(cè)環(huán)境是否有振動(dòng),起到報(bào)警作用。
該功能是由一塊0.96 寸OLED 模塊組成,OLED 是性能優(yōu)異的新型顯示屏,具有功耗低、響應(yīng)速度快、寬視角、輕薄柔韌等特點(diǎn)。選用0.96寸是考慮到成本因素,該顯示屏簡(jiǎn)單易用、占用接口少。供電為3~5.5 V,通訊協(xié)議:I2C/SPI,分辨率:128×64。對(duì)于部分單片機(jī)編程而言,利用OLED 屏幕可以使程序內(nèi)部數(shù)據(jù)通過(guò)代碼的編寫(xiě)來(lái)顯示在OLED 屏幕上,方便查找錯(cuò)誤。同時(shí)在后續(xù)設(shè)備調(diào)試的時(shí)候使設(shè)備更加美觀,使用更加方便。
軟件設(shè)計(jì)如圖2所示。
圖2 設(shè)計(jì)邏輯
GPIO也稱(chēng)為通用輸入/輸出,是控制器中最簡(jiǎn)單也是最重要的配置。一個(gè)程序接收到指令然后做出反應(yīng),接受指令就是一個(gè)輸入的過(guò)程,做出反應(yīng)就是一個(gè)輸出的過(guò)程。GIPO 就是這樣一個(gè)輸入和輸出的總稱(chēng)。STM32F103C8T6 的GPIO 引腳電平為0~3 V,部分引腳可容忍5 V。輸出模式下可控制端口輸出高低電平,用以驅(qū)動(dòng)LED、蜂鳴器、模擬通信協(xié)議輸出時(shí)序等,輸入模式下可讀取端口的高低電平或電壓,用于讀取按鍵輸入、外接模塊電平信號(hào)輸入、ADC電壓采集、模擬通信協(xié)議接收數(shù)據(jù)等。GPIO配置8種輸入輸出模式。GPIO 輸入包括輸入浮空、輸入上拉、輸入下拉和模擬輸入四種輸入模式。GPIO輸出包括開(kāi)漏輸出、開(kāi)漏復(fù)用功能、推挽式輸出和推挽式復(fù)用功能四種輸出模式。
3.2.1 中斷
處理器中的中斷指的是在處理器中,中斷是一個(gè)過(guò)程,即CPU在正常執(zhí)行程序的過(guò)程中,遇到外部/內(nèi)部的緊急事件需要處理,暫時(shí)中止當(dāng)前程序的執(zhí)行,轉(zhuǎn)而去處理緊急的事件,待處理完畢后再返回被打斷的程序處繼續(xù)往下執(zhí)行。中斷在計(jì)算機(jī)多任務(wù)處理,尤其是即時(shí)系統(tǒng)中尤為重要。比如uCOS,F(xiàn)reeRTOS 等。中斷能提高CPU 的效率,同時(shí)能對(duì)突發(fā)事件做出實(shí)時(shí)處理。實(shí)現(xiàn)程序的并行化,實(shí)現(xiàn)嵌入式系統(tǒng)進(jìn)程之間的切換。
3.2.2 TIM定時(shí)器
TIM(Timer)定時(shí)器可以對(duì)輸入的時(shí)鐘進(jìn)行計(jì)數(shù),并在計(jì)數(shù)值達(dá)到設(shè)定值時(shí)觸發(fā)中斷。STM32 的定時(shí)器擁有16 位計(jì)數(shù)器、預(yù)分頻器、自動(dòng)重裝寄存器的時(shí)基單元,在72 MHz 計(jì)數(shù)時(shí)鐘下可以實(shí)現(xiàn)最大59.65(72/216/216)的定時(shí)。定時(shí)器不僅具備基本的定時(shí)中斷功能,而且還包含內(nèi)外時(shí)鐘源選擇、輸入捕獲、輸出比較、編碼器接口、主從觸發(fā)模式等多種功能。根據(jù)程序復(fù)雜和應(yīng)用場(chǎng)景的不同定時(shí)器可分為高級(jí)定時(shí)器、通用定時(shí)器、基本定時(shí)器三種類(lèi)型。
ADC 全稱(chēng)為模擬-數(shù)字轉(zhuǎn)換器。ADC 可以將引腳上連續(xù)變化的模擬電壓轉(zhuǎn)換為內(nèi)存中存儲(chǔ)的數(shù)字變量,建立模擬電路到數(shù)字電路的橋梁。本次使用的STM32F103C8T6 的ADC 是12位逐次逼近的ADC,轉(zhuǎn)換時(shí)間1 us。輸入電壓范圍0~3.3 V,轉(zhuǎn)換結(jié)果范圍0~4095.18 個(gè)輸入通道,可測(cè)量16 個(gè)外部和2 個(gè)內(nèi)部信號(hào)源,即溫度傳感器和內(nèi)部參考電壓。
本研究希望實(shí)現(xiàn)如下幾種效果:首先是通過(guò)STM32 單片機(jī)檢測(cè)大概的聲音強(qiáng)度并在OLED 上顯示出來(lái)。利用ADC原理對(duì)聲音分貝的顯示,通過(guò)ADC轉(zhuǎn)化從而獲得分貝數(shù)據(jù)并顯示在OLED屏幕上方便觀察。其次本研究不希望程序是聽(tīng)到聲音立刻產(chǎn)生觸發(fā),考慮到鼾聲是持續(xù)的、連續(xù)的。預(yù)期的程序是檢測(cè)一段長(zhǎng)達(dá)10秒及以上的聲音之后才觸發(fā)振動(dòng)模塊。通過(guò)代碼的編寫(xiě)給予STM32單片機(jī)一個(gè)判斷的數(shù)值范圍,即分貝過(guò)小和分貝過(guò)大并不會(huì)觸發(fā)單片機(jī)。該功能是防止誤觸發(fā)。比如分貝過(guò)小的連續(xù)性聲音其實(shí)并不一定是鼾聲,如果不劃定一定的范圍,那么就可能造成誤觸,降低使用者的使用體驗(yàn)。同樣,分貝過(guò)大的聲音足以令使用者醒來(lái),因此也沒(méi)有觸發(fā)的必要。關(guān)于如何判斷觸發(fā)的因素是“一段長(zhǎng)達(dá)10秒及以上的聲音”,本研究采用定時(shí)器和中斷的原理來(lái)完成這一設(shè)置。通過(guò)音頻監(jiān)測(cè)來(lái)讓STM32單片機(jī)接收口電位以1秒的時(shí)間產(chǎn)生變化,定時(shí)器則可以記錄這一電位變化,數(shù)據(jù)大于10則說(shuō)明這一段聲音是長(zhǎng)達(dá)10 秒的,即可以啟動(dòng)觸發(fā),開(kāi)啟振動(dòng)模塊。
本研究針對(duì)寢室存在的打鼾問(wèn)題設(shè)計(jì)了一款以STM32 微處理器為核心,通過(guò)接收音頻檢測(cè)器輸入數(shù)字信號(hào),再通過(guò)程序分析來(lái)達(dá)到一定的睡眠檢測(cè)功能的裝置,該裝置具有一定的止鼾功能,控制系統(tǒng)也具有體積小、易于集成和調(diào)試的特點(diǎn),方便后續(xù)的修改以及合成。