999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

CC3200與Android的跌倒檢測系統上位機設計※

2016-03-10 01:58:49趙旭強高天星馬忠梅
單片機與嵌入式系統應用 2016年2期

趙旭強,高天星,馬忠梅

(北京理工大學 計算機學院,北京 100081)

?

CC3200與Android的跌倒檢測系統上位機設計※

趙旭強,高天星,馬忠梅

(北京理工大學 計算機學院,北京 100081)

摘要:Android系統使用 OpenGL 的標準接口來支持3D圖形功能。通過處理CC3200下位機發送的數據,計算出加速度芯片模型四邊形的4個頂點坐標。系統使用OpenGL ES在窗口中顯示模型四邊形,能夠將芯片姿態的3D形式準確顯示到窗口中。通過分析數據,可有效判斷出人體是否處于跌倒狀態。

關鍵詞:CC3200;Android;OpenGL;跌倒檢測

引言

近年來,老人摔倒的問題越來越嚴重。為了在老人跌倒后能夠得到及時的處理,本文設計了一種基于Android智能手機和CC3200微控制器,并結合MMA7260加速度傳感器的老人跌倒檢測系統。

SimpleLink Wi-Fi CC3200是由TI公司研制的低功耗MCU平臺,集成了高性能的ARM Cortex-M4處理器核和Wi-Fi網絡處理器,網絡通信穩定可靠,并擁有完整的安全協議,其外接了多種設備,包括快速并行接口、SPI、UART串口、ADC模塊等。MMA7260是一款低功耗、低成本、高靈敏三軸加速度傳感器,其加速度以模擬電壓的形式輸出。通過CC3200的ADC模塊對MMA7260的加速度模擬電壓進行轉換,并通過其Wi-Fi模塊與Android智能設備連接,在Android強大的計算能力和OpenGL庫的支持下,可以將MMA7260的姿態顯示到手機界面,然后通過對數據進行分析,實現對老人跌倒的檢測。

1系統設計

1.1系統整體設計

系統主要由兩大模塊組成:CC3200下位機模塊和Android智能設備上位機模塊,其系統整體結構如圖1所示。

圖1 系統整體結構

下位機CC3200采用TI-RTOS操作系統作為平臺,利用RTOS的多線程能力,創建了兩個線程,分別用于對MMA7260的加速度模擬電壓值進行A/D轉換和將得到的加速度數據利用TCP/Socket發送到上位機。Android上位機創建了一個Wi-Fi熱點,下位機通過此熱點建立與上位機的通信。Android上位機接收到加速度電壓數據之后,首先計算芯片上3個坐標軸與重力方向的夾角,然后計算芯片3個坐標軸在地面坐標系中的坐標,并計算芯片四邊形4個頂點在地面坐標系中的坐標,最終通過OpenGL ES將坐標軸和芯片四邊形繪制到窗口中。

1.2上位機軟件設計

使用一臺Android智能終端設備作為上位機,建立與CC3200的連接,并循環接收加速度的電壓數據,經過一系列轉換得到芯片的姿態并顯示到界面上。

首先,需要建立一個SocketSever,等待CC3200的連接。為了使得手機和CC3200能夠連接在一起,需要讓手機和CC3200位于同一個局域網內,因此,需要使用該手機建立一個Wi-Fi熱點,讓CC3200能夠連接并發送數據。

然后,SocketServer接收到一個Socket,并獲得其IP地址,新建一個文件用于保存接收到的數據,其次獲取Socket的數據流,從中獲取加速度電壓數據。

接著根據電壓數據計算出芯片的3個坐標軸與重力方向的夾角,根據夾角計算芯片的3個坐標軸在地面坐標系中的坐標關系,從而計算芯片四邊形4個頂點的位置坐標,最后使用OpenGL ES將四邊形顯示在窗口中。

上位機程序流程圖如圖2所示。

圖2 上位機軟件設計流程圖

2上位機軟件實現

2.1連接網絡并獲得加速度數據

網絡連接使用TCP/Socket實現。首先,應用程序建立一個SocketServer,將端口設置為與CC3200中一致,即5001,然后使用SocketServer的Accept方法等待CC3200連接本服務器,并得到連接Socket。

