我有一个连接到 Adafruit BNO055 9 轴方向传感器的 Adafruit Bluefruit NRF52,收集 3 个绝对方向轴加上 3 个加速度轴(总共 6 个浮点数)并通过蓝牙发送 bleuart。我需要 bleuart 每 7.5 毫秒用新的一行值更新一次,但是当我运行它时,它每秒打印的新值行不超过 20 行。本质上,我需要尽快更新值,因为我正在测量非常高速、高保真度的运动。
在每一行的开头我还有一个三位数字,代表 IMU 上每个传感器的校准状态。每条打印线看起来像:
303 68.69 4.19 -2.19 -0.12 0.14 -0.40
我目前正在使用最新的 iOs 版本流式传输到我的 iphone,理论上它可以处理 7.5 毫秒的间隔。
我读过一个解决方案可能是缓冲值并以更大的连接间隔发送更大的块,但不确定如何执行此操作。
我的相关Arduino代码如下:
Bluefruit.setConnIntervalMS(7.5, 20);
void loop()
{
imu::Vector<3> accel =
bno.getVector(Adafruit_BNO055::VECTOR_LINEARACCEL);
/* Get a new sensor event */
sensors_event_t event;
bno.getEvent(&event);
/* Display the floating point data */
bleuart.print(event.orientation.x);
bleuart.print("\t");
bleuart.print(event.orientation.y);
bleuart.print("\t");
bleuart.print(event.orientation.z);
bleuart.print("\t");
/* Display the floating point data for Linear Acceleration */
bleuart.print(accel.x());
bleuart.print("\t");
bleuart.print(accel.y());
bleuart.print("\t");
bleuart.print(accel.z());
bleuart.print("\n");
}