Wolfram 语言

过滤 I2C 数据

在内部集成电路 (I2C) 通信中,主设备可以与多达 128 个从设备通信。每个从站由唯一地址标识,数据传输在串行数据 (SDA) 线上进行。另一条线是串行时钟 (SCL) 线。I2C 也称为双线接口 (TWI)。

显示完整的 Wolfram 语言输入

在此范例中,代码部署到 Arduino Nano 以从 MPU-6050 I2C 传感器获取加速度计和陀螺仪读数。可以从加速度计或陀螺仪读数计算传感器的定向角。这些计算是不准确的,因为前者是有噪声的,而后者在稳定状态下漂移。因此,还部署了一个互补过滤器,它混合了两个值。未过滤和过滤的值将通过串行总线发回并可视化。

加速度沿着 轴,温度和角速度沿着 轴,存储在两个字节中,每个字节从地址 0x3D 开始。以下是获取这 8 个字节的规范。

初始化规范。

MPU-6050 的地址是 0x68,这是它的完整规范。

每个输入通道的转换。

显示完整的 Wolfram 语言输入

完整的微控制器规范。

预滤波器块以度为单位计算加速度计数据的角度,并以陀螺仪数据计算每秒度数的角速率。

互补滤波器获取预滤波器输出并计算滤波后的角度值。

积分器仅通过积分角速率来计算角度。

完整的系统模型。

部署代码。

打开与 Arduino Nano 的连接。

提交任务以读取数据。

解析并绘制数据。

显示完整的 Wolfram 语言输入

删除任务并关闭与设备的连接。

相关范例

de en es fr ja ko pt-br