2.2根據加速度計算角度

得到3個坐標軸加速度的值之后,可以計算3個坐標軸與重力方向的角度。重力分解示意圖如圖3所示。

圖3 重力分解示意

將重力G沿3個坐標軸方向分解,則:

Gcosθx=Gx

Gcosθy=Gy

Gcosθz=Gz

因此:

θx=arccos (Gx/G)

θy=arccos (Gy/G)

θz=arccos (Gz/G)

在實際計算中,由于采集到的加速度值并不只有重力加速度的分量,在運動狀態時還有比較大的運動加速度,因此,Gx、Gy、Gz的絕對值可能大于重力加速度g,此時無法計算arccos的值。在計算中,只需要求得角度值而并不需要加速度的具體數值,所以對Gx、Gy、Gz進行閾值處理:

Gx=Gx

Gy=Gy

Gz=Gz

使得角度均可計算。

2.3根據角度計算向量

在跌倒檢測系統中,存在兩個不同的坐標系:世界坐標系和模型坐標系。其中,世界坐標系即大地坐標系,其z坐標軸與重力方向相反,此坐標系相對于地面是靜止的。模型坐標系,即CC3200或者MMA7260芯片的坐標系,本文中所述的采集得到的3個加速度方向即為此坐標系的3個坐標軸方向,即2.2節中所述的Gx、Gy、Gz。

本文需要計算模型坐標系坐標軸的單位向量在世界坐標系中的坐標。

一般情況下,芯片位置姿態固定,世界坐標系中x、y方向可以任意選擇,如圖4所示,四邊形代表芯片位置,長坐標軸為地面坐標系,地面坐標系不同但芯片位置相同。因此,為了計算方便,將兩個坐標系的原點重合,并使得模型坐標系的x軸位于世界坐標系的yOz平面內。

圖4 芯片位置姿態固定示意圖

首先計算模型坐標系x軸單位向量的坐標。由于x軸單位向量在yOz平面內,設其單位向量X=(0,yx,zx),如圖5所示,在yOz平面內,X向量與z軸的夾角為θx,因此X=(0,sin θx,cos θx)。

圖5 芯片x軸在世界 坐標系中的位置

然后計算模型坐標系y軸單位向量Y=(xy,yy,zy)的坐標。對于此單位向量,其與世界坐標系z軸的夾角為θy,因此:

同時,y軸單位向量與x軸單位向量垂直,因此:

聯立上述方程組,可以得到:

得到x軸單位向量和y軸單位向量的坐標后,可以得到z軸單位向量:

X·Z=0

Y·Z=0

|Z|=1

然而,在本系統中,根據x軸單位向量和y軸單位向量便可完全確定模型坐標系的xOy平面,即確定芯片在世界坐標系中的姿態,因z軸單位向量的表述比較復雜,因此不再計算z軸單位向量。

2.4顯示四邊形的頂點坐標計算

圖6 模型四邊形

在得到模型坐標系xOy平面的單位坐標之后,即可計算模型四邊形的頂點,即芯片四邊形在世界坐標系中的頂點。如圖6所示,顯然,四邊形的4個頂點的坐標分別為X+Y,-X+Y,-X-Y,X-Y。其中,X為模型坐標系中x軸單位向量坐標,Y為模型坐標系中y軸單位向量坐標。

2.5OpenGL軟件設計

在本系統中,需要將芯片模型的姿態以3D形式顯示出來,因此采用Android 3D 引擎OpenGL ES。

在Android中使用GLSurfaceView來顯示 OpenGL 視圖。它提供了一個專門用于渲染3D 的接口類,即Renderer類,使用setRenderer(new MyRenderer())將GLSurfaceView和渲染接口Renderer類連接起來。實現Renderer需要它的3個接口:onSurfaceCreated()、onSurfaceChanged()、onDrawFrame()。其中,onSurfaceCreated()接口在創建窗口時調用,通常在此接口中對 OpenGL 做一些初始化工作,例如設置背景等。onSurfaceChanged()接口在窗口大小發生改變時調用,可以重新設置場景大小等。onDrawFrame()接口即為最重要的接口,所有繪圖操作都在此函數中實現。

