- - команды действия ; - - команды ожидания ; - - управляющие структуры ; - - модификаторы.
- ветвления ; - циклы и безусловные переходы ; - подпрограммы ; - параллельные задачи ; - обработчики событий.
RobolabNXT-G Покупка производится дополнительно Поставляется с набором Lego Расчеты с плавающей точкой, использование операций в синтаксисе языка СИ Целочисленные расчеты Команды могут дублироваться Небольшой набор команд Высокая точность управления Начальный уровень управления Большое количество модификаторов затрудняет читаемость кода Все параметры хранятся « внутри » командных блоков
В Robolab можно выделить следующие виды циклов : - бесконечный цикл ; - цикл с заданным числом повторений ; - цикл с предусловием.
Бесконечное движение вперед
Использование цикла с известным числом повторений
Цикл с предусловием
Замена ветвления циклом по условию « меньше »
Порядок действий : - объявляется событие ; - включается мониторинг события ; - указывается точка перехода по событию ; - выключается мониторинг события.
Начало Отслеживание События Конец Отслеживания события Метка. Переход по событию
Управление без обратной связи
Кроме стандартной палитры команды управления моторами содержатся в палитре NXT: - ехать с заданной скоростью ; - проезжать заданное расстояние и останавливаться ; - синхронизировать движение моторов ; - менять ориентацию моторов на противоположную.
Управление с обратной связью
- ожидание интервала времени, - ожидание показаний датчика, - ожидание значения контейнера, - ожидание показаний таймера.
Траектория движения
Движение по линии с одним датчиком освещенности
Модификаторы – это параметры выполнения команд, которые определяют : - порт подключенного устройства ; - мощность мотора ; - длительность задержки ; - значение датчика ; - новое значение контейнера и др.
Для сокращения размера программы за счет повторяемых кусков кода их можно заключать в подпрограммы. Всего допустимо использование 8 подпрограмм с номерами от 0 до 7.
Базовые операции над числами : - Сложение : + - Вычитание : - - Умножение : * - Деление : / - Остаток от деления : % ( Пример : 3 % 2 = 1) - Битовое И : & ( Пример : 7 & 5 = 5) - Битовое ИЛИ : | ( Пример : 5 | 2=7)
Определение типов переменных : int, long, float. int b long c= float a=2.5
Допустимые функции : - Тригонометрические ( все параметры в радианах ): sin, cos, asin, acos, atan. Пример : sin (1.57) = 1. - Стандартные : abs, sqrt, sgn. Пример : sgn (-2) = Логарифмические : Ln 10, Ln, exp.
Контейнеры : red, blue, yellow, c0, cl, c2, сЗ,.., с 48 ( или C0..C48). При этом c0 - красный контейнер, cl - синий, c2 - желтый. Счетчики циклов с n повторений : Loop_i, Loop_j, Loop_k ( изменяются n-1 до 0). Датчики оборотов моторов : el, е 2, еЗ ( соответствуют моторам А, В, С ).
Случайное число : г. Для примера, г 8 возвращает случайное значение от 0 до 8. Максимальное значение 255. Датчики : s1, s2, s3, s4 ( или SI,..S4 или Sensor1..Sensor4). Необработанные показания датчиков : SensorRaw1.. SensorRaw4.
Таймеры с интервалом 100 мсек : T1, Т 2, ТЗ, Т 4 ( или Timer100ms1..Timer 100ms4, или t1..t4)) Таймеры с интервалом 10 мсек : Timer10ms 1..Timer10ms4 Таймеры с интервалом 1 мсек : Timerlms1..Timerlms4
Текущее состояние моторов : MotorStatus1..MotorStatus3 (0= Свободное, 1= Удержание, 1 б = Разгон, 32= Движение, 64- Торможение )