我使用Arduino发送超过3轴的'旋转和3个按钮状态。目前我将其格式化为如下字符串:
"#235#12#32 $ TLR"
3个第一个数字是旋转,t,l,r是按钮,首都告诉我按钮是否被按下。
我使用以下方法将数据写入com端口:
Serial.println
一切都很好用我的电缆,但当我切换到蓝牙(我有一个模块连接到它)时,旋转有很大的延迟。
字符串是否太大,无法通过BlueTooth以每秒30次的速度发送?有没有办法在较小的包中格式化我的数据?
非常感谢!
答案 0 :(得分:0)
二进制肯定会更小 - 假设每个轴都适合一个字节而按钮变成一个8位的位域,你可以将你的14字节bpackage缩小为3个或可能是4个字节(可能会添加某种帧)。这显然会将使用的带宽减少至少3倍(但是会使你的pogram变得复杂。如果所有内容都符合字节,你至少不会遇到平台字节顺序的问题)
从蓝牙,您可以在接近理想条件下,预计带宽约为80kbit / s。 - 即使你坚持使用你拥有的ASCII协议,也很容易实现20 * 30字节/秒。