Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
BMI088
BMI160加速度值异常
发布于 2022-08-08 17:02:11 浏览:804
订阅该版
Hello All 我用rtthread的sensor框架,添加rtt的BMI160软件包,发现读出来的加速度传感器值异常。 当板子平放在桌面上,静止不动,打印的log是 ![LOG1.png](https://oss-club.rt-thread.org/uploads/20220808/c970a234abb8babf0fcc6fcc4cebc594.png "LOG1.png") 当板子垫一个U盘,使他倾斜一个角度,静止不动,打印的log是 ![log2.png](https://oss-club.rt-thread.org/uploads/20220808/978ada71e52691e8611b0a9e91af947f.png "log2.png") 感觉像是陀螺仪的数据而不是加速度的。 代码如下 ```c int bmx160_port(void) { struct rt_sensor_config cfg; cfg.intf.dev_name = "i2c3"; cfg.intf.user_data = (void *)0x68; cfg.irq_pin.pin = RT_PIN_NONE; cfg.irq_pin.mode = PIN_MODE_INPUT_PULLDOWN; rt_hw_bmx160_init("bmi160", &cfg); return 0; } static void sensor_show_data(rt_size_t num, rt_sensor_t sensor, struct rt_sensor_data *sensor_data) { switch (sensor->info.type) { case RT_SENSOR_CLASS_ACCE: rt_kprintf("num:%3d, x:%5d, y:%5d, z:%5d, timestamp:%5d\n", num, sensor_data->data.acce.x, sensor_data->data.acce.y, sensor_data->data.acce.z, sensor_data->timestamp); break; case RT_SENSOR_CLASS_GYRO: rt_kprintf("num:%3d, x:%8d, y:%8d, z:%8d, timestamp:%5d\n", num, sensor_data->data.gyro.x, sensor_data->data.gyro.y, sensor_data->data.gyro.z, sensor_data->timestamp); break; case RT_SENSOR_CLASS_MAG: rt_kprintf("num:%3d, x:%5d, y:%5d, z:%5d, timestamp:%5d\n", num, sensor_data->data.mag.x, sensor_data->data.mag.y, sensor_data->data.mag.z, sensor_data->timestamp); break; case RT_SENSOR_CLASS_HUMI: rt_kprintf("num:%3d, humi:%3d.%d%%, timestamp:%5d\n", num, sensor_data->data.humi / 10, sensor_data->data.humi % 10, sensor_data->timestamp); break; case RT_SENSOR_CLASS_TEMP: rt_kprintf("num:%3d, temp:%3d.%dC, timestamp:%5d\n", num, sensor_data->data.temp / 10, sensor_data->data.temp % 10, sensor_data->timestamp); break; case RT_SENSOR_CLASS_BARO: rt_kprintf("num:%3d, press:%5d, timestamp:%5d\n", num, sensor_data->data.baro, sensor_data->timestamp); break; case RT_SENSOR_CLASS_STEP: rt_kprintf("num:%3d, step:%5d, timestamp:%5d\n", num, sensor_data->data.step, sensor_data->timestamp); break; default: break; } } int main(void) { rt_device_t dev = RT_NULL; rt_size_t res, i=0; struct rt_sensor_data data; rt_thread_mdelay(1000); bmx160_port(); /* 查找系统中的传感器设备 */ dev = rt_device_find("acce_bmi"); if (dev == RT_NULL){ rt_kprintf("Can't find device\n"); return 0; } /* 以轮询模式打开传感器设备 */ if (rt_device_open(dev, RT_DEVICE_FLAG_RDONLY) != RT_EOK){ rt_kprintf("open device failed!"); return 0; } while (1){ rt_thread_mdelay(1000); /* 从传感器读取一个数据 */ res = rt_device_read(dev, 0, &data, 1); if (res != 1){ rt_kprintf("read data failed!size is %d\r\n", res); } else{ sensor_show_data(i, (rt_sensor_t)dev, &data); } } } ```
查看更多
踩姑娘的小蘑菇
2022-08-08
这家伙很懒,什么也没写!
看起来数据是没问题的,加速度计的值确实z轴要比xy轴大得多,倾斜之后xy的值也有变化,这里检查下输出数据的单位,然后换算成m/s/s看看是多少 陀螺仪的值看起来也是正常的,陀螺仪静止时候输出应该是接近0的,且与倾斜角度无关
4
个回答
默认排序
按发布时间排序
StackYuan
认证专家
2022-08-08
这家伙很懒,什么也没写!
这个应该是陀螺仪的值的,加速度计在静止前提下应该只有地心加速度值
oxlm
2022-08-09
这家伙很懒,什么也没写!
1. 可能我的测试方法和你有差异,我测试的方式是朝一个方向移动测加速度变化,旋转测陀螺仪,通过这种方法判断数据是加速度还是陀螺仪,而不是单纯的数据大小 2. 可以考虑迭代一下bmi160的库,rtt包里面的库比较旧,博世最新版的库已经修了不少BUG了,和RTT的库差了好几个大版本了。
HSDL_6947
2023-03-23
这家伙很懒,什么也没写!
我读出来的数全是0,是为什么呢
撰写答案
登录
注册新账号
关注者
0
被浏览
804
关于作者
迟到的迟
这家伙很懒,什么也没写!
提问
3
回答
1
被采纳
0
关注TA
发私信
相关问题
1
请教RT-thread的传感器框架的使用
2
有人会用rt的BMI088的软件包吗,最近在玩大疆C板
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
8
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部