十六个蓝牙震动器连接到安卓手机

11
我们希望使用蓝牙将十六个振动器连接到安卓手机,并单独控制每个振动器。
据我所知,在piconet(蓝牙网络)中,最多只能连接八个设备,这意味着我们最多只能连接七个振动器(因为手机本身已经是第八个设备)。首先:这个说法正确吗?
对于连接七个设备,Android是否可以良好、可靠地工作?或者Android的蓝牙实现或APIs是否存在其他限制或问题?
对于我们的十六个振动器,我们是否需要构建一个scatternet,使用额外的设备在电话的piconet和其他piconet之间进行桥接以连接其中一些振动器?有人有这方面的经验吗?这种方法效果如何?
(不,这不是情趣玩具!)

谷歌的快速调查显示,7是理论上的最大值,但许多人无法在各种设备上使用那么多。它非常可靠,即通信很快。关于桥接方面我不清楚... - PearsonArtPhoto
1
这里有一个关于Android蓝牙P2P网络的讨论(链接:https://groups.google.com/d/topic/android-developers/u5oPF2ZkxlI/discussion)。虽然不完全符合你的要求,但它确实揭示了你可以连接的设备数量。 - Raghav Sood
几个月后的报告:我们成功地将七个振动器连接到了一台Google Nexus 7(第一代)上。在我们尝试的其他设备(手机)上,我们目前只能连接一两个振动器。不同设备使用的硬件和蓝牙堆栈似乎具有广泛的能力差异。 - Thomas Padron-McCarthy
1个回答

3
据我所知,一个piconet只能连接八个设备,因此最多只能连接七个按摩棒(手机本身是第八个设备)。首先:这是否正确?
好吧,技术上来说,蓝牙经典版可以同时与七个设备连接并保持活动状态。但是,一个活动设备可以被置于停放模式,并且它可以有大量处于停放模式的设备,因此设备可以从已连接的活动状态转移到停放状态,反之亦然。但是,任何时候您只能拥有7个活动设备,因此主设备应通过将(最多7个)设备保持活动和其余设备保持停放并在活动和停放模式之间切换来管理大量设备。
那么,在Android中,最多可以连接七个设备并保持可靠吗?或者Android的蓝牙实现或API是否存在其他限制或问题?
在Android中,问题在于-没有一个实现方法,不同的制造商使用许多不同的蓝牙无线电硬件。因此,答案是取决于情况。有些非常可靠,有些非常糟糕。但是,没有公共API来控制/使用我上面描述的Park模式。但是,如果您可以操作内部或从应用程序访问它,则可以执行您要求的操作。
关于Scatternet:
同样,在Android中没有任何API供您控制它,这将是复杂的-但是您可以强制其进入Scatternet配置,但是仍然有限制-商业设备中最好的情况是一个设备同时在2或3个piconets中,这意味着您可以同时连接(7 + 2)9个设备(它不符合您要求的16个设备)。
桥接/网状配置可能是可行的-其中两个设备形成自己的piconetcs,即每个组中有8个设备,然后组长(主设备)连接到Android设备-并且您在应用程序中管理数据中继。
现在,说了这么多-您是否看过蓝牙低功耗?连接一堆传感器设备的完美候选者-理论上可以连接的设备数量没有限制-但实际上16个甚至更大的数量非常可行。目前,Android没有公共API。 (截至今天),但是大多数(几乎所有)最新的Android设备都配备了支持蓝牙4.0的硬件,这意味着它能够支持蓝牙低功耗。而iOS设备-Mac、iPhone、iPad具有出色的支持和开发人员访问/ API。因此,这将是正确的方法,我相信Android很快就会推出BLE的开发人员API(至少我希望如此)。

谢谢!这是一个非常信息丰富和有用的答案。我们希望能够找到适用于当前(未root和未修改)手机的解决方案,但看来现在我们只能从较少的振动器开始,然后将希望寄托在低功耗蓝牙上了。 - Thomas Padron-McCarthy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接