Средства программирования
Контроллеры LEGO Mindstorms NXT могут программироваться с использованием как графических, так и текстовых сред разработки. В графических средах программирования программы «собираются» из отдельных «кубиков», каждый из которых представляет набор определенных команд. Графические среды программирования наглядны и очень просты в использовании, что позволяет быстро освоить их человеку с любым уровнем подготовки. Самым распространенным примером подобной среды является среда NXT-G. Однако недостатком графических сред является сложность разработки объемных программ (ввиду большого количества блоков), а также ограниченные функциональные возможности.
Другим типом сред программирования являются текстовые среды. В настоящей работе для разработки программ использовалась среда RobotC – текстовая среда программирования, позволяющая разрабатывать программы для управления LEGO Mindstorms, используя популярный язык программирования Си. Среда разработана в Академии Робототехники Карнеги-Меллона и ориентирована в первую очередь на студентов. RobotC обладает простым в использовании интерфейсом, а также имеет мощный интерактивный отладчик, позволяющий производить отладку программы в режиме реального времени. Это значительно сокращает время, необходимое для поиска и исправления ошибок в программе. Для выполнения программ, написанных на RobotC, необходимо предварительно загрузить специальную прошивку. Использование данной прошивки позволяет получить доступ к большим возможностям управляющего контроллера, а также увеличить скорость работы программ.
Порты модуля EV3
С одной стороны, блок EV3 оснащен четырьмя портами входа для подключения различных датчиков.
порты блока
Также сбоку есть дополнительный USB — порт, который можно использовать для чтения USB-flash накопителей, подключения Wi-Fi приемника WiFi. Адаптер нужно приобретать отдельно. Flash память адаптера 16 Мб. При помощи этого порта можно создать последовательную цепь микрокомпьютеров EV3. Всего можно последовательно соединить до четырех программируемых блоков управления EV3.
соединение микроконтроллеров
Порты входа обозначаются цифрами от одного до четырех. На другой стороне модуля есть четыре порта выхода, куда происходит подключение моторов. Это позволяет создавать сложные и функциональные модели роботов. Порты выхода обозначаются буквами A, B, C, D. Также со стороны портов выхода имеется мини – USB порт. Он позволяет при помощи USB кабеля соединять модуль EV3 с компьютером.
С этой же стороны блока есть слот для чтения карт формата микро-USB. Этот слот позволяет увеличить объем памяти доступной для хранения данных микрокомпьютера EV3 до 32 гигабайт. SD карта в комплект не входит и покупается отдельно.
Пример простой программы микрокомпьютера EV3
Например, стоит задача движения робота с двумя большими моторами вперед пять секунд. Для этого мы выбираем при помощи прерывистой линии переходим в блоки действий и выбираем блок «Рулевое управление». Этот блок выглядит как сдвоенная вращающаяся передняя часть большого мотора. Нажатием на центральную кнопку подтверждаем выбор.
рулевое управление
Блок рулевого управления устанавливается между блоком «Начало» и «Цикл». Повторным нажатием на центральную кнопку мы переходим в настройки блока, где нажатием на кнопки «Вверх» и «Вниз» можно изменять направление движения робота. По умолчанию у нас в блоке выбраны большие моторы в портах B и C. Также по умолчанию у нас стоит движение вперед.
Для того, чтобы робот ехал вперед пять секунд нужно добавить блок ожидания времени. Устанавливаем прерывистую стрелочку между блоком «Рулевое управление» и блоком «Цикл» и переходим при помощи кнопок управления модулем в палитру блоков ожидания. Находим блок ожидания времени, который выглядит как часы и выбираем. Нажатием средней кнопки подтверждаем выбор.
ожидание времени
Блок «Ожидание времени» устанавливается после блока «Рулевое управление» перед блоком «Цикл». Повторное нажатие центральной кнопки на блоке «Ожидания времени» позволяет зайти в настройку времени. Стрелочками «Вверх» и «Вниз» выбираем значение пять секунд и нажатием на центральную кнопку подтверждаем выбор. В своей программе между блоками можно передвигаться при помощи кнопок «Влево» и «Вправо».
На всякий случай нужно проверить значение блока «Цикл» и при необходимости устанавливаем значение в единицу, для того, чтобы программа выполнилась только один раз. Чтобы запустить программу на выполнение переходим в блок «Начало» и нажимаем центральную кнопку. Робот движется вперед пять секунд, после чего останавливается. Программа выполнена.
Загрузки для наборов серии «Машины и механизмы»
Получите учебные материалы
В этом разделе вы найдете учебные материалы для занятий по предметам STEM используя задания «Машины и механизмы» для начальной и основной школы. Каждый Комплект имеет дидактические материалы для педагога с рекомендациями и разъяснениями, пособия для обучающихся, инструкции по сборке необходимых моделей и инструменты оценки успеваемости. Для получения справочной информации о начале работы перейдите в раздел «Поддержка».
Комплект заданий «Первые механизмы»
(Mac OS) Скачать
Для использования данного Комплекта заданий приобретите набор «Простые механизмы» (арт. 9656). Этот материал расчитан на детей дошкольного возраста. В Комплект входят 16 занятий, в ходе которых ребята узнают что такое зубчатое колесо, рычаг, вал, и как это все взаимодействует друг с другом. Почему колесо крутится, кран опускает и поднимает ковш. Разве любобытные детишки не задают этих вопросов? Данный комплект заданий ответит на все вопросы и ребята наглядно увидят устройство простейших механизмов. Комплект включает в себя технологические карты занятий и рабочие листы для обучающихся.
Комплект заданий «Простые механизмы»
Windows (7, 8.1, 10) Скачать
Для использования данного Комплекта заданий необходимо приобрести набор «Простые механизмы» (арт. 9689). Эти материалы предназначены для учеников начальной школы, всего 20 заданий. Они предназначены для изучения устройства и принципов действия машин и механизмов, которыеокружают нас в повседневной жизни. Комплект включает в себя технологические карты занятий и рабочие листы для обучающихся.
Комплект заданий «Технология и основы механики. Задания базового уровня»
(Mac OS) Скачать
Для использования данного Комплекта заданий необходимо наличие набора «Технология и основы механики» (арт. 9686). 48 уроков познакомят учащихся с принципом действия простых машин и машин с приводным двигателем. Специальные творческие задания научат детей к самостоятельному мышлению, умению сформировать задание и выполнить его. Комплект включает в себя технологические карты занятий и рабочие листы для обучающихся.
Комплект заданий «Технология и основы механики. Задания повышенной сложности»
Windows (7, 8.1, 10) Скачать
Для использования данного Комплекта заданий необходимо наличие набора «Технология и основы механики» (арт. 9686). В этот Комплект заданий состоит из 28 уроков повышенной сложности и творческих заданий. Дети сами смогут проектировать и конструировать собственные модели механизмов. Комплект включает в себя технологические карты занятий и рабочие листы для обучающихся.
Комплект заданий «Возобновляемые источники энергии»
(Mac OS) Скачать
Для использования данного Комплекта заданий необходимо наличие наборов «Технология и основы механики» (арт. 9686) и «Возобновляемые источники энергии» (арт. 9688). Где и как применяются возобновляемые источники энергии? Ребята смогут познакомится с видами источников энергии и придумывать новые проекты. В комплект входят 20 проектных работ. Комплект включает в себя технологические карты занятий и рабочие листы для обучающихся.
Комплект заданий «Пневматика»
Windows (7, 8.1, 10) Скачать
Для использования данного Комплекта заданий необходимо наличие наборов «Технология и основы механики» (арт. 9686) и «Пневматика» (арт. 9641). С пневматическими устройствами дети встречаются в повседневной жизни, но не всегда задумываются, как работает тот или иной механизм. У вас есть уникальная возможность помочь им изучить методы использования пневматических устройств в реальной жизни. В комплекте 12 работ, заметки для учителя и рабочие листы для учащихся.
Программирование с EV3
Упрощенная версия ПО LME EV3 Для планшетных компьютеров и сенсорных устройств под управлением iOS, Android, Chromebook и Windows 10
Приложение «Программирование с EV3» — это оптимальное решение для планшетов и сенсорных устройств Windows 10. Благодаря интерфейсу, разработанному специально для мобильных операционных систем, работать с EV3 с помощью планшета стало невероятно удобно. «Программирование с EV3» предоставляет ученикам инструменты, необходимые для изучения и программирования роботов, используя сочетание графического языка программирования из ПО «Лаборатория EV3» и безграничных возможностей портативных устройств.
Основные возможности
- Инструкции по началу работы — помогите своим ученикам быстро начать работу с новой робототехникой.
- Интуитивно понятная среда программирования с сенсорным управлением — управляйте своим роботом и датчиками, используя тот же графический интерфейс, что и в настольном ПО «Лаборатория EV3» (доступен ограниченный набор инструментов программирования и программных блоков).
- Портативность — наслаждайтесь безграничными возможностями беспроводного портативного устройства.
- Совместимость — экспортируйте свои проекты из приложения «Программирование с EV3» для последующей работы с ними в настольной версии «Лаборатории EV3».
Доступные комплекты учебных материалов*
- Инженерные проекты EV3 (доступно 3 проекта)
- Программа по информатике EV3
Языки интерфейса**
- Немецкий
- Английский (США)
- Английский (Великобритания)
- Испанский
- Французский
- Итальянский
- Японский
- Корейский
- Норвежский
- Голландский
- Португальский (бразильский вариант португальского языка)
- Русский
- Шведский
- Упрощенный китайский
*Комплекты учебных проектов доступны только на некоторых языках. Дополнительные уроки можно бесплатно загрузить отсюда.
** Версия для Chromebook доступна только на следующих языках: английский (США), английский (Великобритания) и английский (Австралия).
Предлагаемые направления для планирования урока
Имеется масса способов использования LEGO Mindstorms EV3 для достижения Ваших конкретных целей обучения. На следующих страницах мы представили Вам пять направлений для планирования урока, которые позволяют Вам подготовить Ваш процесс обучения таким образом, чтобы он подходил разным учащимся.
Перед прочтением данного руководства, для того чтобы Вам было понятно о чем идет речь в этом самоучителе, Вам необходимо скачать и установить на свой компьютер среду разработчика LEGO Mindstorms Education (LME) EV3 ( Система Графического Программирования для LEGO Учитель/Ученик)
Запустить эту программу, нажав дважды на кнопку находящуюся на Вашем рабочем столе :
Справа в открывшемся окне выбрать закладку Самоучитель:
Цель данного направления заключается в предоставлении учащимся необходимых им знаний для работы с компонентами аппаратного обеспечения и программных средств, которые входят в состав программного обеспечения LEGO MINDSTORMS Education EV3 и комплекта контента самоучителя Robot Educator - Перворобот от Lego или просто "тележка".
Во-первых, пусть учащиеся посмотрят видео с кратким руководством по программированию для ознакомления с программным интерфейсом.
Во-вторых, пройдите с ними пособие «Настройка конфигурации блоков» в категории «Основы» комплекта контента самоучителя Robot Educator.
В-третьих, ознакомьте учащихся с режимами «Угол» и «Скорость» датчиков, пройдя с ними пособия «Гироскопический датчик» и«Скорость гироскопа» в категориях «Аппаратные средства» и «Более сложные действия».
В-четвертых, улучшите навыки управления Robot Educator-ом вашими учащимися и ознакомьте их с различными датчиками, пройдя остающиеся восемь пособий в категории «Основы».
Чтобы учащиеся могли создавать более сложные программы, пусть они пройдут пособия «Многозадачность», «Цикл», «Переключение» и «Многопозиционный переключатель» в категории «Более сложные действия».
Алгоритм навигации на плоскости
На базе алгоритма опроса гироскопа был разработан алгоритм навигации, позволяющий роботу самостоятельно возвращатсья в точку старта. Робот проезжает по нескольким точкам, координаты которых генерируются случайным образом, а затем возвращается в точку старта. Работает это следующим образом. В цикле от 1 до 10 (количество точек траектории задается в коде) с помощью генератора случайных чисел задаются новые значения угла поворота и расстояния до новой точки, затем робот перемещается в новую точку. Одновременно с этим, в цикле производится вычисление суммарного угла отклонения, а также значения проекций по осям OX и OY. Проекции вычисляются на основе суммарного угла поворота. После выполнения цикла прохождения траектории, вычисляется угол, на который необходимо повернуться роботу, чтобы начать движение к исходной точке по кратчайшему маршруту. Затем вычисляется расстояние по формуле модуля длины вектора, и робот движется к исходной точке. После прихода в исходную точку, робот вычисляет итоговое отклонение угла от начального значения при запуске и поворачивает на вычисленное значение угла. Программа завершается. Ниже представлено видео работы программы.
Прочее
А. Бобцов, С. Колюбин – Чемпионаты роботов |
С. Филиппов – Основы робототехники на базе конструктора LEGO Mindstorms NXT (журнал Компьютерные инструменты в школе, №1-6 2010 г.) |
В. Дусеев – Управление роботом LEGO NXT посредством Bluetooth |
А. Ушаков – Особенности реализации и настройки регуляторов для LEGO-роботов |
И. Шадрин – Учебное пособие по программированию в среде Lego Mindstorms EV3 |
NXT-G Tips & Tricks – Советы и подсказки по программированию в NXT-G. Язык английский |
Tutorial for Programming the LEGO MINDSTORMS NXT – Руководство по программированию LEGO Mindstorms NXT из среды NXT-G. Язык английский |
МАДИ Программирование роботов-манипуляторов – Методическое пособие по Mindstorms EV3 на графическом языке EV3-G. Язык русский |
А. Капитонов – Курс лабораторных работ по теории автоматического управления на основе LEGO Mindstorms NXT. Язык русский |
Обзор программы RoboLab для программирования NXT роботов. Язык русский |
Методическое пособие по Mindstorms EV3 на графическом языке EV3-G. Автор неизвестен. Язык русский |
LEGO Mindstorms EV3 Programming Basics – Отличное пособие для начала работы с Mindstorms EV3. Рассматривается графическое программирование в среде LEGO. Расписано все грамотно и подробно, с кучей поясняющих картинок. Язык английский |
Classroom Activities for the Busy Teacher: EV3 – Учебное пособие по программированию в среде Lego Mindstorms EV3. Язык английский |
PID Closed Loop Feedback Control Theory for Fun and Profit – Отличное руководство по теории, реализации и применению ПИД-регуляторов. Язык английский |
EV3 Programming overview for FLL coaches – Руководство по программированию Lego Mindstorms EV3 для тренеров FLL. Содержит краткий обзор набора и описание приёмов программирования. Язык английский |
EV3 Advanced Topics for FLL |
Digital control of line following robot – Исследование на тему разработки системы управления роботом на базе LEGO Mindstorms EV3 для следования по линии. Язык английский |
Embedded Control Systems LEGO Way – Исследование на тему разработки перевернутого маятника (двухколёсный сегвей) на базе LEGO Mindstorms NXT. Язык английский |
Segway Line Tracer Using Proportional-Integral-Derivative Controllers – Статья на тему разработки ПИД-регулятора для сегвея, следующего по линии. Используется LEGO Mindstorms NXT. Язык английский |
Using SLAM with LEGO Mindstorms to Explore and Map an Environment |
LabVIEW Toolkit for LEGO Mindstorms NXT |
Programming Solutions for the LEGO Mindstorms NXT – Небольшой обзор сред программирования для LEGO Mindstorms NXT. Язык английский |
Extreme NXT – Одна из лучших книг по нестандартному использованию конструктора Mindstorms NXT. В книге рассмотрено устройство контроллера, датчиков, моторов. Описаны способы расширения функциональных возможностей конструктора |
Extreme NXT – Второе издание популярной книги |
Creating Cool MINDSTORMS NXT Robots – Интересная книга по набору NXT от Daniele Benedettelli – одного из известных энтузиастов платформы MIndstorms |
LEGO Mindstorms Ultimate Builders Set |
LEGO NXT Features and limitations – Описание возможностей и ограничений набора LEGO Mindstorms NXT. Язык английский |
Building LEGO Robots for FIRST LEGO League |
NXT programs – Большое количество различных конструкций на базе набора NXT |
MindCub3r – Робот для сборки кубика Рубика. На сайте представлены инструкции и программы для наборов NXT и EV3 |
Домашняя страница Philippe Hurbain – энтузиаста, внесшего большой вклад в развитие платформы Mindstorms и одного из авторов книги Extreme NXT. На сайте много интересных статей с различными экспериментами и исследованиями возможностей конструктора LEGO Mindstorms |
Домашняя страница Daniele Benedettelli – энтузиаста, внесшего большой вклад в развитие платформы Mindstorms. На сайте много интересных проектов на базе конструктора LEGO Mindstorms |
Учебный курс по NXT-G Есикова Д.А. Сайт давно не обновлялся, однако сожержит большое количество интересных материалов по NXT |
Smallrobots.it – Эксперименты с ev3dev (Python, Java, C++) и Monobrick (C#) на LEGO Mindstorms EV3 |
ev3dev – операционная система для LEGO Mindstorms EV3, базирующаяся на Debian Linux. Позволяет программировать на многих современных популярных языках программирования, имеет большое количество библиотек и расширенную поддержку оборудования |
Работа с Bluetooth-модулем
Беспроводной Bluetooth-модуль, встроенный в контроллер NXT, может использоваться для удаленной загрузки и отладки программ, а также управления роботом. Управлять роботом можно как с компьютера (из среды RobotC), так и с помощью мобильного телефона, предварительно загрузив специальное приложение. Bluetooth-модуль контроллера NXT позволяет связывать до 4-х устройств. При подключении контроллеров друг к другу одно из устройств будет ведущим (master), а остальные будут ведомыми (slave). Такое разделение необходимо для контроля передачи данных. К одному ведущему контроллеру может подключаться до 3-х других ведомых (подчиненных) контроллеров.
Обмен информацией разрешен только между ведущим и ведомым устройствами. Контроллер, работающий в режиме ведомого устройства, не может подключаться к другим контроллерам, поэтому ведомые устройства не могут вести обмен без участия ведущего устройства. В каждый момент времени передавать данные в группе может только одно из устройств
Для организации беспроводного взаимодействия между несколькими контроллерами NXT необходимо предварительно их «познакомить» друг с другом – подключить их друг к другу один раз в ручном режиме. Это необходимо для того, чтобы произвести предварительную настройку параметров соединения (контроллеры обмениваются адресами, именами, списком поддерживаемых профилей, также проверяется совпадение паролей). В дальнейшем эту процедуру можно не повторять, за исключением случаев сброса всех настроек и соединений Bluetooth-модуля. Для соединения двух контроллеров NXT необходимо проделать следующее:
- Включить Bluetooth модуль на обоих контроллерах NXT;
- Проверить режим видимости (visibility), должно быть установлено значение «visible». Это необходимо, чтобы контроллеры могли друг друга обнаружить;
- На контроллере, который планируется использовать в качестве ведущего войти в меню поиска других устройств (Bluetooth -> Search) и запустить поиск;
- Выбрать ведомое устройство, затем подключиться, указав один из предложенных каналов подключения (поскольку подключение начинается с ведущего устройства, то будут предложены номера 1-3). Если нужного контроллера NXT нет в списке, то проверить настройки Bluetooth модуля ведомого устройства, а затем повторить поиск;
- После настройки параметров соединения ведущий контроллер издаст короткий звуковой сигнал и предложит ввести пароль для соединения. По умолчанию задан пароль 1234. При необходимости можно его изменить, но это не обязательно;
- Затем необходимо ввести указанный пароль на ведомом устройстве. Если пароли совпадут, то соединение будет успешно создано и в левом верхнем углу экрана контроллера NXT значок Bluetooth соединения изменится, возле него появится закрывающая угловая скобка.
Для управления роботом было решено собрать пульт управления. Конструкция довольно простая – контроллер и 4 датчика касания (кнопки). Пульт подключается по Bluetooth к роботу и позволяет дистанционно упралять роботом. Четыре датчика касания используются для движения, управление клешней производится нажатием на центральную (оранжевую) кнопку контроллера пульта. На рисунке ниже показан общий вид пульта.
Для обмена информацией между контроллерами в RobotC используются функции cCmdMessageRead и cCmdMessageWriteToBluetooth. При передаче указывается номер канал подключенного устройства, указатель на массив данных и его размер. Однако просто управлять роботом не так интересно. Поэтому мы собрали второго такого же робота и решили попробовать управлять с одного пульта двумя роботами. Что из этого вышло смотрите в видео.
При желании можно подключить еще одного робота. Всего к одному контроллеру подключается до трех устройств (в версии конструктора NXT). В новых конструкторах EV3 возможно объединение в сеть уже до 8 устройств, что позволяет собирать более сложных роботов.
Дополнительные элементы для LEGO MINDSTORMS
Помимо компонентов, входящих в наборы LEGO MINDSTORMS NXT, существует множество различных датчиков и других модулей как от компании «LEGO», так и от сторонних производителей (HiTechnic, MindSensors, TETRIX, Vernier, Dexter Industries). Продукция сторонних производителей сертифицируется компанией «LEGO», что подтверждает полную совместимость с конструктором, а также высокие стандарты качества и безопасности. С помощью дополнительных элементов можно значительно расширить функциональные возможности робота. Ниже рассмотрены лишь некоторые из них.
Датчик температуры LEGO. Датчик предназначен для контактного измерения температуры различных объектов. Температура может быть измерена в двух различных температурных шкалах: в градусах по Цельсию и по Фаренгейту (от -20° С до +120° С / от -4 F до +248 F).
Для измерения температуры датчик оснащен длинным металлическим зондом. Датчик не имеет разъёма подключения кабеля, кабель подключен к датчику через заднюю крышку и не отсоединяется. В целом датчик выполнен герметичным и неразборным. Вероятнее всего это сделано для защиты датчика при проведении измерений в различных экспериментах. Датчик может использоваться при проведении лабораторных занятий по физике (при изучении явлений теплопередачи, конвекции, трения и т.д.), или при решении с помощью конструктора какой-либо задачи непосредственно связанной с измерением температуры.
Датчик цвета LEGO. Датчик цвета является одним из двух сенсоров, которые заменяют роботу зрение. Фактически датчик цвета выполняет три различных функции. Он может работать как датчик цвета, измеряя цветовую интенсивность окрашенных поверхностей (распознаётся 6 цветов), работать как датчик освещённости, определяя интенсивность света в помещении, а также выполнять функции цветной лампы красного, зеленого или синего цветов.
Датчик цвета был добавлен в набор «LEGO MINDSTORMS NXT 2.0», который вышел в 2009 году. Датчик включает трехцветный RGB-светодиод и фотодиод. Последовательно излучая, красный, зелёный и синий цвета, датчик одновременно анализирует отражённый свет, который попадает в фотодиод. По результатам обработки измерений датчик определяет ближайшее значение цвета.
Датчик может работать в одном из в трёх режимов:
- различает шесть цветов (стандартные цвета деталей из конструкторов «LEGO»), или раскладывает принятый цвет на три цвета режима RGB (красный, зелёный, синий);
- фиксирует внешнее освещение и выдает результат в условных единицах;
- фиксирует отражённый свет, созданный собственным излучателем, и выдает результат в условных единицах.
При использовании только одного из трёх цветов, датчик работает аналогично стандартному датчику освещённости из набора NXT, выдавая результат в условных единицах по шкале от 0 до 100. Таким образом, помимо своей основной задачи – различать цвета, этот датчик полностью дублирует функции датчика освещённости.
Дополнительно датчик можно использовать в виде светодиодной лампы с тремя различными цветами. Возможно включение одного из трех цветов, или всех одновременно. Произвольное сочетание цветов, а также регулировка яркости не предусмотрены.
Максимальная эффективная дальность, на которой датчик цвета безошибочно определяет цвета объектов, составляет не более 1,5 см. Для корректного определения цвета необходимо держать датчик под прямым углом к поверхности. В ходе экспериментов удалось установить, что датчик корректно работает при частоте опроса до 100 Гц. Согласно результатам экспериментов Филиппе Харбейна (Philippe Hurbain) для одного корректного измерения датчику требуется около 2,5 мс, что теоретически позволяет опрашивать датчик цвета с частотой до 400 Гц.