ev3dev – устанавливаем и настраиваем Debian Linux на LEGO Mindstorms EV3
Чтобы программировать робота LEGO Mindstorms EV3 на любимом языке программирования, использовать огромное количество продвинутых библиотек и получить доступ к дополнительному подключаемому оборудованию, такому как клавиатура, джойстики, мышки и камеры, вам просто необходимо использовать полноценную операционную систему. Здесь на помощь придёт ev3dev – операционная система, базирующаяся на Debian Linux. Я предлагаю вам познакомиться с процессом установки и настройки этой операционной системы.
В статье я буду описывать все действия только с использованием компьютера с ОС Windows 7. Хотя всё (или почти всё), что описано в статье вы можете делать, используя компьютеры или планшеты под управлением других версий Windows, а также других операционных систем, таких как Mac OSX, Ubuntu и Android.
Подготовка к установке ev3dev на EV3
Вот основные моменты, которые нужно проверить, перед тем как приступить к установке ev3dev на EV3:
- Приготовьте карту памяти microSD или microSDHC объёмом 2 Гб или выше. Карты microSDXC (карты свыше 32 Гб) – не подойдут, т.к. они не поддерживаются модулем EV3.
- У вас должен быть компьютер с адаптером для карты микро SD. Это может быть слот для SD-карты или USB-адаптер для SD-карты.
- Выберите способ подключения компьютера к EV3. Это может быть один из следующих вариантов:
-
-
- USB-кабель (тот, который идёт в комплекте с EV3);
- Wi-Fi (в этом случае у вас должен быть Wi-Fi-адаптер для EV3);
- Ethernet-адаптер;
- Bluetooth.
-
Установка ev3dev на карту памяти SD
Сначала скачайте образ системы ev3dev последней версии с официального сайта проекта отсюда. Будьте внимательны, вам нужна последняя версия ev3dev для LEGO Mindstorms EV3. Если номер версии для вас принципиален, то вы можете использовать и другую, ранее скачанную версию ev3dev.
Скачайте и установите на компьютер программу Etcher, если вы этого ещё не сделали. Если вы не хотите устанавливать программу, то можете скачать портативную версию, которую нужно просто распаковать в любую удобную папку.
Запустите программу Etcher (если у вас портативная версия, то вам нужно запустить файл Etcher.exe).
Щёлкните на кнопку «Select image» и выберите файл с образом ev3dev, который вы скачали ранее. Это должен быть файл, имя которого закачивается на .img.zip или .img.xz. После этого, если SD-карта ещё не подключена к компьютеру, вы увидите появившуюся кнопку «Connect a drive».
Вставьте/подключите SD-карту. Программа Etcher сразу должна определить подключение SD-карты к компьютеру и предложить начать запись. Если у вас к компьютеру подключено несколько SD-карт, вы можете нажать на ссылку «Change» и выбрать нужную карту памяти. Если всё выбрано правильно, вы можете нажать на кнопку «Flash!».
После этого начнётся запись образа ev3dev на SD-карту.
Программа Etcher работает очень аккуратно, поэтому после записи она проверит результат.
После этого Etcher отключит устройство и сообщит, что всё сделано успешно, см. рисунок ниже. Закройте окошко программы и отключите/извлеките SD-карту. Установка ev3dev на SD-карту на этом успешно завершена.
Загрузка ev3dev
Вставьте SD-карту, с установленной на неё ev3dev, в слот модуля EV3 и включите его. Вначале загорится красный светодиод, а на экране вы увидите стандартную заставку с надписью «MINDSTORMS starting...». Сразу вслед за этим появится заставка ev3dev и светодиод начнёт мигать оранжевым. Мигание показывает обращения к SD-карте.
Примерно через минуту экран очистится. Это произойдёт только при первой загрузке. Первая загрузка длится дольше из-за того, что EV3 должен создать уникальные идентификаторы для SSD хоста и позаботиться о некоторых других моментах.
Через одну-две минуты вы увидите надпись «brickman loading…». Если эта заставка висит больше 5-ти минут, что-то пошло не так. Попробуйте тогда один из следующих рецептов, чтобы исправить проблему:
-
-
- Отключите всё, что подключено к EV3 (USB, датчики, моторы и т.п.);
- Попробуйте записать образ ev3dev на SD-карту снова;
- У вас может быть сломанная или несовместимая SD-карта. Попробуйте использовать другую SD-карту (другого производителя, другого объёма и другого года выпуска);
- Поставьте новые батарейки или полностью зарядите аккумулятор.
-
По окончании загрузки ev3dev на экране EV3 появится меню, см. рисунок ниже. Обратите внимание на изображение батарейки сверху справа. Цифра внутри неё показывает текущее напряжение источника питания. Точное процентное значение оставшейся энергии вычислить невозможно, поэтому показывается именно этот показатель. Если напряжение падает ниже 5 вольт, то EV3 выключится. При этом все несохранённые данные будут потеряны. Имейте ввиду, что при падении напряжения от 8 до 6,5 вольт пройдёт гораздо больше времени, чем при падении напряжения от 6,5 до 5 вольт.
Подключение EV3 к Интернету и установка соединения между компьютером и EV3
Подключение EV3 к интернету желательно, т.к. в этом случае у вас не будет ограничений при работе с ev3dev, например, вы сможете легко обновлять и устанавливать программные пакеты с помощью команды apt-get, скачивать проекты других разработчиков, выложенных в открытом доступе, сразу на EV3. Самыми простыми способами подключения к интернету являются прямое подключение к Wi-Fi-роутеру, предоставляющему доступ в интернет, с помощью Wi-Fi-адаптера или прямое подключение к проводному роутеру, предоставляющему доступ в интернет, через Ethernet-адаптер. Однако подключение к интернету не является обязательным.
Соединение компьютера и EV3 необходимо для того, чтобы вы смогли управлять ev3dev через SSH. Для установки соединения между компьютером и EV3 есть три способа:
- Подключение по локальной сети (подключение через общий роутер);
- USB-кабель (идущий в комплекте с EV3);
- Bluetooth.
Первый способ самый простой, т.к. в этом случае не требуется никакой особой настройки, для подключения нужно лишь знать IP-адрес EV3. Однако для такого подключения нужно дополнительное оборудование – Wi-Fi-адаптер или Ethernet-адаптер, который нужно присоединить к USB разъёму модуля EV3, а это может быть проблематично из-за особой конструкции робота, например, если USB-разъём чем-нибудь полностью или частично закрыт. А при использовании Ethernet-адаптера к роботу будет тянуться провод, который будет мешать, если робот мобильный.
У второго способа настройка будет сложнее, но у вас так же будет доступ в интернет через ваш компьютер. В этом случае к EV3 будет тянуться USB-кабель, который будет мешать мобильности робота.
Используя третий способ, как я ни пытался, мне не удалось подключить EV3 так, чтобы у EV3 был доступ к интернету. Однако использовать SSH для управления ev3dev вы сможете. Если вы знаете способ, как через Bluetooth-соединение с компьютером, подключить EV3 к интернету, прошу написать в комментариях, как это сделать.
Итак, рассмотрим все перечисленные способы подключения компьютера к EV3.
Подключение EV3 к локальной сети с помощью Wi-Fi-адаптера
Это самый удобный способ подключения вашего робота к интернету и компьютеру. Если у вас есть подходящий Wi-Fi-адаптер, то рекомендуется использовать именно этот способ подключения. Многие Wi-Fi-адаптеры поддерживающие Linux, будут работать, но официально поддерживаются и рекомендуются только следующие Wi-Fi-адаптеры:
-
-
- NetGear WNA1100 Wireless-N 150 (официально поддерживаемый программным обеспечением LEGO, см. на рисунке ниже);
- Edimax EW-7811Un 802.11n Wireless Adapter (официально поддерживаемый программным обеспечением LEGO);
- EP-N8508GS 150Mbps Mini Wireless 802.11N USB Adapter.
-
К слову, я проверил два адаптера NetGear WNA1100 Wireless-N 150 и TP-LINK TL-WN725N. Оба прекрасно работают.
Вставьте ваш Wi-Fi-адаптер в USB-порт модуля EV3, перейдите в меню «Wireless and Networks > Wi-Fi», установите галочку «Powered» и выберите пункт «Start Scan».
Через некоторое время после сканирования в списке «Networks» появятся все найденные Wi-Fi-сети. Выберите нужную сеть.
Выберите «Connect».
Следующим шагом будет ввод пароля. Щёлкните по центральной кнопке EV3.
Теперь введите пароль и нажмите кнопку «OK».
Подтвердите ввод пароля, выбрав «Accept».
И после успешного подключения статус поменяется на «Online» или «Connected», а слева сверху отобразится IP-адрес EV3.
Теперь выберите пункт меню «Network Connection».
Здесь вы можете выставить галочку «Connect automatically», чтобы при включении и присоединении Wi-Fi-адаптера, сразу происходило подключение к Wi-Fi-роутеру.
Теперь вы можете проверить, как подключится ваш компьютер к EV3. Удостоверьтесь, что ваш компьютер подключен к тому же роутеру и наберите в командной строке команду «ping 192.168.1.137», только здесь подставьте свой IP-адрес, или «ping ev3dev». Если ответы от EV3 приходят, см. рисунок ниже, то соединение установлено успешно. Как проверить подключение EV3 к интернету будет написано ниже.
Подключение EV3 к локальной сети с помощью Ethernet-адаптера
Это подключение самое простое из всех, т.к. здесь не требуется настройка. У вас должен быть Ethernet-адаптер поддерживающий Linux. Для подключения просто вставьте Ethernet-адаптер в USB-порт модуля EV3, соедините Ethernet-кабелем адаптер и роутер. Никакая настройка здесь не требуется. Проверить подключение компьютера к EV3 вы можете так же, как написано выше.
Соединение компьютера и EV3 с помощью USB-кабеля
Для такого соединения нам понадобится USB-кабель, который идёт в комплекте с EV3 или аналогичный (USB – mini-USB).
Но прежде чем присоединить провод, откройте панель управления на странице «Устройства и принтеры», см. картинку ниже.
Теперь соедините кабелем компьютер и EV3. После этого у вас внизу сразу появится EV3, как неизвестное устройство. У меня оно появилось с именем EV3+ev3dev, см. рисунок ниже.
Через некоторое время после этого Windows должен опознать его как USB-устройство ввода и установить соответствующие драйверы.
Если автоматическая установка драйвера не произошла, запустите мастер устранения неполадок, который должен вам помочь. Если мастер устранения неполадок не помог (известная проблема в Windows 10), попробуйте установить неподписанный драйвер linux.inf. Обсуждения по проблеме см. здесь.
Я не буду этого делать для статьи, но вы можете установить в панель управления соответствующие иконки микроконтроллеров LEGO, в том числе и EV3. Для этого нужно установить программу PBrickIcons на компьютер. Скачать дистрибутив и почитать описание программы можно здесь. Как будут выглядеть иконки, см. на рисунке ниже.
Учтите, что программа устанавливает иконки, только в панели управления Windows и только при подключении микроконтроллеров через USB. Чтобы увидеть изменение иконок после установки/удаления PBrickIcons, нужно удалить устройство и снова добавить его.
Теперь в меню EV3 зайдите в пункт «Wireless and Networks -> All Network Connections». Здесь должен быть доступен пункт «Wired» (подключение через USB). Зайдите в него.
Дальнейшее подключение на самом деле очень простое, достаточно лишь выбрать пункт меню «Connect» (см. рис. ниже) и подключение состоится, но при каждом таком подключении EV3 будет получать разный IP-адрес, а это может быть неудобно. Поэтому мы пойдём более сложным путём и сделаем IP-адрес статическим.
Если вы уже подключились к компьютеру, отключитесь. Выберите пункт меню IPv4.
Затем выберите «Change...».
Выберите «Load Windows defaults».
Параметры IPv4 останутся пустыми, т.к. мы не подключены к компьютеру. Вернитесь к предыдущему экрану, поставьте флажок для автоматического подключения «Connect automatically» и выберите пункт меню «Connect», чтобы установить подключение.
Через некоторое время связь установится и в левом верхнем углу отобразится статический IP-адрес 192.168.137.3.
Теперь снова идите в панель управления Windows в «Сеть и Интернет» и затем в «Центр управления сетями и общим доступом». На этой странице щёлкните по ссылке слева «Изменение параметров адаптера».
На открывшейся странице найдите подключение к EV3. Если сетевых подключений у вас на этой странице много можете отсоединить провод, идущий к EV3, присоединить его снова и посмотреть какая сеть появится. Так вы сможете найти нужную сеть. Найденное сетевое подключение переименуйте, чтобы его было проще узнавать в будущем. Для этого щёлкните по нему правой кнопкой мышки, выберите пункт меню «Переименовать» и введите имя «EV3-USB» или любое другое имя которое вам больше нравится.
Теперь здесь же найдите сетевое подключение, через которое вы выходите в Интернет (ну или подключены к местной локальной сети). Щёлкните по нему правой кнопкой мышки и выберите пункт меню «Состояние».
Откроется окошко, отображающее состояние сетевого подключения. Чтобы убедиться, что выходите в интернет именно через это подключение, посмотрите на свойство IPv4-подключение. Здесь должно быть написано «Интернет», см. рисунок ниже. Нажмите кнопку «Свойства».
Откроется окно со свойствами сетевого подключения. Перейдите здесь на закладку «Доступ» и установите галочку «Разрешить другим пользователям сети использовать подключение к Интернету данного компьютера». Если у вас больше двух сетевых подключений, как у меня, то выберите в списке ниже подключение «EV3-USB», которое мы переименовали чуть раньше. Нажмите на кнопку «ОК».
Проверить соединение компьютера с EV3 можно очень просто. Выполните в командной строке компьютера команду «ping 192.168.137.3» или «ping ev3dev». Если ответы от EV3 приходят, см. рисунок ниже, то соединение установлено успешно. Как проверить подключение EV3 к интернету будет написано ниже.
Соединение компьютера и EV3 через Bluetooth
Сначала в меню EV3 перейдите в меню «Wireless and Networks -> Bluetooth» и включите Bluetooth, если он ещё не включён. Для этого поставьте галочку «Powered». Затем поставьте галочку «Visible».
Теперь переходим к компьютеру. Учтите, что для Bluetooth-соединения ваш компьютер должен быть оснащён модулем или адаптером Bluetooth (это может быть встроенный в компьютер Bluetooth-модуль или подключенный через USB Bluetooth-адаптер). Откройте панель управления на странице «Устройства и принтеры», см. картинку ниже. Удостоверьтесь, что Bluetooth включён, и нажмите на кнопку «Добавление устройства».
В открывшемся диалоге найдите EV3, он должен быть с именем ev3dev, выберите его и нажмите на кнопку «Далее».
На следующем шаге вам будет предложено выбрать способ подключения. Выберите ввод кода образования пары.
На следующем шаге введите код 1234 и нажмите «Далее».
После этого на экране EV3 высветится диалог для введения кода. По умолчанию предлагается код 1234, поэтому просто выберите «Accept».
После этого на компьютере появится сообщение, что устройство успешно добавлено. Теперь окошко можно закрыть.
Вернёмся в панель управления. Здесь появится наш EV3 под именем ev3dev, и сразу начнётся установка драйверов.
На EV3 в это время может появиться сообщение «Authorize service AVRCP?», нажмите «Accept».
У меня установился только один драйвер из трёх, но для подключения к EV3 этого достаточно.
После этого на EV3 зайдите в меню «Wireless and Networks -> All Network Connections», найдите там свой компьютер и выберите его.
Выберите пункт меню «Connect», чтобы установить соединение с компьютером. Чтобы подключение происходило автоматически, поставьте галочку «Connect automatically».
После того как соединение будет установлено, слева сверху отобразится IP-адрес выданный EV3, на рисунке это 169.254.9.178.
Проверить соединение очень просто. Выполните в командной строке компьютера команду «ping 169.254.9.178», только укажите здесь свой IP-адрес, или «ping ev3dev». Если ответы от EV3 приходят, см. рисунок ниже, то соединение установлено успешно.
Подключение к EV3 через SSH
Подключение к EV3 через SSH в Windows можно сделать с помощью программы PuTTY. Скачать программу можно с официального сайта здесь. На выбор есть версии для 32 или 64 битных ОС Windows. Если вы не хотите устанавливать программу на свой компьютер, можете скачать портативную версию.
Убедитесь, что компьютер может быть подключен к EV3, для этого читайте предыдущие разделы статьи. Запустите PuTTY. После запуска вы увидите окошко настройки программы. Укажите здесь «ev3dev» или IP-адрес в поле «Host Name (or IP address)». Больше ничего менять не нужно. Нажмите «Open».
Если вы первый раз подключаетесь к указанному хосту или IP-адресу, то программа выдаст предупреждение о том, что этот сервер ей ещё не знаком. Нажмите «Да», чтобы продолжить.
Затем программа запросит имя пользователя. Введите здесь «robot» и нажмите Enter.
Затем программа запросит пароль. Введите здесь «maker» (это пароль по умолчанию) и нажмите Enter. Обратите внимание, что пока вы вводите пароль, на экране ничего не происходит. Это нормально.
После успешного входа вы увидите логотип ev3dev и общую информацию о дистрибутиве Linux.
Чтобы протестировать, работает ли наша связка PuTTY – ev3dev, вы можете выполнить команду. Введите команду «fortune» и нажмите Enter. Это приведёт к запуску небольшой программки с названием fortune, которая вернёт нам случайную цитату из своей базы данных. Как видите, мне выдался вопрос про Стоунхендж и ответ на него. Каждый раз эта программка будет возвращать новую цитату. Можете попробовать.
Вы можете скопировать текст из программы PuTTY, просто выделив его мышкой, а вставить – кликнув правой клавишей мышки.
Работа с файловой системой ev3dev
Для удобной работы с файловой системой ev3dev я рекомендую использовать программу WinSCP. Скачать её можно на официальном сайте здесь. Вы можете скачать либо дистрибутив этой программы и установить её, либо можете скачать портативную версию. Для программы есть перевод на русский язык (а также на многие другие языки), скачать который можно здесь.
Убедитесь, что компьютер может быть подключен к EV3, для этого читайте предыдущие разделы статьи. Запустите программу WinSCP. В диалоге «Login» укажите «ev3dev» или IP-адрес вашего EV3 в поле «Host name», а также логин «robot» и пароль «maker» (это пароль по умолчанию) в полях «User name» и «Password». Если вы хотите выполнять команды не из программы PuTTY, а прямо из программы WinSCP, выберите в списке «File protocol» значение «SCP», иначе можете оставить «SFTP». Нажмите «Login». Больше здесь ничего менять не требуется.
Если вы первый раз подключаетесь к указанному хосту или IP-адресу, то программа выдаст предупреждение о том, что этот сервер ей ещё не знаком. Нажмите «Yes», чтобы продолжить.
После успешного подключения вы увидите главное окно программы, разделённое на две части. В левой части – файлы на вашем компьютере, в правой – на EV3. По умолчанию на EV3 открывается домашняя папка логина «robot» - /home/robot.
Кстати, внешний вид «Commander» можно поменять на более привычный «Explorer» в настройках «Preferences -> Environment -> Interface».
С помощью этой программы вы сможете копировать и перемещать файлы, сравнивать и синхронизировать директории, редактировать текстовые файлы и многое другое. Но мы лишь проведём несколько тестов.
Во-первых, давайте проверим, работает ли копирование файлов. Я уже приготовил для эксперимента файл «image1.png», см. рисунок выше. Мышкой схватите файл, который нужно скопировать с компьютера, и перетащите его в правую часть и отпустите.
После копирования файл окажется в папке /home/robot на нашем EV3.
Аналогично можно копировать файлы из EV3 на компьютер. Если файл нужно не копировать, а перетаскивать, то удерживайте нажатой клавишу Shift, когда перетаскиваете файл.
Теперь попробуем создать простую программку на языке Python и запустить её на EV3. Щёлкните правой кнопкой мышки на папке /home/robot и в контекстном меню выберите «New -> File...».
Задайте имя файла «hello-world.py» и нажмите «OK».
Откроется текстовый редактор WinSCP. Напишите здесь следующую строчку кода:
Нажмите кнопочку «Save», и закройте окно редактора.
После этого в основном окне WinSCP снизу появится панель операций, в которой вы можете увидеть, что идёт сохранение файла в папке /home/robot.
После того как файл будет сохранён панель автоматически закроется, и мы увидим, что наш файл появился в папке /home/robot.
Чтобы в дальнейшем менять этот файл, просто дважды щёлкните по нему мышкой. Поднимется уже знакомый вам редактор. Здесь просто измените текст, и сохраните изменения.
Теперь запустим нашу программку. Для этого можно воспользоваться программой PuTTY или консолью программы WinSCP. Сначала давайте протестируем консоль WinSCP. Для этого щёлкните по кнопке «Open terminal» (см. рисунок ниже) или нажмите Ctrl+T.
Введите команду «python3 hello-world.py» и нажмите Enter. В результате мы увидим наше сообщение «Hello, World!».
То же самое можно выполнить с помощью программы PuTTY:
Проверка соединения EV3 с интернетом
Самый простой способ проверить соединение EV3 с интернетом – это выполнить команду «ping -c 4 www.yandex.ru» на EV3. Флаг «-c 4» здесь установлен, чтобы сделать только 4 проверки. Вместо www.yandex.ru можно подставить любой другой домен. Если ответы приходят (см. картинку ниже), то интернет доступен. А вот если программа висит – интернета нет или закрыт доступ к домену. Завершить программу в этом случае можно с помощью Ctrl-Z или Ctrl-C.
Ещё один способ – это загрузка файла. Выполните команду «wget example.com» и в папку /home/robot должен будет загрузиться файл index.html с сайта example.com. Здесь example.com вы можете заменить на любой другой домен.
Подводим итог
После того как мы получили рабочий EV3-кирпич под управлением ev3dev, вы можете приступать к программированию. Но это уже слишком обширная тема, чтобы уместиться в одну статью. Ведь ev3dev поддерживает многие языки программирования, в том числе Python, JavaScript, Go, C++, C и многие другие. Изучение в этом направлении вы можете продолжить отсюда.
Tags: ev3dev LEGO Education LEGO Mindstorms Education EV3 LEGO Linux
Комментарии
Достаточно просто вынуть SD-карту.
почему?
Может быть не видит файл. Попробуйте указать полный путь к файлу.
python3 /home/robot/hello-world.py
Вот здесь можно скачать все версии: github.com/ev3dev/ev3dev/releases
А чем последняя версия не устраивает?
RSS лента комментариев этой записи