當OpenGL引擎啟動之后,將會循環調用onDrawFrame()進行繪圖。在onDrawFrame()中要完成清空屏幕、設置攝像機、繪圖任務。調用glClear()方法可以實現清空緩沖區任務,使用gluLookAt()方法可以設置攝像機位置。其繪圖流程圖如圖7所示。

圖7 上位機繪圖流程圖

在繪圖時,首先根據加速度計算得到的角度數據計算模型坐標系的單位向量,并計算模型四邊形頂點坐標,將得到的數據放入Buffer準備繪圖。繪圖主要代碼略——編者注。

首先申請一個ByteBuffer,并設置Buffer中點的繪圖順序,然后將坐標以及顏色數據轉換為float型Buffer,并將頂點坐標放入到floatbuffer中,其次使用glColor4f()設置繪圖時使用的顏色,也可使用顏色數組給每個頂點分別設置顏色,最后使用glVertexPointer()將數據放入繪圖緩沖區中,并使用glDrawArrays()進行圖像繪制。主要繪制的圖像有5個坐標軸,每個坐標軸有兩個頂點,是以GL_LINES的形式繪制;還有一個模型四邊形,4個頂點以GL_TRIANGLE_STRIP的形式繪制。

3實驗結果及分析

在跌倒檢測前首先將數據保存在文件中并分析,以確定設備正常工作并得到傳感器的各狀態數值。

根據MMA7260用戶手冊,對任意方向,V0=1.65 V,R=0.8 V/g。由于采用分壓電路,CC3200中的Vout是實際Vout的一半。同時,由于不同設備的差異性,V0并不嚴格等于1.65 V,R也不嚴格等于0.8 V/g,并且不同方向的數值并不嚴格相同。對于本系統,因使用了分壓電路,以上數值均應減少一半。將MMA7260穩定放在標準位置,即讓芯片的x軸、y軸、z軸分別處于與重力方向相同并固定,經過分壓電路的分壓處理,得到的數值如表1所列。當x軸上加速度為 -1g時,其電壓平均值為1.011 V;當加速度為0時,其電壓平均值為0.733 V,當加速度為1g時,其電壓平均值為0.42 V,并計算得到其分辨率為0.275 V/g,即加速度每變化1g,x軸電壓值變化0.275 V。同樣,與x軸類似,當y軸與z軸上加速度為0時,其電壓值分別為0.770 V和0.788 V,y軸和z軸上分辨率同樣為0.275 V。三軸加速度電壓如表1所列。

表1 三軸加速度電壓

實際加速度為0時,電壓值和分辨率都與用戶手冊誤差較大。因此,由2.1節可知,對于3個方向上的加速度值的計算公式為:

實現硬件連接、組網與程序之后,對其進行測試。當系統正常運行時,手機端軟件界面如圖8所示。界面中顯示了連接狀態、連接IP和端口,中間黑色框即為OpenGL的View窗口,顯示了芯片的姿態;同時,還顯示了3個軸方向得到的加速度電壓值,以及計算得到的模型坐標系3個軸與重力方向的角度值。

圖8 不同狀態時系統界面

當MMA7260處于不同姿態時,手機上顯示的姿態與MMA7260的姿態有較為一致的變化,MMA7260芯片處于不同姿態時的結果略——編者注。

從上述結果可以看到,手機界面中顯示的四邊形姿態與MMA7260芯片姿態基本一致,能夠較準確地識別姿態。

將MMA7260和CC3200固定在一起,并將CC3200板與人體平行,佩戴在身體腰部靠下位置(這一部位比較穩定,在一般的彎腰、行進、坐下等動作中對跌倒判斷影響比較小)。

結語

本文利用SimpleLink Wi-Fi CC3200微控制器、MMA7260和Android智能終端設備,設計了一種跌倒檢測系統,能夠較好地檢測到人體摔倒并進行警報。系統對CC3200發送的加速度數據進行處理,通過OpenGL將芯片的姿態顯示在窗口中。通過對加速度數據進行分析,可以有效判斷出人體所處狀態,當摔倒時能夠及時作出判斷并發出報警。

參考文獻

[1] TI.CC3200 SimpleLink Wi-Fi and Internet-of-Things Solution,a Single-Chip Wireless MCU[EB/OL].[2015-09].http://www.ti.com/lit/ds/symlink/cc3200.pdf.

[2] 陳鈺琨.LM4F232pQD與MMA7260加速度傳感器的跌倒檢測[J].單片機與嵌入式系統應用,2013(6):49-52.

[3] TI.TI-RTOS 2.14 User’s Guide[EB/OL].[2015-09].http://www.ti.com/lit/ug/spruhd4j/spruhd4j.pdf.

[4] TI.CC3200 SimpleLink Wi-Fi and Internet-of-Things Solution,a Single Chip WirelessMCU Technical Reference Manual[EB/OL].[2015-09].http://www.ti.com/lit/ug/swru367b/swru367b.pdf.

趙旭強、高天星(碩士研究生),馬忠梅(副教授):主要研究方向為嵌入式系統和物聯網應用。

Upper Computer Design of Fall Detection System Based on CC3200 and Android※

Zhao Xuqiang,Gao Tianxing,Ma Zhongmei

(School of Computer Science and Technology,Beijing Institute of Technology,Beijing 100081,China)

Abstract:Using a standard interface of OpenGL,Android system can support 3D graphics.In this paper,the four vertex coordinates of the chip quadrilateral model are calculated by processing data received from the lower computer of CC3200.OpenGL ES is applied to display this quadrangle in the window of Android system.The chip status can be presented in 3D form exactly in the window.By analyzing the data,whether the human has falling down can be judged efficiently.

Key words:CC3200;Android;OpenGL;fall detection

收稿日期:(責任編輯:薛士然2015-09-20)

中圖分類號:TP368

文獻標識碼:A

主站蜘蛛池模板: 午夜欧美理论2019理论| 黄色国产在线| 精品91视频| AV天堂资源福利在线观看| 波多野结衣一区二区三区四区| 国产男女免费视频| 99资源在线| 999国产精品| 国产爽爽视频| 亚洲黄色片免费看| 一本大道无码日韩精品影视| 99在线观看国产| 国产99在线观看| 色偷偷一区| 日本午夜影院| 萌白酱国产一区二区| 久久窝窝国产精品午夜看片| 成人福利在线视频| 亚洲日韩在线满18点击进入| 欧美成人精品高清在线下载| 日本人妻丰满熟妇区| 久久这里只有精品23| 国产91精品调教在线播放| 亚洲天堂啪啪| 亚洲欧美成aⅴ人在线观看| 国产青榴视频在线观看网站| 日韩在线1| 男人天堂伊人网| 欧美日韩一区二区在线播放 | 亚洲免费福利视频| 精品无码一区二区在线观看| 五月天天天色| 成年网址网站在线观看| 日韩无码精品人妻| 亚洲精品视频网| 欧美成人影院亚洲综合图| 午夜免费小视频| 亚洲色图综合在线| 91色在线观看| 精品福利网| 国产成熟女人性满足视频| 国产微拍精品| 国产精品福利一区二区久久| 色综合热无码热国产| 欧美日韩专区| 色偷偷一区二区三区| 国产后式a一视频| 2020极品精品国产| 中字无码av在线电影| 亚洲一级色| 67194在线午夜亚洲| 性69交片免费看| 欧洲成人在线观看| 亚洲电影天堂在线国语对白| 亚洲欧美一级一级a| 色九九视频| 美女高潮全身流白浆福利区| 五月天综合网亚洲综合天堂网| 亚洲色精品国产一区二区三区| 久久不卡国产精品无码| 国产精品无码久久久久久| 久操线在视频在线观看| 亚洲va在线观看| 91精品国产情侣高潮露脸| 97视频精品全国免费观看| 丁香六月综合网| 2048国产精品原创综合在线| 国产综合在线观看视频| 欧美三級片黃色三級片黃色1| 久久精品一品道久久精品| 欧美日韩第三页| 99热线精品大全在线观看| 国产日韩av在线播放| 青青草原偷拍视频| 最新国产精品第1页| 国产97视频在线| 99re视频在线| 在线观看无码av免费不卡网站| 亚洲最新地址| 国产黄网站在线观看| 国产不卡一级毛片视频| 最新亚洲人成无码网站欣赏网|