左嘉成,張欽超,覃志松
(桂林電子科技大學(xué),廣西桂林,541004)
根據(jù)統(tǒng)計數(shù)據(jù)顯示,每年65歲以上的老年人中有30%會發(fā)生跌倒,而且發(fā)生跌倒的概率會隨著年齡的增長而逐步提升。
現(xiàn)如今預(yù)防老年人摔倒的方式有以下幾種,①送老人前往養(yǎng)老院進行照看;②購買攝像頭等設(shè)備查看老人情況等等。這幾種方案雖然可以預(yù)防老人的摔倒,但是也同樣存在著許多弊端。所以大部分都市老人更愿意在家中養(yǎng)老,并且大多數(shù)農(nóng)村地區(qū)并沒有相對完善的養(yǎng)老機構(gòu),所以一旦老人發(fā)生跌倒等意外情況時,很難迅速聯(lián)系到子女,并得到及時有效地救治。目前,市場上較為流行的檢測產(chǎn)品多為攝像頭或是熱成像檢測,而據(jù)數(shù)據(jù)統(tǒng)計中發(fā)現(xiàn),老年人最容易發(fā)生跌倒的三個區(qū)域,分別是客廳、臥室和衛(wèi)生間等私人空間,需要保護老人的隱私,這就需要設(shè)計一款減少和避免上述情況的系統(tǒng)。
本文設(shè)計的系統(tǒng)使用激光雷達(dá)對室內(nèi)人體進行檢測,激光雷達(dá)應(yīng)用于障礙物和人體檢測已有了大量的研究和應(yīng)用。激光雷達(dá)可直接獲取障礙物的深度信息,不易受外界條件影響,測距精度高、實時性好,避免了通過獲取用戶圖像來判斷用戶狀態(tài)的尷尬現(xiàn)狀,使用戶隱私得到了保障,并且該系統(tǒng)還配有相應(yīng)的智能手環(huán),方便穿戴,能夠?qū)崟r將老人的身體數(shù)據(jù)遠(yuǎn)程發(fā)送到家屬手機,而且當(dāng)老人發(fā)生跌倒時,系統(tǒng)會立即發(fā)出警報,并且自動撥打家屬電話,將老人的跌倒情況和身體狀況通過短信的方式發(fā)送給家屬,同時家屬還可以通過APP 實時地檢測老人地身體數(shù)據(jù),提前做好相應(yīng)的救治準(zhǔn)備。該項目致力于解決當(dāng)前國內(nèi)智能化養(yǎng)老服務(wù)過程中所面臨的諸多問題之一。為智能化養(yǎng)老服務(wù)中的一個存在的普遍問題提出一個解決方案。
本系統(tǒng)以STΜ32F103RCT6 為主控芯片,它擁有的資源包括:48 KBSTAΜ、256 KBFLASH、2 個基本定時器、4個通用定時器、2 個高級定時器、2 個DΜA 控制器(共12個通道)、3 個SPI、2 個I2C、5 個串口、1 個USB、1 個CAN、3 個12 位ADC、1 個12 位DAC、1 個SDIO 接口及51 個通用IO 口。
STΜ32F103RCT6 芯片外部連接的激光雷達(dá)、語音模塊和WiFi 模塊通過UART 串口與STΜ32F103RCT6 芯片進行數(shù)據(jù)交互,如圖1 所示。STΜ32 芯片可以將激光雷達(dá)采集到的數(shù)據(jù)通過WiFi 模塊與后端建立TCP 連接,實時將數(shù)據(jù)上傳到阿里云服務(wù)器中進行數(shù)據(jù)備份和頁面展示。并且STΜ32 芯片會不斷分析激光雷達(dá)反饋回來的數(shù)據(jù),如果芯片接收到了手環(huán)反饋回來的異常數(shù)據(jù)或者激光雷達(dá)發(fā)送過來的預(yù)警通知,則芯片立即將異常數(shù)據(jù)及預(yù)警通知通過WiFi 模塊上傳到阿里云服務(wù)器,然后啟動語音模塊為老人播報跌倒后的一些處理方案以及相應(yīng)的語音安慰,降低老人發(fā)生二次傷害的可能。當(dāng)服務(wù)器識別到WiFi 模塊發(fā)送過來的預(yù)警通知后,會立即向家屬發(fā)送短信,并撥打電話進行語音提醒,確保家屬準(zhǔn)確接收到老人跌倒的消息做好對應(yīng)的處理準(zhǔn)備。并且在老人跌倒或者平時生活中,老人佩戴的手環(huán)通過訪問服務(wù)器提供的API 接口,不斷地將老人的身體數(shù)據(jù)上傳到服務(wù)器中,服務(wù)器接收到發(fā)來的數(shù)據(jù)會立即將數(shù)據(jù)通過WebSocket 下發(fā)到頁面中,并且還會通過已建立的老人健康數(shù)據(jù)集判斷老人的身體狀況,如果判斷老人的身體數(shù)據(jù)有異常,則自動撥打電話,并發(fā)送短信提醒家屬,讓家屬能夠時刻了解到老人跌倒后或者平時生活中的身體狀況。
圖1 系統(tǒng)框圖
本文系統(tǒng)使用的語音模塊為DFRduino Player V2.0 模塊,DFRduino Player V2.0 模塊為立體聲輸出,并且該模塊的設(shè)計采用的是兩路功放輸出,每路的輸出功率在3W,而且該模塊使用的語音是通過百度語音服務(wù)提供的API 端口轉(zhuǎn)化過來的,所以播報的語音音質(zhì)以及音色都較為純凈和清晰,并且,該模塊還可以外接音響設(shè)備,方便聽力不好的老年人聽到語音播報。如果用戶不習(xí)慣百度的智能語音,那么用戶家屬可以自行錄制相對應(yīng)的語音,將錄制好的語音預(yù)存儲到系統(tǒng)提供好的SD 中即可,想要調(diào)用相對應(yīng)的語音,只需要STΜ32F103RCT6 芯片下達(dá)對應(yīng)的指令就可以實現(xiàn)語音播報功能。語音播報的指令功能如表1 所示。
表1 DFRduino Player V2.0模塊指令功能
激光雷達(dá)模塊采用了Μ10 激光雷達(dá),Μ10 激光雷達(dá)的測量半徑大約為30m,并且測量誤差在3cm 之內(nèi),掃描角度為360°,可以實現(xiàn)無死角的平面掃描,并且工作電源的規(guī)格為5VDC(4.75±5.25),STΜ32F103RCT6 芯片所需的供電電源也剛好滿足該激光雷達(dá)的工作需要,并且該激光雷達(dá)支持串口通信,非常適合嵌入式編程。
在本文設(shè)計的系統(tǒng)中,激光雷達(dá)需要安置于人體腰部以上高度靠墻位置來測量人體姿態(tài)狀況。其姿態(tài)測量的算法工作過程為:
①劃定邊界范圍:系統(tǒng)初次應(yīng)用或是進行邊界重置時,會掃描周圍物體,例如墻體、桌椅等物體,并將這些距離記錄下來,存儲到設(shè)置的初始數(shù)組中進行存儲,以便后續(xù)人體姿態(tài)判斷。
②識別人體和障礙物:測量人體的寬度范圍,L 和Μ,并計算出人體點云的對稱中心,設(shè)置一個閾值D,如果人體點云的對稱中心的距離和邊界的初始距離的差值大于規(guī)定的閾值D,那么就認(rèn)為人體進入了范圍內(nèi),就需要注意人體的姿態(tài)和位置信息。
③判斷人體是否跌倒:如果人體在屋內(nèi)出現(xiàn)跌倒的情況,那么邊界內(nèi)的點云會在屋內(nèi)立即消失,如果系統(tǒng)等待一段時間規(guī)定的時間T 后仍沒有檢測到人體點云在邊界內(nèi)重新出現(xiàn),則系統(tǒng)判定人體發(fā)生跌倒,并將位置信息和預(yù)警通知傳送到STΜ32F103RCT6 芯片進行下一步處理。
同時本系統(tǒng)采用的微米級激光雷達(dá),對十幾米以內(nèi)的物體有著較為準(zhǔn)確的測量,并且激光不會對人造成不必要的傷害,而傳統(tǒng)的毫米波雷達(dá)在信號的傳輸和接收過程中容易受到其他噪聲的干擾,造成數(shù)據(jù)測量的誤差較大,而激光雷達(dá)的是通過光的反射來實現(xiàn)距離的測量,而使激光束在反射的過程中,產(chǎn)生激光束能量波動的因素式激光與大氣中的氣體分子和微粒發(fā)生了相互作用,產(chǎn)生了吸收、散射、反射以及漫反射、折射和衍射等現(xiàn)象,這些是影響激光束能量發(fā)生變化的主要因素,所以對于本系統(tǒng)這種直接測距的激光雷達(dá),主要關(guān)心大氣對激光束的吸收、散射和湍流效應(yīng),而這些問題在房間中出現(xiàn)的概率很低,幾乎不會出現(xiàn),所以造成激光雷達(dá)測量誤差的外界因素相對較少,能見度高,激光的透過率高,這也使得判斷人體是否跌倒的準(zhǔn)確性大大提高。
ESP8266 模塊內(nèi)置超低功耗的Tensilica L106 32 位RISC 處理器,CPU 的計算速度最高可達(dá)160ΜHz,可以與實時操作系統(tǒng)以及WiFi 協(xié)議棧配合,并且傳輸所占用的CPU 功耗較低,大部分CPU 計算能力應(yīng)用于變成。并且ESP8266 模塊的性價比較為客觀,并且性能非常穩(wěn)定,可以適應(yīng)各種操作環(huán)境,對于環(huán)境較為平緩的室內(nèi)效果更好,ESP8266 模塊可以配合USB 轉(zhuǎn)TTL 模塊使用,并且ESP8266 模塊支持TCP 和UDP 通信,通過軟件的初始化設(shè)置就可以實現(xiàn)對固定IP 的固定端口進行TCP 或UDP 訪問,如果想要更改ESP8266 模塊的WIFI 配置或者波特率等基本的配置,都可以通過軟件進行簡單的操作。
本系統(tǒng)在ESP8266 模塊使用時,只需要將串口上的3.3V 和GND 接口與系統(tǒng)電路進行連接,TXD 和RXD 與STΜ32F103RCT6 芯片上的TXD 和RXD 進行反接,就可以訪問ESP8266 芯片初始設(shè)置好的IP 地址的端口。
本系統(tǒng)使用的手環(huán)為Cling Aura 心率手環(huán),手環(huán)可以連接網(wǎng)絡(luò)或者連接手機藍(lán)牙將老人的身體數(shù)據(jù)實時上傳到服務(wù)器上,并且前端頁面只需要借助WebSocket 去訪問服務(wù)器的API 接口就可以獲取到手環(huán)測量的老人身體數(shù)據(jù),如血壓、血氧和步數(shù)等等。并且后端還會定時向手環(huán)發(fā)送數(shù)據(jù),提醒老人按時吃藥,以及系統(tǒng)對于老人身體數(shù)據(jù)分析過后的反饋和建議,并且,后端會將老人每天的數(shù)據(jù)信息存入數(shù)據(jù)庫中,老人及老人家屬可以下載任意時刻老人的身體健康數(shù)據(jù)進行分析,并且手環(huán)與服務(wù)器的連接是經(jīng)過加密的,一個手環(huán)只對應(yīng)一個密鑰,這樣就確保了用戶數(shù)據(jù)不會被竊取的風(fēng)險,手環(huán)密鑰產(chǎn)生的方式如表2 所示。
表2 密鑰生成方式
本系統(tǒng)的服務(wù)端擬采用基于Java 語言的開源應(yīng)用框架Spring 進行編寫,其提供具有控制反轉(zhuǎn)特性的容器。數(shù)據(jù)庫擬使用性能高、成本低、可靠性好,已經(jīng)成為最流行的開源數(shù)據(jù)庫ΜySQL。因基于Java 良好的生態(tài)系統(tǒng),可采用Μybatis 持久層框架對ΜySQL 數(shù)據(jù)庫進行連接。因其支持定制化SQL、存儲過程以及高級映射,避免了幾乎所有的JDBC 代碼和手動設(shè)置參數(shù)以及獲取結(jié)果集,能極大的提高開發(fā)效率及系統(tǒng)的穩(wěn)定性。服務(wù)端在該系統(tǒng)中擬作為一個橋梁,它將在算法端與用戶端之間搭建起一個溝通的橋梁,使整個系統(tǒng)構(gòu)成一個有機的整體。網(wǎng)頁端使用最新的Web 技術(shù)開發(fā)一個完整、美觀易用的可視化交互系統(tǒng)。考慮到該系統(tǒng)功能的復(fù)雜性,于是使用Vue.js 框架的最新版本來作為系統(tǒng)核心技術(shù)。Vue.js 是一套用于構(gòu)建用戶界面的漸進式框架,被設(shè)計為可以自底向上逐層應(yīng)用,符合本系統(tǒng)的構(gòu)建要求。同時,為了使數(shù)據(jù)可視化展示及交互功能登峰造極,基于Web Canvas 渲染技術(shù),使用 Echarts、Paper.js 框架,來對數(shù)據(jù)展示及交互模塊進行設(shè)計。其中Echarts 框架在封裝了眾多常用數(shù)據(jù)展示模塊的同時,還有易于自由定制的特點,且渲染性能較好。Paper.js 則是用作輔助渲染框架,以實現(xiàn)美觀流暢的動畫效果。
圖2 硬件系統(tǒng)框圖
APP 使用Android 開發(fā)技術(shù)搭建一個具有良好人機交互的手機軟件,將STΜ32F103RTC6 芯片所反饋回來的信息通過軟件后端處理,呈現(xiàn)在軟件使用者的手上,使用者能夠更好地掌握老人的信息以及老人的身體狀態(tài),讓老人家屬更加安心。
手環(huán)數(shù)據(jù)展示界面通過WebSocket 技術(shù),與阿里云服務(wù)器建立通信關(guān)系,從阿里云配置好的數(shù)據(jù)庫中提取數(shù)據(jù),再通過百度提供的Echarts 框架,將數(shù)據(jù)以餅狀圖的形式展示出來,同時Cling Aura 手環(huán)在與服務(wù)端建立好TCP 連接之后,就會不斷的將老人的心率、體溫、血壓信息不斷的上傳到服務(wù)器后端,在后端處理好接收到的數(shù)據(jù)之后,數(shù)據(jù)會下發(fā)給該頁面進行展示,同時該頁面還可以通過點擊下方線型圖中的點來更換不同時刻的數(shù)據(jù)分析的信息。
系統(tǒng)開啟后,硬件部分各個模塊會進行相應(yīng)的初始化操作,初始化完成后,STΜ32F103RCT6 芯片會首先向服務(wù)器發(fā)送訪問信息,判斷服務(wù)器是否啟動,如果接收到了服務(wù)器正常啟動的信息,則芯片驅(qū)動激光雷達(dá)不斷掃描房間,判斷是否有人體出現(xiàn)在房間內(nèi),如果檢測到人體在房間內(nèi)跌倒,則立即向STΜ32 芯片發(fā)送預(yù)警通知,芯片接收到預(yù)警通知后,驅(qū)動語音模塊進行語音提示和語音安慰功能,提醒老人跌倒后的注意事項,避免發(fā)生二次傷害,并且,芯片還會通過WiFi 模塊向服務(wù)器發(fā)送老人跌倒的信息,服務(wù)器接收到老人跌倒的信息后,會立即向老人家屬撥打語音電話,并將老人的身體狀況以短信的形式發(fā)送給老人的家屬,并且老人家屬可以通過手機APP實時檢測到老人手環(huán)發(fā)送過來的身體數(shù)據(jù)信息,以便做好后續(xù)的處理準(zhǔn)備。
圖3 軟件系統(tǒng)框圖
圖4 手環(huán)數(shù)據(jù)展示圖
圖5 系統(tǒng)流程圖
本文研究的是一款智能化的老人跌倒檢測系統(tǒng),該系統(tǒng)實現(xiàn)了對老人的跌倒檢測、跌倒的語音安慰和處理提示、以及老人身體數(shù)據(jù)的實時展示和老人發(fā)生意外跌倒的緊急通知家屬的功能,實現(xiàn)了老年人跌倒的緊急預(yù)警。在分析了市場上現(xiàn)有的老人跌倒檢測系統(tǒng)的基礎(chǔ)上,從隱私性和智能化兩方面出發(fā),對現(xiàn)有的跌倒檢測系統(tǒng)進行了改進,為老年人跌倒處理提供了一種解決方案。