Проблемы с подключением к 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)