Программирование моторов: команда Move
Одна из основных функций робота - движение. Двигаться может как весь робот целиком, так и отдельные его части. Движением управляют сервомоторы (или сервоприводы). В конструкторе Lego Mindstorms сервомоторы имеют датчики оборотов, подсчитывающие количество градусов поворота главной оси. Важным компонентом сервомотора является редуктор, который через систему шестерней превращает чрезвычайно быстрое вращение внутреннего электрического двигателя в более медленное. Наличие датчика оборотов и редуктора позволяют сервомотору совершать прецизионные движения главной оси. Сервопривод Lego может быть повёрнут с точностью 1°. Внутреннее устройство сервопривода на рисунке.
Программирование движения происходит посредством блока Move (Движение), который находится в общей и полной палитрах.

На рисунке цифрами отмечены:
- Моторы, которыми управляет этот блок.
- Направление вращения моторов.
- Уровень мощности мотора (скорость). Заметим, что реальная скорость робота будет зависеть также и от его конструкции, типа поверхности (скользкая, шершавая и пр.), наклона поверхности, массы робота и т. п.
- Параметр длительности движения: без ограничения, в градусах, оборотах или секундах.
На рисунке цифрами отмечены:
- Выбор моторов, которыми нужно управлять (Port). Может быть A, B или C. Один блок Move может управлять сразу двумя моторами (для остановки - даже тремя); на рисунке как раз выбраны моторы B и C. Заметим, что при создании колёсных или гусеничных роботов лучше левые и правые колёса (гусеницы) назначать моторам B и C, а вспомогательные операции (манипуляторы, поворотные башни и пр.) отводить мотору A. Это связано с устройством блока NXT и позволит реализовывать более точное передвижение робота.
- Выбор направления вращения мотора/моторов (Direction). Может быть "вперёд", "назад" или "стоп".
- При управлении двумя моторами служит для поворота: переместите слайдер (бегунок) Steering влево или вправо. Для прямолинейного движения установите его посередине. Если использовать промежуточные значения этого параметра, то робот будет ехать под дуге. Чем дальше слайдер от центра, тем круче поворот.
- Power задаёт уровень мощности 0 - 100 %. Мощность не может выходить за этот диапазон.
- Duration - длительность работы мотора задаётся в:
- Rotations - количествах оборотов двигателя;
- Degrees - градусах, на которые повернётся вал двигателя;
- Seconds - секундах;
- Unlimited - без ограничения. Это очень важный параметр; его выбор подразумевает, что двигатель будет работать до наступления некоторого события. Например, мы можем запустить мотор и остановить его, когда робот заедет на красное поле.
- Next Action действие моторов после выключения. Здесь возможны два варианта:
- Brake - тормозить. В этом случае при остановке мотор немедленно прекратит своё вращение. На выполнение этой задачи будет потрачена энергия. В частности, при постоянных резких торможениях батарея садится быстрее.
- Coast - после команды на остановку просто отключить питание от двигателя и катиться по инерции. Этот режим выгодно использовать, если не требуется точной остановки.
Поле обратной связи. Здесь отображаются текущие значения поворотов моторов при наличии соединения робота с компьютером.
- Запустите среду для программирования роботов Lego Mindstorms NXT.
- Создайте новый файл. Добавьте в программу блок Move.
- Изменяя настройки блока Move, понаблюдайте за изменениями на изображении блока в программе.
- Не создавая программу на рисунке прочитайте её. Какие настройки соответствуют каждому блоку программы?

Для дальнейшей работы нам понадобится тестовая модель робота.