如何使用三轴加速器 计算速度

carl.xu 2020-07-02 02:28:18
大虾:
请教一下:如何使用三轴加速器 计算速度 与 方向
android 7.1
我们使用的是 mpu6881 六轴的芯片,从android取的数据来看,只能取 Sensor.TYPE_ACCELEROMETER 的x y z 值
我尝试这样取速度 ,速度没有变化
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
long curTime = System.currentTimeMillis();
double x = event.values[0];
double y = event.values[1];
double z = event.values[2];
double xyz = (double)(x*x + y*y + z*z);

yz_plane = (double)(Math.sqrt((y)*(y)+(z)*(z)));
xz_plane = (double)(Math.sqrt((x)*(x)+(z)*(z)));
xy_plane = (double)(Math.sqrt((x)*(x)+(y)*(y)));

if(curTime-lastUpdate > TIME){
long diffTime = curTime-lastUpdate;
if(diffTime <= 0)diffTime = 1;
lastUpdate = curTime;
x = event.values[SensorManager.DATA_X];
y = event.values[SensorManager.DATA_X];
z = event.values[SensorManager.DATA_X];
double speed = Math.abs(x+y+z-last_x-last_y-last_z)/diffTime*10000;
Log.i("lock"," speed "+speed);
if(speed > SHAKE_THRESHOLD){
Log.i("lock","speed = "+speed);
lastUpdate += 10000;//判断成功的话,10秒内不再判断
// handler.sendEmptyMessage(MessageID.MESSAGE_SENSOR);
}
last_x = x;
last_y = y;
last_z = z;
}
...全文
11128 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
SuTaoJin 2021-01-20
  • 打赏
  • 举报
回复
楼主解决了吗?
carl.xu 2020-07-05
  • 打赏
  • 举报
回复
我下周攻关,再确定这个问题,从加速度及陀螺仪的算法看,感觉有希望,努力中。
gamepc 2020-07-03
  • 打赏
  • 举报
回复
嫩否指导一下啊!
carl.xu 2020-07-03
  • 打赏
  • 举报
回复
应该有希望了,关闭贴子
carl.xu 2020-07-02
  • 打赏
  • 举报
回复
有大虾能指导一下不
carl.xu 2020-07-02
  • 打赏
  • 举报
回复
如何 计算出速度 与 计算x轴的方向,比如 x辆向左偏了25度 ,向右偏了 25 度

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