事实: 蓝牙 5.2 引入了同步通道 (ISOC) 功能。在 BLE 的上下文中,这意味着支持 (1) 对时间敏感的数据传输和 (2) 这些数据流在多个接收器之间的同步渲染。
我购买了两个 ItsyBitsy Adafruit,每个都带有一个 nRF52840 微处理器。nRF52840 支持蓝牙 5 但不支持 5.2。另外它不支持 Piconet 和 Scatternet 支持。
目标: 我的目标是将每个 nRF52840 连接到一个触头,然后两个触头同时播放一种振动模式。
用户体验:可以通过 iPhone 应用程序或通过每个 ItsyBitsy 板上的按钮来激活模式。有四种情况可以发挥模式: 1) iPhone 存在并且对两个从 ItsyBitsy 板起主导作用。2) iPhone 不存在,因此一台设备充当主机角色,另一台设备充当从机角色。3) 存在 iPhone 以及 ItsyBitsy 板之一。4) 在存在 ItsyBitsy 板的情况下不存在 iPhone。
场景 3 和 4 很容易实现。困难在于确保场景 1 和 2 的同步。在场景 1 中,可以通过电话或通过其中一个板上的按钮来激活设备。在场景 2 中,只能通过按下其中一个板上的按钮来完成激活。
潜在的解决方案在主设备和从设备之间发送一个周期性的时间状态包。奴隶将永远符合主人的时间。当按下手机应用程序或板上的按钮时,它会发送命令以在未来某个时间播放模式。如果所有设备都同步,那么它们将同时播放。那是前提。
这个解决方案的可行性如何?权衡我应该关注追求这个选项?有没有其他选择?