选择无线技术以尽可能减少延迟


10

我正在起草一个酒吧测验项目,裁判在该项目中发出信号,多个球员按下按钮。首推的人有权给出答案。

我希望所有按钮(裁判的+ X播放器)都是无线的。由于最好的测验播放器可以在信号的10毫秒内单击一个按钮,因此,不同按钮之间的ping差异非常小非常重要。我不能让玩家大喊“我的按钮太慢了!” 另一方面,我不想使用比需要的更昂贵/更复杂的技术。

因此,最适合使用的无线技术是什么?请分享您在类似项目中的经验(或者只是理论知识:)。这是我到目前为止的研究(如果我错了,请纠正我):

  1. 蓝牙4 LE(与RFduino一样)优点:3-6ms延迟(广告),低能耗缺点:成本高,设备上按键不超过7个

  2. Wi-fi专家:2毫秒的延迟(我刚刚对wi-fi路由器进行了ping操作),如果需要的话,还有数十个按钮缺点:成本,耗电

  3. 射频数据收发器优点:不知道,成本似乎要小缺点:同一频率上的多个按钮可能会产生很多噪音

  4. 最简单的“无线电遥控器”优点:零延迟,因为它们都是机电的,没有数据缺点:同一频率的多个按钮不起作用

那我想念什么吗?我感谢任何指导。


总共多少个按钮?
bigjosh

1
最小可能的要求是4,正常情况下是8,我们可以接受更多要求-我希望它对于某些人群娱乐非常灵活。
谢尔盖·斯涅吉列夫

人的反应时间超过200ms。见humanbenchmark.com/tests/reactiontime/statistics

@ user31481那又如何呢?人类可以感知2ms以下的延迟。请参阅附录中的链接:danluu.com/input-lag
纳文

Answers:


6

我以前NRF24L01+在Arduino上使用过芯片组的2.4GHz无线模块,发现它们很棒,而且超级便宜(在ebay上10块钱就10美元!)。它们具有3种传输模式:250kbps,1Mbps和2Mbps。范围随着较高的比特率而减小,但是发送消息所花费的时间也是如此。有多个Arduino库(例如RF24,Mirf,RadioHead)和使用模块的教程(请参见http://playground.arduino.cc/InterfaceWithHardware/Nrf24L01)。它们还具有内置的网状网络模式,该模式可能会使用也可能不会使用。

带有RP-SMA天线连接器且广告范围最大为1000m的版本也可提供,每套价格约5美元。我建议至少根据裁判的范围使用其中一种作为裁判按钮。

hallard.me的Charles Hallard表示,未放大的芯片在250kbps模式下可以达到30m的视线范围,我已经在自己的测试中验证了这一点。

根据diychristmas.org上用户的零星说法,从发送器上的Tx模式开始到接收器上接收完整消息,以250kbps模式发送32字节有效负载需要1432µs。这便减少了在1Mbps的模式444μs在2Mbps的模式283μs

有了这些统计信息,它们就很好地落在了2ms的触发延迟内,适合您的应用程序,并且它们只消耗很少的功率。由您决定延迟,范围和费用的最佳平衡。


谢谢!如果同时按下多个按钮怎么办?他们会发生碰撞,例如互相阻挡吗?
Sergey Snegirev,2015年

不,这些芯片的网络价格昂贵,可以愉快地一次协商网状网络和多个Rx管道,如果接收方不确认收到消息,则可以自动重新发送。
皮质

1
该EE.SE问题详细说明了如何根据您的情况将多个节点发送到同一接收地址。然后,只需用发送者的地址来确定谁是“赢家”。
皮质


1
请注意,带有天线的NRF24L01 +芯片不是原始芯片,当您尝试在克隆与原始设备之间进行通信以及尝试使用动态有效载荷或冲击波时,可能会引起问题。另外,该Wikispace文章已过时。人们应该改用TMRh20库。
Avamander 2015年

3

您是否考虑过使用实时时钟?您可以提前使它们全部同步,然后再使用任何无线协议。按下按钮后,您将寻找报告最早时间戳的单位,然后在经过几秒钟的窗口后才知道它赢了。我考虑将WIFI(802.11)与ESP8266,RTC搭配使用,并带一个无线接入点。

这不是低延迟无线的解决方案,但消除了对此的需求。


2
好主意,但是您不需要RTC。您可以在开始时同步Arduino,因此millis() - offset为所有涉及的Arduino提供相同的结果(+/-一些漂移)。的offset是本地的值millis()时一个Arduino接收来自主Arduino的同步信号。对于持续一两个小时的游戏就足够了。

为此使用millis()可能会导致设备失去同步,因为禁用中断后,millis()不会增加。
bobsburner

1

以我的拙见,假设您可以确保视线正常,那么使用IR或其他类型的光可能会更便宜。您可以使用不同的波长来确保信号分离。


1
恐怕“视线”和“酒吧测验”不能很好地融合在一起。但是,感谢您的建议,我将在其他项目中使用IR技术。
Sergey Snegirev

0

低低技术含量的解决方案。

  1. 发送器根据命令发送其时钟信号。

  2. 接收器只需要检测检测该信号的存在。

整个事物可以是射频,也可以是基于光的-例如,led灯之一可以配置为发射器。

一切都应该在1ms之内。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.