Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Робот NXT Lego из Python по bluetooth

Огромное спасибо Александру Петрову, который помог мне наладить управление роботом NXT Lego из Python 2.7 в Windows. Ключом ко всему является инсталлятор пакета PyBluez версии 0.19 -- можно его взять тут: http://narod.ru/disk/63965980001.aa5ee07e5c5ed969a11c5aa6e674cc12/PyBluez-0.19.beta.win32-py2.7.exe.html, а кроме этого нужно установить http://code.google.com/p/nxt-python/ версии 2.2.2 из архива (инсталлятор там есть только для версии 1.2, это не подходит! Нужно устанавливать из архива -- распакуйте в папочку nxt в с:\Python27\Lib\site-packages и прогоните .bat файл, находясь в этой папочке -- дважды кликните по нему).

Далее можно работать. Например, выполнить (не забываем про отступы):
import nxt.locator
from nxt.motor import *

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()
spin_around(b)

Импорт для модуля PyBluez делать не нужно. Не забудьте проверить, включён ли у вас Bluetooth на самом компьютере -- не факт, что по умолчанию там всё в порядке. Кирпич виден с компьютера (или телефона, на котором можете поглядеть, видны ли ваши "кирпич" и компьютер, это в настройках телефона показывают) через bluetooth как устройство NXT. Не забываем после того, как робот пискнет, найти выползшую в районе трея компьютера подсказку драйвера блютуса и ввести туда PIN (обычно 1234), без этого PIN коннекта не будет, и через несколько секунд всё отвалится по таймауту с диагнозом "кирпич не найден". Потом компьютер будет узнавать робота и без пина.

Далее экспериментируйте. Увы, у меня самого на этой неделе для этих экспериментов времени нет, так что на вопросы отвечать не смогу. Но вы уж друг другу сами как-то помогайте!
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 0 comments