0

我正在使用 Arduino Nano 33 BLE。在我的项目中,我必须通过蓝牙将加速度计和陀螺仪数据发送到 android 应用程序。我的采样率为 10Hz,但我应该有 50Hz。如何更改 Arduino Nano 的采样率?

谢谢你

4

1 回答 1

0

所以这需要绕过 LSM9DS1 Arduino 库并手动使用 Arduino 的有线连接(参见 Arduino_LSM9DS1 类中的 writeRegister() 函数)来设置 IMU 中的寄存器。默认采样率为 119Hz,因此您需要将其降低到 50Hz适用于您的应用程序(以及一致的读取)。

有关每个寄存器的信息,下面的数据表包含有关 IMU 的所有信息。 https://www.st.com/resource/en/datasheet/lsm9ds1.pdf

为了更好地了解如何根据您的需求调整现有的 IMU 库,您可以访问下面的 GitHub 链接以获取当前的 Arduino IMU 库源代码。 https://github.com/arduino-libraries/Arduino_LSM9DS1

查看开始方法以获取有关更改采样率以满足您的需求的信息: https ://github.com/arduino-libraries/Arduino_LSM9DS1/blob/7c8e9a0f8373a6e3ad1cd0f6ab0d66603a69f4f3/src/LSM9DS1.cpp#L50

为了增加您的 BLE 吞吐量,您可以创建一个旋转(<23 字节)缓冲区,该缓冲区定期填充 IMU 数据,然后进行传输。利用 writeValue() 函数,您可以在单个数据包中发送缓冲区。

我还发表了一篇关于最大化板的 RADIO 吞吐量的论坛帖子,这可能会有所帮助。但是,它的解决方案目前不支持 Android 可以识别的协议,并且在您的情况下会过度杀伤力。它位于下方。 https://forum.arduino.cc/t/stream-binary-data-from-arduino-nano-33-ble-to-pc-via-ble/917206

于 2022-02-02T15:44:15.000 回答