同步的蓝牙设备同时播放振动模式

问题描述 投票:0回答:1

事实:蓝牙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中,仅可以通过按下其中一个板上的按钮来完成激活。

潜在的解决方案在主机和从机之间发送周期性的时间状态数据包。奴隶将始终遵守主人的时间。在电话应用程序或面板上按下按钮时,它将发送命令以在将来的某个时间播放花样。如果所有设备都处于同步状态,则它们将同时播放。那是前提。

此解决方案的可行性如何?权衡我应该关注采用此选项吗?有其他选择吗?

synchronization master-slave adafruit ios-bluetooth nrf52
1个回答
0
投票

可能有一个简单的蓝牙低功耗(4)解决方案。一块板可以连接到另一块板,并且该连接可用于同步板上的代码或时间(偏移)。通过简单的往返时间计算,可以使此操作更加准确。

Adafruit Learn: Quick Draw Duo使用此技术来同步也基于nRF52840的Circuit Playground Bluefruit板。设计页面上有一张图,显示了它的工作方式。

如果将BLE通信中的间隔考虑在内,则可能会获得更高的准确性。我猜想,即使使用CircuitPython之类的解释型语言,您也可以在几毫秒内完成此操作。

另一个BLE选项是使用来自一个节点的广告广播。这种方法看起来很吸引人,但是我要谨慎,因为三个通道之间的传输步长很大,这会给定期对每个通道进行采样的接收器造成很高的丢包率。根据规范,还引入了small, random delay

我发现,如果您有类似简单LED的视觉指示标记点,则高速摄像机对于验证同步非常有用。如今,许多智能手机和廉价的运动相机都具有240fps模式。

© www.soinside.com 2019 - 2024. All rights reserved.