计步器判断运动状态2
由于计步器需要更新根据了人运动状态自动设置灵敏度的功能,发现上次发表的《实现计步器中的判断运动状态功能》文章缺少了人休息时的这一状态,这里补上这一状态。
要实现跑步与散步者两状态很简单,这里不解释(上一篇文章有介绍)。要实现休息与散步之间的区别也和跑步与散步状态区别类似。但要实现这工能要注意两点。一:休息与散步之间,总变化值(bianhuazhi )很小,而且也要设置散步时总变化值的最大值,这最大值不能根据跑步的最小值设置,要根据休息状态时的总变化值的减的量射,不然数值太大就要休息很久才能显示休息状态,这里重新设置了一个;二:如果用判断跑步与散步时用的总变化量(bianhuazhi)就会出现矛盾,因为跑步时总变化值已经设置了一个最大值,散步在设置一个最大值就会运行不了。因此,我用了一个新变量(sanbu_bianhuazhi )来解决这两个问题。还不明白这代码的可以去看看上一篇文章,能理解上篇文章的相信这里也能看懂。
由于代码是刚想出来,快毕业找工作忙碌,还没有经过优化,但功能已经准确实现。
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
float[] v = event.values;
StringBuilder sb = new StringBuilder();
sb.append(v[0]);
sb.append("\n" + v[1]);
sb.append("\n" + v[2]);
// sb.append("\n步数=" + zongchaopincishu/ (chaohelicishu_1 /2));
// sb.append("\n路程=" + lucheng);
// sb.append("\n速度sudu=" + sudu);
sb.append("\n运动状态state_motion=" + zhuangtai);
//sb.append("\n值=" + bianhuazhi);
//sb.append("\n值=sanbu" + sanbu_bianhuazhi);
text.setText(sb.toString());
heli = v[0] * v[0] + v[1] * v[1] + v[2] * v[2];
bianhuazhi = bianhuazhi + (heli - 98) * (heli - 98);
sanbu_bianhuazhi = sanbu_bianhuazhi + (heli - 98) * (heli - 98);
// Log.i("msg", bianhuazhi);
bianhuazhi = bianhuazhi - 7000;
sanbu_bianhuazhi = sanbu_bianhuazhi - 7000;
if (bianhuazhi > 2500000) {
zhuangtai = "跑步";
if (bianhuazhi > 3030000) {
bianhuazhi = 3030000;
sanbu_bianhuazhi = 3030000;
}
;
} else {
sanbu_bianhuazhi = sanbu_bianhuazhi + 6800;
if (sanbu_bianhuazhi > 100000&&heli <400) {
zhuangtai = "散步";// 判断状态
if (sanbu_bianhuazhi >= 102000) {
sanbu_bianhuazhi = 102000;
}
} else {
zhuangtai = "休息";
if (bianhuazhi < 0) {
bianhuazhi = 0;
sanbu_bianhuazhi = 0;
}
}
}
}
计步器判断运动状态2相关推荐
- 基于51单片机3轴加速度计ADXL345计步器卡路里系统设计
摘要 计步器是一种颇受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,增强体质,帮助瘦身.早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器.晃动这些装置时,可以听到有一个金属球来回滑动,或者 ...
- 58、基于51单片机ADXL345计步器 卡路里系统设计
毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.keil4开发软件-程序 七.资料包括 摘要 计步器是一种颇受欢迎的日常 ...
- BEVFormer论文解析
目录 BEVFormer: Learning Bird's-Eye-View Representation from Multi-Camera Images via Spatiotemporal Tr ...
- matlab 零速检测,基于多步态零速检测的MEMS IMU室内定位技术
1. 引言 由于互联网的发展.移动设备和各种个人设备的流行,基于位置的服务(Location Based Services, LBS)变得越来越重要,用户获得定位信息可将其用于导航.跟踪.监测.信息推 ...
- 苹果iPhone 5s延续了上一代iPhone5的经典设计
苹果iPhone 5s延续了上一代iPhone5的经典设计.但为了形成差异化,Home键的部位,去掉了中间的小方 iPhone 5S iPhone 5S 块,整个样子非常平整,材质也采用了坚固的蓝宝石 ...
- android 判断手机计步_一种在Android手机上实现计步器的方法
一种在Android手机上实现计步器的方法 [技术领域] [0001] 本发明设及一种在Amlroid手机上实现计步器的方法,特别设及对手机加速度传 感器数据的采集.处理及应用技术,属于传感器应用领域 ...
- android 判断手机计步_超精准的Android手机计步器开发
亲测在小米.魅族.华为上可用,该app采用后台service计歩服务,所以只要app不被手机杀死在后台也是可以正常计歩的.上图: 1.需要在AndroidManifest.xml中添加权限 andro ...
- Android计步器算法实现(2)
Android计步器算法实现(2) 前言 算法实现的意义 现实原因 优缺点 算法原理 运动状态判断 计步原理 步长计算原理 Java实现 补充 观测点的作用 数据的存放方式 前言 在之前我也写过两篇关 ...
- 浅谈加速度传感器及其在计步器中的应用
手机传感器中的加速度传感器 期末做的是计步器APP,所以对加速度传感做了些研究哈哈,下面我就讲讲我学习的一下东西. 1.什么是加速度传感器? 首先传感器,顾名思义,就是将对象的变化感受传达给设备的一种 ...
最新文章
- R构建列联表(Contingency Table or crosstabs)
- My1stServlet
- 如何在Outlook 2013中管理附件
- 嵌入式系统开发者需要掌握什么技术?
- [Vue.js] 基础 -- Vue实例
- 关于module_param()宏
- 介绍一份数据分析报告
- 安装webpack和webpack打包(此文转自Henery)
- 使用代理服务器网速会变慢吗?
- POJ 3088 Push Botton Lock
- python3ide安卓版官网下载_Pydroid3官方版-Pydroid3最新版下载v4.01 - 7230手游网
- 记录 Spring Cloud GateWay 使用 路径与路由名字重复 出现的问题
- c 当前程序的语言,c语言实现获取macos当前的系统语言
- 【熬夜猛肝万字博文】学妹问我怎么入门 Javascript,百般盘问下我终于决定贡献出自己的 JavaScript入门笔记(三)
- Android System Server大纲之VibratorService
- win10完整Tensorflow-GPU环境搭建教程-附CUDA+cuDNN安装过程
- 聊天机器人:问答系统类型介绍
- jupyter lab 插件安装及必备插件
- 魔兽世界服务器名称修改,魔兽世界怀旧服新增6组服务器 新服务器名称一览
- 小米pad MI PAD 开发者选项、USB调试开启方式
热门文章
- python的parse用法_Python 里边的parser用法
- Python练习——二维数组中每行最大值和每行和
- 使用html2canvas.min.js将网页生成图片并打印(笔记记录)
- linux防火墙作用是什么,Linux防火墙操作1
- 11月需要重点关注的SCISSCIEI合集(超级全)
- 【2020算法练习一】笔试选择题 快手2020校园招聘秋招笔试--算法A试卷
- java毕设项目家电售后管理系统(附源码)
- 64位系统魔兽服务器不兼容,魔兽世界Win7下出现不兼容问题的解决办法
- 路灯控制器如何调节时间
- 如何高质量的度过大学四年?