左嘉成,張欽超,覃志松
(桂林電子科技大學,廣西桂林,541004)
根據統計數據顯示,每年65歲以上的老年人中有30%會發生跌倒,而且發生跌倒的概率會隨著年齡的增長而逐步提升。
現如今預防老年人摔倒的方式有以下幾種,①送老人前往養老院進行照看;②購買攝像頭等設備查看老人情況等等。這幾種方案雖然可以預防老人的摔倒,但是也同樣存在著許多弊端。所以大部分都市老人更愿意在家中養老,并且大多數農村地區并沒有相對完善的養老機構,所以一旦老人發生跌倒等意外情況時,很難迅速聯系到子女,并得到及時有效地救治。目前,市場上較為流行的檢測產品多為攝像頭或是熱成像檢測,而據數據統計中發現,老年人最容易發生跌倒的三個區域,分別是客廳、臥室和衛生間等私人空間,需要保護老人的隱私,這就需要設計一款減少和避免上述情況的系統。
本文設計的系統使用激光雷達對室內人體進行檢測,激光雷達應用于障礙物和人體檢測已有了大量的研究和應用。激光雷達可直接獲取障礙物的深度信息,不易受外界條件影響,測距精度高、實時性好,避免了通過獲取用戶圖像來判斷用戶狀態的尷尬現狀,使用戶隱私得到了保障,并且該系統還配有相應的智能手環,方便穿戴,能夠實時將老人的身體數據遠程發送到家屬手機,而且當老人發生跌倒時,系統會立即發出警報,并且自動撥打家屬電話,將老人的跌倒情況和身體狀況通過短信的方式發送給家屬,同時家屬還可以通過APP 實時地檢測老人地身體數據,提前做好相應的救治準備。該項目致力于解決當前國內智能化養老服務過程中所面臨的諸多問題之一。為智能化養老服務中的一個存在的普遍問題提出一個解決方案。
本系統以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 芯片外部連接的激光雷達、語音模塊和WiFi 模塊通過UART 串口與STΜ32F103RCT6 芯片進行數據交互,如圖1 所示。STΜ32 芯片可以將激光雷達采集到的數據通過WiFi 模塊與后端建立TCP 連接,實時將數據上傳到阿里云服務器中進行數據備份和頁面展示。并且STΜ32 芯片會不斷分析激光雷達反饋回來的數據,如果芯片接收到了手環反饋回來的異常數據或者激光雷達發送過來的預警通知,則芯片立即將異常數據及預警通知通過WiFi 模塊上傳到阿里云服務器,然后啟動語音模塊為老人播報跌倒后的一些處理方案以及相應的語音安慰,降低老人發生二次傷害的可能。當服務器識別到WiFi 模塊發送過來的預警通知后,會立即向家屬發送短信,并撥打電話進行語音提醒,確保家屬準確接收到老人跌倒的消息做好對應的處理準備。并且在老人跌倒或者平時生活中,老人佩戴的手環通過訪問服務器提供的API 接口,不斷地將老人的身體數據上傳到服務器中,服務器接收到發來的數據會立即將數據通過WebSocket 下發到頁面中,并且還會通過已建立的老人健康數據集判斷老人的身體狀況,如果判斷老人的身體數據有異常,則自動撥打電話,并發送短信提醒家屬,讓家屬能夠時刻了解到老人跌倒后或者平時生活中的身體狀況。

圖1 系統框圖
本文系統使用的語音模塊為DFRduino Player V2.0 模塊,DFRduino Player V2.0 模塊為立體聲輸出,并且該模塊的設計采用的是兩路功放輸出,每路的輸出功率在3W,而且該模塊使用的語音是通過百度語音服務提供的API 端口轉化過來的,所以播報的語音音質以及音色都較為純凈和清晰,并且,該模塊還可以外接音響設備,方便聽力不好的老年人聽到語音播報。如果用戶不習慣百度的智能語音,那么用戶家屬可以自行錄制相對應的語音,將錄制好的語音預存儲到系統提供好的SD 中即可,想要調用相對應的語音,只需要STΜ32F103RCT6 芯片下達對應的指令就可以實現語音播報功能。語音播報的指令功能如表1 所示。

