Рейтинг@Mail.ru

Программирование робота Lego Mindstorms EV3 с помощью Scratch 2.0

Автор: Alex. Опубликовано в Копилка . просмотров: 60513

Рейтинг:  4 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда не активна
 

Если вам нравится графическая среда программирования Scratch 2.0, то вам необязательно отказываться от неё для программирования роботов Lego Mindstorms EV3. Достаточно лишь установить и настроить нужное программное обеспечение, о чём и будет написано в этой статье.

Программирование робота Lego Mindstorms EV3 с помощью Scratch 2.0

Статья будет рассчитана на владельцев компьютеров под управлением Windows, хотя всё упомянутое в статье программное обеспечение можно установить и использовать на компьютерах под управлением Mac OS, Mac OS X и Linux. Вот вкратце план, по которому мы будем действовать:

    1. Подготовка SD-карты.
    2. Установка компонентов leJOS на компьютер.
    3. Создание SD-карты leJOS EV3.
    4. Установка Adobe AIR на компьютер.
    5. Установка офлайн редактора Scratch 2 на компьютер.
    6. Установка приложения ev3-scratch-helper-app на компьютер.
    7. Запуск приложения ev3-scratch-helper-app.
    8. Первый запуск офлайн редактора Scratch 2.
    9. Добавление программных блоков EV3 в редактор Scratch 2.
    10. Подключение модуля EV3 к компьютеру.
    11. Программирование робота EV3 в редакторе Scratch 2.

Подготовка SD-карты

Прежде, чем начинать, что то делать дальше, нужно найти подходящую SD-карту, удалить с неё все лишние разделы, которые там могут оказаться, и отформатировать её. Это должна быть карта объёмом как минимум 2Гб, но не более 32Гб (SDXC-карты не поддерживаются модулем EV3). Файловая система на карте должна быть FAT32. Разработчики leJOS рекомендуют форматировать карту с помощью программы SD Card Formatter. Ведь, даже если вы решили использовать только что купленную карту памяти, на ней могут быть скрытые разделы, которые могут вызвать проблемы при работе c EV3. Однако, если ваша SD-карта меньше 4Гб, то программа автоматически выбирает файловую систему FAT и изменить в настройках это нельзя, поэтому после форматирования программой SD Card Formatter форматируйте такие карты в формат FAT32 другим способом. Кроме того, у меня при использовании старых карт 2Гб, leJOS EV3 вообще отказался загружаться, хотя установка прошла успешно. Из своего опыта я советую вам использовать свежекупленные карты SDHC объёмом 4 – 32Гб (у меня всё успешно работает с картой SDHC объёмом 4Гб класс 4 производства smartbuy).

Установка компонентов leJOS EV3 на компьютер

leJOS – это крошечная виртуальная Java-машина, которая в 2013 году была адаптирована для работы с системой Lego Mindstorms EV3. Официальная страничка проекта находится здесь. Для компьютеров под управлением Windows разработчики сделали дистрибутив, в котором есть утилита для подготовки SD-карты, документация и примеры.

Итак, установим leJOS EV3 на компьютер:

      • Скачайте последнюю версию leJOS EV3 с официального сайта (на момент написания статьи – это версия 0.9.0-beta). Для установки на Windows – это будет файл leJOS_EV3_0.9.0-beta_win32_setup.exe.
      • Запустите скачанный дистрибутив на вашем компьютере. Вы увидите приветствие. Нажмите «Next >».

Мастер установки leJOS EV3

      • На этом шаге выберите JDK (Java Development Kit), который вы будете использовать. Рекомендуется использовать Java 7 или 8. Однако для использования Java 8 вам нужно будет создать подходящий компактный профиль Java, поэтому Java 7 будет использовать проще, что мы и сделаем. Если JDK у вас не установлен, щёлкните по кнопке «Download JDK» и, после перехода на сайт Oracle, скачайте подходящий JDK и установите его на компьютер. Нажмите кнопку «Next >».

