Проблемы с подключением к Python nxt

Я хочу подключиться к роботу LEGO Mindstorms NXT, используя Python 3 через USB, однако при попытке подключения я получаю ошибку BrickNotFoundError.

Вот скрипт, который я пытаюсь запустить:

#!/usr/bin/env python

import nxt.locator
from nxt.motor import *

#nxt.locator.make_config()

def spin_around(b):
    m_left = Motor(b, PORT_B)
    m_left.turn(100, 360)
    m_right = Motor(b, PORT_C)
    m_right.turn(-100, 360)

b = nxt.locator.find_one_brick(debug = True)
#spin_around(b)

Выполнение этого на python 3.6 в Windows 10 с роботом NXT, подключенным к компьютеру через USB-кабель, дает следующую трассировку стека:

Host: AB:CD:EF:GH:IJ:KL Name: BRUCE Strict: True
USB: True BT: False Fantom: True FUSB: False FBT: True
Fantom module unavailable, not searching there
Traceback (most recent call last):
  File "C:\Users\George\Downloads\nxt\examples\spin.py", line 14, in <module>
    b = nxt.locator.find_one_brick(debug = True)
  File "C:\Users\George\AppData\Local\Programs\Python\Python36-32\lib\site-packages\nxt\locator.py", line 138, in find_one_brick
    raise BrickNotFoundError
nxt.locator.BrickNotFoundError

Я скачал pyusb & usblib и уже решил несколько ошибок, связанных с отсутствием USB-модулей. Однако робот четко подключен к компьютеру, поскольку официальное программное обеспечение LEGO NXT может успешно распознавать и программировать робота.

Я в растерянности относительно того, что делать дальше. Любые предложения по устранению этой ошибки приветствуются...

1 ответ

Вы должны импортировать nxt.usbsock вместо nxt.locator плюс вы должны импортировать nxt, Код будет следующим:

import nxt

import nxt.usbsock
from nxt.motor import *

#nxt.locator.make_config()

def spin_around(b):
    m_left = Motor(b, PORT_B)
    m_left.turn(100, 360)
    m_right = Motor(b, PORT_C)
    m_right.turn(-100, 360)

b = nxt.locator.find_one_brick(debug = True)
Другие вопросы по тегам