Lego mindstorms ev3 управление телефоном
Обновлено: 16.05.2024
Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.
Обращаем Ваше внимание, что c 1 сентября 2022 года вступают в силу новые федеральные государственные стандарты (ФГОС) начального общего образования (НОО) №286 и основного общего образования (ООО) №287. Теперь требования к преподаванию каждого предмета сформулированы предельно четко: прописано, каких конкретных результатов должны достичь ученики. Упор делается на практические навыки и их применение в жизни.
Мы подготовили 2 курса по обновлённым ФГОС, которые помогут Вам разобраться во всех тонкостях и успешно применять их в работе. Только до 30 июня Вы можете пройти дистанционное обучение со скидкой 40% и получить удостоверение.
Столичный центр образовательных технологий г. Москва
Получите квалификацию учитель математики за 2 месяца
от 3 170 руб. 1900 руб.
Количество часов 300 ч. / 600 ч.
Успеть записаться со скидкой
Форма обучения дистанционная
Мастер – класс « Управление роботом с помощью планшета, смартфона».
В последнее время возрастает интерес со стороны государства к проблеме развития научно-технического творчества детей. Поэтому в Концепции развития дополнительного образования, принятой в сентябре 2014 г., дополнительное образование детей рассматривается как одно из приоритетных сфер инновационного развития России и должно соответствовать целям опережающего развития.
Таким требованиям отвечает LEGO-конструирование и робототехника.
Еще Конфуций говорил: «Скажи мне - и я забуду, покажи мне - и я запомню, дай мне сделать - и я пойму». Это наиболее применимо именно к использованию робототехники и теме нашего мастер-класса.
А сейчас немного о нас. В нашем центре реализуются направления: Легоконструирование с 2011 года и Робототехника с января 2016 г. Созданы условия для развития научно-технического творчества учащихся: кабинет оборудован наборами образовательных конструкторов LEGO MINDSTORMS edication EV 3: базовый и ресурсный наборы и программным обеспечением как инструментом для обучения учащихся конструированию, моделированию и компьютерному программированию.
Мы выстраиваем образовательную траекторию учащихся, начиная с 1 по 9 класс. В объединении занимаются более 80 мальчишек.
На уровне начального общего образования учащиеся занимаются легоконструированием по ДОП «Легоконструирование» для детей 7-10 лет.
На занятиях используется игровая и проектная деятельность. Слово «проект» удачно вписалось в систему работы. Дети имеют возможность проявить свою индивидуальность, реализовать свои творческие задумки, фантазию, выразить свое видение мира. Учитывая развитие современного образования, в программу включены занятия с выходом в интернет, мультимедийные презентации. В своей работе использую программу LEGO DigitalDesigner – это удобный виртуальный конструктор, позволяющий создавать различные ЛЕГО объекты как с нуля, так и разбирать или дополнять уже готовые предлагаемые конструкции, что очень нравится детям.
На уровне основного общего образования для детей 10-16 лет усложняется как уровень моделирования, так и уровень программирования роботов.
Безусловно, помимо основных занятий, мы проводим другие различные мероприятия, позволяющие привлечь интерес к данному направлению: соревнования по робототехнике, выставки работ из легоконструктора, викторины, мастер-классы по конструированию и программированию роботов, где юные таланты соревнуются и делятся собственным опытом.
Непосредственными участниками образовательного процесса являются не только учащиеся, но и родители.
Традиционным стало мероприятие совместно с родителями «ЛЕГО - БУМ!», которое вот уже в течение 3 лет проходит в атмосфере заинтересованности и плодотворного сотрудничества.
В прошлом году в рамках творческого отчета ребята 7 класса приняли участие в образовательном Форуме «Радуга творчества», где выступили перед родителями и своими сверстниками на тему: «ПОЧЕМУ Я ЗАНИМАЮСЬ ТЕМ, ЧЕМ ЗАНИМАЮСЬ!». И защитили проект «Робот Центрик», который встречал ребят, родителей, гостей и открывал творческий отчет «Весеннее настроение - 2018!» в конце учебного года.
Мы понимаем, что для развития технической направленности, увеличения охвата детей программами технического творчества недостаточно ресурсов одного нашего учреждения, поэтому на районном форуме ПДО мы предложили расширять партнерство с организациями и учреждениями района по вопросам развития технического творчества и внесли предложение - создать сообщество педагогов по работотехнике для дальнейшего развития этого направления в районе.
Последующим шагом - мы зарегистрировались как участники комплекса учебно-тренировочных и спортивных мероприятий всероссийской программы «Робототехника: инженерно-технические кадры инновационной России».
Одним из основных направлений работы является подготовка к робототехническим соревнованиям и участие в них. Соревнования – это не только подведение промежуточных итогов, но и явный и неявный обмен опытом, выработка вариативности профессиональных навыков, умения работать в команде над общей задачей. Это систематическая подготовка к районным, республиканским и всероссийским соревнованиям, где мы являемся постоянными участниками и призерами.
И сегодня на мастер-классе хочется поделиться опытом по управлению роботом с помощью планшета, смартфона.
Во всех предыдущих статьях про приложение RoboCam я описывал, как с его помощью управлять роботом от первого лица. Но иногда управление от первого лица нам не нужно, а нужно лишь превратить смартфон в пульт управления. В последней версии приложения RoboCam появилась такая возможность.
Статья описывает новые возможности, появившиеся в приложении RoboCam в версии 1.4.2. Все статьи о приложении RoboCam вы можете найти здесь. Установить приложение RoboCam можно из магазина Google Play.
Всё, что было сделано в предыдущих версиях приложения осталось без изменений. В версии 1.4.2 только добавлены локальные элементы управления. По умолчанию они выключены и всё работает как раньше. Чтобы включить локальные элементы управления зайдите в настройки сервера и поставьте галочку «Использовать локальные элементы управления». После этого все остальные настройки сервера исчезнут. Нажмите на кнопку «Сохранить». Если не знаете где найти настройки сервера, почитайте сначала первую статью о приложении RoboCam.
После этого вернитесь на главный экран программы, и вы увидите, что левая зелёная кнопка поменялась. Теперь на ней изображён джойстик. Также вы увидите, что камера теперь выключена.
Нажмите на среднюю пурпурную кнопку, чтобы подключиться к роботу. Подробно, как подключаться к роботу и настраивать его, описано в первой статье, посвящённой приложению RoboCam. Затем нажмите на левую зелёную кнопку, чтобы открыть экран с локальными элементами управления, т.е. джойстиками.
Как видите, джойстики выглядят так же, как и в браузере, когда вы управляете роботом от первого лица с помощью приложения RoboCam.
Но на смартфоне с маленьким экраном маленькими джойстиками пользоваться неудобно, поэтому вернитесь в настройки сервера, включите галочку «Максимально увеличить джойстики» и нажмите кнопку «Сохранить».
Теперь, когда вы откроете экран с локальными элементами управления, вы увидите, что джойстики стали крупнее.
Кстати, если вы подключите клавиатуру к смартфону, то сможете управлять с неё. Однако, для того, чтобы клавиатура работала, приложение RoboCam должно быть активно, и телефон должен быть незаблокирован. Подробнее об управлении с клавиатуры читайте в третьей статье о RoboCam.
Эта статья будет интересна тем, кто хочет сделать программу для дистанционного управления роботом EV3 со стандартной заводской прошивкой через Bluetooth, WiFi или USB и не важно, с какого устройства или операционной системы. Здесь мы рассмотрим протокол взаимодействия между модулем EV3 и вашей программой.
Основная идея статьи состоит в том, чтобы приложение могло управлять роботом EV3, со стандартной заводской прошивкой. Т.е. мы не будем рассматривать здесь всевозможные прошивки, которые загружаются с SD-карт, такие как leJOS EV3, ev3dev или MonoBrick EV3 Firmware.
Вот пример, как будет выглядеть подключение к EV3 через USB-кабель:
После этого вы можете управлять моторами, например, вот так:
Устанавливать режим работы датчикам, например, так:
И считывать показания датчиков в трёх разных форматах: Raw (как есть, без изменений), SI (международная система единиц) или проценты. Вот пример получения данных в SI:
Есть даже событие, оповещающее об изменении какого либо свойства EV3, будь то нажатие на кнопку модуля EV3 или изменение значения любого из датчиков. Работает это вот так:
MonoBrick Communication Library
Вот так подключается EV3 через USB:
Так происходит управление моторами:
А можно сразу управлять тележкой или роботом на гусеницах вот так:
Так читаем значения датчиков:
А вот так можно задать режим работы датчиков:
А при работе с подключенными «в гирлянду» несколькими модулями EV3 код будет таким:
legoev3cpp
legoev3cpp - это небольшое кроссплатформенное API для C++ 14. И хотя разработка заявлена как кроссплатформенная, на сегодняшний момент реализована поддержка только iOS. Разработчик приглашает присоединиться к проекту всех заинтересовавшихся. Страничка проекта находится здесь. В папке «Jove's Landing» вы найдёте приложение демонстрирующее использование legoev3cpp.
ev3-Nodejs-bluetooth-Api
Коммуникационный интерфейс
Официальную документацию можно найти на странице загрузок LEGO MINDSTORMS EV3. Здесь вы можете скачать описание прошивки (EV3 Firmware Developer Kit) и комплект разработчика системы передачи данных (LEGO MINDSTORMS EV3 Communication Developer Kit). Эти два документа можно скачать и с нашего сайта:
Описание прошивки LEGO Mindstorms EV3.
Комплект разработчика системы передачи данных LEGO MINDSTORMS EV3.
Все команды, которые вы будете использовать, разделяются на прямые и системные. Прямые команды представляют из себя микропрограммы, состоящие из набора определённых байт-кодов, и выполняются параллельно с работающими пользовательскими программами. Использовать прямые команды нужно очень осторожно, т.к. здесь нет никаких ограничений на использование «опасных» кодов или конструкций, например, здесь возможны блокировки и зацикливания. Однако, в таких случаях, пользовательская программа будет продолжать работать нормально. Описание прямых команд вы сможете найти в первом документе (EV3 Firmware Developer Kit) в разделе 4 (Byte code definition and functionality), а примеры использования – во втором (LEGO MINDSTORMS EV3 Communication Developer Kit) в разделе 4 (Direct Commands).
Системные команды используются для передачи данных в модуль EV3 или из него. Описание этих команд вы можете найти во втором документе (LEGO MINDSTORMS EV3 Communication Developer Kit) в разделе 3 (System Command).
Подключение к EV3 производится во всех средах разработки и операционных системах по-разному, поэтому я не буду на этом останавливаться.
Следующий байт – это тип команды или команд. Здесь возможны следующие варианты: 0x01 – системная команда, требуется ответ; 0x81 – системная команда, ответ не требуется; 0x00 – прямая команда или команды, требуется ответ; 0x80 (как в примере) – прямая команда или команды, ответ не требуется.
Остальные байты будут разными для разных типов команд. Для системных команд следующий байт обозначает команду, например, 0x92 – начало загрузки файла на EV3 (BEGIN_DOWNLOAD), 0x9E – запись в почтовый ящик (WRITEMAILBOX) и т.п. А затем идут байты специфичные для каждой системной команды.
В остальных байтах содержится одна команда или несколько команд идущих друг за другом. Первый байт – это сама команда, в примере, указана команда 0x94 (opSound) – это команда для работы со звуком. В следующих байтах содержатся параметры команды. Первый параметр – это специфический параметр, определяющий, что именно будет делать команда. В примере 0x01 обозначает, что нужно проиграть звук определённой громкости, тональности и продолжительности. Следующие три параметра - это громкость (от 0 до 100), частота (от 250 до 10000) и длительность в миллисекундах.
Параметры передаются следующим образом: если значение параметра является числом меньшим 32, то такой параметр можно передавать в коротком формате, т.е. как есть одним байтом. В остальных случаях используется длинный формат, в котором первый байт определяет тип значения, а само значение идёт в следующих байтах. Вот возможные варианты:
- 0x81 – однобайтовое число unsigned byte или byte, в зависимости от команды (в документации обозначается как Data8);
- 0x82 – двухбайтовое число unsigned short или short, в зависимости от команды (в документации - Data16);
- 0x83 – четырёхбайтовое число unsigned int или int (в документации – Data32);
- 0x84 – строка оканчивающаяся нулём.
Как видите, в примере, первые два параметра 0x01 и 0x02 меньше 32, и поэтому они передаются в коротком формате без указания типа значения, а третий и четвёртый параметры – это двухбайтовые числа имеющие значение 0xE803 и для них задаётся тип 0x82.
Теперь давайте отправим команду на чтение цвета с датчика, подключенного к порту 1, и считаем ответ:
Здесь массив байт, который мы отправили модулю EV3 в восьмеричной системе, выглядит так: 0D00 0100 00 0400 99 1D 00 00 00 02 01 60 . Быстро пробежимся по значениям этих байтов:
Число, указывающее индекс глобальных переменных строится сложным образом. Если значение индекса меньше 32, то индекс можно задать одним байтом вот так: 0x60 & i. Здесь 0x60 – это биты, обозначающие небольшой индекс глобальной переменной, а i – это наш индекс. С помощью такой схемы мы сможем задать индекс от 0 до 31, а байт при этом получится от 0x60 до 0x7F . Если вам нужно указать индекс больше 31, то первый байт будет обозначать тип и размер индекса, а в следующих байтах будет храниться значение индекса. Для значения индекса от 0 до 255 первый байт будет равен 0xE1, а затем следующим байтом будет идти само значение. Для значения от 0 до 65535, первый байт будет равен 0xE2, а в следующих двух байтах нужно задать значение. Для значения индекса больше 65535, первый байт будет равен 0xE3, а в следующих четырёх будет значение.
Подробно об этом написано в разделе 3.4 «Parameter encoding» документа EV3 Firmware Developer Kit. Также в качестве подсказки можно использовать макросы GV0(i), GV1(i), GV2(i) и GV4(i) в файле bytecodes.h, который можно найти в исходных кодах аппаратного ПО (исходные коды можно скачать на странице загрузок LEGO MINDSTORMS EV3).
Следующие байты для системных и прямых команд будут разными. Для системных команд, после байта с результатом, идёт байт обозначающий команду, для которой был дан ответ, в следующем байте статус выполнения команды, а затем байты специфичные для каждой системной команды.
Для прямых команд следующие байты – это пространство глобальных переменных. В нашем примере здесь только одна переменная имеющая значение 0x0000A040 (тип переменной float). Если бы мы вызывали несколько команд, то здесь было бы больше переменных, идущих друг за другом. В нашем примере в переменной приходит номер цвета от 1 до 7 или 0, если цвет не определён.
Теперь давайте с помощью этих функций рассмотрим ещё несколько примеров. Вот пример, в котором одновременно запускаются два двигателя, подключенных к порту B и C, делают 3 оборота, причём последние пол оборота двигатели постепенно замедляются:
А здесь мы узнаём, какие датчики и моторы подключены к EV3, и к каким портам (здесь описана лишь часть возможных вариантов, полный перечень см. в описании прошивки «EV3 Firmware Developer Kit» в пункте 5 «Device type list»):
Вот, собственно, и всё, что я хотел написать. Если у вас будут какие-то вопросы, задавайте их в комментариях.
Надеюсь, что в статье я дал достаточное количество знаний для старта. Возможно, кто-нибудь благодаря этой статье, сделает удобный пульт управления для смартфона или компьютера, или создаст API для ещё какого либо языка программирования или платформы. Своими разработками или замечаниями можете поделиться с помощью комментариев.
Соединение двух и более блоков EV3
Подключение USB
LEGO Mindstorms EV3 может подключаться к ПК или другому EV3 посредством USB-соединения. Скорость соединения и стабильность в данном случае лучше, чем при любом другом способе, включая Bluetooth.
LEGO Mindstorms EV3 имеет два порта USB.
подключение к ПК, подключение к другому LEGO EV3.
подключение Wi-Fi модуля (покупается отдельно), а также флеш-памяти. Подключение к другому LEGO EV3
Связь между LEGO EV3 и другими блоками LEGO EV3 в режиме подключения шлейфом.
Режим подключения шлейфом служит для соединения двух и более блоков LEGO EV3.
- предназначен для подключения более одного LEGO Mindstorms EV3;
- служит для подключения большего количества датчиков, моторов и других устройств;
- позволяет осуществить связь между несколькими LEGO Mindstorms EV3 (до 4), что даёт нам до 16 внешних портов и такое же количество внутренних портов;
- даёт возможность управлять всей цепочкой с главной LEGO Mindstorms EV3;
- не может функционировать при активном подключении Wi-Fi или Bluetooth.
Для включения режима подключения шлейфом перейдем в окно настройки проекта и поставим галочку.
Когда выбран этот режим, то для любого мотора мы можем выбрать блок EV3, который будет задействован, и необходимые датчики.
В таблице приведены варианты применения блоков EV3:
Подключение через Bluetooth
Bluetooth позволяет LEGO Mindstorms EV3 подключиться к ПК, другому LEGO Mindstorms EV3, смартфонам и другим Bluetooth-устройствам. Дальность связи по каналу Bluetooth – до 25 м.
Последовательность соединения EV3 через Bluetooth
Для того чтобы соединить два и более блоков EV3 между собой по Bluetooth, нужно выполнить следующие действия:
1. Открыть вкладку Настройка.
2. Выберите Bluetooth и нажмите центральную кнопку.
3. Ставим Флажок видимости Bluetooth.
5. Сделайте упомянутую выше процедуру для нужного количества блоков EV3.
6. Войдите во кладку Подключение (Connection):
7. Нажмите на кнопку Поиск (Search):
8. Выберите EV3, которое вы хотите подключить (или к которому вы хотите подключиться) и нажмите центральную кнопку.
9. Соединяем между собой один и второй блок с ключом доступа.
Если сделать всё правильно, то в верхнем левом углу появится значок "<>", аналогично выполняется подключение других блоков EV3, если их больше двух.
Если вы выключили LEGO EV3, то связь пропадет и вам все пункты необходимо будет повторить.
Важно: для каждого блока должна быть написана своя программа.
Первый блок: при нажатии датчика касания первый блок EV3 передает текст на второй блок с задержкой 3 секунды (главный блок).
Пример программы для 2 блока:
Второй блок ожидает принятия текста с первого блока, и как только он его получил, выведет на экран слово (в нашем примере это слово "Hello") в течение 10 секунд (подчинённый блок).
Подключение через Wi-Fi
Более дальняя связь возможна при подключении Wi-Fi Dongle к порту USB на EV3.
Чтобы использовать Wi-Fi, нужно установить на блок EV3 специальный модуль, используя USB-разъем (Wi-Fi адаптер (Netgear N150 Wireless Adapter (WNA1100), а также можно подключить Wi-Fi Dongle.
Robot Commander представляет собой управляющее приложение для LEGO® MINDSTORMS®. БЕСПЛАТНАЯ загрузка для большинства смартфонов и планшетов; Robot Commander подключается к модулю EV3 по Bluetooth®. Это простое в использовании приложение позволяет взаимодействовать с вашими уникальными роботами EV3, даже не подключаясь к компьютеру! Это означает, что вы можете мгновенно начать игру с вашими собственными роботами!
Приложения для компьютеров и планшетов
Приложения LEGO® MINDSTORMS® EV3 Home для macOS, Windows 10 и планшетов на iOS и Android
Загрузите, установите, подключите и выполняйте задания по программированию. Для пяти основных роботов есть до пяти задач по программированию. Благодаря более продвинутому, но хорошо знакомому интерфейсу программирования и пяти сложным заданиям для вас и ваших роботов-героев, приложение EV3 Home для PC, Mac и планшетов сможет поднять ваши навыки робототехники на новый уровень!
Важная информация относительно программного обеспечения и приложений LEGO® MINDSTORMS® EV3!
Мы рады сообщить, что пользователям LEGO MINDSTORMS EV3 теперь будут доступны новые возможности при сборке и программировании их творений.
Новое приложение LEGO MINDSTORMS EV3 Home с языком программирования на основе Scratch заменит используемое в настоящее время ПО LEGO MINDSTORMS EV3 Home Edition (Labview) для Windows 10 и macOS, а также приложение LEGO MINDSTORMS EV3 Programmer для планшетов на iOS/Android.
Приложение LEGO MINDSTORMS EV3 Programmer будет удалено из магазинов приложений в конце июня 2021 года.
Выведенное из эксплуатации ПО LEGO MINDSTORMS EV3 Home Edition (Labview) для Mac и PC можно найти ниже. Обратите внимание, что это ПО больше не поддерживается LEGO Group.
Читайте также: