С точки зрения простоты обучения языки программирования можно разделить на две группы: |
- для начала программирования на одних надо прочитать толстые книжки
- осваивать вторые можно уже с первых страниц учебника и показательных примеров
Чтобы получить понятие о простоте языка, можно посмотреть на банальный пример – вывод строчки на экран. В этом случае, скрипт будет состоят всего из одной строчки:
print "Hello, Robot!"
Благодаря модульной структуре язык легко расширяется новым функционалом, позволяющим строить сложные вычислительные системы. Например, этот язык широко используется в Google. Его также любят математики всего мира за то, что он позволяет не отвлекаться на реализацию сложных языковых конструкций, а направить все внимание на логику программы.
На этом языке также можно писать программы для Lego-роботов. Для этого существует сразу несколько модулей, реализующих разные подходы к программированию. Первый подход, традиционный, позволяющий создавать автономных роботов, достигается с помощью модуля PyNXC. Другой подход - программа выполняется на компьютере, а на робота передаются только управляющие сигналы на моторы и снимаются показания с сенсоров, становиться возможен с помощью модуля nxt-python.
Про первый модуль много говорить не нужно – по сути это модуль-обертка, он позволяет писать программы в Python, но при этом использовать синтаксис языка Not eXactly C (nxc). Затем, скриптовая программа компилируется в байт код и загружается на NXT блок. Вот пример, программы, написанной с помощью модуля PyNXC:
def main(): DefineSensors(TOUCH,None,None,None) OnFwd(OUT_AC, 75) while SensorVal(1) != 1: pass Off(OUT_AC)
Второй модуль гораздо интереснее, поскольку предоставляет возможность использовать все вычислительные и технические средства компьютера для функционирования робота. Например, вы можете написать программу для робота играющего в шахматы, что практически реализуемо, если программу выполнять на самом NXT блоке, или можно написать программу для управления роботом через сеть, или запрограммировать робота на распознование изображения с Web камеры. Ведь правда заманчиво, да?
Если у вас уже есть установленная версия языка Python, то доставить модули, необходимые модули для программирования роботов, не составит большого труда.
В качестве примера, здесь написано, как установить модуль nxt-python и сопутствующие модули на операционной системе на базе Linux.
- Первым шагом будет загрузка последней стабильной версии модуля с сайта проекта
- Затем, нужно распаковать файл архив, содержащий код модуля.
$ tar xzf nxt-python-2.2.2.tar.gz
- В итоге получиться директория nxt-python-2.2.2, откуда необходимо выполнить установку модуля в систему, причем сделать это нужно переключившись под суперпользователя
cd nxt-python-2.2.2 python setup.py install
- Установка модуля для программирования роботов установлена, но он не предоставляет средств для работы с роботом посредством USB или BlueTooth. Эти модули надо устанавливать отдельно. Например, модуль для работы с USB – PyUSB можно скачать здесь
- Теперь распакуем его:
unzip pyusb-1.0.0a2.zip
- И произведем установку (тоже от суперпользователя):
cd pyusb-1.0.0a2 python setup.py install
- Теперь можно попробовать прошла ли установка нормально и видится ли робот из python-скриптов. Для этого снова зайдите в директорию с модулем nxt-python, найдите в ней директорию с примерами и запустите какой-нибудь скрипт от туда:
cd nxt-python-2.2.2 cd examples python mary.py
Если программа выдает ошибку и NXT блок не находится, проверьте, что ваша операционная система настроена для предоставления доступа непривилегированному пользователю к USB, как это описано здесь.
Эти статьи до сих пор актуальны?
ОтветитьУдалить