Книжная полка робототехника. Курс программирования робота EV3 в среде Lego Mindstorms EV3 Самоучитель по программированию на ev3

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

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

Подготовка 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 > ».

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

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

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

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

Нажмите кнопку «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 ). Для скачивания вам нужно будет зарегистрироваться, если вы этого ещё не делали.

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

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

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

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

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

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

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

Установка приложения 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 1428

В папке с приложением вы можете найти файл «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 --- s.b.c.e.t.TomcatEmbeddedServletContainer: Tomcat started on port(s): 4321/http 2015-08-06 09:15:28.704 INFO 10236 --- 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 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 ». Эту процедуру нужно будет делать один раз для каждого нового проекта.

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

Подключение модуля 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. Щёлкните по нему и затем щёлкните «Далее ».

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

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

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

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

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

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

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

    Инструкция для сборки стандартной приводной платформы Educator EV3
    Программа для Scratch 2 для тестирования взаимодействия с роботом EV3 Версия:от 07.08.2015

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

    07.08.2015 45.65 KB 1157

    Итог

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

    Открылась Книжная полка Городского методического Центра по образовательной робототехнике. В данном разделе каждый из вас может ознакомиться с новыми книгами.

    Использование LEGO-роботов в инженерных проектах школьников. Отраслевой подход

    В методическом пособии представлены проекты школьников, которые были реализованы на научно-образовательных школах «Лифт в будущее» Некоммерческого партнёрства содействия развитию интеллектуального и творческого потенциала молодёжи. Ученики вместе с экспертами и представителями российских инновационных компаний разрабатывали решения, направленные на модернизацию существующих в регионах России производств и на внедрение новых технологий. Осуществляя обучение школьника в той или иной отрасли, авторы формируют осознанный подход к выбору специальности и стремятся к тому, чтобы будущие технологические лидеры нашли применение своим идеям в России. Такой инженерно-отраслевой принцип позволит развить существующие подходы в преподавании робототехники в школе и даст новое направление в развитии проектной деятельности учащихся.
    Издание рассчитано на учителей средней и старшей школы, а также будет полезно школьникам основной школы при проведении проектной деятельности.


    Белиовская Л.Г. Узнайте, как программировать на LabVIEW. – Изд-во ДМК, 2013. – 140 с.

    АННОТАЦИЯ К КНИГЕ

    Учебник по программированию на LabVIEW написан специально для изучения этой среды в курсе школьного предмета «Информатика». Эта книга может быть рекомендована для изучения темы «Алгоритмизация и объектно-ориентированное программирование» учащимся 6–9-х классов общего образования в школе в рамках Федерального государственного образовательного стандарта. Книга может быть использована для работы в общеобразовательных классах и классах естественно-математического и информационно-технологического профиля. Содержание книги поясняется рисунками, примерами и упражнениями. Предложены проверочные работы по трем темам. Материал пособия был апробирован в 6 классе. Рекомендуется затрачивать по 2 часа на прохождение каждого из уроков. Проверочные работы рассчитаны каждая на 1 урок. После каждой проверочной работы желательно проводить работу над ошибками с обсуждением ответов на вопросы. Ориентировочно курс рассчитан на 28 часов.
    Оглавление и отрывки из глав

    Руководство преподавателя по ROBOTC® для LEGO® MINDSTORMS®

    Филиппов С.А. Робототехника для детей и родителей. – 3-е издание

    Уже много лет мы читаем в книгах и газетах, слышим по радио и из телевизора, что скоро нас будут окружать умные, добрые и интересные роботы. Однако в реальной жизни роботов все нет и нет. Лишь несколько лет назад знаменитая датская компания Lego сделала роскошный подарок любителям мехатроники, роботов и других кибернетических игр и игрушек: выпустила робототехнический конструктор Lego Mindstorms NXT, который с успехом используется как дома, так и в учебе.
    Эта книга одна из первых на русском языке поможет не только самому строить и программировать разнообразных роботов из Lego, но и научить этому других школьников, студентов. В ней рассматриваются основы конструирования, программирования на языках NXT-G, Robolab и RobotC, а также элементы теории автоматического управления.
    В третьем издании добавлены описания усовершенствованых конструкций роботов, а также рассмотрены новые задачи: прохождение лабиринта, роботы-манипуляторы, инверсная линия и др. По-прежнему большое внимание уделено алгоритмам управления: от П- и ПД-регулятора для движения по линии до ПИД-регулятора для балансирующего робота-сигвея.
    Предназначена для преподавателей кружков робототехники школ и вузов, для широкого круга читателей.
    Купить можно в интернет-магазине http://technocontext.ru/catalog/13/ , а также здесь: http://wroboto.ru/oborydovanie/about/books/books_3.html
    С содержанием книги вы можете ознакомиться


    Книга «Программируем NXT в Lab VIEW 2009». Издательство «ДМК Пресс»

    В книге представлены уроки изучения популярного инженерного языка программирования LabVIEW 2009 в школе в соответствии со школьной программой по информатике, и
    подробно рассмотрен процесс создания оконных приложений в среде LabVIEW.
    2009 Education Edition с использованием NXT.
    Книга поступила в продажу в конце апреля 2010.

    Первый шаг в робототехнику. Практикум для 5–6 классов

    Практикум является частью учебно-методического комплекта для средней школы, в который также входит рабочая тетрадь для 5–6 классов. Цель практикума – дать школьникам современное представление о прикладной науке, занимающейся разработкой автоматизированных технических систем, – робототехнике. Его можно использовать как для занятий в классе, так и для самостоятельной подготовки.
    Учебные занятия с использованием данного практикума способствуют развитию конструкторских, инженерных и общенаучных навыков, помогают по-другому посмотреть на вопросы, связанные с изучением естественных наук, информационных технологий и математики, обеспечивают вовлечение учащихся в научно-техническое творчество.
    Практикум содержит описание актуальных социальных, научных и технических задач и проблем, решение которых еще предстоит найти будущим поколениям, и позволяет учащимся почувствовать себя исследователями, конструкторами и изобретателями технических устройств.
    Заглянуть внутрь

    Книга «Уроки ЛЕГО-конструирования в школе». – М.: Издательство БИНОМ, 2011.

    Методическое пособие содержит описание методики, позволяющей встроить в учебный процесс технологии конструирования с использованием ИКТ, ознакомить учителей с особенностями ЛЕГО-конструирования и с возможностями ЛЕГО-конструирования и свариантами проектирования ЛЕГО-моделей для школьников разного возраста. Книга содержит материалы по обеспечению методической поддержки конкурсов для учащихся, нормативному обеспечению подготовки и проведения соревнований по ЛЕГО-конструированию.
    Книга предназначается для учителей-предметиков, учителей начальных классов, педагогов дополнительного образования, методистов; содержит материалы по обеспечению методической поддержки конкурсов для учащихся, нормативному обеспечению подготовки и проведения соревнований по ЛЕГО-конструированию.


    Заглянуть внутрь (несколько страниц в формате PDF)

    Юревич Е. П. Основы робототехники. – 3-е изд.

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

    Робототехника охватывает практически все сферы человеческой деятельности: промышленность, транспорт, сельское хозяйство, здравоохранение, быт, исследование и освоение океана и космоса, выполнение работ в других экстремальных условиях, научные исследования. В книге отражены все этапы развития робототехники от возникновения первых <<Механических людей>> до перспектив создания роботов разумных, постепенно приближающиеся по своим возможностям к человеку. Рассмотрено устройство роботов и других средств робототехники, способы и системы управления, принципы проектирования и применения.

    Книга соответствует государственному стандарту по дисциплине «Основы робототехники» и предназначено для студентов профильных направлений. Также представляет интерес для широкого круга читателей. + СД.

    В книгу вложен компакт-диск, который содержит динамические иллюстрации с комментариями автора.

    Клаузен, Петер. Компьютеры и роботы. – М.: Мир книги, 2006.

    Хотите узнать много нового и интересного, весело провести время и найти ответы на интересующие вопросы? Добро пожаловать в удивительный мир РОБОТОВ. Почему чешский писатель Карел Чапек назвал искуccтвенных рабов-рабочих роботами? Зачем роботов отправляют в космос? Всё о том, как устроены компьютеры и роботы, как их применяют, где они работают и какими они будут завтра.Термину «робот» в нынешнем году исполняется 85 лет. Это широко использующееся сейчас слово впервые применил чешский писатель Карел Чапек в пьесе R.U.R. (Rossum"s Universal Robots) для описания человекоподобных механизмов, выполняющих рутинную работу.


    Макаров И.М., Топчеев Ю.И. РОБОТОТЕХНИКА. История и перспективы. – М.: Наука, Издательство МАИ, 2003.
    Авторы книги – Игорь Михайлович Макаров и Юрий Иванович Топчеев – популярно рассказывают о той роли, которую сыграли роботы в истории развития цивилизации: от роботов Средневековья до новых типов роботов для применения в космосе.
    Книга имеется в издательстве «Наука».

    Задача данного курса - познакомить вас с конструктором Lego mindstorms. Научить собирать базовые конструкции роботов, программировать их под определенные задачи, разобрать с вами базовые решения наиболее распространенных задач-соревнований.

    Курс рассчитан на делающих первые шаги в мир робототехники с помощью конструктора Lego mindstorms. Хотя все примеры роботов в этом курсе сделаны с помощью конструктора Lego mindstorms EV3, программирование роботов объясняется на примере среды разработки Lego mindstorms EV3, тем не менее, владельцы Lego mindstorms NXT тоже могут присоединиться к изучению данного курса, и, надеемся, найдут для себя тоже полезное...

    1.1. Что в наборе? Классификация деталей, крепление деталей между собой, главный блок, моторы, датчики

    Давайте начнем знакомиться с конструктором Lego mindstorms EV3. Распечатав конструктор, мы найдем в нем множество разнообразных деталей. Если вы знакомы с традиционными кирпичиками Lego, но раньше вам не приходилось сталкиваться с наборами Lego серии Technic, ты, возможно, вы будете слегка обескуражены видом непривычных деталей. Однако, разобраться с ними совсем несложно. Итак, условно разделим все детали на несколько категорий. На рисунке представлены детали, называемые балками (иногда для этих деталей можно встретить название - бим (beam)) Балки исполняют роль каркаса (скелета вашего робота),

    Рис. 1

    Следующая группа деталей служит для соединения балок между собой, с блоком и датчиками. Детали, имеющие крестообразное сечение, называются осями (иногда штифтами) и служат для передачи вращения от моторов к колесам и шестерням. Детали, похожие на цилиндры (имеющие в сечении окружность) называются пинами (от англ. pin - шпилька),

    Рис. 2

    Представленный ниже рисунок демонстрирует вам различные варианты соединения балок с помощью пинов.

    Рис. 3

    Следующую группу деталей называют коннекторами. Их главная задача - соединение балок в различных плоскостях, изменение угла соединения деталей и подсоединение датчиков к роботу.

    Рис. 4

    Переходим к следующей группе деталей. Шестерни предназначены для передачи вращения от моторов к другим элементам конструкции робота. Как правило, это колеса, но в тоже время шестерни могут широко применяться и в различных конструкциях роботов, не предполагающих вращение. С ними мы непременно еще не раз встретимся при конструировании сложных механизмов.

    Рис. 5

    Ну и, конечно же, движение в пространстве нашему роботу обеспечивают различные колеса и гусеницы, представленные в наборе.

    Рис. 6

    Следующая группа деталей несет в себе декоративные функции. С их помощью мы можем украсить нашего робота, придать ему неповторимый вид.

    Рис. 7

    В набор Lego mindstorms EV3 входят два больших мотора. Моторы выполняют роль мышц или силовых элементов нашего робота. Большие моторы, наиболее часто используются для передачи вращения на колеса, тем самым, обеспечивая движение робота. Можно сказать, что эти моторы выполняют ту же роль, что и ноги человека.

    Рис. 8

    Один средний мотор, который также входит в набор Lego mindstorms EV3 выполняет роль движущей силы для различного навесного оборудования робота (клешни, модули захвата, различные манипуляторы) По аналогии с большими моторами отведем среднему мотору ту же роль, которую у нас выполняют руки.

    Рис. 9

    Датчики, входящие в набор Lego mindstorms, представляют роботу необходимую информацию из внешней среды. Главная задача программиста - научиться извлекать и анализировать информацию, поступающую с датчиков, а затем подавать верные команды на моторы для выполнения определенных действий.

    Рис. 10

    Ну и основным элементом нашего конструктора является главный блок EV3. В этом корпусе заключен мозг нашего робота. Именно здесь выполняется программа, получающая информацию с датчиков, обрабатывающая её и передающая команды моторам.

    Рис. 11

    1.2. Собираем робота, с помощью которого будем изучать данный курс

    Настало время - собрать нашего первого робота.

    На первом этапе конструкция нашего робота будет следующей:

    • Два больших мотора, для того чтобы мы смогли научить нашего робота поворачивать
    • Два ведущих колеса, на которые будут передаваться усилия моторов.
    • Одно свободно вращающееся колесо или шаровая опора, которая будет придавать устойчивость нашему роботу.
    • Один главный блок EV3, который будет хранить и выполнять нашу программу.
    • Некоторое количество деталей для придания конструкции законченного вида.

    Такой простейший робот называется роботом-тележкой.

    Вы можете попробовать поэкспериментировать или собрать робота по предложенной инструкции в зависимости от версии вашего набора EV3:

    Как только наш робот будет готов - начнем изучение среды программирования.

    1.3. Знакомство со средой программирования

    Первым делом загружаем среду программирования Lego mindstorms EV3. В главном меню программы выбираем: "Файл" - "Новый проект" или нажимаем "+" , показанный на рисунке стрелкой.

    Рис. 12

    В одном проекте может находиться множество программ. Для того, чтобы проект корректно загружался в нашего робота необходимо в названии проекта и программ использовать только буквы латинского алфавита! Давайте назовем наш проект lessons (уроки), а первую программу - lesson-1 (урок-1). Для того, чтобы дать название проекту, воспользуемся главным меню программы: "Файл" - "Сохранить проект как..." Чтобы изменить название программы - следует сделать двойной щелчок мышью на её названии (program) и вписать свое название.

    Включим центральный блок нашего робота. Для этого нажмем на центральную (самую темную) кнопку блока. С помощью USB-кабеля, идущего в комплекте с конструктором, подключим робота к компьютеру. Успешное подключение робота отразится на вкладке аппаратных средств программного обеспечения EV3 в правом нижнем углу программы.

    Рис. 13

    Если подключение робота прошло успешно, то приступим к программированию и создадим нашу первую программу.

    1.4. Наша первая программа!

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

    Рис. 14

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

    Рис. 15

    Но, если вы собирали робота по инструкции, предложенной выше, то, наверное, обратили внимание, что в ней отсутствует схема подключения моторов и датчиков. Настало время с этим разобраться. Блок EV3 имеет 4 порта, обозначенных цифрами: 1 , 2 , 3 , и 4 . Эти порты служат для подключения только датчиков. Для подключения моторов служат порты, обозначенные буквами: A , B , C и D . Можно подключать моторы в любые свободные порты, предназначенные для них. Но в случае управляемой тележки рекомендовано подключать моторы в порты: B и C . Давайте сейчас возьмем два соединительных кабеля длиной 25 см, левый мотор подключим к порту B , а правый - к порту C . Именно это подключение выбрано по умолчанию в блоке "Рулевое управление". Специальная кнопка, обозначенная стрелкой, отвечает за режим работы блока. Для первой программы выберем режим: "Включить на количество оборотов" . Значение 0 под черной стрелочкой на блоке означает прямолинейное движение, когда оба мотора крутятся с одинаковой скоростью. Число 75 задает мощность моторов, чем больше это значение, тем быстрее поедет наш робот. Цифра 2 задает количество оборотов каждого из моторов, на которое они должны провернуться.

    Итак, наша первая программа готова. Загружаем ее в нашего робота. Для этого нажимаем кнопку "Загрузить" на вкладке аппаратных средств и отсоединяем USB-кабель от робота.

    Рис. 16

    Устанавливаем робота на ровную поверхность. С помощью стрелок на блоке EV3 заходим в папку нашего проекта, выбираем программу lesson-1 и центральной кнопкой блока EV3 запускаем ее на выполнение.

    На втором занятии мы детальнее познакомимся со средой программирования и подробно изучим команды, задающие движение нашему роботу-тележке, собранному на первом занятии. Итак, давайте запустим среду программирования Lego mindstorms EV3, загрузим наш проект lessons.ev3, созданный ранее и добавим в проект новую программу - lesson-2-1. Программу можно добавить двумя способами:

    • Выбрать команду "Файл"-"Добавить программу" (Ctrl+N) .
    • Нажать "+" на вкладке программ.

    Рис. 1

    2.1. Палитры программирования и программные блоки

    Давайте теперь обратим свой взгляд в нижний раздел среды программирования. Из материала первого занятия мы уже знаем, что здесь находятся команды для программирования робота. Разработчики применили оригинальный прием и, сгруппировав программные блоки, присвоили каждой группе свой цвет, назвав группы палитрами.

    Зеленая палитра называется: "Действие" :

    Рис. 2

    На данной палитре расположены программные блоки управления моторами, блок вывода на экран, блок управления индикатором состояния модуля. Сейчас мы начнем изучение этих программных блоков.

    2.2. Зеленая палитра - блоки действия

    Первый программный блок зеленой палитры предназначен для управления средним мотором, второй блок - для управления большим мотором. Так как параметры этих блоков идентичны - рассмотрим настройку на примере блока - большой мотор.

    Рис. 3

    Для правильной настройки блока управления большим мотором мы должны:

    1. Выбрать порт, к которому подключен мотор (A, B, C или D) (Рис. 3 поз. 1)
    2. Выбрать режим работы мотора (Рис. 3 поз. 2)
    3. Настроить параметры выбранного режима (Рис. 3 поз. 3)

    Чем же отличаются режимы? Режим: "Включить" включает мотор с заданным параметром "Мощность" и после этого управление передается следующему программному блоку программы. Мотор будет продолжать вращаться, пока не будет остановлен следующим блоком "Большой мотор" с режимом "Выключить" или следующий блок "Большой мотор" не будет содержать другие параметры выполнения. Режим "Включить на количество секунд" включает большой мотор с установленной мощностью на указанное количество секунд, и только по завершению времени мотор остановится, а управление в программе перейдет к следующему программному блоку. Аналогично поведет мотор себя в режимах "Включить на количество градусов" и "Включить на количество оборотов" : только после выполнения установленного вращения мотора, он остановится и управление в программе перейдет к следующему блоку.

    Параметр мощность (на Рис. 3 мощность установлена в 75) может принимать значения от -100 до 100. Положительные значения мощности задают вращение мотора по часовой стрелке, отрицательные - против часовой. При значении мощности равном 0 мотор вращаться не будет, чем "выше" значение мощности, тем быстрее вращается мотор.

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

    Отдельно следует сказать о параметре "Тормозить в конце" . Данный параметр, если установлен в значение "Тормозить" заставляет мотор тормозить после выполнения команды, а если установлен в значение "Двигаться накатом" , то мотор будет вращаться по инерции, пока сам не остановится.

    Следующие два программных блока "Рулевое управление" и реализуют управление парой больших моторов. По умолчанию левый большой мотор подключается к порту "В" , а правый - к порту "С" . Но вы можете в настройках блока поменять порты подключения в соответствии с требованиями вашей конструкции (Рис. 4 поз. 1 ).

    Рис. 4

    Параметр "Рулевое управление" (Рис. 4 поз. 2 ) может принимать значения от -100 до 100. Отрицательные значения параметра заставляют робота поворачивать налево, при значении равном 0 робот движется прямо, а положительные значения заставляют робота поворачивать направо. Стрелка над числовым параметром меняет свою ориентацию в зависимости от значения, подсказывая тем самым направление движения робота (Рис. 5 ).

    Рис. 5

    Программный блок "Независимое управление моторами" похож на программный блок "Рулевое управление" . Он также управляет двумя большими моторами, только вместо параметра "Рулевое управление" появляется возможность независимого управления мощностью каждого мотора. При равном значении параметра "Мощность" для левого и правого мотора робот будет двигаться прямолинейно. Если на один мотор подать отрицательное значение мощности (например -50), а на второй - положительное значение (например 50), то робот будет разворачиваться на месте (Рис. 6 ).

    Рис. 6

    Режимы работы этих блоков аналогичны режимам блока управления одним мотором, поэтому дополнительного описания не требуют...

    2.3. Прямолинейное движение, повороты, разворот на месте остановка

    Итак, теперь мы можем написать программу движения робота по какому-либо маршруту.

    Задача 1: Проехать прямолинейно вперед на 4 оборота двигателя. Развернуться. Проехать на 720 градусов.

    Решение (Рис. 7 ):

    1. Используя программный блок "Рулевое управление" проехать вперед на 4 оборота.
    2. Используя программный блок "Независимое управление моторами" развернуться на месте (значение градусов придется подобрать экспериментально).
    3. Используя программный блок "Рулевое управление" проехать вперед на 720 градусов.

    Примечание: Почему при развороте пришлось подбирать значение градусов в блоке 2 ?. Разве не 360 градусов - искомая величина? Нет, если мы зададим значение параметра "Градусы" равным 360 , то тем самым заставим на искомую величину провернуться валы левого и правого моторов нашего робота. На какой угол провернется робот вокруг своей оси - зависит от размера (диаметра) колес и расстояния между ними. На Рис. 7 значение параметра "Градусы" равно 385 . Данное значение позволяет роботу, собранному по инструкции small-robot 45544 развернуться вокруг своей оси. Если у вас другой робот, то вам придется подобрать другое значение. Можно ли это значение найти математически? Можно, но об этом мы поговорим позднее.


    Рис. 7

    Задача 2: Установите на ровной поверхности какое-либо препятствие (банку, кубик, небольшую коробку), отметьте место старта вашего робота. Создайте в проекте новую программу: lesson-2-2, позволяющую роботу объехать вокруг препятствия и вернуться к месту старта.

    Сколько программных блоков вы использовали? Поделитесь своим успехом в комментарии к уроку...

    2.4. Экран, звук, индикатор состояния модуля

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

    Рис. 8

    Программный блок "Экран" имеет четыре режима работы: режим "Текст" позволяет выводить текстовую строку на экран, режим "Фигуры" позволяет отображать на экране одну из четырех геометрических фигур (прямая, круг, прямоугольник, точка), режим "Изображение" может вывести на экран одно изображение. Изображение можно выбрать из богатой коллекции изображений или нарисовать свое, используя редактор изображений. Режим "Окно сброса настроек" сбрасывает экран модуля EV3 к стандартному информационному экрану, показываемому во время работы программы.

    Рис. 9

    Рассмотрим параметры программного блока "Экран" в режиме "Текст" (Рис. 9 поз.1) . Строка, предназначенная для вывода на экран, вводится в специальное поле (Рис. 9 поз. 2) . К сожалению, в поле ввода текста можно вводить только буквы латинского алфавита, цифры и знаки препинания. Если режим "Очистить экран" установлен в значение "Истина" , то экран перед выводом информации будет очищен. Поэтому, если вам требуется объединить текущий вывод с информацией уже находящейся на экране, то установите этот режим в значение "Ложь" . Режимы "X" и "Y" определяют точку на экране, с которой начинается вывод информации. Экран блока EV3 имеет 178 пикселей (точек) в ширину и 128 пикселей в высоту. Режим "X" может принимать значения от 0 до 177, режим "Y" может принимать значения от 0 до 127. Верхняя левая точка имеет координаты (0, 0), правая нижняя (177, 127)

    Рис. 10

    Во время настройки программного блока "Экран" можно включить режим предварительного просмотра (Рис. 9 поз. 3) и визуально оценить результат настроек вывода информации.

    В режиме "Фигуры" (Рис. 11 поз. 1 ) настройки программного блока меняются в зависимости от типа фигуры. Так при отображении круга необходимо будет задать координаты "X" и "Y" центра окружности, а также значение "Радиуса" . Параметр "Заполнить" (Рис. 11 поз. 2) отвечает за то, что будет отображен либо контур фигуры, либо внутренняя область фигуры будет заполнена цветом, заданным в параметре "Цвет" (Рис. 11 поз. 3) .

    Рис. 11

    Для отображения прямой необходимо задать координаты двух крайних точек, между которыми располагается прямая.

    Рис. 12

    Чтобы отобразить прямоугольник следует задать координаты "X" и "Y" левого верхнего угла прямоугольника, а также его "Ширину" и "Высоту" .

    Рис. 13

    Отобразить точку проще всего! Укажите лишь её координаты "X" и "Y".

    Режим "Изображение" , наверное, самый интересный и самый используемый режим. Он позволяет выводить на экран изображения. Среда программирования содержит огромную библиотеку изображений, отсортированную по категориям. В дополнение к имеющимся изображениям вы всегда можете создать свой рисунок и, вставив его в проект, вывести на экран. ("Главное меню среды программирования" - "Инструменты" - "Редактор изображения") . Создавая своё изображение, вы можете также вывести на экран символы русского алфавита.

    Рис. 14

    Как вы видите - отображению информации на экране главного модуля EV3 среда программирования придает огромное значение. Давайте рассмотрим следующий важный программный блок "Звук" . С помощью этого блока мы можем выводить на встроенный динамик блока EV3 звуковые файлы, тона произвольной длительности и частоты, а также музыкальные ноты. Давайте рассмотрим настройки программного блока в режиме "Воспроизвести тон" (Рис. 15) . В этом режиме необходимо задать "Частоту" тона (Рис. 15 поз. 1) , "Продолжительность" звучания в секундах (Рис. 15 поз. 2) , а также громкость звучания (Рис. 15 поз. 3) .

    Рис. 15

    В режиме "Воспроизвести ноту" вам вместо частоты тона необходимо выбрать ноту на виртуальной клавиатуре, а также установить длительность звучания и громкость (Рис. 16) .

    Рис. 16

    В режиме "Воспроизвести файл" вы можете выбрать один из звуковых файлов из библиотеки (Рис. 17 поз. 1) , либо, подключив к компьютеру микрофон, с помощью Редактора звука ("Главное меню среды программирования" - "Инструменты" - "Редактор звука") записать собственный звуковой файл и включить его в проект.

    Рис. 17

    Давайте отдельно рассмотрим параметр "Тип воспроизведения" (Рис. 17 поз. 2) , общий для всех режимов программного блока "Звук" . Если данный параметр установлен в значение "Ожидать завершения" , то управление следующему программному блоку будет передано только после полного воспроизведения звука или звукового файла. В случае установки одного из двух следующих значений начнется воспроизведение звука и управление в программе перейдет к следующему программному блоку, только звук или звуковой файл будет воспроизведен один раз или будет повторяться, пока не его не остановит другой программный блок "Звук" .

    Нам осталось познакомиться с последним программным блоком зеленой палитры - блоком . Вокруг кнопок управления модулем EV3 смонтирована цветовая индикация, которая может светиться одним из трех цветов: зеленым , оранжевым или красным . За включение - выключение цветовой индикации отвечает соответствующий режим (Рис. 18 поз. 1) . Параметр "Цвет" задает цветовое оформление индикации (Рис. 18 поз. 2) . Параметр "Импульсный" отвечает за включение - отключение режима мерцания цветовой индикации (Рис. 18 поз. 3) . Как можно использовать цветовую индикацию? Например, можно во время различных режимов работы робота использовать различные цветовые сигналы. Это поможет понять: так ли выполняется программа, как мы запланировали.

    Рис. 18

    Давайте используем полученные знания на практике и немного "раскрасим" нашу программу из Задачи 1.

    Задача 3:

    1. Воспроизвести сигнал "Start"
    2. Включить зеленую немигающую цветовую индикацию
    3. "Forward"
    4. Проехать прямолинейно вперед на 4 оборота двигателя.
    5. Включить оранжевую мигающую цветовую индикацию
    6. Развернуться
    7. Включить зеленую мигающую цветовую индикацию
    8. Отобразить на экране изображение "Backward"
    9. Проехать на 720 градусов
    10. Воспроизвести сигнал "Stop"

    Попробуйте решить задачу 3 самостоятельно, не подглядывая в решение! Удачи!

    Краткое описание


    В данном курсе рассмотрено:


    - выход из цикла;
    - работа с переключателем;

    Полное описание

    Lego Mindstorms EV3 далеко не самая сложная среда программирования. Но это не означает, что освоить её раз плюнуть. Для тех, кто ни разу до этого не программировал, её освоение может отнять не один год. И я не преувеличиваю. Без понятного пособия, и постоянной практики, освоение программирования роботов в Lego Mindstorms EV3 может занять до 2 лет.

    Не буду скрывать – есть хорошие книги по программированию на Lego Mindstorms EV3. Единственный их недостаток – это не самая сильная наглядность. В книгу не разместишь видео. Не запишешь голосовое объяснение «кода» программы.

    Именно поэтому, я сделал курс по программированию в Lego Mindstorms EV3 в формате коротких видео уроков.

    Состав курса.

    Данный видеокурс состоит из более чем 30 видео и 3 инструкций по сборке роботов.
    В данном курсе рассмотрено:
    - создание простейших программ;
    - выполнение программы в цикле;
    - выход из цикла;
    - работа с переключателем;
    - рассмотрены переменные и константы;
    - езда по черной линии на одном датчике цвета и т.д.

    Стоимость.

    На данный момент, цена курса 1000 р. П

    Вы можете возразить – что 1000 р. это дорого. Да, это дороже чем книга. Но в отличие от книги, Вы не просто прочитаете, а затем посмотрите картинки. Вы сможете посмотреть на роботе в действии воочию. И как минимум на видео. А если захотите, то и построите его по предложенной мной инструкции (всего их 3).
    И второе отличие от книги – это возможность задать вопрос по программированию Lego Mindstorms EV3 лично мне. Что – то в курсе непонятно, и вызывает вопросы? Не проблема. На сайте есть мои контакты. Берёте и спрашиваете.

    Гарантия.

    Если после изучения курса, Вы так и не сможете программировать, я верну Вам деньги. Для этого напишите мне на e-mail, что желаете вернуть деньги, и я сделаю Вам возврат.

    P . S . Курс будет дорабатываться и видоизменятся. После его покупки, он будет доступен в личном кабинете неограниченное количество времени. Поэтому купить сейчас действительно выгодно.

    Демо - доступ

    Sp-force-hide { display: none;}.sp-form { display: block; background: #ffffff; padding: 15px; width: 450px; max-width: 100%; border-radius: 8px; -moz-border-radius: 8px; -webkit-border-radius: 8px; border-color: #dddddd; border-style: solid; border-width: 1px; font-family: Arial, "Helvetica Neue", sans-serif; background-repeat: no-repeat; background-position: center; background-size: auto;}.sp-form input { display: inline-block; opacity: 1; visibility: visible;}.sp-form .sp-form-fields-wrapper { margin: 0 auto; width: 420px;}.sp-form .sp-form-control { background: #ffffff; border-color: #cccccc; border-style: solid; border-width: 1px; font-size: 15px; padding-left: 8.75px; padding-right: 8.75px; border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; height: 35px; width: 100%;}.sp-form .sp-field label { color: #444444; font-size: 13px; font-style: normal; font-weight: bold;}.sp-form .sp-button { border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; background-color: #0089bf; color: #ffffff; width: auto; font-weight: 700; font-style: normal; font-family: Arial, sans-serif; box-shadow: none; -moz-box-shadow: none; -webkit-box-shadow: none;}.sp-form .sp-button-container { text-align: left;}



    Понравилась статья? Поделиться с друзьями: