基于加速度传感器的老人跌倒检测系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高级操作系统期末论文
题目基于加速度传感器的老人跌倒
检测报警系统
基于加速度传感器的老人跌倒检测报警系统
摘要:在社会逐渐走向老龄化的今天,独自生活的老年人的行动安全已经
成为社会的重要问题。

以前大多数的报警系统多采用按键式的报警方式,实际上,来年人摔倒时,常常失去自我意识,所以单纯依靠老年人摔倒后主动触发报警具备一定的风险。

随着开源的Android平台移动终端操作系统的推出,这一系统具备广泛的兼容性,为了减少老年人因跌倒造成的身心伤害,利用当前android 手机集成的加速度传感器进行人体跌倒的检测,当检测到人体发生跌倒时对老人当前的位置进行定位并调用SMS将摔倒的信息和位置信息发送到预先设置的紧急联系人手机,可以提高老年人摔倒报警的准确性。

关键词:加速度传感器;跌到检测;定位;SMS
Abstract:Today, gradually aging society, the elderly living alone safety has become an important problem of social action. Before most of the alarm system use touch-tone phones more alarm way, in fact, when people fall next year, often lose consciousness, so rely on initiative to trigger the alarm after the elderly fall have a certain risk. As open-source Android platform of mobile terminal operating system, the introduction of the system have a wide range of compatibility, in order to reduce the physical and mental damage caused by the fall in the elderly, using the current Android integration acceleration sensor falls for human detection, when the detected human body fall occurs on the current position of the old man to locate and invoke the SMS will fall information and location information sent to the preset emergency contact phone, can improve the accuracy of the elderly fall alarm.
Keywords:acceleration sensor; detect; location;SMS
1前言
1.1 研究背景及意义
随着我国人口老龄化的趋势,如何照看老年人成为社会各界关注的问题。

再加上现在“空巢老人”的现象已经成为人口老龄化的一种社会问题,引起了社会各界的高度关注。

跌倒对于老年人来说是一项重大的威胁,如何准确检测出跌倒并及时发出报警求助信息,使老年人跌倒伤害降到最低,是人体健康监护领域中非常具有研究价值的问题。

因此,开发具有便携性、高精度性、实时性以及自动报警功能的无线跌倒检测系统,在人体发生跌倒行为时,第一时间检测出并发出警报信息进行求助,是整个社会的需要。

传统的跌倒检测技术在设备、场景等方面具有较大的局限性,随着人工智能、无线通信、微电子技术以及生理信号检测与处理等技术的发展,使得人体运动状态信息的检测获得帮助。

伴随着科技的进步,移动终端已经成为了每一个现代人生活中所必不可少的基本用品。

现阶段无线宽带网络的迅猛发展也悄然地改变着人们的生活方式。

目前的网络已经可以很好地满足用户对于高速移动数据的需求,从而促使手持设备向智能化、多媒体化发展。

另外Android的系统架构及开发原理使它成为当前手持设备中具有可移植的操作系统。

当然,更为重要的是Android的开源性降低了其开发成本,Android使用Java 作为程序开发的语言,为用户所提供大量的程序组件,用户可以直接在这些组件基础上构建自己的开发程序。

现在的移动终端中也集成了多种传感设备,通过对外界变化的及时获取,计算出加速度、地理位置、身体情况等所需的信息。

本文利用加速度传感器,开发出基于Android的App,对老年人的活动信息进行检测,在检测到异常情况时做出报警处理,使得老年人能够得到及时有效的救助,避免严重后果的发生。

1.2 国内外的研究现状
跌倒检测系统是一种个人远程监护系统,保护了老年人群的健康与安全,它可以有效检测老年人是否发生跌倒并及时报警。

所以,跌倒检测技术愈发受到社会各界的重视。

从现今国内外的研究成果来看,关于老年人摔倒时进行报警的方法种类繁多,根据各项产品在研发和使用中得到的摔倒信息的形式和来源不同,主要的方法可以分为以下几类:
1.老年人自主启动的摔倒报警系统
设备要求老年人摔倒时自主报警,所以使用者必须具备一定程度的自救能力和自主活动能力,并且只有在该用户摔倒时,保持清醒才能保证报警功能的顺利实施。

所以这也存在着很大的安全隐患:如果使用者由于摔倒对身体机能造成损伤,失去了自我启动设备的行动能力,无法及时按下报警按钮,这种设备就将失去它的报警功能。

2.利用视频图像信息检测的摔倒报警系统
在使用时,可以设置在老年人易发生摔倒的地方,这种报警方式主要是利用视频图像检测设备实时捕捉老年人的活动,当老年人在图像信息中出现非正常情况下的身体移动或位置姿态变化时,检测摔倒行为的发生,实现自动报警。

它有利于老年人的身体自由活动,但是使用具有空间上的局限性。

并且这种摔倒报警系统的使用,还有可能侵犯老年人的隐私。

本文采用基于Android的App,只需
要在老人的手机上安装上软件进行相应简单的设置,就可以实现检测和报警。

2软件设计及分析
2.1总体设计
基于Android平台开发的老人跌倒检测报警系统主要用来对人体跌倒进行识别和报警,主要功能包括,通过获取到的加速度值和角速度值进行判别跌倒是否发生并用折线图对加速度变化的实时信息进行动态显示,使用百度地图定位功能获取到老人跌倒时所处的位置,用户需要进行紧急联系人设置以便检测到跌倒发生时系统进行自动报警,检测到跌倒时将用户位置和摔倒的信息以短信发送到紧急联系人手机上。

该系统中跌倒的识别是一个难点,只进行加速度和角速度阈值设定的方式来判断摔倒是否发生测试结果会有一定的误差,要使测试结果更精确则需要使用识别数据库。

即将人体运动时可能发生的各种情况如正常行走、跑步、跌倒等的相关数据保存到数据库中,判别跌倒是否发生时只需要和数据库中的数据进行对比即可。

2.2设计环境
开发软件:Eclipse
开发语言:Java+SQLite
运行环境:Android 4.1.0及以上
2.2.1加速度传感器简介
加速度传感器是一种能够测量加速力的电子设备。

通过测量由于重力引起的加速度,你可以计算出设备相对于水平面的倾斜角度。

通过分析动态加速度,你可以分析出设备移动的方式。

加速度传感器是一种能够测量加速力的电子设备。

因此其的范围比重力感应器要大,但是一般在手机被提到的加速度感应器时,其实就是指重力感应器,因此两者可以看作是等价的。

加速度传感器应用于地震检波器设计、车祸报警、监测高压导线舞动、汽车安全、游戏控制、图像自动翻转、电子指南针倾斜校正、GPS导航系统死角的补偿、计步器功能、防手抖功能、设备或终端姿态检测等众多领域。

2.2.2跌到检测简介
跌倒检测系统,其包括:一个或多个传感器,所述传感器用于监测跌倒检测系统的用户的运动以及用于生成相应的信号;用于根据用户身体状况的一个或多个测量结果确定阈值的模块;处理器,所述处理器用于分析信号以识别用户的跌倒、分析信号以识别跌倒。

一般情况下,人体跌倒行为通常发生在2秒左右。

跌倒过程中身体重心的瞬间移动会产生一个加速度,身体的倾倒也会产生一个偏离竖直方向的角度。

在非跌倒状态如行走过程中,人体上躯干偏离Z轴的倾斜角处于一个相对安全的范围内,而跌倒后人体多处于俯卧、侧卧或仰卧的状态,躯干方向接近于水平,即偏离竖直方向的倾斜角接近90度。

因此我们选取加速度和身体
的倾斜角这两个特征作为判别跌倒与其它日常活动的依据。

.2.2.3 定位简介
现在人们能实现的定位的方式很多百度地图就是其中一个,百度提供的一项网络地图搜索服务,覆盖了国内近400个城市、数千个区县。

在百度地图里,用户可以查询街道、商场、楼盘的地理位置,也可以找到离您最近的所有餐馆、学校、银行、公园等等。

利用百度地图定位功能实时的知道用户所处的位置,要想到达目的地可以选择的路线信息等。

2.2.4 SMS
短信服务是一种存储和转发服务。

也就是说,短消息并不是直接从发送人发送到接收人,而始终通过短信服务中心进行转发。

如果接收人处于未连接状态(可能电话已关闭),则消息将在接收人再次连接时发送。

SMS具有许多其他的重要功能。

它既是一个庞大的直接面对用户的服务部门,需要位于不同工作点的许多工作人员通过客户端同时对数据库进行操作
3系统需求分析与概要设计
3.1需求分析
本系统是一个基于安卓系统的人体跌倒检测报警系统软件,通过使用此软件能够快捷的识别出人体是否跌倒,利用百度地图对人所处的位置进行定位,并使用SMS将位置和摔倒的信息发送到家人的手机上,本系统包括的功能有紧急联系人信息添加,百度地图定位,跌倒识别的信息用折线图显示,短信的发送。

3.2 系统概要设计
3.2.1 系统功能模块介绍
(1)添加紧急联系人信息模块:用户点击联系人按钮后可以通过点击添加按钮进入紧急联系人信息页面进行信息的添加也可以点击通讯录从手机通讯录中选择添加。

该模块中包含了两个子模块自主添加联系人模块和从通讯录选择添加联系人模块,模块界面如下图所示:
图3.1 系统主界面图3.2 紧急联系人信息模块界面(2)百度地图定位模块:当老人跌倒需要家人的帮助时就需要能知道老人当时所在的位置,所以利用百度地图里的定位功能实现实时定位。

模块界面如下:
图3.3百度地图模块界面
(3)跌倒识别模块:现在的android手机中都已集成了加速度传感器,所以利用加速度传感器的和速度是否超过设定的阈值判定人体是否摔倒,并将信息用折线图显示。

该模块中包含了加速度显示和折线图显示加速度值两个子模块,界面如下图所示:
图3.4跌倒识别模块界面
(4)发送短信模块:当检测到用户摔倒时将用户的当前的所在位置和摔倒的信息发送到指定的紧急联系人的手机上。

模块的界面如下图所示:
图3.5发送短息模块界面
3.2.2 功能模块结构图
图3.6功能模块结构图3.2.3系统流程图
图3.7 系统流程图
4系统详细设计
4.1联系人设置模块
4.1.1 代码设计
紧急联系人设置的xml布局由两个Button和一个Textview组成,两个Button分别表示通过系统自己的添加界面添加紧急联系人和调用手机通讯录选择添加紧急联系人,Textview用来显示添加的紧急联系人信息(包括姓名,电话,地址)模块部分代码如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.activity_contact_info);
show=(TextView)findViewById(R.id.show);
Intent i=getIntent();
/*
* 实现紧急联系人的添加*/
findViewById(R.id.add).setOnClickListener(
new OnClickListener() {
//调用“添加联系人信息”页面
@Override
public void onClick(View v) {
Intent jIntent=new Intent(ContactInfoActivity.this,
AddContactActivity.class);
//jIntent.putExtra("familyInfo",new familyInfo("", "", ""));
startActivityForResult(jIntent, 0);
}
});
/*
* 实现通讯录中选取联系人
* */
findViewById(R.id.book).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
Intent bIntent=new Intent(ContactInfoActivity.this,
PhoneActivity.class);
startActivityForResult(bIntent, 0);
}
});
}
//处理接收的数据
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data){ super.onActivityResult(requestCode, resultCode, data);
//接收数据:采用Bundle传值
Bundle bundle =data.getExtras();
String name=bundle.getString("name");
String telphone=bundle.getString("telphone");
String address=bundle.getString("address");
show.setText("联系人信息:"+"\n姓名:"+name+"\n电话:"+telphone+"\n 地址:"+address);
show.setTextSize(20);
}
4.1.2 界面设计
联系人设置模块界面如图4.1.1所示。

图4.1紧急联系人信息界面图
4.2自主添加联系人模块
4.2.1 代码设计
自主添加联系人activity_add_contact.xml布局主要由三个TextView来分别显示用户需要添加的姓名、电话和地址信息、三个EditText分别由用户输入对应的信息、两个Button 用来实现用户输入信息的存储并返回到另一个Activity将信息显示出来,取消按钮用来取消本次添加操作。

模块的部分代码如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.activity_add_contact);
//接收数据
Intent jIntent=getIntent();//实现“联系人信息页”到“添加联系人信息”页
name=(EditText)findViewById(R.id.editText1);
telphone=(EditText)findViewById(R.id.editText2);
address=(EditText)findViewById(R.id.editText3);
//返回联系人信息页
findViewById(R.id.confirm).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
Bundle bundle=new Bundle();
bundle.putString("name",
name.getText().toString());
bundle.putString("telphone",
telphone.getText().toString());
bundle.putString("address",
address.getText().toString());
Intent intent=new Intent(AddContactActivity.this,
ContactInfoActivity.class);
intent.putExtras(bundle);
setResult(1, intent);
finish();
}
});
4.2.2 界面设计
自主添加联系人模块界面如图4.2.1和图4.2.2所示。

图4.2 添加联系人界面图4.3 取消按钮信息提示界面
4.3通讯录获取联系人模块
4.3.1 代码设计
通讯录获取联系人activity_phone.xml布局由ListView来显示从用户手机通讯录中读取出来的联系人信息,模块部分代码如下:
public class GetNumber {
public static List<PhoneInfo> lists = new ArrayList<PhoneInfo>();
public static String getNumber(Context context) {
Cursor cursor = context.getContentResolver().query(Phone.CONTENT_URI, null, null, null, null);
String phoneNumber;
String phoneName;
while (cursor.moveToNext()) {
phoneNumber =
cursor.getString(cursor.getColumnIndex(Phone.NUMBER));//电话号码
phoneName =
cursor.getString(cursor.getColumnIndex(Phone.DISPLAY_NAME));//姓名
PhoneInfo info = new PhoneInfo(phoneName, phoneNumber);
lists.add(info);
System.out.println(phoneName);
System.out.println(phoneNumber);
}
return null;
}
}
4.3.2 界面设计
通讯录获取联系人模块界面如图4.3.1所示。

图4.4 通讯录选择联系人信息界面
4.4百度地图定位模块
4.4.1 代码设计
百度地图定位activity_locationss.xml布局由一个Button来驱动用户调用百度地图API实现百度地图的定位,在实现百度地图定位时需要根据所建项目的包和Eclipse中的SHA1 fingerprint信息来申请对应的API key并在配置文件中配置响应信息,还需要导入baidumapapi的包。

模块的部分代码如下:
public class MyLocationListenner implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
// map view 销毁后不在处理新接收的位置
if (location == null || mMapView == null)
return;
MyLocationData locData = new MyLocationData.Builder()
.accuracy(location.getRadius())
//此处设置开发者获取到的方向信息,顺时针0-360
.direction(100).latitude(location.getLatitude())
.longitude(location.getLongitude()).build();
mBaiduMap.setMyLocationData(locData);
if (isFirstLoc) {
isFirstLoc = false;
LatLng ll = new LatLng(location.getLatitude(),
location.getLongitude());
MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);
mBaiduMap.animateMapStatus(u);
}
String addr = location.getAddrStr();
if (addr != null) {
Log.i("Test", addr);
} else {
Log.i("Test","error");
}
double longitude = location.getLongitude();
double latitude = location.getLatitude();
if (longitude > 0 && latitude > 0) {
Log.i("Test",String.format("纬度:%f 经度:%f",
latitude,longitude));
LatLng ptCenter = new LatLng(latitude,longitude);
// 反Geo搜索
mSearch.reverseGeoCode(new ReverseGeoCodeOption()
.location(ptCenter));
}
//停止定位
mLocClient.stop();
}
public void onReceivePoi(BDLocation poiLocation) {
}
}
4.4.2 界面设计
百度地图定位模块界面如图4.4.1所示。

图4.5 百度地图定位信息界面
4.5加速度信息显示模块
4.5.1 代码设计
加速度信息显示activity_sensor.xml布局由一个TextView显示通过手机中的加速度传感器获取到的人体运动加速度的数据,此处需要计算加速度的合速度并设定相应的阈值,若获取的合速度a超过了阈值则表示人摔倒否则属于正常情况。

