Основы робототехники. Расширенные возможности оболочки NXT.

Основы робототехники. Расширенные возможности оболочки NXT.
Основы робототехники. Расширенные возможности оболочки NXT.

Калибровка датчиков. Релейный регулятор. Виды циклов. Передача данных. Примеры задач.

Полезные ресурсы

На страницу урока →

Калибровка датчиков

Calibrate_all

 

 

Calibrate_param

 

 

Calibrate_programm

 

 

 

 

 

Черно-белое движение

black_and_white
gradient

Черно-белое движение

Цикл со счетчиком. Передача данных между блоками.

show_loop

concentrator
move_acceleration

 

 

 

 

 

 

numbertotext
acceleration_full

Полная палитра

Цикл с выходом по значению сенсора

Что изменить?
acceleration_full

Цикл с выходом по условию

cycle_condition
 

 

compare

Что делает данная программа?

timer_ns

Подпрограммы без параметров

Задача: написать программу «Восьмёрка», в которой робот двигается по следующей траектории

two_square

Повторить два раза:

  • Движение по квадрату.
  • Поворот на N градусов.
Создание собственного блока (подпрограммы)

  1. Создать набор инструкций для движения робота по квадрату с использованием цикла.
  2. Выделить мышкой цикл движения робота по квадрату.
  3. Выбрать пункт меню РЕДАКТИРОВАНИЕ \ СОЗДАТЬ НОВЫЙ БЛОК.
  4. В окне КОНСТРУКТОР БЛОКОВ в поле ИМЯ БЛОКА ввести имя блока (например, Square, только английскими буквами) и описание блока в поле ОПИСАНИЕ БЛОКА (необязательно, можно по-русски, например «Процедура движения по квадрату»).
  5. Нажать кнопку ДАЛЕЕ.
  6. На этом шаге нужно создать значок для вашего блока путём перетаскивания готовых иконок в верхнюю область окна; можно использовать несколько иконок.
  7. Нажать кнопку КОНЕЦ.
  8. В результате на листе программы вместо цикла появится блок под названием Square. Если выполнить на нём двойной щелчок, то на соседней вкладке (на новом листе) откроется содержимое блока, которое при необходимости можно отредактировать. Выбирать свои блоки можно из палитры МОЯ ПАЛИТРА (Custom palette).

square

Подпрограммы с параметрами

Задача: написать процедуру движения робота по квадрату. Входной параметр — длина стороны квадрата — задаётся случайным числом в диапазоне от 1 до 5 оборотов мотора.

  1. Написать программу для движения робота по квадрату со стороной в 1 оборот мотора. Программа не содержит подпрограмм, но использует цикл со счетчиком.
  2. Добавьте в программу новый блок СЛУЧАЙНОЕ (Random)из меню ДАННЫЕ (Data) полной палитры. Разместите этот блок перед основным циклом.
    random
  3. В настройках блока случайное задайте диапазон генерируемого числа.
  4. Для того, чтобы заставить робота проезжать столько оборотов, сколько выпадет в блоке СЛУЧАЙНОЕ (Random), нужно передать это число на разъём ДЛИТЕЛЬНОСТЬ (Duration) блока ДВИЖЕНИЕ (Move).
  5. Число оборотов, которое должен произвести мотор, следует перевести в градусы из расчёта: один оборот мотора 360°. Поместите в цикл блок МАТЕМАТИКА (Math) из меню ДАННЫЕ (Data) и настройте его на умножение (Multiplication) на 360°.
  6. Соедините шиной данных выходной разъём блока СЛУЧАЙНОЕ (Random) и входной разъём A блока МАТЕМАТИКА (Math).
  7. Затем соедините шиной выходной разъём РЕЗУЛЬТАТ (Result) блока МАТЕМАТИКА (Math) (числовые выходные разъёмы помечаются символом «#») и входной разъём ДЛИТЕЛЬНОСТЬ (Duration) блока ДВИЖЕНИЕ, который «соответствует» длине стороны квадрата.
    rand_square
  8. Выделить часть, которая будет входить в процедуру (все, кроме блока генерации), и создать собственный блок. У нового блока появились входной и выходной разъем для передачи данных.
  9. Выведем на экран блока NXT текущую длину стороны квадрата, измеряемую в оборотах двигателя. После блока СЛУЧАЙНОЕ (Random) «вытяните» мышкой ещё одну направляющую для блоков (начать создание новой направляющей — щелчок левой кнопкой мыши; завершить — двойной щелчок мыши). Соединим шины данных.
    pr_square

Переменные

variable
Создание переменных:

  1. зайдите в главном меню в пункт РЕДАКТИРОВАТЬ и далее в ОПРЕДЕЛИТЬ ПЕРЕМЕННУЮ;
  2. в открывшемся окне редактора переменных нажмите кнопку СОЗДАТЬ;
  3. имя переменной можно задать произвольное (в том числе и по-русски);
  4. нажмите кнопку ЗАКРЫТЬ.