• 
    

    
    

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

      測(cè)一測(cè)你的睡眠質(zhì)量

      2015-08-18 05:39:26謝作如金孜達(dá)
      中國(guó)信息技術(shù)教育 2015年13期
      關(guān)鍵詞:段時(shí)間朝向加速度

      謝作如++金孜達(dá)

      我們?nèi)绾蔚弥约旱乃哔|(zhì)量?比如夜里翻身幾次,有沒(méi)有夢(mèng)游?或許大家第一個(gè)想到的就是智能手環(huán)。常見(jiàn)的智能手環(huán)的確都帶有睡眠監(jiān)測(cè)功能,但我們對(duì)其監(jiān)測(cè)結(jié)果深表懷疑,因?yàn)槭汁h(huán)畢竟是戴在手上的,未必準(zhǔn)確。而最可靠的監(jiān)測(cè)位置,應(yīng)該在人體的中心,即肚子。于是,我們?cè)囍眉铀俣葌鞲衅髯隽艘粋€(gè)能監(jiān)測(cè)睡眠質(zhì)量的小儀器。

      ● 材料選擇

      我們選擇了Microduino。Microduino是Arduino的兼容開(kāi)發(fā)板,體積很小,一塊板子和1元硬幣相近。因其具有電子積木的特點(diǎn),堆疊方便,不需要焊接連線,做產(chǎn)品原型特別方便。制作這個(gè)作品大致需要如下材料,分別說(shuō)明如表1:

      當(dāng)然,SD卡和USB線是不可少的,這里不再贅述。這四個(gè)模塊可以直接堆疊,高度約2CM,如圖1所示。

      ● 工作原理分析

      睡眠監(jiān)測(cè)儀的關(guān)鍵就是負(fù)責(zé)記錄身體的朝向,并將其忠實(shí)地記錄于SD卡上,以便于特制的數(shù)據(jù)分析器分析數(shù)據(jù)。我們先分析一下對(duì)身體朝向的定義。

      圖2至圖5的視角是當(dāng)你將其佩戴在腹部時(shí),從頭部往腹部看的視角。

      為了更易觀察,下頁(yè)圖6、圖7的視角發(fā)生了變動(dòng),請(qǐng)使用原先的相對(duì)視角看待它們。

      然而事實(shí)上,幾乎不可能得到如圖2至下頁(yè)圖7那樣的監(jiān)測(cè)值。實(shí)際上往往每次監(jiān)測(cè)都會(huì)得到重力加速度的X、Y、Z方向的分量,且均不為零。對(duì)此,我們采用了一個(gè)非常簡(jiǎn)單的判斷法:取模最長(zhǎng)的一個(gè)分量對(duì)應(yīng)的方位為此次的方位,如下頁(yè)圖8所示。

      此外,我們還可以順便記錄每相鄰2次測(cè)得數(shù)量值的矢量差,這些都是有用的數(shù)據(jù),可以用來(lái)判斷是否入睡以及估算一段時(shí)間內(nèi)的睡眠質(zhì)量等。

      ● 算法優(yōu)化

      最簡(jiǎn)單的方法是周期性地監(jiān)測(cè)重力加速度,不加任何處理地直接原始地記錄入SD卡,將一切處理任務(wù)全部交付于數(shù)據(jù)分析器。然而,這種方法一個(gè)晚上會(huì)產(chǎn)生大量的數(shù)據(jù),如果每100ms記錄一次,記錄8小時(shí),則文件大概為5.5M,明顯不是一種好方法。

      第一種方法產(chǎn)生的文件之所以大,是因?yàn)榇嬖诖罅康娜哂鄶?shù)據(jù)。例如,一個(gè)人睡覺(jué)時(shí)一般會(huì)在10~15分鐘保持同一朝向幾乎不移動(dòng),而這段時(shí)間得到的數(shù)據(jù)十分接近,卻都被記錄了。所以應(yīng)該要剔除相似數(shù)據(jù),即設(shè)定一個(gè)閾值,閾值以內(nèi)的數(shù)據(jù)不記錄。

      然而,我們本來(lái)就是為了記錄身體的朝向,所以需要記錄的其實(shí)僅僅是身體朝向改變的事件。因此,數(shù)據(jù)還可以進(jìn)一步優(yōu)化。經(jīng)過(guò)測(cè)試,一個(gè)晚上記錄的文件的大小一般小于3K。

      需要注意的是,并不是任何原始數(shù)據(jù)都是可信的,除了無(wú)法預(yù)測(cè)的數(shù)據(jù)噪音,更值得關(guān)注的還有如下兩種情況:①用戶根本沒(méi)有進(jìn)入睡眠狀態(tài)。我們無(wú)法期待用戶在睡著前一瞬間啟動(dòng)產(chǎn)品,因此啟動(dòng)產(chǎn)品的時(shí)機(jī)都是睡著前的一段時(shí)間,而這段時(shí)間用戶的行為被認(rèn)為是相對(duì)活躍的。此時(shí)的數(shù)據(jù)根本不應(yīng)當(dāng)被記入,否則會(huì)對(duì)數(shù)據(jù)產(chǎn)生一定的干擾。②用戶已經(jīng)進(jìn)入睡眠狀態(tài),但是身體正在運(yùn)動(dòng)。雖然一般情況測(cè)得的加速度可直接視為重力加速度,然而當(dāng)用戶轉(zhuǎn)身或者有大幅度的運(yùn)動(dòng)時(shí),就不能如此輕率地將測(cè)得的加速度用于確定當(dāng)前用戶朝向的數(shù)據(jù)來(lái)源。

      第一種情況的解決方法是并不急于記錄數(shù)據(jù),而是將監(jiān)測(cè)儀分為“監(jiān)視狀態(tài)”和“記錄狀態(tài)”。一開(kāi)始監(jiān)測(cè)儀處于“監(jiān)視狀態(tài)”,該狀態(tài)僅僅將數(shù)據(jù)寫入內(nèi)存而不寫入文件。我們認(rèn)為,若一段時(shí)間內(nèi)數(shù)據(jù)變化不大且朝向主要不為站立時(shí),則用戶已經(jīng)進(jìn)入睡眠狀態(tài),隨后切入“記錄狀態(tài)”并新建數(shù)據(jù)文件。在“記錄狀態(tài)”,數(shù)據(jù)不僅被寫入內(nèi)存,還會(huì)經(jīng)過(guò)初步處理寫入文件。我們認(rèn)為,若一段時(shí)間內(nèi)用戶幾乎一直處于站立狀態(tài),則用戶已經(jīng)離開(kāi)睡眠狀態(tài),隨后返回“監(jiān)視狀態(tài)”并終止數(shù)據(jù)文件。

      第二種情況的解決方法是綜合考慮附近的數(shù)據(jù)。在這種處理方式下,我們可以較輕松地排除個(gè)別的突變數(shù)據(jù),而不將之錯(cuò)誤地作為有效數(shù)據(jù)進(jìn)行處理。但如果用戶確實(shí)發(fā)生了朝向改變等大動(dòng)作,我們也能夠正確地認(rèn)知到這種變化并將其予以考慮。

      ● 睡眠指數(shù)的實(shí)現(xiàn)

      睡眠好不好,總要弄個(gè)指標(biāo)吧。睡眠質(zhì)量指數(shù)是我們?yōu)榱嗽黾釉O(shè)備的功能而設(shè)計(jì)的一個(gè)參考指數(shù)。一般來(lái)說(shuō),在相等的一段時(shí)間內(nèi),身體活動(dòng)越少,睡眠質(zhì)量肯定越好。我們通過(guò)獲取這段時(shí)間內(nèi)任意相鄰2次測(cè)得加速度的矢量差的模的平方并求和,來(lái)衡量身體如何活動(dòng)。顯然,在相等一段時(shí)間內(nèi),模的平方和越大,身體的活動(dòng)就越劇烈。

      我們每次對(duì)朝向相同的一段連續(xù)時(shí)間計(jì)算睡眠質(zhì)量指數(shù),考慮到這些時(shí)間不盡相同,還需要將其除以時(shí)間差。這是睡眠質(zhì)量指數(shù)的計(jì)算公式:

      其中表示這段時(shí)間內(nèi)第次測(cè)得的加速度;是這段時(shí)間相對(duì)于啟動(dòng)儀器的開(kāi)始時(shí)刻;是這段時(shí)間相對(duì)于啟動(dòng)儀器的結(jié)束時(shí)刻;是相鄰2次測(cè)量的周期。

      由于一共測(cè)量了次,故這段時(shí)間內(nèi)的“平均相鄰加速度差的模的平方”的值為,除以100是數(shù)據(jù)上的需求(防止溢出)。

      接著對(duì)計(jì)算得到的值進(jìn)行映射。因?yàn)樵鹊闹涤驗(yàn)?,故?duì)其進(jìn)行一次反正切運(yùn)算并除以圓周率,就可以將其映射到一個(gè)上下有界的區(qū)間。由于一般情況下我們覺(jué)得這個(gè)值越高睡眠質(zhì)量越好,因此將其取負(fù)。為了方便觀察,再加上。最后,乘以2000將其映射到,且此時(shí)睡眠質(zhì)量指數(shù)與睡眠質(zhì)量剛好成正相關(guān),符合要求。

      ● 程序編寫

      代碼編寫并不是很難,但是只能用Arduino的代碼寫,圖形化工具做不到。因?yàn)槠木壒?,下?yè)表2僅提供“監(jiān)視狀態(tài)”模式的代碼和簡(jiǎn)要解說(shuō),完整內(nèi)容請(qǐng)?jiān)L問(wèn)文尾二維碼鏈接的博客。

      即使是經(jīng)過(guò)初步處理的數(shù)據(jù),其格式對(duì)一般用戶來(lái)講依然晦澀難懂,且格式不友好。因此,將數(shù)據(jù)轉(zhuǎn)變?yōu)橛脩粢子谥庇^讀取和理解的內(nèi)容就成為了一項(xiàng)重要的任務(wù)。我們采用VB編寫分析器的源代碼和界面。雖然外表簡(jiǎn)陋,不過(guò)已經(jīng)能將數(shù)據(jù)顯示得足夠直觀。

      首先,我們點(diǎn)擊菜單中的文件選項(xiàng)打開(kāi)文件選擇框,選擇一份文件(該文件是一份生成數(shù)據(jù)文件,格式為*.rd,僅供演示);然后,數(shù)據(jù)將被處理與顯示,分寫界面如下頁(yè)圖9所示。

      左上角表示睡眠的時(shí)間,一般情況只需了解最下面的“持續(xù)時(shí)間”即可?!捌鹗紩r(shí)間”是自產(chǎn)品啟動(dòng)到開(kāi)始記錄文件的時(shí)間,“終止時(shí)間”是自產(chǎn)品啟動(dòng)到結(jié)束記錄文件的時(shí)間。

      右上角有一個(gè)按時(shí)間升序排列的列表,分別記錄每一次身體轉(zhuǎn)向的時(shí)間,和轉(zhuǎn)向完畢后身體的朝向,以及這個(gè)朝向的這段時(shí)間內(nèi)睡眠質(zhì)量指數(shù)。睡眠質(zhì)量指數(shù)是一個(gè)量化數(shù)值,可以反映你的睡眠質(zhì)量,值在0~999內(nèi)浮動(dòng),數(shù)值越高,睡眠質(zhì)量越好。

      下方是一個(gè)睡眠質(zhì)量指數(shù)圖表,直接完全地顯示了每個(gè)轉(zhuǎn)向的時(shí)刻及此段時(shí)間的睡眠質(zhì)量指數(shù),可清晰直觀地了解一次睡眠的總體質(zhì)量與變化。

      ● 作品原型

      做一個(gè)作品原型吧,于是我們找了三個(gè)小電池并連接起來(lái)(如圖10),以方便脫機(jī)運(yùn)行。我們還采用3D打印外殼,將芯片與電池放入其中,最后封口??紤]到要以腰帶的形式固定在肚子上測(cè)試,我們最終拆了一個(gè)毛絨絨的公仔,放在里面。

      睡眠質(zhì)量的監(jiān)測(cè)儀器并不復(fù)雜,制作簡(jiǎn)易,探索歷程卻十分有趣。設(shè)計(jì)過(guò)程用到了單片機(jī)、編程和3D打印,體現(xiàn)了科技協(xié)作的力量。但這個(gè)作品還存在很多需要進(jìn)一步考慮的問(wèn)題,如加入一些簡(jiǎn)易有效的濾波算法,以便高效精準(zhǔn)地處理原始數(shù)據(jù);通過(guò)一段時(shí)間的數(shù)據(jù)更好地推測(cè)當(dāng)前用戶的睡眠狀況;改進(jìn)數(shù)據(jù)分析軟件,使其更加易懂并具有更良好的交互功能等。

      此外,睡眠數(shù)據(jù)的記錄使用了SD卡??紤]到現(xiàn)今使用的數(shù)據(jù)格式并不會(huì)占用大塊空間,因此還可以改良數(shù)據(jù)的傳輸方式,如使用藍(lán)牙或者WiFi將數(shù)據(jù)直接實(shí)時(shí)傳送到數(shù)據(jù)分析軟件,這些都是下一步要研究的重點(diǎn)。

      猜你喜歡
      段時(shí)間朝向加速度
      隔段時(shí)間去看海
      好日子(2022年6期)2022-08-17 07:15:12
      “鱉”不住了!從26元/斤飆至38元/斤,2022年甲魚(yú)能否再跑出“加速度”?
      朝向馬頭的方向
      遼河(2022年1期)2022-02-14 21:48:35
      朝向馬頭的方向
      遼河(2022年1期)2022-02-14 05:15:04
      戲精
      核桃源(2021年6期)2021-11-12 06:49:58
      天際加速度
      汽車觀察(2018年12期)2018-12-26 01:05:42
      烏龜快跑
      創(chuàng)新,動(dòng)能轉(zhuǎn)換的“加速度”
      金橋(2018年4期)2018-09-26 02:24:46
      死亡加速度
      丟臉
      幸福家庭(2014年5期)2014-09-10 07:22:44
      昭苏县| 洪江市| 芦山县| 泗洪县| 兴海县| 灵武市| 府谷县| 江口县| 永城市| 乐安县| 广宗县| 上高县| 太康县| 宽甸| 阿坝县| 张北县| 调兵山市| 莱西市| 津市市| 策勒县| 英超| 上杭县| 西安市| 阿拉善右旗| 大理市| 临邑县| 关岭| 五莲县| 威信县| 花莲县| 临西县| 苗栗县| 四子王旗| 远安县| 宜丰县| 监利县| 新昌县| 九江市| 吉安县| 进贤县| 潜山县|