模块部分代码如下:
/* 功能:采集加速度传感器,得到传感器从外界采集的数据 */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.activity_sensor);
showTextView = (TextView) findViewById(R.id.showTextView);
sensorManager = (SensorManager)
getSystemService(Context.SENSOR_SERVICE);
accelerometerSensor = sensorManager
.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(this, accelerometerSensor,
SensorManager.SENSOR_DELAY_GAME);
}
//坐标轴都是手机从左侧到右侧的水平方向为x轴正向,从手机下部到上部为y轴正向,垂直于手机屏幕向上为z轴正向
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { // x,y,z分别存储坐标轴x,y,z上的加速度
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
// 根据三个方向上的加速度值得到总的加速度值a
float a = (float) Math.sqrt(x * x + y * y + z * z);
System.out.println("和加速度a---------->" + a);
// 传感器从外界采集数据的时间间隔为10000微秒
System.out.println("x轴加速度x------------->" + x);
System.out.println("y轴加速度------------->" + y);
System.out.println("z轴加速度------------->" + z);
Log.d("TAG", "x----------->" + x);
Log.d("TAG", "y----------->" + y);
Log.d("TAG", "z----------->" + z);
showTextView.setText("\t"+"合速度a---------->"+a+
"\nX轴加速度---------->" + x +
"\nY轴加速度---------->" +y +
"\nZ轴加速度---------->" + z);
}
//将当前时间赋值给timestamp
timestamp = event.timestamp;
}
4.5.2 界面设计
加速度信息显示模块界面如图4.5.1所示。

图4.6 人体运动加速度信息显示界面
4.6折线图显示合速度信息模块
4.6.1 代码设计
折线图显示合速度activity_chart.xml布局由一个TextView、一个LinearLayout和一个Button组成,TextView反映折线图的内容,LinearLayout 用来显示折线图,Button用来返回上一级的Activity页面。

代码如图所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.activity_chart);
LinearLayout layout = (LinearLayout)findViewById(R.id.linearlayout);
//生成图表
chart = ChartFactory.getTimeChartView(this, getDateDemoDataset(), getDemoRenderer(), "HH:mm:ss");
layout.addView(chart, new LayoutParams(LayoutParams.WRAP_CONTENT,370));
//为TextView添加事件
// textview = (TextView)findViewById(R.id.myview);
// textview.setOnClickListener(new View.OnClickListener
Button button = (Button)this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Toast.makeText(ChartActivity.this, "加速度", 1).show();
Intent intent = new Intent();
intent.setClass(ChartActivity.this, MainActivity.class);
startActivity(intent);
}
});
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
//刷新图表
updateChart();
super.handleMessage(msg);
}
};
task = new TimerTask() {
@Override
public void run() {
Message message = new Message();
message.what = 200;
handler.sendMessage(message);
}
};
timer.schedule(task, 2*1000,1000);
}
4.6.2 界面设计
折线图显示合速度信息模块界面如图4.6.1所示。

图4.7 折线图显示人体运动加速度信息界面
4.7发送短信模块
4.7.1 代码设计
短信发送activity_sms.xml布局由两个TextView和两个EditView和一个Button组成,TextView用来作为用户发送短信时输入信息的提示,EditView用来给用户进行信息编辑,Button实现短信发送的操作。

模块部分代码如下:protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.activity_sms);
phone_number_editText =
(EditText)findViewById(R.id.phone_number_editText);
sms_content_editText = (EditText)
findViewById(R.id.sms_content_editText);
send_sms_button = (Button) findViewById(R.id.send_sms_button);
send_sms_button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
String phone_number =
phone_number_editText.getText().toString().trim();
String sms_content =
sms_content_editText.getText().toString().trim();
if(phone_number.equals("")) {
Toast.makeText(SMSActivity.this,
R.string.str_remind_input_phone_number, Toast.LENGTH_LONG).show();
} else {
SmsManager smsManager = SmsManager.getDefault();
if(sms_content.length() > 70) {
List<String> contents =
smsManager.divideMessage(sms_content);
for(String sms : contents) {
smsManager.sendTextMessage(phone_number, null, sms, null, null);
}
} else {
smsManager.sendTextMessage(phone_number, null,
sms_content, null, null);
}
Toast.makeText(SMSActivity.this,
R.string.str_remind_sms_send_finish, Toast.LENGTH_SHORT).show();
}
}
});
}
4.7.2 界面设计
短信发送模块界面如图4.7.1所示。

图4.8 短信发送界面
4.8系统开发过程故障排除
在整个系统开发的过程中,总会遇到各种各样的问题,现将部分问题及解决办法总结如下:
(1)在Activity中,获取被启动的Activity传回的信息时报空指针的错误,原因是布局文件中有些控件未被绑定组件,所以获取的值是空的。

(2)在利用百度地图进行定位时报错:Unable to execute dex: Multiple dex files define,原因是重复定义support.v4的支持包,解决办法:删掉
一个即可。

(3)在运行程序时报错:Please check logcat output for more details。

原因是测试的手机内存不足,解决办法:删除手机上的其他应用。

(4)点击按钮时程序不响应,但程序不报错误。

原因是:在页面布局中,图片和按钮的命名相同时。

(5)在系统中需要使用折线图显示获取到的加速度值得变化信息,出现错误:ng.NoClassDefFoundError:org.achartengine.model.XYMultipl
eSeriesDataset,原因:依赖的Jar包没有编译到apk中,解决办法:选
择工程Project右键-->属性-->Java Build Path -->Order and Export-->
将引入的Jar包移到Android包之上-->Clean运行程序即可。

(6)在利用百度地图定位时,之前能正常定位,一段时间之后运行程序打开时只显示白色网格并不能正常定位,解决办法:重新申请了百度地图API key替换之前的key之后即可正常运行。

(7)导入包之后报错,错因是添加jar包之后移动了jar文件的位置。

(8)报错:Unable to execute dex: Multiple dex files define;Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define,原因是有重复的jar被引用,可以查看你的build path,尤其
是Android Dependencies一定有重复引入的.jar包,解决的方法是在
libs删除重复的jar即可。

4.9系统测试
系统测试时系统开发中的一个重要环节,测试的主要目的是展示人体跌倒检测系统的运行状况、是否达到预期设计的指标。

测试的主要方面有:
(1)测试系统安装后占用手机资源的情况;
(2)驱动运行状态;
(3)传感器数据的精度和周期;
(4)定位信息的准确性;
(5)短信发送是否成功;
(6)摔倒发生时系统是否触发相应的事件。

5.总结
这个学期在其他学习之余,我都会在网上看一些安卓基础知识方面的视频并跟着进行操作,从一开始的环境搭建到现在能简单的运用一些代码,也算慢慢找到一些学习的方法。

选择这样一个题目作为期末作业是家里的老人独自在家时摔倒受伤没有及时地通知到家人。

之后看见别人做了这样的软件觉得很有用就想自己尝试一下,刚开始从百度地图定位,短信界面的调用和通讯录信息的获取等简单的学习开始的。

开始的时候总会遇到各种问题,个人在遇到问题时也总会先在
网上找资料尽量自己解决,所以进度比较慢。

有时候遇到一个错误或许好久都没有找到解决的办法,但是在各种查阅资料或者看别人的代码之后将问题解决了之后总会有些感触。

在这次的作业中摔倒的识别仅仅通过加速度传感器获取的信息来进行判断准确性不高,之前是想通过加速度传感器和陀螺仪传感器两者结合进行判断的(即加速度大于设定的阈值时进一步判断角度偏离来识别跌倒是否发生)由于手机没有陀螺仪传感器所以只能使用加速度传感器。

在系统中紧急联系人信息,百度地图定位信息,加速度值等需要用数据库进行存储,最后才能更好的实现数据的交互,但到目前为止对数据库的应用也没有弄明白导致有限的时间内最后的结果没有出来,这有些遗憾。

不过做这个系统并不仅仅是为了交作业,我后面还有继续将它做出来。

在这个过程中,不断的解决自己遇到的问题并进行总结,也让自己有所成长。

参考文献:
[1] 明日科技编著.《Android从入门到精通》[M].北京:清华大学出版社,2012.9
[2] 靳岩,姚尚朗.Android开发入门与实践[M].北京:人民邮电出版社,2009
[3] 崔英辉.詹林.CUI Ying-hui.ZHAN lin 基于三轴加速度传感器的老人摔倒
检测[J]-现代电子技术 2013(3)
[4] 明日科技,王国辉,王易.ISP数据库开发案例精选[M].北京:人民邮电出版
社,2006.
[5] 吴永浩.人口老龄化与老年健康服务[J].中国全科医学,2004,7(18):
1285-1288.
[6] 孙新香.基于三轴加速度传感器的跌倒检测技术的研究与应用[D].上
海:上海交通大学,2008.。

相关文档
最新文档