ios - 如何解读 TI(德州仪器)SensorTag 运动传感器数据组件?

标签 ios bluetooth bluetooth-lowenergy accelerometer core-bluetooth

我正在将运动服务读取的各个组件(幅度、加速度和陀螺仪)打印到控制台。

我有点困惑,因为我的假设/直觉似乎不正确。

例如,当设备以某种方式倾斜/倾斜时,我会看到连续读数,其幅度大于 100。即使设备本身几乎没有移动(如果有),也是如此。我预计幅度会接近于零 (0),因为设备根本没有移动。

我正在做简单的向量数学运算,以根据设备从 didGetNotificaiton 委托(delegate)方法输出的 3D 坐标来获取幅度。通过简单的数学计算,我的意思是从 3d 幅值坐标获取矢量长度。

这是一个示例数据点。

Movement magnetic= 134.824387985183.
Movement acceleration = 8.46825231870429.
Movement gyro = 16.482123031426.

有人可以向我指出任何解释这些运动组件的文档/引用/示例吗?

最佳答案

为了正确回答您的问题,我们需要知道您所拥有的 SensorTag 的确切型号。但我可以帮助您对数字代表的含义进行基本解释。

每个传感器标签包含多个 MEMS(微机电系统),其中只有该传感器 MEMS 的数据表将描述如何解码该信息。每个传感器 MEMS 规范文件的重要细节是“测量范围”和“测量灵敏度”,下面的示例应该会有所帮助。请注意,以下示例是根据使用 CC2650 无线 MCU 的多标准 SensorTag 的规范创建的。该传感器标签使用 Invensense MCU 作为陀螺仪、加速计和指南针(请参阅 https://www.invensense.com/products/motion-tracking/9-axis/mpu-9250/)

本示例仅关注加速度计,文档显示了加速度计“满量程范围”(红色框)和“灵敏度比例因子”(蓝色框)。

Accelerometer Specification

由于该 MCU 提供 16 位加速度计数据,这意味着我们有 2^16 = 65,535 个数据点可用于转换数据。如果传感器 MEMS 被编程为使用 ±2g 范围,这意味着我们的灵敏度为 16,384 LSB/g。在其他规范文件中,通常以 mg/LSB 表示该值,在本例中为 0.061 mg/LSB。这意味着输出的LSB每改变1,就代表0.061 mg的变化。

举个例子,放在 table 上的加速度计会受到指向地板(负 Z 轴)的重力加速度 (1 g),因此,为了保持平衡,并且由于它平放在 table 上,加速度计的读数将为 1 g 指向天空(Z 轴)。

因此,当加速度计平放在桌面上时,其 z 轴分量的值应为 16500。因为,

16500 LSB * 0.061 毫克/LSB = 1,006.5 毫克 ≈ 1 克

一旦将其应用于加速度计(或具有自己值的陀螺仪)的所有轴,您将获得所需单位的矢量。

希望这有帮助!

关于ios - 如何解读 TI(德州仪器)SensorTag 运动传感器数据组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42308540/

相关文章:

ios - 我的 UIScrollView 辅助类中的泄漏

ios - 是否有可能在 iOS 6 中获得蓝牙 MAC 和/或信号强度?

Objective-c 异步内存管理

ios - 如何使用 SWIFT 解析 json 中的多维数组

android - 如何获得蓝牙低功耗设备的 RSSI 值?

android - 为什么 Android BluetoothDevice.conenctGatt 在不使用时需要上下文

ios - 用 macOS 模拟 iBeacon

android - 在外部 android 应用程序中读取蓝牙消息

ios - UITableView - 多种编辑样式

android - 如何在 Debian 上连接 pybluez RFCOMM 服务器套接字?