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

Статья описывает новые возможности, появившиеся в приложении RoboCam в версии 1.4.2. Все статьи о приложении RoboCam вы можете найти здесь. Установить приложение RoboCam можно из магазина Google Play.

Всё, что было сделано в предыдущих версиях приложения осталось без изменений. В версии 1.4.2 только добавлены локальные элементы управления. По умолчанию они выключены и всё работает как раньше. Чтобы включить локальные элементы управления зайдите в настройки сервера и поставьте галочку «Использовать локальные элементы управления». После этого все остальные настройки сервера исчезнут. Нажмите на кнопку «Сохранить». Если не знаете где найти настройки сервера, почитайте сначала первую статью о приложении RoboCam.

Включение локальных элементов управления в приложении RoboCam

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

Главный экран RoboCam после включения локальных элементов управления

Нажмите на среднюю пурпурную кнопку, чтобы подключиться к роботу. Подробно, как подключаться к роботу и настраивать его, описано в первой статье, посвящённой приложению RoboCam. Затем нажмите на левую зелёную кнопку, чтобы открыть экран с локальными элементами управления, т.е. джойстиками.

Подключаемся к роботу, чтобы использовать локальные элементы управления

Как видите, джойстики выглядят так же, как и в браузере, когда вы управляете роботом от первого лица с помощью приложения RoboCam.

Локальные джойстики RoboCam

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

Включение режима максимального размера локальных джойстиков RoboCam

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

Крупные локальные джойстики RoboCam

Кстати, если вы подключите клавиатуру к смартфону, то сможете управлять с неё. Однако, для того, чтобы клавиатура работала, приложение RoboCam должно быть активно, и телефон должен быть незаблокирован. Подробнее об управлении с клавиатуры читайте в третьей статье о RoboCam.

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

Эта статья будет интересна тем, кто хочет сделать программу для дистанционного управления роботом EV3 со стандартной заводской прошивкой через Bluetooth, WiFi или USB и не важно, с какого устройства или операционной системы. Здесь мы рассмотрим протокол взаимодействия между модулем EV3 и вашей программой.

Создаём программу дистанционного управления роботом 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 в режиме подключения шлейфом.

        1

        Режим подключения шлейфом служит для соединения двух и более блоков LEGO EV3.

        • предназначен для подключения более одного LEGO Mindstorms EV3;
        • служит для подключения большего количества датчиков, моторов и других устройств;
        • позволяет осуществить связь между несколькими LEGO Mindstorms EV3 (до 4), что даёт нам до 16 внешних портов и такое же количество внутренних портов;
        • даёт возможность управлять всей цепочкой с главной LEGO Mindstorms EV3;
        • не может функционировать при активном подключении Wi-Fi или Bluetooth.

        Для включения режима подключения шлейфом перейдем в окно настройки проекта и поставим галочку.

        2

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

        3

        В таблице приведены варианты применения блоков 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, то связь пропадет и вам все пункты необходимо будет повторить.

        Важно: для каждого блока должна быть написана своя программа.

        16

        Первый блок: при нажатии датчика касания первый блок EV3 передает текст на второй блок с задержкой 3 секунды (главный блок).

        Пример программы для 2 блока:

        17

        Второй блок ожидает принятия текста с первого блока, и как только он его получил, выведет на экран слово (в нашем примере это слово "Hello") в течение 10 секунд (подчинённый блок).

        18

        Подключение через 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.

        Читайте также: