故障排除与球面连接问题

内容

球面不显示在列表中可用的设备或连接错误:使用icinterface / fopen(第83行)

球面不列在设备在创建可用球面对象,或收到以下错误:

sph =球面
错误使用球面(第498行)无法连接到设备。请检查设备名称是否正确,设备是可发现的
:造成的错误使用icinterface / fopen(第83行)成功打开:无法连接到设备。可能的原因是另一个应用程序连接或设备不可用。

这可能发生失败后试图创建一个新的球面对象或连接到一个现有的,可能是因为几个原因,如设备名称不正确,或原先的设备有一个不同的名称或,范围,或不清醒。

为了解决这个问题,尤其是在创建一个新的球面对象时,确保设备名称是正确的(例如Sphero-RGW球面闪烁的红色,绿色和白色)。同时,确保sphero成对你的电脑,是清醒而不是当前连接到另一个设备(它必须与一系列闪烁3颜色,请参见相关的部分在readme。txt文件,和程序遵循第一次使用MATLAB的球面。你也可以参考页面开始使用球面连接方案)。

如果上述条件验证,然后再试图创建Sphero对象(也许几次)通常会导致一个成功的连接。

如果你仍然无法连接到设备,关闭MATLAB, unpair(或删除)从计算机设备,然后两人一遍,重启MATLAB,尝试创建一个新的球面对象。

如果问题仍然存在,尝试更新Sphero固件通过连接Sphero Android和iOS设备上应用,并重复上述过程。

连接错误:未定义的函数“蓝牙”

错误使用球面(第498行)无法连接到设备。请检查设备名称是否正确,设备是可发现的
引起的:未定义的函数“instrhwinfo”“char类型的输入参数。

这个错误(未定义的函数“instrhwinfo”或“蓝牙”…)意味着仪器控制工具箱(ICT)没有安装。这个包是基于ICT提供的蓝牙连接功能,因此您将需要得到工具箱如果你想使用这个包。

球面断开连接没有任何警告信号

如果你注意到球面是断开连接的但是你没有收到任何错误或断开消息,这意味着MATLAB不知道连接迷路了。这是不寻常的,因为任何以下命令将失败,因此导致断开。

在任何情况下您可以使用“断开”命令重新连接之前(“连接”命令)。

重置Sphero

有时MATLAB失去连接但sphero并不知道,(即它仍然显示一个纯色没有闪烁)。这可能发生例如当sphero变量inadvertedly清除而sphero仍连接。

在这种情况下,您需要重置sphero,这可以通过将它的充电器。

如果sphero仍在运行(旋转)的感应线圈铜在机器人底盘不向下,但一个大约45度角垂直轴和轴之间的相对运动的方向。因此,充电器必须被放置在同一角度,接近Sphero感应线圈。或者如果您移动充电器Sphero周长会发现线圈和重置本身。

还看到:https://sphero.zendesk.com/entries/22259484

一旦球面被重置,然后连接命令可以用来恢复到球面的连接。

警告当连接到设备

创建一个连接到球面装置产生以下警告,和连接的状态是“关闭”的:

sph =球面(“Sphero-GPG”);
警告:阅读异步消息时发生错误:接收到的响应无效警告:BytesAvailableFcn被禁用。启用回调属性连接到硬件与FOPEN或设置BytesAvailableFcn属性。
>在BluetoothApi > BluetoothApi。readResponse在球面> sphero.get 1145。颜色在1366

这可能发生在当Sphero响应与一个无效的响应时最初试图连接到它。请尝试再次连接到它。

如果问题仍然存在,重置Sphero设备通过将它的充电器(见上面的部分重置Sphero),然后再次尝试连接到它。

错误当连接被打破

下面所示的两种错误和警告可能发生当连接丢失。这可能有多种原因,如球面的范围,或电池耗尽,或者睡觉,因为缺乏运动。

在这种情况下,只是醒来sphero,确保它的范围,并重新使用“连接”命令(或再现sphero变量)。

错误使用icinterface /写入文件(第193行)一个错误发生在写作
错误sphero.internal.BluetoothApi / sendCmd(第1251行)写入文件(obj。Bt, cmd);
误差在球面/集。颜色(第1354行)[responseexpected, seq] = sendCmd(obj.Api, 'setrgbled', [], [], [], uint8(rgb), uint8(obj.SaveLedColor));
错误使用sphero.internal.BluetoothApi / readResponse(第1133行)响应超时
球面/标题(第351行)响应误差= readResponse (obj。Api、responseexpected seq, obj.ResponseTimeout);
球面/校准误差(第1112行)result2 =标题(obj, 0);
警告:无法写入设备。Sphero可能已经断开连接>在球面/ BluetoothApi / sendCmd球面/设置(第1255行)。颜色(第1354行)

误差在球面/ readLocator(第1068行)

错误使用球面/ BluetoothApi readResponse(第1133行)未知的命令ID。请检查API定义
误差在球面/ readLocator(第1068行)响应= readResponse (obj。Api、responseexpected seq, obj.ResponseTimeout);

这个错误的最可能的原因是,您使用的是球面与固件版本3.71,此功能暂时移除。因此,如果您需要使用readLocator函数需要使用一个年长或更新版本的固件。

如果“主任”是你的名字在MATLAB中球面对象工作区,那么您可以使用以下命令来显示固件版本:

hw = hardwareinfo (sph); sphver =版本(hw);固件= [num2str (sphver.MainSpheroApplicationVersion)“。”num2str (sphver.MainSpheroApplicationRev)]

另请参阅

球面连接包示例

2015年版权MathWorks公司。