Вы находитесь на странице: 1из 10

Лабораторная работа № 1

Движение вперед
Цель работы: создать простую программу для робота, чтобы он проехал
вперед один метр, с мощностью 70 процентов и остановился.

К работе допущены:
Работу выполнили:
Работу защитили:
Теоретическое введение
Перетащите из списка сервисов в рабочую область элемент Simple Dialog, а
из базовых активностей — Data (блок данных). С него будут отправляться
данные на следующий блок. Simple Dialog будет выводить на экран
сообщение с кнопкой OK, по нажатию которой начнет выполняться
программа. В выпадающем списке блока Data измените значение int на string
и в текстовом поле напишите «старт» (Рис. 1).

Рисунок 1 - Блок данных и диалоговое окно


Далее необходимо соединить выход блока Data — Outgoing Response и вход
Incoming Request блока Simple Dialog. В появившемся окне Connections слева
выберите событие, которое будет обрабатываться, — DataValue, а справа
следствие — AlertDialog. В следующем окне Data Connections значение Alert
Text установите как Value.
Добавьте на диаграмму еще два блока данных. Один блок будет отвечать за
мощность, а другой за расстояние, которое нужно проехать. Настройте блок
мощности - тип данных Double, значение 0. 7 и блок расстояния — тип
данных int, значение 1. Далее соедините Simple Dialog с блоками так, что бы
они выполнялись параллельно. В появившемся окне Connections выберите
AlertDialog Success — Create (Рис. 2).

Рисунок 2 - Мощность и расстояние


Перетащите на диаграмму блоки join и GenericDifferentialDrive. В полях join
впишите значения — DrivePower и DriveDistance. Соедините выходы блоков
данных с соответствующими полями. Далее соедините блоки join и
GenericDifferentialDrive. В окне Connection выберите DriveDistans, а в
следующем окне соответственно устанавите: Distanse — DriveDistans, Power
— DrivePower, DriveDistansStage — null (Рис. 3).

Рисунок 3 - Отправление данных на мотор

Далее необходимо выбрать манифест для элемента GenericDifferentialDrive.


Манифесты — это своеобразные драйверы низкого уровня, или, с другой
стороны — конфигурации той или иной программы VPL. Идея состоит в том,
что одна и та же программа, в принципе, может выполняться на различных
роботах, несмотря на то, что на низком уровне управление реализуется
неодинаково. Благодаря манифестам, чтобы перенести программу VPL с
одного железа робота на другое, нужно выбрать манифесты
соответствующего робота для основных модулей диаграммы. Таким же
образом — с помощью специальных «Simulation»-манифестов — реализуется
перенос программы в среду симуляции.
В контекстном меню GenericDifferentialDrive выберите Set Configuration.
После этого, выберите в разделе Set Configuration — Use a manifest (Рис.4 ).

Рисунок 4 - Создание манифеста


В результате в нижней части появится выпадающий список «Use existing or
create a new manifest» и кнопка «Import manifest» (Рис. 12).

Рисунок 5 - Загрузка манифеста


С помощью кнопки импортируйте манифест «LEGO. NXT. Tribot. Simulation.
Manifest. xml» и выберите его. Можно выбрать манифест другого робота, но
в данном примере мы протестируем именно LEGO. NXT. Tribot. Главное
преимущество этой программы в том, что можно научиться программировать
без реального робота, используя среду с виртуальным роботом.
В результате, у нас должна быть такая диаграмма (рис. 14)

Рисунок 6 - Диаграмма
Теперь запустите нашу программу на выполнение. Нажмите F5 или в меню
«Run» — пункт «Start». В результате появится окно Run, в котором
отображаются сообщения о состоянии выполнения.
Практическая часть
Добавляем два блока Data и SimpleDialog.

Рисунок 7 – Добавление блоков


Выбираем Data Connection – Value

Рисунок 8 – Настройка подключения данных


Добавляем еще два блока Data для задания мощности и расстояния.

Рисунок 9 – Добавление блоков

Добавляем еще блок Join и GenericDifferentialDrive.

Рисунок 10 – Добавление блоков


Импортируем манифест «LEGO. NXT. Tribot. Simulation. Manifest. xml»

Рисунок 11 – Настройка манифеста

Рисунок 12 – Итоговая схема


Теперь можно запустить программу

Рисунок 13 – Запуск программы

Задание 1
Робот должен проехать вперед 1,5м с мощностью 0.

Рисунок 11 – Задание 1
Задание 2
Робот должен поехать назад с теми же параметрами.

Рисунок 12 – Задание 2
Задание 3
Робот должен проехать назад 2 метра с мощностью 0.5.

Рисунок 13 – Задание 3
Заключение
Была проведена работа, в ходе которой были освоены базовые команды
настройки робота.