Не запускается ev3: Запрашиваемая Вами страница не найдена!

Содержание

Восстановление LEGO EV3 Brick из «белого экрана» / Хабр

Работая преподавателем образовательной робототехники для школьников, за три года практики я имел дело с несколькими десятками “кубиками” управляющих модулей EV3 и NXT. Осенью 2015 года, при развертывании оборудования на новом месте, обнаружилось странное: 2 из 12 “компьютеров” отказались включаться, без какой-либо реакции на кнопки, замену батареи и подключение к компьютеру. Той осенью решение найдено не было, модули были убраны в ящик. Периодически я предпринимал попытки оживить их, но безрезультатно. И вот решение найдено. Добро пожаловать под кат для столкнувшихся с подобной проблемой.



1. Анамнез

Сегодня в очередной раз один из модулей был извлечен из шкафа. Как обычно, никакой реакции на кнопки, замену аккумулятора, компьютер, сброс кнопкой под аккумулятором. Но было замечено следующее: при попытке включения, если не убирать палец с центральной кнопки, модуль стартует, и через 3-5 минут успешно загружается. Стоит только отпустить кнопку, и модуль тут же отключается, как будто от нажатия на кнопку зависит подача питания на модуль. Экспериментальным путём было установлено, что модуль так же успешно включается при нажатии на любую кнопку вместе с центральной. После загрузки центральную кнопку можно отпустить, и тогда появляется возможность выбирать пункты в меню. Была сделана попытка перепрошивки, которая окончилась неудачей, и модуль перестал загружаться до меню. При загрузке с зажатием центральной кнопки на экране появлялась надпись “Starting…”, и ничего после неё. При загрузке с зажатием центральной и правой кнопки — надпись”Updating…”

2. Диагноз

Как только отпускаем центральную кнопку — модуль тут же отключается. Всё дело в кнопках! Вернее в их конструкции. Разобрав модуль, я внимательно присмотрелся к конструкции кнопок. Довольно нетривиально для современной электроники, с которой я имел дело. Конструктивно “кнопки”, которые мы наблюдаем снаружи, под верхней крышкой представляют собой плату с концентрически нанесенными на неё контактами под местами расположения клавиш. Круг плюса окаймлен изолятором, вокруг которого расположен контакт минуса. Аналогично, через закорачивание контактов, реализовано действие клавиш многих клавиатур. С тем отличием, что в клавиатурах контакты закорачиваются металлизированным слоем внутри силиконовой подушечки, прижимаемой к контактам клавишей. Закорачивание контактов платы EV3 Brick реализовано иначе: над контактной площадкой размещён гибкий купол из тонкой нержавеющей жести. В состоянии покоя вершина купола поднята над центральным контактом кнопки, а края плотно прижаты к краевому контакту. Когда мы нажимаем на пластиковую клавишу модуля, купол вдавливается внутрь и происходит замыкание контактов. Металлические купола по всем 6 кнопкам не припаяны к плате, а скреплены путём приклеивания на тонкую плёнку, которая нанесена поверх платы и удерживает каждую деталь на своём месте.

3. Лечение

В моем случае, один из куполов давал постоянный контакт на кнопку. Видимо, прошивка модуля некорректно обрабатывала это нажатие, превращая EV3 Brick в настоящий “кирпич”. Сначала с убранными вместе с плёнкой куполами я добился стабильного запуска модуля без постоянного воздействия на кнопки. Затем модуль был перепрошит стандартным образом, порты проверены, всё работает. Рекомендую всем столкнувшимся со внезапной смертью модуля, “белым экраном”, проверить кнопки под верхней крышкой.

Готово!

P.S.: Кстати, конструкция кнопок модуля NXT не имеет таких особенностей. Там используется вполне стандартный силикон с металлизацией.

P.P.S.: Также, из заметок об конструкции модуля EV3 изнутри, можно отметить хорошее качество шлейфа экрана, который весьма страдал при всех описанных выше попытках ремонта. Однако же остался цел, экран работает нормально. Среди заметных электронных компонентов присутствуют конденсаторы 1000mkf и 6.3V, интересно на сколько лет их хватит.


Программируем робота LEGO Mindstorms EV3 на Python

Чтобы программировать робота LEGO Mindstorms EV3 на языке Python мало знать только этот язык. Необходимо ещё иметь представление о библиотеке ev3dev. ev3, для работы с датчиками и моторами. А также не помешало бы иметь под рукой полноценную среду разработки с подсказками, подсветкой синтаксиса и отладчиком. В статье я опишу, как настроить EV3 и компьютер для комфортной разработки вашего проекта на Python.

Установка прошивки ev3dev

Для того чтобы ваши программы, написанные на Python (в статье я буду иногда называть его Питоном) работали на EV3, вам нужно установить на micro-SD-карту прошивку ev3dev и запустить EV3 с этой прошивкой. Как это сделать написано в статье «ev3dev – устанавливаем и настраиваем Debian Linux на LEGO Mindstorms EV3».

Проверка работоспособности Python и библиотеки ev3dev.ev3

В последних версиях ev3dev уже установлен Питон и библиотека ev3dev.ev3, но прежде чем пойти дальше, проверим их работоспособность. Подключитесь к EV3 через программу PuTTY и выполните команду python3, чтобы запустить терминал Python. В результате вы увидите нечто подобное:

$ python3
Python 3. 4.2 (default, Oct 8 2014, 14:47:30)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Здесь символы «>>>» – это приглашение для ввода команд. Команды, адресованные терминалу Python, нужно вводить после этих символов и нажимать Enter, чтобы команда выполнилась. Итак, сначала импортируем библиотеку ev3dev.ev3, для этого выполните в терминале следующую команду:

Затем проверим, работает ли динамик EV3, для этого выполните команду:

ev3.Sound.speak('Welcome to the E V 3 dev project!').wait()

В результате EV3 должен сказать фразу «Welcome to the ev3dev project!».

Дальше можно проверить работу датчика, например, подключите к любому порту датчик касания и вбейте в терминал следующие строки кода (после последней строчки ещё лишний раз нажмите Enter, чтобы завершить ввод кода):

ts = ev3.TouchSensor()
while True:
 ev3.Leds.set_color(ev3.Leds.LEFT, (ev3.Leds.GREEN, ev3.Leds.RED)[ts.value()])

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

Чтобы выйти из цикла нажмите Ctrl+C.

Теперь можете проверить работу мотора. Подключите большой мотор к порту A и введите в терминал следующие строки кода:

m = ev3.LargeMotor('outA')
m.run_timed(time_sp = 3000, speed_sp = 500)

Последняя строчка кода будет поворачивать мотор со скоростью 500 тиков в секунду, что составляет около 1,4 оборота в секунду, в течении 3000 миллисекунд.

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

Написание программ на Python для ev3dev

По большому счёту писать программы на питоне вы можете в любом текстовом редакторе. Есть даже редакторы с подсветкой синтаксиса, такие как Notepad++. Достаточно лишь создать файл с расширением «.py». Используйте следующий шаблон для написания программы:

#!/usr/bin/env python3
from ev3dev.ev3 import *
 
# TODO: Add code here

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

ev3. Например, файл с программой, где робот приветствует нас голосом, будет выглядеть так:

#!/usr/bin/env python3
from ev3dev.ev3 import *
 
Sound.speak('Welcome to the E V 3 dev project!').wait()

Чтобы программу можно было запустить, файл программы должен быть помечен как исполняемый. Сделать это можно, выполнив команду «chmod +x my-file.py», где «my-file.py» – имя файла с вашей программой, или в программе WinSCP в окне свойств файла, поставив галочки X (X означает eXecute, т.е. выпонять).

После этого вы можете запустить «my-file.py» из файлового браузера ev3dev или выполнив команду «./my-file.py».

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

Выбор среды разработки

Сред разработки для Питона с возможностью отладки есть несколько, но все они платные, кроме одной – это комбинация из среды разработки Eclipse и плагина PyDev. Кроме того для их работы и для нашего комфорта нам ещё понадобятся Java 8, интерпретатор Python, библиотека JCraft и исходники библиотеки ev3dev.ev3. Всё это мы сейчас и будем устанавливать и настраивать.

Если вы знаете ещё какие-либо бесплатные среды разработки для Python, напишите об этом в комментариях.

Установка Java 8

В требованиях к плагину PyDev указано, что на компьютере должна быть установлена Java 8, но не написано что это должно быть JRE (среда выполнения Java) или JDK (комплект разработчика Java). Я думаю, что будет достаточно JRE, но если вам нужен JDK, то лучше поставить его, т.к. JDK включает в себя JRE. Скачать дистрибутив для установки JRE можно на официальном сайте здесь, а JDK – здесь. Я установил JDK. Процесс установки я описывать не буду, т.к. ничего сложного в нём нет.

Если у вас же установлена Java, но вы не знаете какая версия, можете в консоли выполнить следующую команду:

В результате вы получите примерно следующий ответ:

java version "1. 8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b15, mixed mode)

Здесь в первой строке указана версия Java, в примере это «1.8.0_91». Единицу в начале здесь нужно откинуть, получится 8. Это и есть версия Java. Третья цифра 91 – это номер обновления. Т.е. в примере получается, что на компьютере по умолчанию используется Java 8. Другие способы узнать версию Java можете посмотреть в официальной документации здесь.

Установка и первый запуск Eclipse

Установка Eclipse очень простая: достаточно скачать архив с официального сайта и распаковать его. Лучше использовать сборку для Java-разработчиков Eclipse IDE for Java EE Developers.

После распаковки у вас появится папка eclipse, в которой вы найдёте файл eclipse.exe. Для запуска среды разработки Eclipse, запустите этот файл.

В процессе запуска Eclipse спросит у вас, где будет находиться рабочая папка с вашими проектами. Вы можете оставить предложенный путь к рабочей папке или указать свой. Я поставил путь «C:\ev3dev-Python». Чтобы этот диалог не появлялся при каждом запуске Eclipse, можно установить галочку «Use this as the default and not ask again». Однако если вы планируете использовать несколько рабочих папок, то лучше эту галочку не устанавливать.

После того как Eclipse запустится вы увидите приветствие, как показано на рисунке ниже. Закрыть его можно щёлкнув по крестику закладки «Welcome».

После этого вы увидите Eclipse в своём обычном виде.

Установка плагина PyDev

Удостоверьтесь, что компьютер подключен к интернету и запустите Eclipse, если он ещё не запущен. Выберите пункт меню «Help -> Install New Software…».

В открывшемся диалоге в поле «Work with:» укажите адрес «http://www.pydev.org/updates» и нажмите кнопку «Add…», чтобы установить последнюю стабильную версию плагина PyDev. Если вас интересуют ночные сборки, то укажите «http://www.pydev.org/nightly».

Также рекомендуется убрать галочку «Contact all update sites during install to find required software», чтобы Eclipse не опрашивал все доступные сайты обновлений. Это существенно сократит время установки плагина.

После нажатия на кнопочку «Add…» появится небольшой диалог, в котором просто нажмите кнопку «OK».

Через некоторое время в списке диалога «Install» отобразятся доступные для установки компоненты. «PyDev» – это собственно сам плагин. Пункт «PyDev Mylyn integration» – это необязательная часть плагина, позволяющая интегрировать его с системой Mylyn. Поставьте обе галочки и нажмите «Next >».

После этого Eclipse покажет, какие компоненты будут установлены. Нажмите «Next >».

Следующим этапом вам нужно будет согласиться с лицензиями. Прощёлкать всё лицензии можно в списке слева, при этом текст лицензии будет отображаться справа. Выберите здесь пункт «I accept the terms of the license agreements» и нажмите «Finish».

После этого начнётся установка.

Через некоторое время вы увидите предупреждение, что устанавливаемое ПО не подписано. Нажмите здесь «OK».

Дальше Eclipse спросит, доверяете ли вы сертификату. Установите здесь галочку напротив сертификата «Brainwy Software; PyDev; Brainwy» и щёлкните по кнопке «OK».

После того как установка успешно завершится, появится диалог с предложением перезапустить Eclipse. Нажмите здесь «Yes».

После перезапуска Eclipse вы можете проверить установку. Для этого выберите пункт меню «Window -> Preferences» и в окне настроек найдите пункт PyDev. Если этот пункт есть, то установка прошла успешно. Кстати, здесь вы можете посмотреть версию плагина PyDev. После этого, окошко настроек можно закрыть, щёлкнув по кнопке «Cancel».

Настройка интерпретатора в PyDev

Чтобы плагин PyDev давал нам возможность создавать проекты в Eclipse мы должны в настройках PyDev указать, где установлен интерпретатор Python. Если интерпретатор на ПК у вас не установлен, вы можете скачать дистрибутив Python с официального сайта и установить его. На страничке загрузки вы можете выбрать любую версию Python. Для нашей задачи версия интерпретатора не важна, поэтому вы можете выбрать любую версию, например, последнюю. Я на всякий случай выбрал такую же версию, как и версию на EV3 – 3.4.2. Чтобы узнать версию Питона на EV3, выполните команду «python3 –V».

Теперь в Eclipse выберите пункт меню «Window -> Preferences», найдите в списке слева «PyDev -> Interpreters -> Python Interpreter» и нажмите кнопку «New…».

В поднявшемся окошке, нажмите «Browse…» и откройте файл python.exe. В случае если вы установили Python версии 3.4.2, то по умолчанию – это будет путь «C:\Python34\python.exe». Нажмите «OK».

В следующем окошке Eclipse попросит подтверждения для добавления путей в SYSTEM PYTHONPATH. Нажмите «OK».

После этого настройка интерпретатора для PyDev завершена. Нажмите «OK», чтобы сохранить изменения.

Установка библиотеки JCraft

Писать код Python мы будем в файлах, расположенных локально в рабочей папке, и произведённые нами настройки позволят делать автоматическое копирование изменённых файлов на EV3. Для такой синхронизации нам понадобится библиотека JCraft. Скачать её можно на официальном сайте здесь (ищите на странице раздел «Download»). Вам нужно скачать файл «jsch-0.1.54.jar» или более позднюю версию.

Скачанный файл можно положить в любое место. Но, поскольку работать с библиотекой JCraft будет библиотека Ant (библиотека Ant по умолчанию сразу включена в Eclipse), я положил этот файл в папку библиотеки Ant, а именно «plugins/org.apache.ant_VERSION/lib» в месте установки Eclipse. Здесь VERSION – это версия библиотеки Ant. У меня эта папка оказалась следующей: «C:\eclipse\plugins\org.apache.ant_1.9.6.v201510161327\lib».

Теперь откройте настройки Eclipse (пункт меню «Window -> Preferences»), откройте «Ant -> Runtime», выберите «Ant Home Entries (Default)» на закладке «Classpath» и нажмите кнопку «Add External JARs…».

Откройте файл с библиотекой JCraft. После этого он появится в списке файлов библиотек, см. картинку ниже. Нажмите «OK», чтобы сохранить изменения.

Добавление шаблона программы Python для EV3

Как уже было написано в начале статьи, каждый файл программы Python для EV3 должен начинаться с определённых строк. Для удобства, добавим в Eclipse шаблон для нового файла Python. Откройте настройки, выбрав пункт меню «Window -> Preferences», найдите в списке слева «PyDev -> Editor -> Templates» и нажмите на кнопку «New…».

В поле «Name» задайте имя шаблона, я назвал его «EV3». В списке «Context» выберите «New Module». Уберите галочку «Automatically insert». Можете также задать описание в поле «Description». А в поле «Pattern» задайте сам шаблон. Я вбил сюда шаблон, который приведён в начале статьи. Нажмите «OK».

Как видите, в списке шаблонов появился наш шаблон. Нажмите «OK», чтобы сохранить изменения.

Создание нового проекта PyDev

Наконец всё настроено и можно приступить к созданию проекта и последующему программированию. Для создания нового проекта, выберите пункт меню «File -> New -> Project. ..».