Выбор JDK при установке leJOS EV3 на компьютер

      • На следующем шаге вы можете выбрать путь для установки или оставить его без изменений. Нажмите «Next >».
      • На следующем шаге вы увидите список устанавливаемых компонентов. Рекомендуется установить все компоненты. Нажмите «Next >».

Выбор компонентов при установке leJOS EV3 на компьютер

      • На следующем шаге вы сможете выбрать альтернативные пути для установки выбранных компонентов. Здесь можно оставить всё по умолчанию и нажать «Next >».
      • На следующем шаге выбирается имя папки в меню «Пуск». Нажмите «Next >».
      • На последнем шаге щёлкните «Install».
      • Если на вашем компьютере установлена предыдущая версия leJOS EV3, то вы увидите предупреждение, см. картинку. Нажмите «OK», чтобы удалить предыдущую версию с компьютера.

Предупреждение при установке leJOS EV3 на компьютер

      • После установки вы увидите финальное окно. Здесь можно поставить галочку «Launch EV3SDCard utility», чтобы сразу при выходе из мастера запустить утилиту подготовки SD-карты.

Установка leJOS EV3 успешно завершена

Создание SD-карты leJOS EV3

Нажмите кнопку «Finish» с установленной галочкой «Launch EV3SDCard utility» после установки компонентов leJOS EV3 на компьютер или запустите утилиту вручную, для этого запустите файл ev3sdcard.bat, который находится в папке bin, внутри папки, в которую вы установили leJOS EV3 (у меня это папка «C:\Program Files\leJOS EV3\bin»). После запуска у вас должно появиться окошко, изображённое на картинке снизу.

В верхнем поле нужно выбрать букву диска вашей карты, у меня это диск I:. В поле ниже указывается файл с образом leJOS и по умолчанию у вас уже должен быть прописан правильный путь, см. картинку сверху. Этот файл можно найти в папке, куда были установлены компоненты leJOS EV3 (у меня это «C:\Program Files\leJOS EV3»). В самом нижнем поле нужно выбрать файл со средой выполнения Java, который вам предварительно нужно скачать с сайта Oracle отсюда (убедитесь, что вы выбрали Java 7 JRE, а не Java 8 SDK, если конечно вы не планируете создавать компактный профиль Java 8). Для скачивания вам нужно будет зарегистрироваться, если вы этого ещё не делали.

Создание SD-карты leJOS EV3

Когда все поля будут заполнены, нажмите на кнопку «Create», и после того как на SD-карту будут скопированы необходимые файлы вы увидите подобное сообщение:

Сообщение об успешом создании SD-карты leJOS EV3

Нажмите «OK», затем закройте окно программки и безопасно извлеките карту из компьютера. Затем вставьте её в выключенный модуль EV3 и включите его, нажав центральную кнопку. Вы должны будете увидеть логотип leJOS EV3 и прогресс форматирования и установки образа SD-карты. Это занимает порядка 8-ми минут. В конце этого процесса модуль EV3 перегрузится и вы должны увидеть меню leJOS EV3.

Меню leJOS EV3

В дальнейшем, при включении модуля EV3 со вставленной SD-картой leJOS EV3 у вас сразу начнётся загрузка leJOS EV3, а без SD-карты загрузится стандартное ПО LEGO.

Установка Adobe AIR на компьютер

Перед установкой офлайн редактора Scratch, необходимо обновить или установить на компьютер последнюю версию Adobe AIR. Описывать установку я не буду, она очень простая. Нужно скачать инсталлятор здесь, запустить его, ответить на несколько вопросов и дождаться окончания установки.

Установка офлайн редактора Scratch 2 на компьютер

Теперь скачайте и установите на компьютер последнюю версию офлайн редактора Scratch 2 (на момент написания статьи – это версия 437, файл Scratch-437.exe). У инсталлятора очень мало параметров, см. картинку. Уберите галочку «Запустить приложение после установки» и нажмите кнопку «Продолжить».

Установка офлайн редактора Scratch 2 на компьютер

После установки вы увидите следующее сообщение, см. картинку. Щёлкните по кнопке «Готово».

Установка онлайн редактора Scratch 2 завершена

Установка приложения ev3-scratch-helper-app на компьютер

Следующее что нужно сделать – установить приложение-помощник ev3-scratch-helper-app на ваш компьютер, которое делает возможным взаимодействие Scratch с модулем EV3 (прочитать про приложения-помощники для Scratch можно здесь). Установку можно произвести двумя способами:

    1. Если у вас на компьютере установлен git, то вы можете клонировать проект, выполнив в консоли команду «git clone https://github.com/koen-dejonghe/ev3-scratch-helper-app.git». Этот способ предпочтительнее, но, если вы не знаете, что такое git, то есть второй способ.
    2. Скачайте и распакуйте zip-архив с проектом (я выбрал этот вариант). Папку ev3-scratch-helper-app-master внутри zip-архива я распаковал на диск C:.

В папке «scratch» внутри папки установки вы можете найти файл «ev3-helper-app.s2e» для английского и файл «ev3-helper-app-NL.s2e» нидерландского языков, соответственно, в папках «en» и «nl». Если вы хотите использовать русский язык, то вы можете самостоятельно перевести файл «ev3-helper-app.s2e» (кодировка файла д.б. UTF-8) или взять файл «ev3-helper-app-RU.s2e» с моим переводом (файл «ev3-helper-app-RU.s2e» сохраните по аналогии с английской и нидерландской версией: сделайте папку «ru\extensions» и сохраните в ней). К сожалению, перевести можно лишь названия блоков, но не значений, иначе приложение ev3-scratch-helper-app работать не будет. Т.е. название моторов и датчиков останется на английском (для моторов это «Large» и «Medium», для датчиков – «Color», «Distance» и «Touch» и т.д.).

Файлы:
Русификация приложения ev3-scratch-helper-app Версия:от 07.08.2015

Файл ev3-helper-app-RU.s2e для русификации блоков EV3 в офлайн редакторе Scratch 2.

Дата 07.08.2015 Размер файла 3.76 KB Закачек 2469

В папке с приложением вы можете найти файл «application.properties» с настройками. Измените настройки, если потребуется. Имена свойств говорят сами за себя, поэтому расписывать их здесь я не буду. После изменения, удостоверьтесь, что значение свойства «server.port» в файле «application.properties» равно значению переменной «extensionPort» в файле «ev3-helper-app.s2e» или «ev3-helper-app-RU.s2e», в зависимости от того, файл какого языка вы будете использовать.

Запуск приложения ev3-scratch-helper-app

Перед запуском редактора Scratch 2 у вас всегда должно быть запущено приложение ev3-scratch-helper-app. Для его запуска сделайте следующее:

    1. Запустите окно консоли и поменяйте текущую папку на папку, в которой установлено приложение ev3-scratch-helper-app. У меня это папка «C:\ev3-scratch-helper-app», поэтому я вызвал команду «cd C:\ev3-scratch-helper-app».
    2. Выполните команду «gradlew.bat bootRun». При первом выполнении к вам на компьютер будут скачаны и установлены необходимые библиотеки, поэтому удостоверьтесь, что компьютер подключен к Интернету. Первый запуск займёт продолжительное время, наберитесь терпения.

После того как приложение запустится вы увидите в консоли примерно следующие сообщения:

2015-08-06 09:15:28.699 INFO 10236 --- [main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 4321/http
2015-08-06 09:15:28.704 INFO 10236 --- [main] scratch.ev3.Application: Started Application in 13.411 seconds (JVM running for 15.025)

Для последующих запусков для удобства можно создать ярлык, например, на рабочем столе. Вот так выглядят свойства ярлыка для установленного приложения в папке «C:\ev3-scratch-helper-app»:

Свойства ярлыка для запуска приложения ev3-scratch-helper-app

При запуске приложение ev3-scratch-helper-app подключается к первому доступному модулю EV3 в сети. Если ни один модуль не обнаружен, то приложение ждёт, пока такой появится.

Первый запуск офлайн редактора Scratch 2

После запуска редактора Scratch 2 первый раз (у вас должен быть ярлык «Scratch 2» на рабочем столе) вы, возможно захотите поменять язык на русский. Выбор языка выполняется из меню с изображением глобуса, см. картинку.

Смена языка в офлайн редакторе Scratch 2

Добавление программных блоков EV3 в редактор Scratch 2

После запуска у вас автоматически создаётся новый пустой проект. Теперь для этого проекта нужно импортировать блоки EV3, для этого удерживая клавишу «Shift» щёлкните по меню «Файл -> Импортировать экспериментальное расширение HTTP» и выберите файл ev3-helper-app.s2e или ev3-helper-app-RU.s2e, в зависимости от предпочитаемого языка. Я выбрал файл «C:\ev3-scratch-helper-app-master\scratch\ru\extensions\ev3-helper-app-RU.s2e». Эту процедуру нужно будет делать один раз для каждого нового проекта.

Импорт экспериментального расширения HTTP в редактор Scratch 2

После этого откройте закладку «Скрипты» щёлкните по «Другие блоки» и удостоверьтесь, что здесь появились наши блоки. Проверку наличия блоков желательно делать каждый раз после открытия ранее сохранённого проекта. Зелёный кружочек справа от названия «EV3HelperApp» означает, что приложение v3-scratch-helper-app выполняется. Если кружочек красный, то это значит, что приложение v3-scratch-helper-app не выполняется и его нужно запустить.

Проверка подключения расширения v3-scratch-helper-app в редактор Scratch 2

Подключение модуля EV3 к компьютеру

Подключить модуль EV3 к компьютеру можно двумя способами: через Bluetooth или WiFi.

Для подключения через WiFi у вас должен быть USB WiFi адаптер. leJOS EV3 поддерживает адаптеры с чипсетами Atheros ATH9K и Realtex 8192cu. Модуль EV3 протестирован разработчиками с адаптерами NetGear WNA1100 и EDIMAX EW-7811Un, но и другие адаптеры могут поддерживаться, если в них используется один из перечисленных чипсетов. Здесь я не буду рассматривать подключение через WiFi, т.к. не у всех есть подходящий адаптер. Но если вы заинтересовались таким подключением, то вы можете узнать, как это сделать из официального источника здесь.

Для подключения через Bluetooth вам нужно сначала подключить друг к другу модуль EV3 и компьютер, а затем сделать личную сеть Bluetooth (PAN).

Подключение модуля EV3 к компьютеру нужно сделать только один раз для пары «модуль EV3 – компьютер»:

1. В модуле EV3 в главном меню leJOS EV3 найдите пункт меню «Bluetooth» и зайдите внутрь, нажав на кнопку центральную кнопку модуля EV3. Если вы увидите надпись «Visibility on», то всё в порядке: видимость модуля включена. Если вы видите надпись «Visibility off», то найдите пункт меню «Visibility» (с изображением глаза) и нажмите на центральную кнопку модуля EV3 дважды, чтобы включить видимость (надпись должна поменяться на «Visibility on»).
2. На компьютере откройте «Панель управления -> Оборудование и звук -> Устройства и принтеры». Вы увидите список устройств, подключенных к вашему компьютеру.

Устройства подключенные к компьютеру

3. Удостоверьтесь, что Bluetooth компьютера включён, и нажмите сверху на кнопку «Добавление устройства». Поднимется диалоговое окно, в котором через некоторое время должен появиться модуль EV3. Щёлкните по нему и затем щёлкните «Далее».

Подключение EV3 к компьютеру через Bluetooth

4. На следующем шаге вы увидите выбор варианта подключения. Щёлкните по второму варианту и введите PIN-код 1234.

Ввод PIN-кода для подключения EV3 к компьютеру через Bluetooth

После того как модуль EV3 и компьютер подключены друг к другу можно сделать личную сеть Bluetooth (PAN) (подключение к сети PAN вам придётся делать каждый раз при включении модуля EV3):

    1. Откройте «Панель управления -> Сеть и Интернет -> Центр управления сетями и общим доступом» и щёлкните по «Изменение параметров адаптера» на левой панели окна.
    2. Вы должны увидеть здесь «Сетевое подключение Bluetooth» с красным крестиком. Щёлкните по этой иконке один раз, чтобы выбрать её.
    3. Щёлкните сверху по кнопке «Просмотр сетевых устройств Bluetooth».
    4. Через некоторое время вы увидите в поднявшемся окне одну или несколько точек доступа. Щёлкните здесь по нашему устройству «EV3», чтобы выбрать его, и щёлкните по пункту меню «Подключаться через -> Точка доступа».

Настройка личной сети Bluetooth (PAN) между EV3 и компьютером

Программирование робота EV3 в редакторе Scratch 2

При программировании роботов EV3 с помощью редактора Scratch и расширения ev3-scratch-helper-app вам нужно помнить, что перед использованием моторов и датчиков их нужно подключить с помощью блоков «Подключить мотор к порту» и «Подключить датчик к порту» («Connect a motor to port» и «Connect a sensor to port» при использовании англоязычного варианта блоков). Отключаются датчики с помощью блока «Закрыть все порты» («Close all ports» в английском варианте).

Контролировать, что происходит в приложении ev3-scratch-helper-app, вы можете глядя на сообщения в консоли.

Для проверки, всё ли правильно мы настроили, соберите простейшую тележку, например, стандартную приводную платформу, и напишите для неё простейшую программу в Scratch 2. Можете посмотреть примеры в папках «doc» и «scratch\en\demos» в папке установки программы ev3-scratch-helper-app. При открытии демонстрационных программ в Scratch 2 проверьте, есть ли блоки EV3, как это было описано выше в разделе «Добавление программных блоков EV3 в редактор Scratch 2».

Инструкцию для сборки стандартной приводной платформы можете взять здесь:

Инструкция для сборки стандартной приводной платформы Educator EV3

Инструкция к статье "Приводная платформа EV3 на гусеничном ходу".

Дата 21.02.2015 Размер файла 5.4 MB Закачек 9478

Ниже на картинке вы увидите пример простейшей программы для тележки с установленным спереди датчиком расстояния. Работает это следующим образом:

      • Сначала спрайт «Старт» (большой треугольник слева сверху) серого цвета, это значит, что робот не инициализирован. Видите, скорость моторов null, и расстояние у датчика 1 тоже null. Нужно нажать на серый треугольник.

Программа с инициализацией моторов и датчика EV3 в редакторе Scratch 2

      • После нажатия на треугольник происходит подключение моторов и датчика расстояния, и треугольник становится зелёным. Как видите скорость моторов и расстояние датчика теперь показывают осмысленные значения вместо null.

Инициализация моторов и датчика EV3 в редакторе Scratch 2

      • Теперь можно нажать на пробел на компьютере и робот поедет вперёд, пока впереди не появится препятствие на расстоянии меньше 50-ти см. Когда робот обнаружит препятствие, он остановится.
      • Когда вы наигрались с роботом, можно снова нажать на треугольник. При этом все порты закроются, и робот снова станет неинициализирован, а треугольник станет серым.

Файл программы, изображённой на картинке я прилагаю к статье:

Программа для Scratch 2 для тестирования взаимодействия с роботом EV3 Версия:от 07.08.2015

Программа для Scratch 2 для тестирования взаимодействия с роботом EV3.

Дата 07.08.2015 Размер файла 45.65 KB Закачек 2140

Итог

Из этой статьи вы узнали, как настроить офлайн редактор Scratch 2 для программирования роботов LEGO Mindstorms EV3, а также узнали, как начать программировать с помощью него. К сожалению, в случае программирования в Scratch 2 модуль EV3 всё время должен быть подключен к компьютеру через Bluetooth или WiFi, т.е. он не автономен. Хотя здесь есть и приятные бонусы – роботом можно управлять с компьютера, например, робот на колёсах может управляться при помощи клавиш-стрелок или клавиш W, A, S и D. Итак, пробуйте, экспериментируйте и пишите, если что-то непонятно.

Tags: leJOS Учебники по использованию программ Учебники по программированию SCRATCH LEGO Mindstorms Education EV3 LEGO

Комментарии   

Супх
0 #21 Супх 11.11.2019 20:27
Цитирую Alex:

Даже не знаю. По вашему скрину видно, что порт не инициализирован, а почему - не понятно. Посмотрите, что написано в консоли выше. Может быть просто нет подключения к EV3.


В консоли постоянно выводится строка "2019-11-11 20:25:37.962 INFO 9892 --- [nio-4321-exec-2] scratch.ev3.RemoteEV3Proxy : searching for ev3...". При этом соединение модуля с ПК на уровне Bluetooth настроено нормально.

Кто что не видит и куда смотреть?

С уважением,
Цитировать
Максим Харлабо
0 #22 Максим Харлабо 13.08.2020 18:27
Здравствуйте, скажите пожалуйста почему я отформатировал SD - карту, создал SD - карту leJOS EV3, но модуль пишет ошибку установки, даже пробовал заново всё сделать. Как мне это исправить?
Цитировать
Alex
0 #23 Alex 14.08.2020 19:34
Цитирую Максим Харлабо:
Здравствуйте, скажите пожалуйста почему я отформатировал SD - карту, создал SD - карту leJOS EV3, но модуль пишет ошибку установки, даже пробовал заново всё сделать. Как мне это исправить?

Добрый день. У вас должна быть карта объёмом 2 - 32 Гб (SDXC - карты не поддерживаются).
Цитировать
Максим Харлабо
-2 #24 Максим Харлабо 23.08.2020 19:55
Цитирую Alex:
Цитирую Максим Харлабо:
Здравствуйте, скажите пожалуйста почему я отформатировал SD - карту, создал SD - карту leJOS EV3, но модуль пишет ошибку установки, даже пробовал заново всё сделать. Как мне это исправить?

Добрый день. У вас должна быть карта объёмом 2 - 32 Гб (SDXC - карты не поддерживаются).

У меня SD - карта SDHC всё равно не действует. Ошибка: Install error: Missing jre.
Цитировать
Alex
0 #25 Alex 23.08.2020 21:46
Цитирую Максим Харлабо:
У меня SD - карта SDHC всё равно не действует. Ошибка: Install error: Missing jre.

Так вот основная ошибка: Missing jre. Установите JDK, как написано в статье.
Цитировать
misha589
0 #26 misha589 30.10.2020 16:45
Здравствуйте, а вы бы могли дать силку для скачивания java, которая будет записываться на cd карту без регистрации.
Цитировать
Alex
0 #27 Alex 02.11.2020 10:13
Цитирую misha589:
Здравствуйте, а вы бы могли дать силку для скачивания java, которая будет записываться на cd карту без регистрации.

Безопаснее скачивать из официального источника с регистрацией. Левых ссылок у нас нет.
Цитировать
Alex
0 #28 Alex 28.11.2020 21:22
Цитирую misha589:
Здравствуйте, а вы бы могли дать силку для скачивания java, которая будет записываться на cd карту без регистрации.

Такой ссылки нет. При скачивании из оф. источника нужна регистрация.
Цитировать
Максим Харлабо
0 #29 Максим Харлабо 21.07.2021 19:34
Здравствуйте, подскажите пожалуйста, он установил leJOS, но почему-то не запускается. Написано: "leJOS EV3" и всё, как мне это исправить?
Цитировать

Добавить комментарий