ДО курс по робототехнике

Показаны сообщения с ярлыком nxc. Показать все сообщения
Показаны сообщения с ярлыком nxc. Показать все сообщения

5 апреля 2013 г.

Python и MotorControl

(C)
В предыдущей заметке уже упоминалось о том, что модуль nxt-python для языка программирования Python уже имеет встроенную поддержку инструмента по управлению моторамиMotorControl.
По сути, это заключается в следующем:
  • в составе архива модуля есть скомпилированный исполняемый модуль MotorControl22.rxe (22 - это версия модуля - 2.2), который можно загрузить на NXT блок с помощью поставляющегося в архиве скрипта nxt_push или программы NeXTTool, доступной для загрузке на сайте BricxCC. Тут же есть и исходный код, который можно собрать исполняемый файл с помощью компилятора NXC непосредственно или с помощью среды BricxCC
  • в самом модуле nxt-python доступен набор методов класса MotCont, реализованного в под-модуле nxt.motcont, обеспечивающих обмен сообщениями по USB/Bluetooth с управляющей программойMotorControl. Примечательным фактом является, что никакого специального объекта этого класса создавать не надо. Он автоматически создается в результате инициализации объектаBrick, т.е., например, доступен сразу после того, как объект Brickвернется функцией find_one_brick(). К объекту класса MotCont в этом случае можно обращаться через имя mc (см. пример ниже).

NXC: датчики, енкодеры, кнопки - взаимодействуем с внешним миром

(C)
Программирование робота, в большинстве случаев, - изменение поведения робота как реакция на информацию, пришедшую к управляющему устройству с датчиков и сенсоров. Эта заметка рассматривает примеры опроса датчиков в языке Not eXactly C, а также некоторые особенности, которые необходимо учитывать при работе с ними.

NXC: повороты - практика программирования моторов

(C)
При задании сложных траекторий движения робота развороты и повороты - неотъемлемая часть программы. В этой статье будут рассматриваться способы, как программируются эти элементы движения с помощью функций и команд языка Not eXactly C рассмотренных ранее здесь и здесь.
Пример 1. Поворот одним двигателем
На самом деле в этом примере рассматриваются два способа поворота одним двигателем.
В качестве входных данных для обоих способов, задается необходимость выполнения разворота вправо.

NXC: использование циклов

(C)
Продолжение публикации материалов из методички по языку программирования Not eXactly C, подготовленной в рамках учебных курсов Нижегородского Института Информационных Технологий.

Как и в обычном C, в NXC поддерживается несколько видов циклов: for, while, do ... while, repeat.
Есть даже не совсем обычная команда until, которая является макросом к использованию while().

В этой заметке основной акцент сделан не на стандартное поведение программы при использовании циклов, а на особенности, существующие в NXC.

NXC: Управление моторами

(C)
С этой статьи начинается публикация материалов из методички по языку программирования Not eXactly C, подготовленной в рамках учебных курсов Нижегородского Института Информационных Технологий.
В NXC существует около 40 команд для работы с моторами. Их условно можно разделить на команды управления движением, команды остановки, команды опроса датчиков и состояния моторов.

В данной статье рассматриваются команды управления движением.

NXT и Python: подключаемся к NXT блоку

(С)
Любая Python-программа, которая будет взаимодействовать с Lego-роботом, прежде чем выполнять на нем какие-либо действия, должна подключиться к NXT блоку.
Без этого действия не получиться проинициализировать ни моторы, ни сенсоры.

Еще это действие нужно для того, чтобы указать каким именно NXT блоком вы хотите управлять, если к компьютеру сейчас подсоединено несколько.

В программе, для подключения, сначала нужно импортировать под-модульlocator из модуля nxt.

4 апреля 2013 г.

Накопление данных с сенсоров, как средство отладки

В ходе отладки программ для Lego роботов, особенно когда идет интенсивная работа с сенсорами, возникает ситуация когда сенсор вопреки ожиданиям не срабатывает на какое-то значение. В таком случае используется обычно подход "попробуй и измени" (try and fix): сначала выставляется одно значение, если оно не работает, то выставляется другое и так может продолжаться очень долго.
Помимо временных затрат, данный метод не дает понимания почему одни значения не работают, а другие начинают работать.

LEGO Mindstorms NXT 2.0 instructions