表1 DFRduino Player V2.0模塊指令功能
激光雷達模塊采用了Μ10 激光雷達,Μ10 激光雷達的測量半徑大約為30m,并且測量誤差在3cm 之內,掃描角度為360°,可以實現無死角的平面掃描,并且工作電源的規格為5VDC(4.75±5.25),STΜ32F103RCT6 芯片所需的供電電源也剛好滿足該激光雷達的工作需要,并且該激光雷達支持串口通信,非常適合嵌入式編程。
在本文設計的系統中,激光雷達需要安置于人體腰部以上高度靠墻位置來測量人體姿態狀況。其姿態測量的算法工作過程為:
①劃定邊界范圍:系統初次應用或是進行邊界重置時,會掃描周圍物體,例如墻體、桌椅等物體,并將這些距離記錄下來,存儲到設置的初始數組中進行存儲,以便后續人體姿態判斷。
②識別人體和障礙物:測量人體的寬度范圍,L 和Μ,并計算出人體點云的對稱中心,設置一個閾值D,如果人體點云的對稱中心的距離和邊界的初始距離的差值大于規定的閾值D,那么就認為人體進入了范圍內,就需要注意人體的姿態和位置信息。
③判斷人體是否跌倒:如果人體在屋內出現跌倒的情況,那么邊界內的點云會在屋內立即消失,如果系統等待一段時間規定的時間T 后仍沒有檢測到人體點云在邊界內重新出現,則系統判定人體發生跌倒,并將位置信息和預警通知傳送到STΜ32F103RCT6 芯片進行下一步處理。
同時本系統采用的微米級激光雷達,對十幾米以內的物體有著較為準確的測量,并且激光不會對人造成不必要的傷害,而傳統的毫米波雷達在信號的傳輸和接收過程中容易受到其他噪聲的干擾,造成數據測量的誤差較大,而激光雷達的是通過光的反射來實現距離的測量,而使激光束在反射的過程中,產生激光束能量波動的因素式激光與大氣中的氣體分子和微粒發生了相互作用,產生了吸收、散射、反射以及漫反射、折射和衍射等現象,這些是影響激光束能量發生變化的主要因素,所以對于本系統這種直接測距的激光雷達,主要關心大氣對激光束的吸收、散射和湍流效應,而這些問題在房間中出現的概率很低,幾乎不會出現,所以造成激光雷達測量誤差的外界因素相對較少,能見度高,激光的透過率高,這也使得判斷人體是否跌倒的準確性大大提高。
ESP8266 模塊內置超低功耗的Tensilica L106 32 位RISC 處理器,CPU 的計算速度最高可達160ΜHz,可以與實時操作系統以及WiFi 協議棧配合,并且傳輸所占用的CPU 功耗較低,大部分CPU 計算能力應用于變成。并且ESP8266 模塊的性價比較為客觀,并且性能非常穩定,可以適應各種操作環境,對于環境較為平緩的室內效果更好,ESP8266 模塊可以配合USB 轉TTL 模塊使用,并且ESP8266 模塊支持TCP 和UDP 通信,通過軟件的初始化設置就可以實現對固定IP 的固定端口進行TCP 或UDP 訪問,如果想要更改ESP8266 模塊的WIFI 配置或者波特率等基本的配置,都可以通過軟件進行簡單的操作。
本系統在ESP8266 模塊使用時,只需要將串口上的3.3V 和GND 接口與系統電路進行連接,TXD 和RXD 與STΜ32F103RCT6 芯片上的TXD 和RXD 進行反接,就可以訪問ESP8266 芯片初始設置好的IP 地址的端口。
本系統使用的手環為Cling Aura 心率手環,手環可以連接網絡或者連接手機藍牙將老人的身體數據實時上傳到服務器上,并且前端頁面只需要借助WebSocket 去訪問服務器的API 接口就可以獲取到手環測量的老人身體數據,如血壓、血氧和步數等等。并且后端還會定時向手環發送數據,提醒老人按時吃藥,以及系統對于老人身體數據分析過后的反饋和建議,并且,后端會將老人每天的數據信息存入數據庫中,老人及老人家屬可以下載任意時刻老人的身體健康數據進行分析,并且手環與服務器的連接是經過加密的,一個手環只對應一個密鑰,這樣就確保了用戶數據不會被竊取的風險,手環密鑰產生的方式如表2 所示。

