You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何我的NXT-Python代码无法通过蓝牙连接?

排查NXT蓝牙连接失败的实操步骤

1. 确认蓝牙配对与信任状态

  • 先在树莓派上通过命令行确认NXT设备已完成配对并设为信任:
    bluetoothctl
    
    进入交互模式后依次执行:
    devices
    
    确认能看到目标NXT的MAC地址(00:16:53:15:DC:F2),再执行:
    trust 00:16:53:15:DC:F2
    pair 00:16:53:15:DC:F2
    
    配对时输入NXT默认PIN码1234即可。

2. 手动绑定RFCOMM蓝牙端口

NXT蓝牙连接依赖RFCOMM端口,先手动绑定:

sudo rfcomm bind 0 00:16:53:15:DC:F2

执行后用ls /dev/rfcomm*确认端口存在,再修改代码通过端口连接:

from nxt.bluesock import BlueSock

sock = BlueSock('/dev/rfcomm0')
brick = sock.connect()

3. 检查Python-bluez版本兼容性

Python 3.9.2与NXT-Python 3.2.0可能对bluez版本有要求,先查看当前bluez版本:

bluetoothd --version

如果版本高于5.50,可能存在兼容性问题,可尝试降级到5.48这类稳定版本,或确认NXT-Python 3.2.0是否适配当前bluez版本。

4. 修复设备权限问题

确保当前用户有权限访问蓝牙设备和RFCOMM端口,将用户加入对应组:

sudo usermod -aG bluetooth $USER
sudo usermod -aG dialout $USER

执行后注销再重新登录生效。

5. 测试底层蓝牙连通性

先用系统工具验证蓝牙基础连接是否正常:

hcitool cc 00:16:53:15:DC:F2
hcitool rssi 00:16:53:15:DC:F2

如果hcitool cc执行失败,说明系统级蓝牙存在问题,先解决该问题再尝试NXT-Python连接。

6. 明确代码的蓝牙连接逻辑

确保代码里指定了蓝牙连接方式,避免默认走USB通道:

from nxt.locator import find_one_brick
# 指定蓝牙协议查找设备
brick = find_one_brick(method='bluetooth')

或者直接用BlueSock指定MAC地址:

from nxt.bluesock import BlueSock
sock = BlueSock('00:16:53:15:DC:F2')
brick = sock.connect()

内容的提问来源于stack exchange,提问作者Josh_Hout

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 04:43:15