Затем в диалоге выберите «PyDev Project» и нажмите «Next >».

В следующем окне есть много полей. Рассмотрим каждое из них:

      • В первом поле «Project name» задаётся имя проекта, я ввёл здесь «my_project».
      • В поле «Project contents» указывается путь к файлам проекта, я оставил здесь предложенный по умолчанию вариант.
      • В группе «Project type» выбирается интерпретатор для проекта, здесь мы оставим «Python».
      • В выпадающем списке «Grammar version» можно выбрать версию грамматики Питона. Она не обязательно должна совпадать с актуальной версией интерпретатора. Вы спокойно можете использовать более новый интерпретатор, в то время как грамматика будет совместима с более старым интерпретатором, например, вы можете использовать грамматику Python 2.7 с интерпретатором Python 3.4. Я выбрал здесь версию 3.0 – 3.5.
      • В поле «Interpreter» выбирается интерпретатор, который должен использоваться для автодополнения и проверки синтаксиса. Оставлю здесь интерпретатор по умолчанию, т.е. тот, который мы настроили раньше, см. выше раздел «Настройка интерпретатора в PyDev».
      • Кнопочка «Additional syntax validation» позволяет выбрать дополнительные синтаксисы, на которые будет проверен проект. Например, если код должен быть совместим с Python 2 и Python 3, то вам нужно выбрать версию грамматики Python 3, и дополнительную проверку синтаксиса для Python 2. Я не буду здесь ничего выбирать.
      • Настройки ниже связаны с настройкой PYTHONPATH, т.е. путей к связанным проектам или ресурсам. Первый вариант подходит для проектов, для которых папка проекта добавляется в PYTHONPATH. При выборе второго варианта в папке проекта будет создана папка «src», которая будет добавлена в PYTHONPATH. Третий вариант – это добавление путей в PYTHONPATH вручную на следующем шаге мастера. Четвёртый вариант – не добавляем ничего в PYTHONPATH, т.к. это будет сделано позже. Здесь я оставлю первый вариант.

Нажмите «Finish».

Если Eclipse увидит, что у вас не выбрана перспектива PyDev, то он предложит её открыть. Согласитесь, нажав «Yes».

После этого на панели «PyDev Package Explorer» появится папка с вашим проектом. Вы можете открыть папку и посмотреть, что в ней находится. Как видите, кроме ссылки на интерпретатор Python 3.4, пока ничего больше нет. Ещё рядом с папкой проекта появилась папка RemoteSystemsTempFiles, но не обращайте на неё внимания.

Добавление в проект ссылок на исходники библиотек ev3dev.ev3 и PyDev

Чтобы при работе с классами библиотек ev3dev.ev3 и PyDev, Eclipse выдавал подсказки и делал автодополнение, нам нужно добавить в проект ссылки на исходники этих библиотек.

Скачать исходники библиотеки ev3dev.ev3 можно здесь. Щёлкните по кнопке «Clone or download», а затем по кнопке «Download ZIP». Скачанный архив распакуйте в любое место. Я распаковал его прямо на диск «C:» и в результате у меня получилась папка «C:\ev3dev-lang-python-develop».

Теперь добавьте в проект ссылку на библиотеку ev3dev.ev3. Для этого щёлкните по названию проекта правой кнопкой мышки и выберите пункт меню «Properties».

В настройка проекта откройте «PyDev – PYTHONPATH» и перейдите на закладку «External Libraries». Здесь нажмите на кнопку «Add source folder» и добавьте папку «ev3dev-lang-python-develop», у меня это путь «C:\ev3dev-lang-python-develop».

Аналогично добавьте путь к исходникам библиотеки PyDev, которые расположены в папке «pysrc». Папка «pysrc» должна быть в месте установки Eclipse в подпапке «plugins/org.python.pydev_ВЕРСИЯ_PYDEV», где ВЕРСИЯ_PYDEV – это версия плагина PyDev. Точно определить версию можно в настройках (пункт меню «Window -> Preferences») пункт «PyDev», см. картинку ниже. У меня папка «pysrc» оказалась в папке «C:\eclipse\plugins\org.python.pydev_5.7.0.201704111357».

Таким же образом нужно добавлять ссылки на исходники всех используемых библиотек, чтобы работать с ними было комфортно. Нажмите «OK», чтобы сохранить настройки.


Добавление модуля Python в проект

Теперь напишем простенькую программу. Допустим, это будет программа, которую вы уже видели в начале статьи, которая заставляет робота EV3 говорить фразу «Welcome to the ev3dev project!». Только теперь мы сделаем это в Eclipse, а заодно посмотрим, как среда разработки будет нам помогать в написании кода и проверке синтаксиса.

Для создания файла программы Python, щёлкните по проекту правой кнопкой мышки и выберите пункт меню «New -> PyDev Module».

В следующем диалоге задайте имя модуля, например, «my_module» и нажмите «Finish».

После этого появится пара диалогов. Первый диалог запросит у вас шаблон, по которому нужно создать файл программы. Чуть раньше мы уже сделали шаблон под названием «EV3», поэтому просто выберите его и нажмите «OK».

В диалоге «Default Eclipse preferences for PyDev» показаны некоторые настройки плагина PyDev, которые вы можете захотеть изменить. Но мы не будем ничего менять. Нажмите «OK», чтобы закрыть этот диалог.

Теперь мы наконец-то видим свой созданный модуль «my_module.py». При этом, созданный файл сразу содержит текст, который мы задали в шаблоне.

Как видите Eclipse сразу начал показывать какое-то предупреждение: слева от 2-й строчки появился восклицательный знак. Подведите к нему мышку и увидите описание возможной проблемы, см. рисунок ниже. Здесь Eclipse предупреждает нас о том, что мы сделали импорт модулей, которые не используем. Это не удивительно, ведь у нас строит звёздочка, это значит, что мы импортируем все модули библиотеки. Не будем обращать внимание на это предупреждение.

Напишем на 4-й строке вместо комментария слово «Sound». После этого Eclipse сразу начинает подсказывать возможные варианты для автодополнения. На картинке видно, что он нашёл два класса «Sound» и «SoundSensor». Для выбранного класса, сразу показывается подсказка.

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

Теперь мы поставим точку после слова «Sound» и Eclipse покажет нам доступные методы и атрибуты этого класса. Для каждого из них так же высвечивается подсказка.

Когда виден этот список, вы можете передвигаться по нему с помощью клавиш-стрелок и нажать Enter, чтобы подтвердить выбор. При этом после точки сразу будет написан выбранный метод, а в скобках вы увидите заготовки для ввода параметров и подсказку сверху. Слева сразу будет показана ошибка (красный кружок с буквой «X»), т.к. здесь пока неправильный синтаксис.

Вводим нужные параметры, а ненужные удаляем. Дальше добавляем вызов метода wait. Вот и готова наша программа. Теперь изменения можно сохранить, для этого нажмите Ctrl+S, чтобы сохранить только текущий редактируемый файл, или Ctrl+Shift+S, чтобы сохранить все изменения в проекте. После сохранения исчезнет звёздочка слева от имени файла на закладке. Вообще, при написании программы, лучше почаще сохранять все изменения, т.е. почаще нажимать Ctrl+Shift+S.

При написании этих строк кода, я вкратце продемонстрировал вам, как работает автодополнение, подсказки, а также проверка и подсветка синтаксиса.

Автоматическое копирование файлов программ Python на EV3

Каждый раз после того как мы меняем файл в Eclipse на своём компьютере эти изменения происходят только на нашем компьютере, но не происходят на EV3. Нам нужно, чтобы эти изменения так же синхронно происходили и на нашем EV3. Для этого нам нужно настроить Eclipse так, чтобы при каждом сохранении файла на ПК, происходило его автоматическое копирование на EV3. В этом нам помогут библиотеки Ant и JCraft. Это мы сейчас и сделаем.

Сначала нам нужно создать в проекте файл «build.xml». Для этого щёлкните правой кнопкой мышки по проекту и выберите пункт меню «New -> File…».

В следующем диалоге в поле «File name» задайте имя «build.xml» и нажмите «Finish».

В открывшемся файле «build.xml» напишите следующий текст и сохраните изменения:

<project name="ev3sync">
    <target name="ev3sync">
        <scp todir="robot:[email protected]:/home/robot"
                dirmode="755" filemode="755">
            <fileset dir=". " casesensitive="false">
                <include name="**/*.py"/>
                <exclude name="**/*Test*"/>
            </fileset>
        </scp>
    </target>
</project>

Файл «build.xml» в Eclipse по умолчанию ассоциируется с библиотекой Ant. В этом файле описываются действия, которые должна выполнить библиотека Ant. В нашем случае здесь описано, откуда нужно взять файлы и куда их нужно скопировать. Я не буду сильно углубляться в описание того, как работает библиотека Ant и как её нужно настраивать с помощью файла «build.xml», но опишу то, что используется в этом файле. Вы можете использовать этот файл, как образец.

Первый элемент «project» (проект) – это обязательный корневой элемент файла «build.xml». В атрибуте «name» указывается имя проекта. Я указал здесь «ev3sync».

Дальше идёт элемент «target» – это цель. Целей в проекте может быть несколько. В атрибуте «name» указывается имя цели. В моём примере это тоже «ev3sync».

Внутри цели указываются задачи, которые нужно выполнить для достижения этой цели. Здесь у нас только одна задача, которая выполняется библиотекой JCraft – это элемент «scp». Эта задача как раз и выполнит копирование всех файлов Python и папки проекта на EV3. Здесь в атрибуте «todir» указана папка назначения в формате «user[:password]@host:/dir/path», т.е. сначала идёт имя пользователя (у нас это «robot»), затем через двоеточие пароль (у нас это «maker»), затем после собачки имя или IP-адрес EV3 (у нас это «ev3dev»), затем после двоеточия путь (у нас это директория «/home/robot»). В атрибутах «dirmode» и «filemode» указываются, какие атрибуты нужно выставить созданным папкам и файлам. Обратите внимание, что для уже созданных файлов атрибуты не поменяются.

Внутри элемента «scp» с помощью элемента «fileset» указывается набор файлов, которые нужно скопировать на EV3. В атрибуте «dir» указывается папка, где находится набор файлов. Здесь у нас указана точка, это значит, что такой папкой будет папка проекта. С помощью атрибута «casesensitive» я указал, что в именах файлов регистр не важен.

Внутри элемента «fileset» с помощью элемента «include» указываются файлы, которые должны быть включены в набор файлов. Здесь с помощью атрибута «name» я указал, что в набор файлов входят все файлы с расширением «.py», в том числе находящиеся и в подпапках.

В качестве примера я добавил элемент «exclude», с помощью которого можно указать, какие файлы не должны входить в набор файлов. Здесь с помощью атрибута «name» я указал, что в набор файлов не входят файлы, в имени которых есть слово «Test», в том числе и в подпапках.

В итоге мы получили задание с названием «ev3sync», которое будет копировать все файлы проекта с расширением «.py» в имени которых нет слова «Test» на EV3 в папку «/home/robot».

Подробнее обо всех задачах библиотеки Ant смотрите на официальном сайте здесь.

Теперь настроем Eclipse так, чтобы при каждом изменении файлов проекта, запускалось наше задание «ev3sync». Сначала откройте свойства проекта. Для этого щёлкните правой кнопкой по проекту и выберите меню «Properties». В диалоге свойств откройте «Builders» и нажмите кнопку «New…».

В следующем диалоге выберите «Ant Builder» и нажмите «OK».

Поднимется окно «Edit Configuration». Здесь на закладке «Main» нажмите на кнопку «Browse Workspace…».

В следующем окне найдите файл «build.xml», щёлкните по нему и нажмите «OK».

После этого в поле «Buildfile» появится строка «${workspace_loc:/my_project/build.xml}».

Теперь перейдите на закладку «Targets» и нажмите кнопку «Set Targets…» напротив поля «Auto Build».

В следующем окне выберите цель «ev3sync», которую мы сделали ранее в файле «build.xml» и нажмите «OK».

После этого в поле «Auto Build» появится наша цель «ev3sync». Нажмите «OK».

В следующем окне тоже нажмите «OK».

После этого появится консоль, где будет написано, что файл build.xml построен успешно.

Теперь переключитесь на закладку с файлом «my_module.py», поставьте в нём где-нибудь пробел и сотрите его, чтобы Eclipse зафиксировал изменения. После этого сохраните изменения и посмотрите, что будет написано в консоли (консоль можно развернуть, дважды щёлкнув на заголовок). Как видите, произошло подключение к EV3 и задание успешно выполнилось. Можете убедиться, что файл «my_module.py» скопировался в папку «/home/robot» на EV3. Теперь при каждом сохранении будет происходить копирование файла «my_module.py» на EV3.

Запуск программы на EV3

Лучшего способа запуска программы на Питоне чем запуск через встроенный в Eclipse SSH терминал я не нашёл. Консоль хороша ещё и тем, что выполнение программы можно прервать. Однако Eclipse очень мощный инструмент с множеством возможностей, поэтому вы можете найти и лучший способ запуска программ. Если найдёте, напишите об этом в комментариях.

Итак, чтобы запустить программу Python, откройте терминал Eclipse. Для этого щёлкните по соответствующей иконке или нажмите клавиши Ctrl+Alt+Shift+T.

В поднявшемся диалоге «Launch Terminal» выберите терминал «SSH Terminal», в поле «Host» кажите IP-адрес или имя EV3, чуть ниже заполните имя пользователя и пароль (по умолчанию robot/maker), установите галочки «Save user» и «Save password» и нажмите «OK».

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

Чтобы развернуть терминал (в том числе и любую другую панель Eclipse) на всё окно, дважды щёлкните по названию панели. Как видите, работая в Eclipse, вы можете забыть про PuTTY. Чтобы свернуть развёрнутую панель обратно, опять щёлкните по заголовку дважды.

Теперь чтобы запустить нашу программу наберите в терминале следующую команду:

python3 /home/robot/my_module.py

Для остановки выполняемой программы вы можете воспользоваться сочетанием клавиш Ctrl+C или Ctrl+Z.

Отладка программы Python на EV3

Поскольку программа в нашем случае выполняется на EV3, а отлаживаться мы должны на компьютере, нас интересует удалённая отладка. Отладка в данном случае не будет похожа на то, как мы обычно это делаем. Здесь нужно будет определённым образом подготовить EV3 и Eclipse и добавить в код программы в нужном месте определённую строчку кода. Также нужно, чтобы EV3 по сети «видел» ваш ПК. Но обо всём по порядку.

Первое, что нужно сделать – это скопировать отладчик PyDev на EV3. Для этого вам нужно найти в месте установки плагина PyDev папку «pysrc» и скопировать её на EV3.

Папка «pysrc» находится в месте установки Eclipse в подпапке «plugins/org.python.pydev_ВЕРСИЯ_PYDEV», где ВЕРСИЯ_PYDEV – это версия плагина PyDev. Точно определить версию можно в настройках (пункт меню «Window -> Preferences») пункт «PyDev», см. картинку ниже. У меня папка «pysrc» оказалась в папке «C:\eclipse\plugins\org.python.pydev_5.7.0.201704111357».

Директорию на EV3, в которую нужно скопировать папку «pysrc», можете выбрать любую. Я скопировал эту папку в домашнюю директорию «/home/robot».

Теперь нам нужно запустить отладочный сервер PyDev. Для этого сначала откройте перспективу «Debug» (щёлкните по кнопке «Open Perspective», затем выберите в диалоге «Debug» и нажмите «OK»).

В открывшейся перспективе, выберите пункт меню «Pydev -> Start Debug Server».

После запуска сервера вы увидите в консоли надпись «Debug Server at port: 5678».

Теперь в начале кода нужно прописать пути к модулям «pydevd» и «_pydevd_bundle» (первый находится в папке «pysrc», второй – в папке «pysrc/_pydevd_bundle»), затем подключить модуль «pydevd», а затем в том месте, где нужно получить отладочную информацию дописать вызов метода «pydevd.settrace(‘ААА.ААА.ААА.ААА’)», где вместо ААА.ААА.ААА.ААА нужно указать IP-адрес или имя вашего компьютера. IP-адрес своего компьютера можете узнать выполнив в консоли Windows команду «ipconfig». Вот пример программы с вызовом метода «settrace»:

#!/usr/bin/env python3
from ev3dev. ev3 import *
 
sys.path.append('/home/robot/pysrc')
sys.path.append('/home/robot/pysrc/_pydevd_bundle')
import pydevd
 
i = 1
while i <= 3:
    pydevd.settrace('192.168.1.155')
    i = i + 1

Сохраните изменения, чтобы файл «my_module.py» скопировался на EV3, и запустите программу через терминал (чтобы увидеть уже открытый и подключенный на другой перспективе терминал выберите пункт меню «Window -> Show View -> Terminal»).

После этого через некоторое время выполнение программы остановится на строке 11 (это видно в редакторе и на панели «Debug»), а на панели «Variables» появится список и значения всех переменных (я выделил значение переменной «i»).

Вы можете подвести мышку к переменной «i» в тексте программы и в появившейся подсказке также будет показано значение переменной.

Чтобы запустить выполнение программы дальше, нажмите кнопку «Resume» или клавишу F8. В нашей программе выполняется цикл, поэтому выполнение опять остановится, и на панели «Variables» вы увидите, что строка с переменной «i» подкрасилась жёлтым цветом. Так подкрашиваются переменные с изменившимися значениями.

К сожалению, на точки останова Eclipse не реагирует при удалённой отладке. Однако после остановки на строке с методом «settrace» вы можете продолжить выполнение программы пошагово с помощью кнопок «Set Into» (F5), «Step Over» (F6) и «Step Return» (F7), см. картинку ниже.

Да, чуть не забыл. Если у вас вдруг возникнет проблема с тем, что отладчик PyDev не может найти исходник, добавьте соответствие удалённого и локального путей в настройках «Windows -> Preferences -> PyDev -> Debug -> Source Locator».

Подведём итог

Итак, теперь у вас есть мощная среда разработки полностью готовая к программированию на языке Python для EV3. Как вы могли убедиться, благодаря Eclipse и плагину PyDev вы сможете писать код, используя автодополнение, проверку синтаксиса и подсказки. Кроме того вы сможете отлаживать свою программу.

Ещё для программирования EV3 вам понадобится справочный материал. Описание библиотеки ev3dev.ev3 можете найти в документации. С проблемами и глюками можете обращаться на сайт поддержки. Исходники библиотеки ev3dev.ev3 можно найти на GitHub-е.

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

Вопросы преподавателю | Лекториум

2 декабря, 2015 – 22:44

#52

Nina

Не в сети

Будут ли зачтены задания выполненные на более старой модели lego mindstorms 8547

3 декабря, 2015 – 11:41

#54

JIRNOFF

Не в сети

Здравствуйте! А когда откроется третья глава?

4 декабря, 2015 – 14:35

#58

Анонимус

Не в сети

Скажите пожалуйста почему когда я подключаю один мотор настраиваю программу форвард без цифры и зацикливаю он вращается рывками?

4 декабря, 2015 – 15:02

#59

AndrewN

Не в сети

А нельзя ли выкладывать для скачивания пошаговые инструкции по сборке используемых в курсе моделей в формате pdf, например? Это было бы очень удобно! По видео собирать довольно муторно. ..

5 декабря, 2015 – 14:59

#60

RT

Не в сети

Добрый день!

Есть набор EV3 с другим набором элементов и другой средой программировавния.
Как выполнять задания? Необходимо отвечать по NXT или будут вопросы по EV3?
Можно ли выполнить задание в LEGO Digital Designer по механической передаче используя детали EV3 и
как это будет оцениваться? Вопрос 3.3 Знакомство с Роболаб. У нас его нет. Что делать?

 

5 декабря, 2015 – 21:58

#61

Andrey Korshikov

Не в сети

Как называется блок в виде желтого восьмиугольника во втором ролике раздела 3. 3?

6 декабря, 2015 – 10:00

#63

Andrey Korshikov

Не в сети

я пытаюсь по лекции понять правильный ответ на 10 вопрос итогового задания к 3 главе. Мой ответ, который явно упоминается в лекции, не верен. И если дословно перевести указанное вами название, то всё равно не получается вариант отмечаемый как верный. Чем дальше, тем некорректней вопросы и ответы.

6 декабря, 2015 – 23:01

#67

Андрей

Не в сети

Раздел 3. 3 видео 2 14:40. “Точное значение градусов будет зависеть от массы робота, его конструкции и коэффициента трения с поверхностью.”

Считаю это утверждение некорректным. От массы и коэффициента трения с поверхностью на малых скоростях практически зависеть не будет. В зависимости от конструкции – это что? высота, ширина, длина, количество датчиков или шестеренок?. В данной конструкции вся зависимость сводится к колесной базе (расстояние между колесами) и диаметру колес.

7 декабря, 2015 – 14:27

#71

Олег

Не в сети

Добрый день! 5 декабря загрузил практическую работу по 2 главе. Но оказалось, что по ошибке указал не ту ссылку. Скажите, пожалуйста, как можно исправить ссылку?

10 декабря, 2015 – 16:05

#75

YaNO

Не в сети

Скажите, пожалуйста, в соревнованиях для детей “Следование по линии для начинающих (образовательные конструкторы)” роботу нужно просто проехать как в главе 3 или плавно как в главе 4? Я запуталась…

10 декабря, 2015 – 19:27

#82

uvarovmih

Не в сети

У меня вопрос к преподавателю.

Как оценивать задание в Итоговой работе к гл.2 (3D-схема мультипликатора), когда не указано, какая передача является ведущей, а какая ведомой? Рычага нет (см.изображение).

11 декабря, 2015 – 18:02

#84

uvarovmih

Не в сети

12 декабря, 2015 – 17:09

#86

Беляков Дмитрий

Не в сети

Что делать если с моим набором шла среда программирования NXT G?

 

14 декабря, 2015 – 09:14

#88

Анонимус

Не в сети

Следующий запуск этого курса будет таким же по составу? Т. к. сейчас нет конструктора ( покупка будет проведена весной), чтобы пройти практические задания (итоговые работы), можно ли контрольные задания выполнять сейчас, а итоговые работы- при следующем запуске курса? Что можете посоветовать? 

14 декабря, 2015 – 09:27

#90

Михаил Диченко

Не в сети

Скажите пожалуйста, какого размера должно быть поле для выполнения итоговых работ в главах 3 и 4? 

И попутный вопрос – как в Inkskape посмотреть размер поля?

14 декабря, 2015 – 23:45

#92

mastertexno

Не в сети

Здравствуйте Anna! Загрузил не правильную ссылку к лаве 2, узнал об этом только из оценки других участников. Как быть!

15 декабря, 2015 – 08:59

#94

Miltova

Не в сети

Добрый день!
Прошу Вашего разрешения ответить на тест №1. Сама не поняла как я выпустила его из вида, ведь все текущие тесты были пройдены.

15 декабря, 2015 – 12:04

#97

Беляков Дмитрий

Не в сети

Добрый день! Скажите пожалуйста, можно ли найти бесплатную версию Robolab ?

 

 

 

17 декабря, 2015 – 07:44

#99

Сергей Александрович

Не в сети

Anna  Доброго Вам дня, у меня вопрос по курсу  вы можете дать нам данный курс в нашем городе если да то напишите на почту [email protected] ru

19 декабря, 2015 – 19:10

#100

abiturient91

Не в сети

Здравствуйте!. Прошу помощи. На всех видео у Сергея Александровича окно редактирования в роболаб  в клеточку. Подскажите пожалуйста, где она подключается. Мне кажется, что я все подменю посмотрела, но не нашла. Без знания английского тяжеловато.Заранее благодарна.

19 декабря, 2015 – 19:26

#101

Алексей

Не в сети

abiturient91,

заходите в меню Projects –> Options –> выбираете раздел Alignment Grid –> ставите галочку на “Show block diagram grid”, жмете Ок

Начинаем программировать EV3 на Python

Год назад мы перешли с графического программирование нашего робота LEGO Mindstorms EV3 на текстовое и первым языком программирования, который мы освоили, стал EV3 BASIC. Нам очень понравились его простота, отзывчивость к первым, зачастую неумелым попыткам выжать из него что-то большее, то, что мы могли получить на графическом “леговском” EV3-G. За этот год мы создали с использование BASICа целый ряд проектов (NAVIDOZ3R, Music Station, Телеграф, НУ ПОГОДИ, Саймон сказал), которые, как нам кажется, неплохо раскрыли возможности этого языка. Программы, написанные не нем работают существенно быстрее программ на “языке из кубиков”. Бейсик не навязывает “хороший стиль” программирования, он дает свободу программисту – в этом его основная фишка.
Однако чем более сложными становились наши проекты с использованием EV3 BASIC, тем все более отчетливо мы ощущали его ограничения:
  • все переменные – глобальные
  • так же как и в EV3-G нет возможности работать с многомерными массивами без использования костылей
  • нельзя создать функцию с передачей в нее параметров и возвратом из нее результата
  • проблемы с поддержкой датчиков сторонних производителей

Хорошей альтернативой и следующей ступенькой в полноценном программировании EV3 традиционно считается ROBOTC, однако это достаточно дорогая ступенька, данная среда разработки далеко не бесплатна. Кроме этого ROBOC требует перепрошивки блока EV3 на свою прошивку, это не для всех приемлемо.
В мире opensource существует несколько свободных альтернатив для программирования платформы EV3 с использованием “взрослых” языков. Это LeJOS и язык Java, Monobrick с языком С# и ev3dev с целым рядом языков – Python, C, C++, JavaScript. Go.
Мы решили начать с ev3dev и языка Python, так как ходили слухи что язык этот имеет достаточно низкий порог вхождения подобно Бейсику, при этом не имея присущих ему недостатков. Еще на летних каникулах мы проштудировали замечательную детскую книгу по Python под названием “Hello World! Занимательное программирование” (Картер Сэнд, Уоррен Сэнд, 2016). На примере создания простейших игр книга действительно занимательно погружает читателя в основы языка Python.
Начав разбираться с ev3dev нам показалось, что информации из книги для погружения в Python не достаточно и в поисках ее дополнительных источников мы набрели на крутые онлайн-курсы на портале Stepic. org В процессе прохождения первого курса, в попытках решения учебных задач с Python на EV3 пришло понимание того, что базовые навыки работы в ОС Linux пришлись бы юным робототехникам как нельзя кстати. Курс на том же Stepic под названием Введение в Linux оставил только положительные эмоции и дал массу полезной информации, в том числе и для размышления. 
Очень полезным источником информации для нас стал сайт по EV3 Python. Его автор, Nigel Ward, уже помогал нам год назад в адаптации EV3 BASIC для русскоязычных робототехников. Его материалы мы взяли за основу и в этот раз. Мы подготовили русскоязычное руководство по Python для EV3, которое состоит из двух частей:
В первой части – описание процесса установки и первоначальной настройки ev3dev. Во второй – справочник по “командам” и примеры программ на Python для платформы EV3.

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


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

1. Робот, поворачиваясь вокруг своей оси сканирует пространство, после чего выводит на экран “карту-радар” в виде лепестковой диаграммы.


# подключаем модуль поддержки оборудования EV3
from ev3dev.ev3 import *
# из модуля time будем использовать задержку – sleep
from time import sleep
# кроме это нам понадобится модуль математики
import math

# Это скорость разворота робота, в градусах/сек
speed = 50
# переменная для хранения значений с датчика-гироскопа
GyVal = 0

# создаем объект Gyro связанный с датчиком-гироскопа на 1 порту
Gyro = GyroSensor(“in1”)
# и объект IR, связанный с ИК-датчиком на порту 4
IR = InfraredSensor(“in4”)

# нам понадобится пара моторов, порты A и D
mA = LargeMotor(‘outA’)
mD = LargeMotor(‘outD’)

# устанавливаем гироскоп в режим измерения угла
Gyro. mode = “GYRO-ANG”

# создаем объект lcd для работы с экраном блока EV3
lcd = Screen()
# рисуем в буфере пару кругов (это скелет карты)
lcd.draw.ellipse(( 84, 59,  94, 69))
lcd.draw.ellipse(( 25, 0,  153, 128))
# выводим инфу из экранного буфера на экран
lcd.update()

# создаем список (массив) для хранения карты 
g = [0 for i in range(360)]

# запускаем робота на вращение вокруг своей оси
mA.run_forever(speed_sp=speed)
mD.run_forever(speed_sp=-1*speed)

# во время вращения заполняем массив g данными
# с ИК-датчика с привязкой у направлению (гироскоп)
while Gyro.value() < 360:
    GyVal =  abs(Gyro.value())    
    g[GyVal] = IR.value()*0.7

# после полного круга останавливаемся
mA.stop(stop_action=”hold”)
mD.stop(stop_action=”hold”)  

# выводим карту из массива в экранный буфер
# в виде лепестковой диаграммы
for i in range(90):
    lcd.draw.line(( 89, 64,  89+g[i]*math. sin(math.radians(i)), 64-g[i]*math.cos(math.radians(i))))
    lcd.draw.line(( 89, 64,  89+g[i+90]*math.cos(math.radians(i)), 64+g[i+90]*math.sin(math.radians(i))))
    lcd.draw.line(( 89, 64,  89-g[i+180]*math.sin(math.radians(i)), 64+g[i+180]*math.cos(math.radians(i))))
    lcd.draw.line(( 89, 64,  89-g[i+270]*math.cos(math.radians(i)), 64-g[i+270]*math.sin(math.radians(i))))

# выводим информацию из буфера на экран
lcd.update()
# издаем какой-то звук
Sound.beep()

# и замираем на 10 секунд чтобы успеть посмотреть карту
sleep(10)

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

# подключаем модуль поддержки оборудования EV3
from ev3dev.ev3 import *
# из модуля time будем использовать задержку – sleep
from time import sleep

# объект для работы с кнопками на блоке  btn = Button()

tr = 1

# список цветов подсветки color = [Leds. RED, Leds.GREEN, Leds.AMBER, Leds.ORANGE, Leds.YELLOW]
cs = 0

# выключаем подсветку Leds.all_off()

# текущая яркость подсветки
on = 127

# цикла – пока не нажата кнопка назад while not btn.backspace:
    # если нажата кнопка влево
    if btn.check_buttons(buttons=[‘left’]):
        cs=cs-1
        if cs<0:
            cs=4
        # проговариваем ее название
        # и изменяем цвет с выбранной яркостью         Sound.speak(“Button left”)
        Leds.set_color(Leds.LEFT, color[cs], on/255)
        Leds.set_color(Leds.RIGHT, color[cs], on/255)
        sleep(0.5)   

    # тоже самое для кнопки вправо     
elif btn.check_buttons(buttons=[‘right’]):
        cs=cs+1
        if cs>4:
            cs=0

        Sound.speak(“Button right”)
        Leds.set_color(Leds.LEFT, color[cs], on/255)
        Leds.set_color(Leds.RIGHT, color[cs], on/255)
        sleep(0.5)

    # если нажата кнопка вверх
    if btn. check_buttons(buttons=[‘up’]):
        # увеличиваем яркость подсветки
        on=on+10
        if on>240:
            Sound.speak(“Maximum”)
            on=255

        Leds.set_color(Leds.LEFT, color[cs], on/255)
        Leds.set_color(Leds.RIGHT, color[cs], on/255)
        sleep(0.1)

    # если нажата кнопка вниз
    elif btn.check_buttons(buttons=[‘down’]):
        # уменьшаем яркость
        on=on-10
        if on<10:
            Sound.speak(“Minimum”)
            sleep(2)
            on=0
        
        Leds.set_color(Leds.LEFT, color[cs], on/255)
        Leds.set_color(Leds.RIGHT, color[cs], on/255)
        sleep(0.1)

    # при нажатии центральной кнопки     
if btn.check_buttons(buttons=[‘enter’]):
        Sound.speak(“Random color”)
        tr = 1
        # цикл пока не нажата кнопка назад
        while not btn.backspace or tr!=0:
            Leds. set_color(Leds.RIGHT, Leds.RED,0)
            Leds.set_color(Leds.LEFT, Leds.GREEN,0)
            
            # “переливы” цветов и яркости подсветки
            for i in range(0,255,5):
                Leds.set_color(Leds.LEFT, Leds.GREEN,i/255)
                if btn.check_buttons(buttons=[‘backspace’]):
                    tr = 0            
            if tr == 0:
                break                

            for i in range(255,0,-5):
                Leds.set_color(Leds.RIGHT, Leds.ORANGE,(255-i)/255) 
                Leds.set_color(Leds.LEFT, Leds.GREEN,i/255) 
                
                if btn.check_buttons(buttons=[‘backspace’]) or tr == 0:
                    break              
        
            for i in range(0,255,5):
                Leds.set_color(Leds.LEFT, Leds.GREEN,i/255)
                if btn.check_buttons(buttons=[‘backspace’]):
                    tr = 0
            if tr == 0:
                break
            Leds. set_color(Leds.RIGHT, Leds.ORANGE,1)

            for i in range(255,0,-5):
                Leds.set_color(Leds.RIGHT, Leds.ORANGE,i/255)
                Leds.set_color(Leds.LEFT, Leds.GREEN,i/255)

                if btn.check_buttons(buttons=[‘backspace’]): 
                    break  
            for i in range(0,255,5):
                Leds.set_color(Leds.LEFT, Leds.YELLOW,i/255)
                if btn.check_buttons(buttons=[‘backspace’]):
                    tr = 0
            if tr == 0:
                break

            for i in range(255,0,-5):
                Leds.set_color(Leds.RIGHT, Leds.RED,(255-i)/255)
                Leds.set_color(Leds.LEFT, Leds.YELLOW,i/255)

                if btn.check_buttons(buttons=[‘backspace’]) or tr == 0:
                    break

            for i in range(0,255,5):
                Leds.set_color(Leds.LEFT, Leds.YELLOW,i/255)
                if btn. check_buttons(buttons=[‘backspace’]):
                    tr = 0
            if tr == 0:
                break
            Leds.set_color(Leds.RIGHT, Leds.RED,1)

            for i in range(255,0,-5):
                Leds.set_color(Leds.RIGHT, Leds.RED,i/255)
                Leds.set_color(Leds.LEFT, Leds.YELLOW,i/255)

                if btn.check_buttons(buttons=[‘backspace’]):
                    break

3. Робот должен проехать полный круг по линии и остановиться, определив и произнеся вслух диаметр круга, который на момент старта ему неизвестен. Гироскоп использовать нельзя. # подключаем модуль для работы с EV3
from ev3dev.ev3 import *
# модуль для работы со временем
from time import *
# также нам потребуется pi из модуля математики
from math import pi

# объект для работы с кнопками на блоке
btn = Button()

# пара объектов для работы с моторами
mA = LargeMotor(‘outA’)
mD = LargeMotor(‘outD’)

# сбрасываем состояние энкодеров
# при старте программы они автоматически не сбрасываются!
mA. reset()
mD.reset()

# пара объектов для работы с датчиками освещенности
# у нас датчики от NXT 1.0, если будете использовать
# датчики цвета EV3, используйте класс ColorSensor
CS1 = LightSensor(‘in2’)
CS2 = LightSensor(‘in3’)

# режим работы датчиков – отраженный свет
# для EV3-датчиков цвета используйте ‘COL-REFLECT’ CS1.mode=’REFLECT’
CS2.mode=’REFLECT’

# средняя скорость движения по линии, градусов на энкодерах в сек speed = 800
# начальные сведения о радиусе круга – он неизвестен
r = 0

# параметры работы ПД-регулятора
u = 0
e = 0
es = 0
Pk = 1.1
Dk = 2

# создаем функцию для ограничения скорости моторов
# диапазоном -900..900 град/сек
def motor(speed):
    if speed>900:
        speed = 900
    elif speed<-900:
        speed = -900
    return speed

# цикл пока не нажата кнопка “назад”
while not btn.backspace:
    # рассчитываем ошибку для ПД-регулятора
    e = CS1. value() – CS2.value()
    # рассчитываем управляющее воздействие регулятора
    u = e*Pk + (e-es)*Dk
    # сохраняем ошибку для следующей итерации
    es = e

    # подаем управляющее воздействие на моторы
    # используя функцию, ограничивающую скорость  
    mA.run_forever(speed_sp=motor(speed+u))
    mD.run_forever(speed_sp=motor(speed-u))

    # рассчитываем радиус круга     
    if mD.position != mA.position:
        r = (61*(mA.position + mD.position))/(abs(mD.position-mA.position))
    # выводим на консоль текущий радиус круга
    print(r)   
    # небольшая задержка для работы регулятора
    sleep(0.01)
    # если проехали полный круг – вылет из цикла
    if (mA.position*(pi*56/360)+mD.position*(pi*56/360))/2 > pi*(r*2) and time()>3:
        break

# останавливаем моторы методом торможения
mA.stop(stop_action=”hold”)
mD.stop(stop_action=”hold”)

# произносим рассчитанный в процессе движения диаметр круга
Sound. speak(‘Stoped’).wait()
Sound.speak(round(r*2)).wait()

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

# подключаем модуль для работы с EV3
from ev3dev.ev3 import *
# из модуля для работы со временем нам понадобится sleep
from time import sleep
# подключаем модуль математики
from math import *

# переменные для хранение данных с энкодеров
ma = 0
md = 0

# объект для работы с кнопками на блоке
btn = Button()
# средняя скорость робота, град/сек
speed = 200

# объекты для работы с моторами mA = LargeMotor(‘outA’)
mD = LargeMotor(‘outD’)

# объекты для работы с датчиками – инфракрасным и гироскопом IR = InfraredSensor(‘in4’)
Gyro = GyroSensor(“in1”)

# устанавливаем режим работы гироскопа (измерение угла) Gyro.mode = ‘GYRO-ANG’

# создаем функцию для ограничения скорости моторов
# диапазоном -900. .900 град/сек
def motor(speed):
    if speed>900:
        speed = 900
    elif speed<-900:
        speed = -900
    return speed

# переменные для хранения расстояния и направления на ближайшую банку
MIN = 100
MINGRAD = 0

# в массиве g будем хранить данным с гироскопа
g = [0 for i in range(360)]

# вращаемся в поисках банки
mA.run_forever(speed_sp=speed)
mD.run_forever(speed_sp=-1*speed)

# находим ближайшую банку
while Gyro.value() < 359:
    GyVal =  Gyro.value()
    g[GyVal] = IR.value()*0.7

    if g[GyVal] < MIN:
        MIN = g[GyVal]
        MINGRAD = GyVal    

# останавливаемся
mA.stop(stop_action=”hold”)
mD.stop(stop_action=”hold”)

Sound.beep()

# расчет угла для поворота к банке боком
MINGRAD = MINGRAD + 90

# разворачиваемся к банке левым бортом
while abs(Gyro.value()-MINGRAD) > 1:
    speedL = -1*(Gyro. value()-MINGRAD)*5
    speedR = (Gyro.value()-MINGRAD)*5
    mA.run_forever(speed_sp=motor(speedL))
    mD.run_forever(speed_sp=motor(speedR))

# останавливаемся
mA.stop(stop_action=”hold”)
mD.stop(stop_action=”hold”)

sleep(2)

# сбрасываем гироскоп Gyro.mode = ‘GYRO-RATE’
Gyro.mode = ‘GYRO-ANG’

sleep(1)

grad = 0
# расчет длины стороны 360-ти угольника
i = 2*(MIN*6+70)*tan(radians(0.5))

# сброс энкодеров
mA.reset()
mD.reset()

# снижаем скорость до 50 граду/сек
speed = 50

# цикл – пока не проехали полный круг
# или не нажата кнопка
while grad > -360 and not btn.backspace:
    ob = 56*pi/360
    # если проехали 1 сторону 360-ти угольника
    if ((mA.position-ma)*ob+(mD.position-md)*ob)/2 > i:
        # поворачиваемся на 1 градус
        grad = grad-1
        ma = mA.position
        md = mD.position
    
    # пропорциональный регулятор от grad     
    speedL = speed-(Gyro. value()-grad)*16
    speedR = speed+(Gyro.value()-grad)*16

    # перед подачей на моторы ограничиваем скорость ф. motor()     
    mA.run_forever(speed_sp=motor(speedL))
    mD.run_forever(speed_sp=motor(speedR))

# останавливаемся после того как проехали круг
mA.stop(stop_action=”hold”)
mD.stop(stop_action=”hold”) 

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

# подключаем модуль для работы с EV3
from ev3dev.ev3 import *
# нам потребуются модули математики и времени
from math import *
import time

# объект для работы с кнопками на блоке
btn = Button()

# средняя скорость движения робота, град/сек
speed = 300

# объекты для работы с моторами
mA = LargeMotor(‘outA’)
mD = LargeMotor(‘outD’)

# объекты для работы с датчиками
LS1 = LightSensor(‘in2’)
LS2 = LightSensor(‘in3’)
# режим работы датчиков освещенности – отраженный свет
LS1. mode = ‘REFLECT’
LS2.mode = ‘REFLECT’

# объект для работы с гироскопом
Gyro = GyroSensor(“in1”)
# режим работы гироскопа – измерение угла
Gyro.mode = “GYRO-ANG”

# функция для ограничения скорости мотора (-900..900)
def motor(speed):    
    if speed>900:   
        speed = 900                             
    elif speed<-900:      
        speed = -900 
    return speed

# сброс энкодеров
mA.reset()
mD.reset()

# параметры ПД-регулятора
e = 0
es = 0
u = 0
Pk = 3
Dk = 6

# диаметр круга роботу неизвестен
D = 0

# пока не нажата кнопка назад
while not btn.backspace:
    e = LS1.value()/10 – LS2.value()/10
    u = e*Pk + (e-es)*Dk    
    es = e
      
    mA.run_forever(speed_sp=motor(speed+u))
    mD.run_forever(speed_sp=motor(speed-u))

    if mA.position != mD.position:
        D = (61*(mA.position + mD.position))/(abs(mA. position-mD.position))
    print(D)

    if (mA.position*(56*pi/360)+mD.position*(56*pi/360))/2 > pi*(D*2) and time.time() > 3:
        break

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

mA.stop(stop_action=”hold”)
mD.stop(stop_action=”hold”)
Sound.beep()

# сброс гироскопа
grad = 0
ma = 0
mb = 0
time.sleep(1)
Gyro.mode = ‘GYRO-RATE’
Gyro.mode = ‘GYRO-ANG’

speedL = 0
speedR = 0

ma = mA.position
mb = mD.position

tmp = D
speed = 50

# аналогично третьей задаче движемся по правильному
# 360-ти угольнику, но длину сторону уменьшаем 
# после каждой стороны, делая “круг” меньше
# как только диаметр вписанной окружности станет
# менее 1 см – останавливаемся

while not btn.backspace:
    ob = 56*pi/360
    if ((mA.position-ma)*ob+(mD.position-mb)*ob)/2 > (2*D)*tan(radians(0.5)):

        if mA. position > mD.position:
            grad = grad+1             
        else:
            grad = grad-1
        
        D = D-tmp/720
        ma = mA.position
        mb = mD.position

    speedL = speed-(Gyro.value()-grad)*10
    speedR = speed+(Gyro.value()-grad)*10

    mA.run_forever(speed_sp=motor(speedL))
    mD.run_forever(speed_sp=motor(speedR))

    print(D)
    if D<0.5:
        break

mA.stop(stop_action=”hold”)
mD.stop(stop_action=”hold”)
Sound.beep()

Инструкции по сборке конструктора лего nxt. Инструкции LEGO Mindstorms EV3

Было объявлено о проведении в рамках областных отборочных соревнований на фестиваль “РобоМир-2014” еще одной новой номинации – “Футбол роботов”. Поэтому мы открываем на нашем блоге новый цикл статей, посвященных этим состязаниям.

Итак, немного предыстории… Самым масштабным на сегодняшний день мероприятием, на котором роботы соревнуются в футболе, является RoboCup (от англ. “Robot Soccer World Cup” – Чемпионат по футболу среди роботов), который проводится ежегодно с 1993 года. Официальной целью проекта является перспектива создания к середине 21-ого века человекоподобных роботов-футболистов, способных выиграть футбольный матч у людей по правилам FIFA. Одной из номинаций этого масштабного мероприятия является RoboCup Junior Australia (RCJA) GEN II Robot Soccer – то что интересует нас, любителей собирать роботов из конструкторов Lego Mindstorms, больше всего.

Помимо RoboCup, в робо-футбол играют по тем же правилам и на World Robot Olympiad , где наши соотечественники в последние годы добиваются высоких результатов и даже заняли 1 место в старшей возрастной категории на олимпиаде в Малайзии в 2012 году.
Стоит отметить, что состязания роботов-футболистов всегда вызывают особый интерес на любых мероприятиях, где он проводится и никогда не обходится без внимания зрителей. Ведь, кому же будет безынтересно понаблюдать в действии работу самого настоящего искусственного интеллекта!

Теперь вниманию всех заинтересовавшихся! Что же нужно для того, чтобы принять участия в такого рода состязаниях?

Во-первых, конструктор Lego Mindstorms любого из поколений: RCX, NXT или EV3. Набор деталей конечно же индивидуален для каждого робота, но набор электронных компонентов обязательно должен включать в себя: программируемый блок и три двигателя – без этого никуда. Обычно для такого рода соревнований достаточным является Базовый + Ресурсный наборы Lego Mindstorms Education (у каждого из поколений существуют такие наборы).

Во-вторых, специальные датчики. Для игры в робо-футбол ОБЯЗАТЕЛЬНЫМ является использование датчика Компас и ИК-датчика. Остальные датчики можно использовать по усмотрению участников, но стоит отметить, что использовать можно только датчики официально разрешенные к использованию на соревнованиях в которых вы собрались участвовать (уточняйте в правилах). Обычно правила допускают использование любых датчиков, входящих в комплекты Lego Mindstorms NXT, RCX или EV3, а также некоторой продукции сертифицированного производителя HiTechic (например, NSK1042 – NXT IRSeeker V2 , NMC1034 – NXT Compass Sensor).

В-третьих, специальное игровое поле и мяч. Если с игровым полем все более ли менее понятно – в правилах всегда подробно указываются размеры и цвета, на основе чего Вы можете либо сами подготовить поле, либо заказать его на мебельной фабрике, то с мячом все немного сложнее. Дело в том, что для того, чтобы робот мог играть в футбол, он должен каким-либо образом “видеть” этот мяч, а иначе вся игра превратиться в беспорядочные и совершенно необоснованные движения моделей и о каком-либо “искусственном интеллекте” уже не может быть и речи. Именно поэтому правила соревнований требуют от участников использование ИК-датчика – для того чтобы он смог “увидеть” специальный

На этой странице собраны инструкции по сборке роботов или механизмов из стартового образовательного набора LEGO MINDSTORMS Education EV3 (45544) . Кроме инструкций вы найдёте здесь видео, показывающие возможности собранных моделей, и демонстрационные программы. Для некоторых моделей даны рекомендации, с помощью каких приложений можно дистанционно управлять роботами и как настраивать эти приложения.

Если вы горите желанием сделать робота с большими колёсами из образовательного набора LEGO Mindstorms EV3 (45544), но у вас нет таких колёс, не расстраивайтесь. Вы можете изготовить их самостоятельно из толстого гофрированного картона. Как сделать робота с большими картонными колёсами, чтобы колёса нормально крутились и не отваливались, я предлагаю вам прочитать в этой статье.

Мне очень понравился проект робота-художника EV3 Print3rbot, в котором, к сожалению, используются нестандартные детали, которые нужно печатать на 3D-принтере. Я решил собрать такого же робота, но используя детали только из образовательного набора LEGO Mindstorms EV3 (45544). И у меня это получилось, правда, пришлось добавить ещё резинок.

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

Используя конструктор LEGO MINDSTORMS EV3 и веб-камеру, вы сможете провести эксперимент по обнаружению лиц в помещении. Для эксперимента подойдёт любой колёсный робот EV3, который умеет вращаться на месте, и на который вы сможете закрепить веб камеру. Робот будет сканировать помещение, поворачиваясь вокруг, а, увидев лица, будет останавливаться и дёргаться столько раз, сколько лиц увидел.

С помощью веб-камеры и образовательного набора конструктора LEGO MINDSTORMS Education EV3 (45544) вполне можно сделать робота, отслеживающего двигающийся объект. Робот сможет не только поворачивать камеру в сторону объекта, но и выдерживать определённую дистанцию до него, т.е. подъехать поближе, если объект удаляется от камеры, или отъехать подальше, если объект приближается. О том, как это сделать поговорим в этой статье.

Гимнаста выполняющего различные упражнения на турнике сделать достаточно просто, если у вас есть образовательный конструктор LEGO MINDSTORMS Education EV3 (45544). Я научил гимнаста выполнять три упражнения, а вы можете научить его и другим различным трюкам.

Гоночную машину, имитирующую болид формулы 1, можно сделать с помощью образовательного набора LEGO MINDSTORMS Education EV3 (45544). В машине сидит водитель и держится за руль. Машина дистанционно управляется с Android-смартфона.

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

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

Селеноход – это луноход, созданный российской командой для участия в конкурсе Google Lunar X PRIZE. В настоящий момент проект закрыт, но интересная конструкция с не менее интересной системой передвижения по лунной поверхности остались. С помощью стартового образовательного набора LEGO MINDSTORMS Education EV3 (45544) возможно собрать модель Селенохода, который будет передвигаться по такому же принципу и так же поднимать и опускать «голову».

В базовом образовательном наборе LEGO Mindstorms Education EV3 (45544) оказалось достаточно шестерёнок и других деталей, чтобы собрать часы с часовой и минутной стрелками. Кроме того, что часы точно отображают время, они издают звуковой сигнал каждый час.

В образовательном наборе конструктора Mindstorms Education EV3 всё обучение робототехники в классе ведётся с помощью приводной платформы, на колёсном ходу. Мне же захотелось сделать точно такую же платформу, чтобы на неё точно также можно было установить все датчики, но только, чтобы она передвигалась с помощью гусениц.

Facebook

Twitter

Вконтакте

Одноклассники

Google+

Анализ выполнения кода VSCode Python в LEGO EV3

Изображение ev3dev.

Подключите устройство LEGO EV3 через SSH, пароль по умолчаниюmaker

$ ssh [email protected]
Password: 
Linux ev3dev 4.14.61-ev3dev-2.2.2-ev3 #1 PREEMPT Mon Aug 6 14:22:31 CDT 2018 armv5tejl
             _____     _
   _____   _|___ /  __| | _____   __
  / _ \ \ / / |_ \ / _` |/ _ \ \ / /
 |  __/\ V / ___) | (_| |  __/\ V /
  \___| \_/ |____/ \__,_|\___| \_/

Debian stretch on LEGO MINDSTORMS EV3!
Last login: Wed Oct 24 07:42:33 2018 from 10.42.0.1

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

[email protected]:~$ ps -alx
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0     1     0  20   0  27960  5632 -      Ss   ?          0:10 /sbin/init
4     0   148     1  20   0  39620  7484 -      Ss   ?          0:05 /lib/systemd/systemd-journald
4     0   193     1  20   0  13660  2692 -      Ss   ?          0:03 /lib/systemd/systemd-udevd
4   107   358     1  20   0   6360  2964 -      Ss   ?          0:01 avahi-daemon: running [ev3dev. local]
4   106   359     1  20   0   6476  3268 -      Ss   ?          0:02 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
1   107   360   358  20   0   6360  1444 -      S    ?          0:00 avahi-daemon: chroot helper
4     0   362     1  20   0   7340  4224 -      Ss   ?          0:00 /lib/systemd/systemd-logind
4     0   365     1  20   0  17184  4600 -      Ssl  ?          0:04 /usr/sbin/brickd
4  1000   378     1  20   0  33756  4200 poll_s Ssl+ tty5       0:00 /usr/bin/conrun-server
1     0   393     1  20   0   1768   544 -      Ss   ?          0:00 /usr/sbin/ldattach 29 /dev/tty_ev3-ports:in1
4     0   427     1  20   0  10988  4588 -      Ss   ?          0:03 /usr/sbin/connmand -n
4     0   429     1  20   0   7344  3300 -      Ss   ?          0:00 /usr/lib/bluetooth/bluetoothd
4   103   510     1  20   0   8192  4444 -      Ss   ?          0:00 /lib/systemd/systemd-resolved
4     0   512     1  20   0   9900  3612 -      Ss   ?          0:00 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
4     0   514     1  20   0  51356 11772 -      Ssl+ tty1       0:34 /usr/sbin/brickman
4     0   518     1  20   0  10268  5188 -      Ss   ?          0:00 /usr/sbin/sshd -D
5   105   535     1  20   0   8972  3856 -      Ssl  ?          0:01 /usr/sbin/ntpd -p /var/run/ntpd. pid -g -u 105:108
4     0   702   518  20   0  11524  5616 -      Ss   ?          0:00 sshd: robot [priv]
4  1000   709     1  20   0   9644  5564 SyS_ep Ss   ?          0:00 /lib/systemd/systemd --user
5  1000   712   709  20   0  29564  2540 -      S    ?          0:00 (sd-pam)
5  1000   719   702  20   0  11524  3680 -      R    ?          0:00 sshd: [email protected]/0
0  1000   722   719  20   0   5264  3008 wait   Ss   pts/0      0:00 -bash
0  1000   842   722  20   0   7200  2296 -      R+   pts/0      0:00 ps -alx

Всего существует 23 пользовательских процесса.

Пример проекта Python, разработанный для EV3 в VSCode, официально предоставлен ev3devvscode-hello-python Например, в VSCode откройте исходный каталог загруженного проекта, открыв каталог и нажав F5, чтобы запустить код в EV3. В это время проверьте состояние выполнения процессов в EV3.

[email protected]:~$ ps -alx
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0     1     0  20   0  27960  5192 -      Ss   ?          0:10 /sbin/init
4     0   148     1  20   0  39620  6604 -      Ss   ?          0:05 /lib/systemd/systemd-journald
4     0   193     1  20   0  13660  2676 -      Ss   ?          0:03 /lib/systemd/systemd-udevd
4   107   358     1  20   0   6360  2772 -      Ss   ?          0:01 avahi-daemon: running [ev3dev. local]
4   106   359     1  20   0   6476  3028 -      Ss   ?          0:02 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
1   107   360   358  20   0   6360  1332 -      S    ?          0:00 avahi-daemon: chroot helper
4     0   362     1  20   0   7340  3672 -      Ss   ?          0:00 /lib/systemd/systemd-logind
4     0   365     1  20   0  17212  4444 -      Ssl  ?          0:05 /usr/sbin/brickd
4  1000   378     1  20   0  33756  3896 poll_s Ssl  tty5       0:00 /usr/bin/conrun-server
1     0   393     1  20   0   1768   492 -      Ss   ?          0:00 /usr/sbin/ldattach 29 /dev/tty_ev3-ports:in1
4     0   427     1  20   0  10988  3592 -      Ss   ?          0:03 /usr/sbin/connmand -n
4     0   429     1  20   0   7344  3084 -      Ss   ?          0:00 /usr/lib/bluetooth/bluetoothd
4   103   510     1  20   0   8192  3752 -      Ss   ?          0:00 /lib/systemd/systemd-resolved
4     0   512     1  20   0   9900  2712 -      Ss   ?          0:00 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
4     0   514     1  20   0  51356  8764 -      Ssl+ tty1       0:38 /usr/sbin/brickman
4     0   518     1  20   0  10268  5016 -      Ss   ?          0:00 /usr/sbin/sshd -D
5   105   535     1  20   0   8972  3256 -      Ssl  ?          0:01 /usr/sbin/ntpd -p /var/run/ntpd. pid -g -u 105:108
4     0   702   518  20   0  11524  5616 -      Ss   ?          0:00 sshd: robot [priv]
4  1000   709     1  20   0   9644  5144 SyS_ep Ss   ?          0:00 /lib/systemd/systemd --user
5  1000   712   709  20   0  29564  2412 -      S    ?          0:00 (sd-pam)
5  1000   719   702  20   0  11524  3692 -      S    ?          0:04 sshd: [email protected]/0
0  1000   722   719  20   0   5264  3008 wait   Ss   pts/0      0:00 -bash
4     0   857   518  20   0  11524  5568 -      Ss   ?          0:01 sshd: robot [priv]
5  1000   868   857  20   0  11524  4800 -      S    ?          0:00 sshd: [email protected]
0  1000   870   868  20   0   2296  1448 -      Ss   ?          0:00 /usr/lib/openssh/sftp-server
0  1000   872   868  20   0  34148  4724 poll_s Ssl  ?          0:00 brickrun --directory=/home/robot/vscode-hello-python /home/robot/vscode-hello-python/hello.
0  1000   884   378  20   0   9100  6572 poll_s S+   tty5       0:02 python3 /home/robot/vscode-hello-python/hello. py
0  1000   907   722  20   0   7200  2300 -      R+   pts/0      0:00 ps -alx

Всего в этот раз 28 пользовательских процессов. На этом этапе добавляются следующие пять процессов:

4     0   857   518  20   0  11524  5568 -      Ss   ?          0:01 sshd: robot [priv]
5  1000   868   857  20   0  11524  4800 -      S    ?          0:00 sshd: [email protected]
0  1000   870   868  20   0   2296  1448 -      Ss   ?          0:00 /usr/lib/openssh/sftp-server
0  1000   872   868  20   0  34148  4724 poll_s Ssl  ?          0:00 brickrun --directory=/home/robot/vscode-hello-python /home/robot/vscode-hello-python/hello.
0  1000   884   378  20   0   9100  6572 poll_s S+   tty5       0:02 python3 /home/robot/vscode-hello-python/hello.py

Процесс выглядит так: когда VSCode необходимо ввести код в устройство EV3 для выполнения, сервер sftp запускается в системе устройства EV3.sftp-server Используется для передачи кода, выполняется после завершения передачи кодаbrickrun --directory=/home/robot/vscode-hello-python /home/robot/vscode-hello-python/hello. py Команда для запуска нашего кода. Этоbrickrun Родителем процесса является ID процесса 868sshd: [email protected] Процесс.

brickrun Непосредственно не объясняет выполнение нашего кода Python, но вместо этого использует процесс номер 378conrun-server И интерпретаторы Python3 в системах устройств EV3python3 Объясните наш код.

vscode-hello-python Основной функцией кода является отображение «Hello World!» На экране устройства и «Hello VS Code!» На терминале. Внедрив код в устройство и выполнив его через плагин VSCode, эти функции, несомненно, могут быть выполнены правильно.

Если мы используем SSH для входа в систему устройства, выполните код Python непосредственно в терминале, например так:

[email protected]:~$ python3 /home/robot/vscode-hello-python/hello.py
Hello World!
Hello VS Code!

В это время строка не видна на экране устройства LEGO EV3, и обе строки отображаются в терминале.

Если мы выполняем прямо в терминалеbrickrun Команда как это:

[email protected]:~$ brickrun --directory=/home/robot/vscode-hello-python /home/robot/vscode-hello-python/hello.py
Hello VS Code!

На данный момент код все еще работает, как и ожидалось. Если вы проверите состояние выполнения процессов в устройстве LEGO EV3, вы увидите, что добавлены следующие два процесса:

0  1000  1046   722  20   0  34148  4616 poll_s Sl+  pts/0      0:00 brickrun --directory=/home/robot/vscode-hello-python /home/robot/vscode-hello-python/hello.py
0  1000  1058   378  20   0  10696  6736 poll_s S+   tty5       0:02 python3 /home/robot/vscode-hello-python/hello.py

brickrun Процесс состоит из процесса № 722, который мы запускаемbash Создание процесса, процесс интерпретатора Python3 по-прежнему имеет идентификатор процесса 378conrun-server Процесс создания.

вСоздание среды разработки PyCharm Python для LEGO EV3 В этой статье вы можете увидеть, что код, который управляет вращением двигателя с кодом Python, может быть выполнен непосредственно в терминале с интерпретатором Python, как мы и ожидали.

Это означает, что среда выполнения Python выполняет интерпретатор Python непосредственно в терминале, иbrickrun/conrun-server Созданная среда выполнения Python отличается, основным отличием должно быть поведение функций ввода и вывода в стандартной библиотеке Python.

В общем, процесс выполнения кода VSCode Python в LEGO EV3, по-видимому, в основном представляет собой процесс удаленного выполнения кода.

Официальный сайт образа ev3dev в устройстве LEGO EV3ev3devКод для пользовательских пользовательских процессов, выполняющихся в образе ev3dev, в основном с открытым исходным кодом. Исходные адреса нескольких команд, упомянутых ранее, следующие:

Плагин VSCode для ev3dev также с открытым исходным кодом, и его адресvscode-ev3dev-browser

(PDF) USING THE FREE PASCAL PROGRAMMING LANGUAGE AND THE RUBIROBOTLIB SOFTWARE LIBRARY TO CONTROL ROBOTS ON THE LEGO MINDSTORMS EV3 PLATFORM

9

Методическая копилка

сятках компьютеров, на операционных системах

Microsoft Windows XP, 7, 8. 1, 10, с различными бло-

ками EV3 и разными версиями среды разработки.

При создании простых алгоритмов проблема,

естественно, не проявляется, но при решении

серьезных задач, например, во время подготовки

к робототехническим соревнованиям и во время

них, работа крайне замедляется.

• В среде невозможна разработка некоторых видов

алгоритмов, например, с использованием прямой

или косвенной рекурсии. Данный факт является

прямым препятствием к эффективному использо-

ванию среды в робототехнических соревнованиях.

• Данное программное обеспечение не функцио-

нирует ни на одной операционной системе рос-

сийского производства из внесенных в Единый

реестр российских программ для электронных

вычислительных машин и баз данных (https://

reestr.minsvyaz.ru/). Таким образом, с учетом ре-

ализуемой в России программы импортозамеще-

ния возможность дальнейшего применения среды

в государственных образовательных учреждениях

находится под вопросом.

Существует возможность заменить среду раз-

работки LEGO MINDSTORMS Education EV3 на

другие среды и языки программирования, как функци-

онирующие на оригинальной прошивке LEGO EV3, так

и требующие для корректной работы загрузки сторонних

прошивок и операционных систем. Специфика контрол-

лера EV3 позволяет осуществлять загрузку с MicroSD-

карты, оставляя оригинальную прошивку без изменений,

что, в свою очередь, позволяет вернуться к штатной за-

грузке при возникновении каких-либо ошибок.

Среди сторонних ОС следует выделить две:

• leJOS [20], представляющую собой минимальный

дистрибутив Linux с запущенной виртуальной

машиной Java,

• и ev3dev [17] — полноценный дистрибутив Linux

Debian с возможностью использования любых

языков программирования, доступных для ОС

Linux.

Существует множество сред и языков программи-

рования для EV3 — как текстовых, так и графических.

Среди графических следует выделить TRIK Studio [25],

которая кроме собственного контроллера TRIK под-

держивает и контроллер LEGO EV3, является свобод-

ным программным обеспечением и функционирует

в большинстве операционных систем. Среди учебных

сред стоит обратить внимание на Scratch [12] и Open

Roberta [23], среди коммерческих профессиональных —

на LabVIEW [19] и его адаптированный для образования

клон ROBOLAB [22].

Для текстовых языков программирования важным

является наличие программных библиотек поддержки

аппаратных подсистем и подключаемых устройств LEGO

EV3. Указанными качествами обладают: Java проекта

leJOS, EV3 Basic [16], такие языки проекта ev3dev, как

Java, Python, Go, С, С++ и многие другие.

В то же время в РФ для обучения программированию

в большинстве школ используются разные диалекты

языка программирования Pascal (Delphi [15], PascalABC

[14], Free Pascal [21] и т. п.). До настоящего времени не

существовало средств разработки на языке Pascal для

EV3 (за исключением экспериментальной генерации

кода на Pascal в TRIK Studio), что затрудняло примене-

ние школьниками полученных на уроках информатики

знаний и умений для программирования робототехни-

ческих систем.

Указанную проблему решают проект RubiRobot [13]

и свободно распространяемая программная библиоте-

ка RubiRobotLib, доступная по адресу: http://rubirobot.

ru/files/src/RubiRobotLib.tar.gz.

Библиотека RubiRobotLib разработана на языке

программирования Free Pascal и представляет собой

программный интерфейс в виде набора функций,

классов и объектов с поддержкой всех внутренних

и подключаемых устройств LEGO EV3. RubiRobotLib

требует загрузки робота с оригинального или модифи-

цированного в рамках проекта RubiRobot дистрибутива

Linux Debian проекта ev3dev. Оригинальный дистрибу-

тив доступен на сайте проекта ev3dev по адресу: https://

www. ev3dev.org/downloads, модифицированный — на

сайте проекта RubiRobot по адресу: http://rubirobot.ru/

files/img/ev3dev-rubirobot.img.bz2. Библиотека содержит

подробную документацию [6] в формате PDF/A, не-

сколько десятков примеров различной степени слож-

ности, консольный менеджер, позволяющий ускорить

и упростить передачу данных между хостовым компью-

тером и роботом.

Подготовка текста программы с использованием

библиотеки и ее компиляция могут производиться

непосредственно на LEGO EV3 в ssh-сессии без уста-

новки специализированного ПО на персональный

компьютер. Для подключения к роботу по протоколу

ssh можно использовать произвольный ssh-клиент,

который в ОС российского производства присутству-

ет обычно изначально, а в ОС Windows может быть

установлен дополнительно [24]. Запуск полученного

в результате компиляции исполняемого файла может

также производиться в ssh-сессии либо с помощью

управляющего LEGO EV3 приложения Brickman.

В первом случае штатные средства ввода-вывода Free

Pascal будут обмениваться с пользователем данными

в рамках терминала ssh-соединения. Во втором —

взаимодействовать с пользователем через дисплей

LEGO EV3, кнопки блока и клавиатуру (в случае ее

подключения к USB-порту контроллера). С учетом не-

высокой (по сравнению с персональным компьютером)

производительности LEGO EV3 более эффективным

вариантом является создание программ с использова-

нием средств кросскомпиляции, что дает значительный

выигрыш в скорости разработки. Пакет программ

RubiRobotCross проекта RubiRobot, доступный по

адресу: http://rubirobot.ru/files/img/setupRubiRobot.tgz,

содержит в себе все необходимое для организации

кросс компиляции и предназначен для использования

на российских операционных системах Alt Linux, седь-

мой [4] и восьмой [5] платформах. В частности, работо-

способность RubiRobotCross была протестирована на

дистрибутивах Simply Linux 7. 0, Альт Линукс 7.0 Кен-

тавр, Альт Образование 8.2 и некоторых других. Ведутся

работы по модификации RubiRobotCross для установки

на другие дистрибутивы Linux, такие как Debian, Arch,

Calculate. С учетом реализуемой в России программы

импортозамещения модификация RubiRobotCross для

ОС Windows признана на текущий день автором про-

екта нецелесообразной. Но все компоненты проекта

выпускаются под лицензией LGPLv3, что позволяет

портировать RubiRobotCross на ОС Windows любому

стороннему разработчику.

Что делать, если ваш EV3 перестал работать — LEGO Engineering

Режим обновления прошивки

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

Проблемы с запуском/остановкой:

  1. Блок EV3 разрядился после замены батареи. Возможно, неправильное подключение аккумулятора. Проверьте пружины батареи, чтобы убедиться, что ни одна из них не погнулась во время замены батареи.
  2. При запуске EV3 кратковременно мигает красным, а затем гаснет. Если у вас версия для образовательных учреждений, проблема может заключаться в неисправном аккумуляторе. Первые поставки комплектов включали неисправную перезаряжаемую батарею, которую LEGO Education заменит.
  3. На дисплее блока EV3 написано «начало», но дальше этой точки дело не идет. Вам необходимо перезалить прошивку. Следуй этим шагам:
    1. Извлеките аккумулятор и снова вставьте его.
    2. Удерживайте нажатыми центральную и правую кнопки, пока на дисплее не появится сообщение «Обновление…»
    3. Откройте программное обеспечение EV3 и подключите модуль EV3 к компьютеру через USB.
    4. Обновите микропрограмму, выбрав «Обновление микропрограммы» в раскрывающемся меню «Инструменты».
  4. Модуль EV3 зависает во время обновления прошивки, и обновление никогда не завершается. Чтобы решить проблему, обновите прошивку вручную. Откройте программное обеспечение EV3 и подключите EV3 к компьютеру через USB, затем следуйте этим инструкциям из Руководства пользователя EV3:
    1. Удерживайте кнопки «Назад», «Центр» и «Вправо» на модуле EV3.
    2. Когда модуль EV3 перезапустится, отпустите кнопку «Назад».
    3. Когда на экране появится сообщение «Обновление», отпустите центральную и правую кнопки и нажмите кнопку «Загрузить» в инструменте обновления встроенного ПО. Прошивка будет загружена на ваш модуль EV3, который перезапустится.
    4. Если ручное обновление прошивки не заставит ваш блок EV3 работать с первого раза, повторите процесс ручного обновления.
  5. Блок EV3 перестает работать и не выключается. Выполнить сброс вручную. Из Руководства пользователя EV3: Сброс модуля EV3 не приводит к удалению существующих файлов и проектов из предыдущих сеансов в памяти модуля EV3.Файлы и проекты существующего сеанса будут потеряны.
    1. Убедитесь, что модуль EV3 включен.
    2. Удерживайте кнопки «Назад», «Центр» и «Влево» на блоке EV3.
    3. Когда экран погаснет, отпустите кнопку «Назад».
    4. Когда на экране появится надпись «Запуск», отпустите центральную и левую кнопки.

Проблемы с подключением:

  1. Блок EV3 не распознается компьютером после обновления прошивки. Установите флажок в правом нижнем углу.Если написано «Обновление прошивки EV3», щелкните вкладку «Доступные модули» и переключитесь на «EV3».
  2. Программное обеспечение EV3 не запускается после его установки, а вместо этого выдает сообщение об ошибке. Возможно, у вас проблема с Silverlight. Попробуйте удалить и переустановить Silverlight и программное обеспечение EV3.
  3. Компьютер “пищит” при подключении EV3, но драйвера не распознают кирпич. Возможно, у вас поврежден порт, вызванный попыткой перевернуть кабель EV3.   (Спасибо Дэмиену Ки за информацию и фото.)
  4. Вы используете компьютер с Windows и получаете сообщение «ошибка связи» при попытке подключения к блоку EV3 . Возможен конфликт с антивирусным программным обеспечением или каким-то другим приложением. Попробуйте отключить антивирусное программное обеспечение, чтобы посмотреть, решит ли это проблему. Попробуйте перезагрузить компьютер с помощью Выборочного запуска.
  5. Вы используете Mac, и соединение Bluetooth не работает.  Если вы используете домашнюю версию программного обеспечения EV3, попробуйте обновить прошивку, что должно решить проблему с работой Bluetooth в более новых операционных системах Mac. Если вы используете версию для учебных заведений, обновленная версия прошивки должна быть выпущена в ближайшие пару месяцев.

И, наконец, вот несколько общих советов, которые следует предпринять при возникновении проблемы:

  1. Снимите и снова установите аккумулятор.
  2. Перезапустите программное обеспечение EV3.
  3. Сделайте ручной сброс блока EV3.Подробные инструкции см. в пункте 5 в разделе о запуске/остановке выше.
  4. И, конечно же, вы можете связаться с местным дистрибьютором LEGO Education.
Следующие две вкладки изменяют содержимое ниже.

Барбара преподает в школе Shady Hill в Кембридже, штат Массачусетс, и работает в Центре инженерных и образовательных программ Университета Тафтса. Она является автором нескольких учебных пособий по робототехнике LEGO для учителей, последний из которых — STEM by Design.

Почему мой модуль EV3 не работает? – СидмартинБио

Почему мой модуль EV3 не работает?

Модуль EV3 зависает во время обновления прошивки, и обновление никогда не завершается.Чтобы устранить проблему, вручную обновите прошивку. Откройте программное обеспечение EV3 и подключите EV3 к компьютеру через USB, затем следуйте этим инструкциям из Руководства пользователя EV3: Когда модуль EV3 перезапустится, отпустите кнопку «Назад».

Как включить модуль EV3?

Чтобы включить модуль EV3, нажмите центральную кнопку. После нажатия кнопки индикатор состояния модуля загорится красным, и отобразится начальный экран. Когда цвет индикатора изменится на зеленый, ваш модуль EV3 готов.Чтобы выключить модуль EV3, нажимайте кнопку «Назад», пока не появится экран «Выключение».

Как выполнить сброс модуля EV3?

Руководство пользователя LEGO MINDSTORMS EV3 содержит следующие инструкции по сбросу настроек EV3:

  1. Убедитесь, что модуль EV3 включен.
  2. Удерживайте нажатыми кнопки «Назад», «Центр» и «Влево» на модуле EV3.
  3. Когда экран погаснет, отпустите кнопку «Назад».
  4. Когда на экране появится надпись «Запуск», отпустите центральную и левую кнопки.

Что случилось с EV3?

LEGO Education объявила о планах вывода из эксплуатации робототехнической системы LEGO MINDSTORMS EV3 Education. Третье поколение робототехники LEGO (№ 45544) будет официально снято с производства 31 июня 2021 года. Набор LEGO MINDSTORMS EV3 Home/Retail Edition (LEGO № 31313) будет снят с производства в конце 2020 года.

Как обновить прошивку модуля EV3?

Как обновить модуль EV3

  1. Перейдите на веб-страницу диспетчера устройств EV3.
  2. Загрузите и установите диспетчер устройств EV3.
  3. Подключите модуль EV3 с помощью USB-кабеля.
  4. Проверьте версию микропрограммы модуля EV3 и при необходимости обновите ее.

Что такое блок переключателей?

Блок Switch — это контейнер, который может содержать две или более последовательностей блоков программирования. Каждая последовательность называется случаем. Тест в начале Switch определяет, какой Case будет запущен. При каждом выполнении Switch будет запускаться только один Case.

Что общего у мотоблоков?

Современные блоки цилиндров обычно имеют картер, объединенный с блоком цилиндров как единый компонент.Блоки двигателя часто также включают в себя такие элементы, как каналы охлаждающей жидкости и масляные галереи.

Как обновить Lego Mindstorm EV3?

Что заменит Mindstorms EV3?

Сегодня компания LEGO Group анонсировала 51515 Robot Inventor, который заменит набор EV3 31313 спустя 7 лет. В то время как Spike Prime по-прежнему нацелен на классную среду, новый Mindstorms Robot Inventor — это гораздо больше потребительский набор.

Что делать, если блок EV3 перестает работать?

Блок EV3 перестает работать и не выключается.Выполните ручной сброс. Из Руководства пользователя EV3: Сброс модуля EV3 не приводит к удалению существующих файлов и проектов из предыдущих сеансов в памяти модуля EV3. Файлы и проекты из существующего сеанса будут потеряны. Убедитесь, что блок EV3 включен.

Почему не запускается программное обеспечение EV3?

Программное обеспечение EV3 не запускается после его установки, а вместо этого выдает сообщение об ошибке. У вас может быть проблема с Silverlight. Попробуйте удалить и переустановить Silverlight и программное обеспечение EV3. Компьютер “пищит” при подключении EV3, но драйвера не распознают кирпич.

Как восстановить заводские настройки EV3?

Удерживайте кнопки «Назад», «Центр» и «Влево» на блоке EV3. Когда экран погаснет, отпустите кнопку «Назад». Когда на экране появится надпись «Запуск», отпустите центральную и левую кнопки. Блок EV3 не распознается компьютером после обновления прошивки. Установите флажок в правом нижнем углу.

Почему мой аккумулятор EV3 не заряжается или не запускается?

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

Устранение неполадок – ev3basic

Наиболее распространенная причина этого заключается в том, что на блоке открыта такая программа, как «просмотр порта» или диалоговое окно настроек, например диалоговое окно WiFi. В этом случае программы EV3 Basic нельзя запускать ни из Small Basic, ни из EV3 Explorer.

Программа преждевременно останавливается или «неправильно себя ведет» при использовании беспроводного соединения

  • Если у вас есть беспроводное соединение и вы запускаете программу в режиме ПК (непосредственно из Small Basic), между ПК может происходить значительный объем трафика данных. и кирпич во время работы программы.Кратковременное прерывание беспроводного соединения может привести к некорректной работе программы или к ее преждевременному завершению. Если вы запускаете программу в кирпичном режиме, у вас меньше шансов столкнуться с такими проблемами. Программу можно запустить в режиме модуля либо с помощью «Скомпилировать и запустить» в EV3 Explorer, либо сначала с помощью «Скомпилировать» в EV3 Explorer, а затем запустить программу из меню модуля. Не забывайте, что не все программы, которые работают в режиме ПК, будут работать без изменений в режиме кирпича, потому что при написании кода для использования в «режиме кирпича» необходимо соблюдать дополнительные правила кодирования.
  • Другие способы снизить вероятность возникновения ошибок при использовании беспроводного соединения — приблизить робота к ПК (Bluetooth) или маршрутизатору (WiFi) или использовать проводное соединение между маршрутизатором и ПК при использовании WiFi на кирпич.

Вы используете антивирус AVG и обнаруживаете, что он мешает запуску ваших программ Small Basic или EV3 Basic?

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

AVG > Antivirus Free > Меню > Настройки > Общие > Отключить «Включить CyberCapture»

Проблема с установлением соединения Bluetooth

Если вы уже установили соединение Bluetooth для использования со стандартным программным обеспечением Lego (EV3-G), то соединение должно быть готово для использования с EV3 Basic (помните, что стандартное программное обеспечение должно быть закрыто, прежде чем вы попытаетесь использовать EV3 Basic). ).Если вы успешно выполнили сопряжение EV3 и вашего ПК, но с тех пор у вас возникли проблемы с подключением, попробуйте разорвать их сопряжение, а затем снова выполнить сопряжение. Вот панель настроек Bluetooth в Windows 10 (я щелкнул значок EV3, чтобы отобразить кнопку «Удалить устройство» (отключить):


Робот ведет себя хаотично при использовании WiFi и EV3 Explorer после того, как соединение WiFi было прервано

быть ошибкой, которая вызовет неустойчивое поведение в этой довольно специфической ситуации.См. на этой странице . Вы можете уменьшить вероятность возникновения этой проблемы, используя Bluetooth, а не Wi-Fi, и, если вам необходимо использовать WiFi, установите время выключения на 60 минут, а не на 30 в меню настроек блока, чтобы уменьшить риск того, что блок выключается при подключении к проводнику по WiFi.

Двигатель должен был двигаться назад, но поехал вперед

Эта проблема, вероятно, вызвана тем, что вы указали отрицательный угол , а не отрицательный скорость или мощность .Small Basic игнорирует отрицательные знаки в аргументе угла, поэтому, если вы хотите, чтобы мотор двигался назад, вы должны задать функции отрицательную скорость или мощность.

Вы можете удалить текущую папку, только если предварительно было удалено все ее содержимое.

Сброс блока Lego Mindstorms EV3 и обновление прошивки

Сегодня у меня был редкий случай, когда “Кирпичик”, как и вентиляторы, центральный кирпичик Lego с микропроцессором в вызове комплекта Lego Mindstorms EV3, больше не издавал ни звука .Он все еще был занят миганием своих зеленых светодиодов, но больше не принимал приказы. Интересно, что соединение Bluetooth все еще было активным, но не реагировало ни на команды с iPad, ни на нажатие кнопок на самом кирпиче.

Как и все компьютеры, «Брик» — центральный блок управления набора Lego Mindstorms EV3 — иногда «подлагивает». Вот несколько проблем и решений.

Решение: аппаратный сброс блока EV3

В итоге мне помог только аппаратный сброс, который осуществляется непосредственно на блоке EV3.Это «заставляет» его перезапуститься. Где, как я читал, это скорее начало обновления прошивки в модуле EV3. Но это не беда: он перезагрузил меня, и тогда я смог снова загрузить и запустить программу через iPad. Так что мои проблемы были решены!

Инструкции: Как сбросить модуль EV3

Сброс можно выполнить относительно легко с помощью трех кнопок:

  1. Двумя пальцами вы нажимаете кнопку посередине и кнопку справа от нее.
  2. Пальцем другой руки нажимаете кнопку «Назад» вверху слева и держите все кнопки нажатыми до тех пор, пока не погаснет подсветка и дисплей кубика Lego EV3.
  3. Теперь вы отпустите все кнопки, и кирпич должен перезапуститься.

Если вы хотите, чтобы все это снова было проиллюстрировано, вы можете посмотреть эти инструкции для «Запуска в режиме обновления прошивки»:

Инструкция по аппаратному сбросу кирпича Lego EV3.

Проблемы, которые могут возникнуть с “Бриком”

Как я читал, есть некоторые проблемы, которые могут возникнуть при включении или работе с “Бриком”. Чтобы устранить эти источники ошибок, я суммировал симптомы/ошибки и возможные решения здесь:

  • После замены батарей/аккумуляторов блок EV3 «умер» и больше не реагирует. Если это так, снова извлеките батареи и убедитесь, что металлические зажимы не погнулись при установке батарей.
  • Когда кирпич заработает, он вспыхнет красным, а затем погаснет. Если это происходит с версией для учебных заведений, это может быть связано с дефектом аккумуляторной батареи. Lego поставила неисправный аккумулятор в ранних версиях образовательной версии, но Lego заменит его.
  • Блок сообщает о «запуске», но процесс загрузки не завершается. В этом случае необходимо перезагрузить прошивку, что можно сделать, выполнив следующие действия:
    • Извлеките и снова вставьте батареи; нажать и удерживать среднюю кнопку и правую кнопку, пока не появится сообщение «Обновление…»; подключите камень EV3 к компьютеру через USB; Обновите прошивку, выбрав «Обновление прошивки» в меню приложения Lego.
  • Блок EV3 застрял в обновлении прошивки и не доработан. Эту проблему также можно решить путем ручного обновления прошивки через компьютер. Для этого выполните следующие действия:
    • Нажмите и удерживайте кнопку «Назад», среднюю кнопку и кнопку «Вправо» (как на картинке выше), пока кирпич не перезапустится. Потом просто отпускаешь кнопку вверху слева и ждешь пока кирпич сообщит “Обновление…”. Теперь отпустите оставшиеся кнопки и нажмите кнопку загрузки в инструменте обновления прошивки (кирпич все время должен быть подключен к Mac/ПК через USB). Теперь кирпич получает новое обновление, а затем перезагружается. Если это не получилось с первого раза, процедуру можно повторять несколько раз, пока не получится.
  • Камень EV3 больше не работает и не выключается (у меня так было). Здесь выполняется ручной сброс. По инструкции от Лего сброс не приводит к потере файлов и настроек на кирпиче, которые происходят из предыдущих сессий. Однако данные текущего сеанса будут удалены. Ручной (аппаратный) сброс осуществляется, как описано выше (нажмите и удерживайте верхнюю левую, центральную и правую кнопки, пока не погаснут дисплей и светодиоды).

Актуальную прошивку и программу (Windows/Mac) для обновления прошивки можно найти кстати здесь на странице загрузки Лего.

(Источник некоторой информации: legoengineering.com)

 


 

Йенс ведет блог с 2012 года. Он выступает перед своими читателями как сэр Апфелот и помогает им с проблемами технического характера. В свободное время он ездит на моноколесах, фотографирует (желательно, конечно, на свой iPhone), лазает по Гессенским горам или совершает походы с семьей.Его статьи посвящены продуктам Apple, новостям из мира дронов или решениям текущих ошибок.

5 удивительных проектов Lego Mindstorms EV3

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

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

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

Мы приглашаем вас насладиться и оценить усилия этих талантливых детей и подростков, которые своими руками и умом создали эти выдающиеся проекты, используя свой набор LEGO Mindstorms EV3 Robotics.

1.Роботизированная рука LEGO EV3

Вы всегда хотели брать большие предметы одной рукой? Этот очень умный любитель робототехники нашел способ сделать это, используя свой талант в программировании робота EV3. Не пропустите и позвольте себе вдохновиться этим. Вы можете полностью построить свой собственный! Доверься себе, доверься своему таланту!

2. LEGO Mindstorms EV3 Игра на гитаре

В этом фантастическом видео вы не только увидите табулатуры для исполнения на гитаре «Little Talks» группы «Of Monsters and Men», но также увидите, как робот EV3 великолепно играет ее.Этот проект EV3 просто потрясающий. Увидев результат, вы можете перейти к комментариям к видео и посмотреть, как этот суперталантливый специалист по робототехнике на самом деле достиг этой музыкальной и технологической цели.

3. Когда Mindstorms EV3 собирает кубик Рубика быстрее, чем вы

Сборка кубика Рубика никогда не была легкой задачей. До сих пор. В этом замечательном видео мы видим, как пользователь LEGO Mindstorms EV3 может запрограммировать своего робота, чтобы собрать кубик Рубика всего за 22 движения.Посмотрите это захватывающее видео и начните ревновать! Верно. Этот робот может решить ее быстрее, чем вы.

4. LEGO Mindstorms EV3 и новый удобный способ складывать футболки

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

объявленияsssdaadadd

5. Сыграйте с Саймоном против вашего робота Ev3

Эта игра была важной частью детства многих людей. Теперь вместе со своими детьми или учениками вы можете запрограммировать этот EV3 и сыграть против него в «Саймона». Посмотрите это великолепное видео Франсуа Дюбюка и удивитесь.

STEM с виртуальными роботами

Помимо всех этих очень крутых проектов, теперь вы можете запрограммировать виртуального робота, совместимого с блоком EV3.В CoderZ , нашей онлайн-среде обучения, у нас есть Brickbot, робот, для которого вы можете создать код, а затем загрузить свою программу на робота EV3 через Lejos. Начните бесплатную 14-дневную пробную версию здесь .

Следующее поколение робототехники LEGO: Mindstorms 51515 Robot Inventor [обзор] – The Brothers Brick

2013 год кажется вечностью назад. В конце концов, многое может случиться за 7 лет, а именно столько времени прошло с тех пор, как на сцену вышла Mindstorms EV3. Пришло время долгожданному преемнику главной робототехнической платформы LEGO выйти на сцену. Еще в июне, когда был представлен LEGO Mindstorms 51515 Robot Inventor , некоторые люди были в восторге, но многие не были впечатлены функциями новой системы. В этом обзоре мы глубоко погрузимся, чтобы увидеть, доказывает ли этот набор, что вы не должны судить о боте по его обложке. Robot Inventor состоит из 949 деталей и будет доступен с 15 октября по цене 359,99 долларов США | 459,99 канадских долларов | Великобритания 329 фунтов стерлингов.99.

Коробка и упаковка

Цветная матовая коробка примерно такого же размера, как и его предшественник EV3. Но после этого это совсем другой опыт. EV3 поставлялся с внешним чехлом, который вы вырезали, чтобы создать игровой коврик, а внутри рукава была стандартная коробка с боковым открыванием. В случае с Robot Inventor втулки нет, а коробка состоит из двух отдельных частей: дна и крышки.


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

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


Содержимое

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

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

Двигаясь дальше, по внешнему виду коробки становится очевидным, что бирюзовый (темно-бирюзовый) должен был стать основным цветовым акцентом в наборе. Это отличный выбор, потому что он игривый, свежий и выделяется среди всех других робототехнических наборов LEGO.Еще одна замечательная вещь в этом заключается в том, что это также означает, что в наборе есть несколько элементов, которые никогда раньше не были в этом цвете. Интересно, что один бирюзовый элемент, L-образный подъемный рычаг 2 × 4, действительно входил в два предыдущих набора, целых 20 лет назад, когда бирюзовый цвет был представлен впервые. В дополнение к бирюзовым частям у нас есть пара других новых элементов в новых цветах. А шутеры 2×6 со снарядами, напоминающие сенсорный датчик EV3, являются новинкой 2020 года, но уже появились в нескольких других наборах.


Инструкции и наклейки

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

С другой стороны, в комплекте нет бумажной инструкции. Вместо этого есть небольшой буклет под названием «Краткое руководство», который на самом деле вовсе не является руководством. Он просто говорит разработчику загрузить приложение для получения инструкций. Буклет в основном предназначен для выполнения требуемой по закону цели указания всех предупреждений об электронных компонентах. Но, к счастью, у него есть одно полезное преимущество, которое заключается в включении списка деталей и страницы идентификации технической балки и оси в масштабе 1: 1.


Как упоминалось ранее, сборщику предлагается загрузить приложение для получения дальнейших инструкций. Возможно, это связано с исправлением ошибок до выхода продукта на рынок, но нашу предрелизную версию было довольно сложно загрузить на небольшие устройства, несмотря на то, что мы использовали ее незадолго до запуска продукта. iPad, которые не поддерживают iOS 13.0, не могут запускать приложение, хотя приложение SPIKE Prime работает нормально.На данный момент приложение также нельзя использовать с новым Chromebook HP, хотя это же устройство без проблем поддерживает SPIKE Prime. И сначала приложение не работало ни на Samsung Galaxy S7 Edge, ни на iPhone 11. Но после нескольких попыток, разделенных в течение нескольких дней (и, вероятно, обновлений на серверной части), телефоны наконец заработали. С другой стороны, программа мгновенно загружается на ноутбук Dell под управлением Windows 10 и отлично работает.

Изучив как Boost, так и SPIKE Prime, в этом новом выпуске есть что-то, что кажется более совершенным.Цвета и формат, оставаясь игривыми, делают платформу более зрелой. Подробнее об этом позже.


Программируемые компоненты

Теперь о мясе сета; и, вероятно, причина, по которой вы читаете этот обзор. Если вы такой же фанат «движущихся частей», как я, то все дело в электронных компонентах, благодаря которым все это оживает. Не вдаваясь в слишком заумные характеристики, давайте пройдемся по различным элементам, которые входят в комплект поставки.

Как упоминалось ранее, сетка 5×5 пикселей «Hub» на этот раз представлена ​​в бирюзовом цвете, что резко контрастирует с желтым цветом SPIKE Prime.Но если не считать цвета, они абсолютно одинаковые. Устройство имеет перезаряжаемую литий-ионную батарею, которая составляет большую часть самого устройства. Фактические «мозги» составляют только около трети веса. Но это не слишком много, потому что все это вдвое меньше по размеру и весу, чем EV3 с 6 батареями AA. Со всех 6 сторон имеются точки подключения, 6 универсальных портов для двигателей и датчиков, а также 6-осевой внутренний гироскоп и акселерометр. Зарядка осуществляется через прилагаемый USB-кабель, который также можно использовать для подключения к компьютеру.Кроме того, подключение может осуществляться через Bluetooth.

Разработчики приняли серьезное решение отказаться от датчика прикосновения/давления в пользу дополнительного двигателя. Таким образом, в этом наборе 4 одинаковых в новой цветовой комбинации серого и белого! Несмотря на преимущества сенсорного датчика, возможно, это мудрый выбор. В мире, где мы предпочитаем управлять голосом или движением, кнопки становятся менее полезными. И в такой игрушке датчики ступицы, цвета и расстояния, возможно, могут удовлетворить те же потребности, а добавление другого двигателя расширяет возможности игры. Меньше ввода, больше вывода.

Пожалуй, следует отметить, что SPIKE Prime поставляется с двумя такими моторами в дополнение к одному более крупному. Я обнаружил, что меньшие двигатели более универсальны с точки зрения их встраивания в робота. Они также, кажется, обеспечивают приличное количество энергии для основных потребностей, хотя и менее эффективны, чем их кузены. Еще одна особенность заключается в том, что они имеют встроенные датчики вращения с абсолютным позиционированием.

Датчики цвета и расстояния такие же, как и в SPIKE Prime.Первый из них использует обновленную, более точную технологию по сравнению со своими предшественниками EV3/NXT и может даже распознавать крошечные точки. Он способен различать 8 различных цветов как в темноте, так и при ярком свете. Он также излучает свет в дополнение к сбору данных и вдвое меньше предыдущих датчиков. Последний, упомянутый выше, очень похож на своих старых собратьев, хотя и более квадратный. На практике он имеет более короткий радиус действия, чем EV3 (200 см против 250 см), но более точен, особенно при быстром обнаружении. Он также имеет световые кольца вокруг «глаз», которые являются более программируемыми (по сравнению с предустановленными шаблонами «глаз» EV3) и аппаратную интеграцию, позволяющую подключать сторонние устройства.


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


Сборки и программирование

Чарли

Я решил начать слева направо в приложении, в котором я начал с «Чарли», маленького пухлого танцующего робота с животом-сундуком с сокровищами. Должен признаться, я начал этот обзор со скептицизмом, но игра с Чарли заставила меня улыбнуться. Техники сборки довольно просты, но у него есть несколько трюков, и эта негабаритная линия челюсти просто слишком мила.

Одна проблема с Чарли (и со всеми ботами в этом отношении) заключается в том, что строитель должен быть очень осторожным с расположением двигателя и шестерни. Все моторы имеют отметку абсолютного 0°, обозначающую правильную начальную точку. С учетом того, как работает программирование, очень важно, чтобы это было правильно. Где легко ошибиться, так это в том случае, когда двигатели находятся в положении 0°, но шестерни слегка повернуты, или наоборот. В случае с Чарли голова не будет работать должным образом.


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

Хитрый

«Хитрый» — самый маленький из всех. Метко назван в честь «трюковых ударов» с включенным мячом Mindstorms/Duplo. Базовая модель не очень сложная или захватывающая, но это было мое первое знакомство с опциями дистанционного управления.


В заявке указано, что планшеты и телефоны лучше подходят для RC, чего и следовало ожидать. Попытка программы с компьютера приводит к плавным функциям, но удержание двух кнопок одновременно невозможно. Однако я был удивлен, обнаружив, что мое соединение Galaxy S7 Edge с роботом обеспечивало резкие, трудноуправляемые движения. К счастью, мне удалось поймать iPhone 11 моего партнера, который в целом оказался лучшим.Это, вероятно, имеет мало общего с Android и iOS и больше зависит от возраста устройства.

Забить гол не так просто, как кажется! Но занятие «Цепная реакция» было намного проще и принесло гораздо больше удовлетворения. Самое приятное — это большое количество деталей, оставшихся после завершения сборки. Это вдохновляет вас добавить что-то новое.

Взрыв

Можно считать «Взрыв» основной сборкой, потому что она напоминает основные сборки гуманоидов для наборов EV3 и NXT.Но кроме того, что он стоит в центре, он не управляет шоу. Тем не менее, он требует больше деталей, чем другие роботы, и чертовски крут. Возможно, самая приятная часть создания Blast заключается в том, что вы строите собственный домкрат, добавляя и тестируя каждый сегмент за раз.

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

Еще одно препятствие (которое касается всех ботов) — старая добрая техническая неудача, связанная с попыткой выровнять и щелкнуть по нескольким булавкам одновременно. Это то, что вы часто видите в самых сложных моделях в рамках этой темы, поэтому немного удивительно видеть в сборке 10+. Еще более удивительно, когда несколько соединений имеют штырьки, которые плавают и перемещаются, когда вы пытаетесь их соединить. Изображения ниже являются парой более простых, но более заметных примеров этого.


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

МВП

Если вы собираетесь собрать разнообразную коллекцию роботов, вам понадобится какой-нибудь радиоуправляемый автомобиль. «MVP» (Modular Vehicle Platform) — ваш бот для работы.Он имеет уникальный дизайн корпуса и доставляет массу удовольствия перемещаться по комнате. Датчики также дают ему функции, которые могут быть только у умного автомобиля, такие как определение расстояния.

Самая забавная дополнительная сборка, без сомнения, это подъемный кран. Вы можете часами просто пытаться усовершенствовать искусство зацепления объекта и перемещения его вперед и назад в разные места. Это одна из сборок, где наличие чувствительного контроллера чрезвычайно полезно.


Один из вопросов, который возникает, — это переход от базового багги к подъемному крану. В инструкциях не указано, что вы снимаете верхнюю часть и перерабатываете детали. На первой странице дополнительных инструкций крана указаны детали, которые все еще являются частью базовой модели. Это также не означает, что базовая модель должна быть сплющена, чтобы превратиться в кран. Именно в этот момент я, наконец, понял, что красные булавки обозначают разделы, которые меняются или отрываются и взаимозаменяемы с другими. Об этом прямо нигде не сказано.

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

Гело

Я не знаю, что такого в роботах, которые ходят на четырех ногах, но я нахожу их очаровательными.Я был очень рад попробовать этого бота. И по большей части «Гело» не разочаровал. Но он также и самый привередливый из всех, требующий особой осторожности, чтобы убедиться, что все детали установлены правильно, а шнуры не застревают в двигателях.

Еще одна странность Гело — непрактичная необходимость гоняться за ним, управляя им из центра. Это определенно тот случай, когда вы хотите создать программу, использующую функции удаленного управления.

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

Платформа приложений/программ

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

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


Сравнение

Теперь давайте вернемся к мельчайшим подробностям относительно робота-изобретателя по сравнению с остальной частью семейства робототехники LEGO. Прежде всего, это программное обеспечение для программирования. Мы не будем вдаваться в подробности, а дадим вам общее представление о том, чего ожидать. Как можно догадаться, программирование NXT умнее и проще, чем RCX, а EV3 немного умнее и проще, чем NXT.BOOST — не лучшее сравнение, так как он рассчитан на более молодую аудиторию. SPIKE Prime переходит на территорию сходства с NXT и EV3, но его программирование на основе Scratch также проще в использовании. Это делает введение в более продвинутое программирование более плавным.

Робот-изобретатель, очевидно, имеет тот же мозг, что и SPIKE, но нам дали совершенно новое приложение, подходящее под эгиду Mindstorms. (Помните, что технически SPIKE Prime принадлежит LEGO Education.) Должен сказать, что играть с этим приложением приятно и неожиданно. Сочетание характеристик SPIKE, основанных на Scratch, с немного более зрелой темой Mindstorms на самом деле работает довольно хорошо. Блоки перетаскивания легче понять, чем NXT или EV3, но они не кажутся такими глупыми, как ожидалось. (См. скриншоты этой и предыдущих платформ крупным планом в галерее внизу этой статьи.)

Мозги

Далее идут мозги, также известные как концентраторы/интеллектуальные блоки. Как упоминалось ранее, новейший концентратор намного легче и меньше, чем старые компоненты.Одним из основных положительных моментов этого является то, что его легче строить. С другой стороны, пожалуй, самый большой минус в том, что матрица световой сетки 5х5 находится в шаге от, казалось бы, более навороченных экранов EV3 и NXT. Это было одним из самых больших разочарований для фанатов, потому что это было немного глупо. Даже если программирование способно к более сложным показаниям (для таких приложений, как FIRST LEGO League), вам придется держать его подключенным к интеллектуальному устройству, чтобы увидеть эти показания.

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

Двигатели и датчики

Мы могли бы целый день говорить о тонкостях моторов LEGO, но сегодня не тот день. Вместо этого давайте сосредоточимся на основных моментах: размере/форме и базовой силе.Одной из самых больших претензий к двигателям EV3 и NXT является их неуклюжая форма. Несмотря на то, что форма может быть интересной для сборки, большинство поклонников (включая меня) находят их громоздкими и ограниченными. Новые двигатели решают эту проблему в большинстве приложений. К сожалению, их недостатком является то, что, несмотря на то, что они прекрасно справляются с большинством задач при правильной передаче, они являются одним из наименее мощных и эффективных двигателей LEGO. Сюда входят Power Functions, Powered Up и даже некоторые моторы старой школы.Подробное сравнение двигателей Philippe « Philo» Herbain можно найти здесь.


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

Фотографии ниже действительно подчеркивают основную разницу в размере и форме. Переход к простому черно-белому цвету позволяет гибко выбирать цвета сборок, и они обычно выглядят более гладкими. (Обратите внимание, что «голова» EV3 поставляется в двух вариантах: инфракрасный датчик для стандартного набора и ультразвуковой датчик для набора LEGO Education.Тот, что на фото, — инфракрасный, но ультразвуковой больше похож на другие с экранированными отверстиями вместо плоской поверхности. Кроме того, первая версия NXT поставлялась с датчиком серого и оранжевого света на изображении справа, в то время как NXT 2.0 поставлялась с обновленным датчиком цвета прямо перед ним.)

Кабельные соединения

Наконец, поговорим о кабелях. Это огромное разочарование среди тех, кто уже потратил целое состояние на прошлые продукты. Все новые элементы, в том числе в BOOST, Powered Up, SPIKE Prime и в этом наборе, имеют новый кабель.Преимущество заключается в том, что соединение более плавное и не зацепляется за такие вещи, как телефонные кабели прошлого. Шнуры также более плоские, что облегчает их прохождение в труднодоступных местах. Основные проблемы заключаются в том, что эти кабели имеют фиксированную длину, что снижает творческую гибкость, и их легче сместить при натяжении. Еще больше разочаровывает то, что до этого момента практически вся электроника LEGO имела обратную совместимость через переходные кабели. Это не так с новыми продуктами, что исключает возможность их взаимозаменяемого использования.

Еще одна вещь, которую следует отметить, это то, что EV3 поставляется с небольшим пультом дистанционного управления, а Robot Inventor – нет. Вместо этого вы используете свое смарт-устройство. Соединение Bluetooth потенциально может быть более надежным, чем инфракрасный пульт дистанционного управления, но портативные пульты дистанционного управления с физическими кнопками часто имеют более острые и точные реакции. В качестве альтернативы, оба устройства могут подключаться к сторонним пультам дистанционного управления, таким как контроллер Playstation, но робот-изобретатель, возможно, проще в сопряжении.


Выводы и рекомендации

Я пришел к этому обзору полностью готовым выразить большое разочарование. Как человек, увлеченный возможностью создавать интерактивные сборки, я провожу массу времени, играя с электроникой LEGO. Мне также очень нравится включать их в свои сборки, поэтому ограничивающие факторы несовместимости меня расстраивают. (И, если вам интересно, разговоры с дизайнерами дают довольно твердое «нет» в отношении потенциального будущего развития.) Тем не менее, понятно, почему LEGO выбрала этот путь. Как компания, они хотят быть инновационными и двигаться вперед. Устаревшие аспекты предыдущих продуктов сводят к минимуму достижение этой цели. Кроме того, поиск/создание совместимых решений обходится дорого, а также может привести к потере продаж, если предыдущие продукты не устаревают. Это горькая пилюля от компании, которая гордится своей непоколебимой «системой игры», но я не могу слишком расстраиваться.

Почему я не могу слишком расстраиваться? Потому что с этим набором невероятно весело играть! Стандартные роботы заставят вас улыбнуться и посмеяться, а также продемонстрируют приличное разнообразие потенциальных сборок.Есть много, много часов вариантов сборки и программирования, как стандартных, так и пользовательских, и, несмотря на ограничения, возможности практически безграничны. Кроме того, я в шоке от количества и универсальности частей. После создания всех базовых моделей и нескольких дополнительных действий у меня всегда оставалось множество остатков. Это была еще одна область, где я был полностью готов к разочарованию, но вместо этого был очень приятно удивлен. (На следующем рисунке показан пример того, что осталось, например, после постройки Чарли.)

Если вы хотите поговорить о цифрах, 51515 имеет цену за штуку 0,38 доллара США, а 31313 (EV3) имеет цену за штуку 0,58 доллара США. В целом, новый набор имеет цену всего на 10 долларов выше. Для сравнения, SPIKE Prime ужасен, с ценой 0,62 доллара за штуку и более ограниченными игровыми функциями. Цена робота-изобретателя в 360 долларов может оттолкнуть, но огромное количество действий делает его достойным внимания. Если дело дойдет до выбора между ними, просто не покупайте EV3 новый .Вы можете получить б/у в хорошем состоянии на вторичном рынке за полцены. Если вам нужно купить новый, выберите робота-изобретателя. Он отвечает многим требованиям с точки зрения простоты использования, разнообразия деталей и играбельности, а с точки зрения технологий он должен прослужить как минимум несколько лет. Видя, как LEGO делает старые соединения устаревшими, вы с меньшей вероятностью будете ограничивать себя в использовании будущих продуктов.

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


Робот-изобретатель LEGO Mindstorms 51515 будет доступен в интернет-магазине LEGO по цене 359,99 долларов США | 459,99 канадских долларов | Великобритания 329,99 фунтов стерлингов с 15 октября. Он также может быть доступен у сторонних продавцов на Amazon и eBay.

LEGO Group предоставляет The Brothers Brick первую копию этого набора для ознакомления. Обеспечение ТББ продукцией не гарантирует ни охвата, ни положительного отзыва.


Понравилась эта статья? Расскажите всем своим друзьям!

Родственные

Lego Mindstorms EV3 Прибывает адаптацию для мобильных, инфракрасных и большей халаты

Robots Lego® Martwide March:
Новый умнее, сильнее Lego Mindstorms EV3, представленные на CES

-Robotics Pioneer релизы Доступен более доступный Платформа Hackable»
к 15-летию оригинальной умной игрушки –

– включает первые в истории издания на родном языке для России, Китая и Кореи –

ВЫСТАВКА ПОТРЕБИТЕЛЬСКОЙ ЭЛЕКТРОНИКИ, ЛАС-ВЕГАС (7 января 2013 г.) – Сегодня компания LEGO Group анонсировала LEGO® MINDSTORMS EV3, новую платформу для потребительской робототехники, предназначенную для того, чтобы познакомить молодое поколение с азартом создания и программирования роботов, а также добавить новую гибкость для своих преданных поклонников робототехники. Впервые представленный на выставке Consumer Electronics Show в Лас-Вегасе, штат Невада, LEGO MINDSTORMS EV3 является результатом трехлетней разработки продукта международной командой дизайнеров LEGO, энтузиастов пользователей MINDSTORMS и ведущих экспертов в области технологий. LEGO MINDSTORMS EV3, доступный летом 2013 года, будет представлен представителям мировых СМИ на Digital Experience! 7 января и будет продемонстрирована участникам выставки CES во время Саммита [email protected] 8–11 января 2013 г. в отеле Venetian.

Когда LEGO MINDSTORMS впервые появился в 1998 году, он считался первой настоящей «умной игрушкой». Пятнадцать лет спустя The LEGO Group изменила дизайн MINDSTORMS, чтобы взволновать и бросить вызов аудитории детей, которые выросли с технологиями, многие из которых более опытны в управлении мобильными устройствами и другими технологиями, чем их старшие братья, сестры и родители. Кроме того, аудитория потребительской робототехники значительно выросла, что побудило команду сосредоточиться на упрощении опыта для молодых пользователей, сделав его более гибким и мощным для любителей и других энтузиастов.

Вся система MINDSTORMS работает на базе нового интеллектуального модуля EV3. Интеллектуальный модуль EV3 стал мощнее и быстрее благодаря большему объему памяти и более мощному процессору и теперь отвязывает роботов от компьютера, предоставляя пользователям расширенные возможности программирования на модуле и более тесную интеграцию с интеллектуальными устройствами. Новый инфракрасный датчик даст строителям больший контроль над своими роботами, чем когда-либо прежде, добавляя роботу больше индивидуальности, когда он следует за строителем или другими устройствами. Новая прошивка на базе Linux, порт USB и слот расширения для SD-карт предлагают почти неограниченные возможности программирования и расширения.Кроме того, LEGO MINDSTORMS EV3 также будет включать полную совместимость с iOS и Android.

При запуске LEGO MINDSTORMS EV3 будет включать инструкции по сборке 17 различных роботов, таких как «Everstorm» — спортивный гуманоид-могавк, который стреляет мини-сферами во время ходьбы, «Spiker» — скорпионоподобный робот, который ищет IR beacon «bug» или «Reptar», роботизированная змея, которая скользит, трясется и наносит удары, и все это предназначено для того, чтобы взволновать и вдохновить детей бесконечными возможностями потребительской робототехники. Чтобы развлечься, LEGO Group создала серию «модульных сборок», призванных помочь детям научиться программировать и играть за считанные минуты. Затем строители могут добавлять детали LEGO Technic®, дополнительные двигатели или датчики, чтобы изменить функциональность робота. Входящий в комплект «планшет с заданиями» добавляет новый элемент игрового процесса и побуждает детей соревноваться с самими собой в серии полос препятствий для роботов, которых они строят и программируют. Еще один первый в истории компании MINDSTORMS EV3 — это первый игровой набор LEGO, включающий инструкции по сборке в 3D, что стало возможным благодаря сотрудничеству с Autodesk.Новое приложение с 3D-инструкциями, созданное на базе Autodesk Inventor Publisher, представляет собой инновационную версию фирменных невербальных пошаговых инструкций по сборке LEGO Group. Оно позволяет строителям увеличивать и поворачивать каждый этап процесса сборки, делая его проще, чем когда-либо. собрать даже самого сложного робота.

«Пятнадцать лет назад мы были в числе первых компаний, которые помогли детям использовать возможности технологий для придания реалистичного поведения своим творениям LEGO с помощью платформы MINDSTORMS», — сказала Камилла Боттке, руководитель проекта LEGO MINDSTORMS в LEGO. Группа.«Теперь мы снабжаем сегодняшнее технологически грамотное поколение детей более доступным, но в то же время сложным робототехническим набором, который соответствует их ожиданиям в отношении технических игр и способностям по-настоящему раскрыть их потенциал, чтобы они могли удивлять, впечатлять и волновать мир своим творчеством. ”

LEGO MINDSTORMS EV3 — самая интернациональная робототехническая платформа, которую когда-либо разрабатывала компания. В ответ на растущий спрос со стороны развивающихся рынков впервые MINDSTORMS будет выпущена с версиями на родном языке для России, Китая, Кореи, Японии, Испании и Дании в дополнение к доступным сегодня версиям на английском, французском, немецком и голландском языках.Компания собрала многонациональную команду дизайнеров продуктов и энтузиастов для создания новой платформы MINDSTORMS; дизайнеры продуктов со всей Европы и США работали вместе над разработкой программного и аппаратного обеспечения в течение трех лет, в то время как основная команда из 12 энтузиастов-пользователей из Греции в Канаду тестировала ограничения платформы и работала над приложениями, моделями и хакерскими средами.