Программирование Lego EV3 в TRIKStudio

Подключение робота

Первое, что необходимо сделать для программирования Lego EV3 – переключить TRIKStudio в режим поддержки Lego EV3. Это делается в окне "Настройки", вкладка "Роботы":

Выбор конструктора Lego EV3

Подключение по Bluetooth

Процедура подключения робота Lego EV3 по Bluetooth со стороны компьютера полностью аналогична подключению робота Lego NXT и подробно описана в соответствующем разделе документации для Lego NXT.

Подключение по USB

Подключите USB-провод к EV3 и к компьютеру с TRIK Studio, включите EV3. После этого можно загружать программы на робот, никаких дополнительных действий и драйверов не требуется.

Блоки Lego EV3

Специализированные блоки для Lego EV3 делятся на несколько категорий:

  • Действия – блоки, выполняющие какое-либо действие на роботе: включение моторов, проигрывание звука и т.д.
  • Ожидания – блоки, ждущие наступления какого-либо события: определённых показаний датчиков, нажатия на кнопку и т.д.
  • Рисования на дисплее – блоки, используемые для вывода графики и текста на экран.

Действия

Название элемента Пиктограмма Описание
Гудок
Гудок
Проиграть на роботе звук с фиксированной частотой. Имеется один параметр — ждать ли завершения проигрывания звука или сразу же перейти к следующему блоку. Допустимые значения — Истина и Ложь.
Играть звук
Играть звук
Проиграть на роботе звук с заданной частотой и длительностью. Аналогичен блоку "Гудок", но позволяет задавать параметры звука. Имеется параметр, определяющий, ждать ли завершения проигрывания звука или сразу же перейти к следующему блоку.
Моторы вперёд
Моторы вперёд
Включить моторы по заданным портам с заданной мощностью. Порты задаются буквами A, B, C или D, разделенными запятыми. Мощность задаётся в процентах числом от -100 до 100, если задано отрицательное значение, мотор включается в режиме реверса. Так, на картинке изображена команда включения моторов на портах B и C с мощностью 100%. Кроме того, моторы имеют разные режимы работы: режим торможения и режим скольжения (отображаемые красным или зелёным прямоугольником на блоке соответственно). Режимы влияют на то, как двигатель отрабатывает команду — режим торможения стопорит двигатель при отключении, режим скольжения позволяет двигателю прокручиваться по инерции.
Моторы назад
Моторы назад
Включить моторы в режиме реверса по заданным портам с заданной мощностью. Параметры аналогичны параметрами блока "Моторы вперёд".
Моторы стоп
Моторы стоп
Выключить моторы по заданным портам.
Сбросить показания энкодера
Сбросить показания энкодера
Сбросить энкодеры на указанных портах в 0.
Светодиод
Светодиод
Включить светодиод с заданным цветом на корпусе робота.

Ожидания

Название элемента Пиктограмма Описание
Ждать сенсор касания
Ждать сенсор касания
Ждать, пока не сработает датчик касания. Параметром указывается номер порта, к которому подключен датчик. Допустимые значения: 1, 2, 3, 4.
Ждать энкодер
Ждать энкодер
Ждать, пока количество оборотов мотора, которые вернул энкодер на заданном порту, не будет сравнимо с указанным в значении параметра "Предел оборотов". Также указывается операция, которая будет использоваться для сравнения с введенным пределом оборотов. Так, при исполнении приведенного блока выполнение программы остановится до тех пор, пока значение, возвращаемое энкодером, не будет больше 40.
Ждать цвет
Ждать цвет
Ждать, пока сенсор цвета на указанном порту в режиме распознавания цветов не вернет указанный цвет.
Ждать интенсивность цвета
Ждать интенсивность цвета
Ждать, пока значение интенсивности, возвращаемое сенсором цвета на указанном порту в режиме измерения интенсивности, не будет сравнимо с указанным в значении параметра "Интенсивность" (интенсивность задается в процентах, от 0 до 100, меньшие значения соответствуют более тёмным цветам). Также параметром указывается операция, которая будет использоваться для сравнения с введенной интенсивностью. Так, при исполнении приведенного блока выполнение программы остановится до тех пор, пока значение, возвращаемое датчиком, не будет больше 40.
Ждать свет
Ждать свет
Ждать, пока значение интенсивности, возвращаемое датчиком света на указанном порту, не будет сравнимо с указанным в значении параметра "Проценты" (от 0 до 100, меньшие значения соответствуют тёмному, большие – светлому). Также параметром указывается операция, которая будет использоваться для сравнения с введенными процентами. Так, при исполнении приведенного блока выполнение программы остановится до тех пор, пока значение, возвращаемое датчиком, не будет больше 40.
Ждать сенсор расстояния
Ждать сенсор расстояния
Ждать, пока расстояние, возвращаемое ультразвуковым или инфракрасным сенсором расстояния, не будет сравнимо с указанным в значении параметра "Расстояние" (расстояние задается в сантиметрах, от 0 до 255). Еще один парамер — номер порта, к которому подключен датчик расстояния. Также параметром указывается операция, которая будет использоваться для сравнения с введенным расстоянием. Так, при исполнении приведенного блока выполнение программы остановится до тех пор, пока значение, возвращаемое датчиком, не будет больше, чем 40 см.
Ждать нажатия кнопки
Ждать нажатия кнопки
Ждать, пока не будет нажата указанная в качестве параметра кнопка на корпусе робота.

Рисование на дисплее

Название элемента Пиктограмма Описание
Нарисовать прямоугольник
Нарисовать прямоугольник
Нарисовать на экране прямоугольник. В качестве параметров указываются координаты левого верхнего угла, ширина и высота прямоугольника, а также заливать его внутреннюю область или нет.
Нарисовать точку
Нарисовать точку
Нарисовать на экране точку в указанных координатах.
Нарисовать линию
Нарисовать линию
Нарисовать на экране отрезок. В качестве параметров блоку указываются концы отрезка.
Нарисовать круг
Нарисовать круг
Нарисовать на экране круг с заданным центром и заданным радиусом, залитый внутри или нет.
Напечатать текст
Напечатать текст
Печатает заданную строку в заданном месте на экране робота. Значение свойства "Текст" по умолчанию трактуется как строка в чистом виде, оно так и будет выведено на экран. Чтобы система считала, что это выражение на текстовом языке (это может быть полезно, например, при отладке значения переменных), поставьте галочку "Вычислять" в редакторе свойств.
Очистить экран
Очистить экран
Стереть всё, что нарисовано на экране.

Описание блоков, общих для всех конструкторов, можно посмотреть в разделе Создание программ/Создание блоков.

Сенсорные переменные

Название Описание
buttonBack, buttonDown, buttonEnter, buttonLeft, buttonRight, buttonUp Состояние кнопок на корпусе робота: кнопки "Назад", "Вниз", "Ввод", "Влево", "Вправо", "Вверх" соответственно. 0 соответствует ненажатой кнопке, 1 – нажатой.
encoderA, encoderB, encoderC, encoderD Показания энкодеров на портах A, B, C, D соответственно.
sensor1, sensor2, sensor3, sensor4 Показания датчиков на портах 1, 2, 3, 4 соответственно.

Запуск программ

Интерпретация по Bluetooth или по USB

Чтобы запустить программу на выполнение, необходимо подключиться к роботу, нажав на кнопку "Подключиться", после чего нажать кнопку "Выполнить" панели "Интерпретатор" или меню "Инструменты":

Запуск программы

После этого интерпретатор ищет блок "Начало", с которого и начинается выполнение программы. Если такой блок на диаграмме не найден, будет выдано сообщение об ошибке. Для каждого функционального блока должна существовать ровно одна исходящая связь, по которой выполнение программы перейдет к следующему блоку. В противном случае будет выдано сообщение об ошибке.

Для того, чтобы остановить выполнение программы, нужно нажать кнопку "Прервать выполнение" панели "Интерпретатор" или меню "Инструменты".

Прошивка в робота

Загрузка программы на робот позволяет сохранить программу на роботе и исполнять её без соединения с компьютером. В отличие от Lego NXT, средства загрузки и исполнения программ TRIK Studio не требуют дополнительных манипуляций с роботом и работают со стандартной прошивкой. Первое, что нужно сделать, чтобы загрузить программу – переключиться в режим автономного исполнения по Bluetooth или USB (в зависимости от желаемого типа соединения с роботом для загрузки программы).

Переключение в режим генерации

Далее запустить программу на исполнение очень просто: достаточно нажать на "Запустить программу".

Кнопка запуска программы

По программе будет сгенерирован код на внутреннем языке EV3, загружен на робот и немедленно запущен на исполнение. Если требуется только загрузить программу, не запуская её, нужно воспользоваться кнопкой "Загрузить программу".

Кнопка загрузки программы

Эксперты в EV3 могут посмотреть на сгенерированный на внутреннем языке EV3 код с помощью кнопки "Сгенерировать в байткод EV3". Теоретически, его можно подредактировать и запустить на исполнение, или вообще использовать для текстового программирования EV3, но делать это неудобно – язык создавался для автоматической генерации, а не написания программ.

Кнопка загрузки программы