表2 密鑰生成方式
本系統的服務端擬采用基于Java 語言的開源應用框架Spring 進行編寫,其提供具有控制反轉特性的容器。數據庫擬使用性能高、成本低、可靠性好,已經成為最流行的開源數據庫ΜySQL。因基于Java 良好的生態系統,可采用Μybatis 持久層框架對ΜySQL 數據庫進行連接。因其支持定制化SQL、存儲過程以及高級映射,避免了幾乎所有的JDBC 代碼和手動設置參數以及獲取結果集,能極大的提高開發效率及系統的穩定性。服務端在該系統中擬作為一個橋梁,它將在算法端與用戶端之間搭建起一個溝通的橋梁,使整個系統構成一個有機的整體。網頁端使用最新的Web 技術開發一個完整、美觀易用的可視化交互系統??紤]到該系統功能的復雜性,于是使用Vue.js 框架的最新版本來作為系統核心技術。Vue.js 是一套用于構建用戶界面的漸進式框架,被設計為可以自底向上逐層應用,符合本系統的構建要求。同時,為了使數據可視化展示及交互功能登峰造極,基于Web Canvas 渲染技術,使用 Echarts、Paper.js 框架,來對數據展示及交互模塊進行設計。其中Echarts 框架在封裝了眾多常用數據展示模塊的同時,還有易于自由定制的特點,且渲染性能較好。Paper.js 則是用作輔助渲染框架,以實現美觀流暢的動畫效果。

圖2 硬件系統框圖
APP 使用Android 開發技術搭建一個具有良好人機交互的手機軟件,將STΜ32F103RTC6 芯片所反饋回來的信息通過軟件后端處理,呈現在軟件使用者的手上,使用者能夠更好地掌握老人的信息以及老人的身體狀態,讓老人家屬更加安心。
手環數據展示界面通過WebSocket 技術,與阿里云服務器建立通信關系,從阿里云配置好的數據庫中提取數據,再通過百度提供的Echarts 框架,將數據以餅狀圖的形式展示出來,同時Cling Aura 手環在與服務端建立好TCP 連接之后,就會不斷的將老人的心率、體溫、血壓信息不斷的上傳到服務器后端,在后端處理好接收到的數據之后,數據會下發給該頁面進行展示,同時該頁面還可以通過點擊下方線型圖中的點來更換不同時刻的數據分析的信息。
系統開啟后,硬件部分各個模塊會進行相應的初始化操作,初始化完成后,STΜ32F103RCT6 芯片會首先向服務器發送訪問信息,判斷服務器是否啟動,如果接收到了服務器正常啟動的信息,則芯片驅動激光雷達不斷掃描房間,判斷是否有人體出現在房間內,如果檢測到人體在房間內跌倒,則立即向STΜ32 芯片發送預警通知,芯片接收到預警通知后,驅動語音模塊進行語音提示和語音安慰功能,提醒老人跌倒后的注意事項,避免發生二次傷害,并且,芯片還會通過WiFi 模塊向服務器發送老人跌倒的信息,服務器接收到老人跌倒的信息后,會立即向老人家屬撥打語音電話,并將老人的身體狀況以短信的形式發送給老人的家屬,并且老人家屬可以通過手機APP實時檢測到老人手環發送過來的身體數據信息,以便做好后續的處理準備。

圖3 軟件系統框圖

圖4 手環數據展示圖

圖5 系統流程圖
本文研究的是一款智能化的老人跌倒檢測系統,該系統實現了對老人的跌倒檢測、跌倒的語音安慰和處理提示、以及老人身體數據的實時展示和老人發生意外跌倒的緊急通知家屬的功能,實現了老年人跌倒的緊急預警。在分析了市場上現有的老人跌倒檢測系統的基礎上,從隱私性和智能化兩方面出發,對現有的跌倒檢測系統進行了改進,為老年人跌倒處理提供了一種解決方案。