我正在使用 Arduino Nano 33 BLE。在我的项目中,我必须通过蓝牙将加速度计和陀螺仪数据发送到 android 应用程序。我的采样率为 10Hz,但我应该有 50Hz。如何更改 Arduino Nano 的采样率?
谢谢你
我正在使用 Arduino Nano 33 BLE。在我的项目中,我必须通过蓝牙将加速度计和陀螺仪数据发送到 android 应用程序。我的采样率为 10Hz,但我应该有 50Hz。如何更改 Arduino Nano 的采样率?
谢谢你
所以这需要绕过 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