Lego mindstorms ev3 ubuntu

Обновлено: 03.05.2024

So you’re ready to try out ev3dev. Great! Here are step-by-step instructions to help you get ev3dev up and running on your EV3 or Raspberry Pi.

First, here are the things you need before starting:

  • A LEGO MINDSTORMS EV3 Intelligent Brick or Raspberry Pi (any model).
  • A microSD or microSDHC card (2GB or larger). microSDXC is not supported on the EV3. All cards larger than 32GB will not work with the EV3!
  • A computer with an adapter for the SD card. You will need administrator user permissions on this computer.

A way to communicate with the device.

For the EV3, this can be one of the following:

  • USB cable (the one that comes with the EV3)
  • USB Wi-Fi dongle
  • USB Ethernet (wired) dongle
  • Bluetooth

For Raspberry Pi you can use a wired Ethernet connection first. With PiStorms the EV3 options will work too since you have a built-in screen to configure them on. With BrickPi you can also set up other connections from the console using an external screen and keyboard.

Step 1: Download the latest ev3dev image file

Other platforms


To get started, you will need to download the release corresponding to the platform you are using. For additional downloads and advanced information, check out our dedicated download page.

To get started, you will need to download the release corresponding to the platform you are using. Visit the GitHub releases page and find the image that corresponds to your platform:

  • Releases for the LEGO MINDSTORMS EV3 start with ev3-
  • Releases for the Raspberry Pi 1 start with rpi-
  • Releases for the Raspberry Pi 2 and 3 start with rpi2-
  • Releases for the BeagleBone start with evb-

Step 2: Flash the SD card

This will erase everything on your SD card! Back up your files if you do not want to lose them!

Now it’s time to write the image to the card.

Launch Etcher after it has finished installing.

Etcher home screen

Etcher home screen

Click the “Select image” button and browse to the folder where you downloaded an ev3dev release. Select the file that you downloaded. The release can be a .img.zip or .img.xz ; whichever you have will work with Etcher.

Image chosen in Etcher

Image chosen in Etcher

Plug the SD card into your PC (if your PC doesn’t have a micro SD slot, you can use an adapter or external reader). Etcher should detect the new device and display its information under the “Select drive” step. Confirm that the selected drive is correct.

Drive selected in Etcher

Drive selected in Etcher

If you have multiple removable drives available, you may need to use the “Change” button to select the proper device.

When you are confident that you have selected the correct drive, click “Flash!” and wait for the operation to complete.

Etcher flashing the SD card

Etcher flashing the SD card

If you arrive at this screen, you have successfully flashed your SD card and are ready to move on to the next step.

Etcher success screen

Etcher success screen

For more detailed information and flashing utility alternatives, check out our other tutorials. You can also check out this page for RaspberryPi. Much of the information there is applicable to ev3dev.

Step 3A (Raspberry Pi only): Update options in config.txt

This is for Raspberry Pi only! Users of other platforms can skip this step.

You must make some changes to config.txt to enable support for BrickPi or PiStorms before you put your SD card in your Raspberry Pi.

You may have to remove the SD card from your host computer and plug it back in after flashing it in order for it to be detected. In your file browser, open up EV3DEV_BOOT . This contains a file named config.txt . Open config.txt in your favorite text editor and follow the instructions in the file to enable either BrickPi or PiStorms.

Step 3B (BeagleBone only): Select cape in uEnv.txt

This is for Beaglebone only! Users of other platforms can skip this step.

You must make some changes to uEnv.txt to enable support for FatcatLab EVB or QuestCape before you put your SD card in your BeagleBone.

You may have to remove the SD card from your host computer and plug it back in after flashing it in order for it to be detected. In your file browser, open up EV3DEV_BOOT . This contains a file named uEnv.txt . Open uEnv.txt in your favorite text editor and follow the instructions in the file to select the cape your are using.

Step 4: Boot ev3dev

Put the SD Card in your EV3 and power it on. At first, you will see the MINDSTORMS boot splash and the red LEDs will be on. This is immediately followed by the ev3dev boot splash and the LEDs changing to orange. The LEDs indicate disk (SD card) activity.

After about one minute, the screen will go blank. This happens on the first boot only. The first boot takes longer than subsequent boots because the EV3 has to create a unique SSH host ids and take care of a few other housekeeping items. After another minute or two, you will see the brickman loading… screen. If nothing has happened after five minutes, something is not right - check the troubleshooting tips below.

You will notice the number in the battery in the upper right corner. This displays the remaining voltage of the power supply. It is not possible to calculate an accurate percent value of the remaining energy, so this value is chosen. If the voltage drops below 5V the brick will turn off. All unsaved data will be lost. Keep in mind, that it may take a much longer time from 8V to 6.5V than from 6.5V down to 5V!

Note: If you are using Raspberry Pi hardware without a screen, just wait for the Activity LED to stop flashing, then go to the next step. If alternatively you have connected the pi to a screen monitor via HDMI press Ctrl + Alt + F6 at the end of the boot sequence. This should take you to a login prompt. Login as ‘robot’ with password ‘maker’.

When the boot is complete, the LEDs will turn green and you will see something like this on the screen

When the boot is complete, the LEDs will turn green and you will see something like this on the screen

  • Make sure nothing is plugged into the EV3 (USB/sensors/motors/etc.)
  • Try writing the image to the SD card again.
  • You may have a bad/incompatible SD card - try a different SD card.
  • Check the condition of the EV3 batteries.

Shutting down

You’ll often want to turn off your EV3 while it isn’t in use. When you are ready to wish your EV3 good night, turn if off by pressing the back button from the main menu in brickman or pressing and holding the back button from any screen in brickman. This will open a dialog where you can select Power Off to turn off the EV3. If you’re using the command line, running sudo poweroff in a terminal works too.

The

The 'Shutdown. ' dialog in Brickman

Step 5: Set up a network connection

Click on the button below to visit our networking page. There are lots of choices here; choose the connection option that best suits you and your available hardware.

Step 6: Connect to the EV3 via SSH

Now that you have a network connection, you should connect to your EV3 with SSH. Connecting allows you to verify that the networking option that you configured in the previous step is working. Once you have an SSH connection, you will be able to securely run terminal commands on the EV3 from your PC. This lets you run programs, change settings, and install new programs. Click the button below to learn how to connect.

To test this out, let’s try running a command (make sure that you have completed the earlier part of this step first).

Type the command fortune into the SSH shell opened above and press Enter . It will use a nifty program called fortune to print out a random quote from a database. Feel free to try it multiple times!

If you don’t see any errors printed, and your output looks similar to the above, you’re good to go!

Step 7: Choose a programming language and write some code

If you were sent here from a language- or framework-specific webpage, you can skip this step and return there for further instructions.

The brick can run the vast majority of popular programming languages, so your favorite language is probably supported. Pick your language and write some code!

LEGO® is a trademark of the LEGO Group of companies which does not sponsor, authorize or endorse this site

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


Осторожно! Публикация может вызвать непреодолимое желание завести сына.

Урок истории

Компания LEGO (название произошло от датской фразы «leg godt», «Играй с удовольствием») не нуждается в представлении – она была основана в далёком 1932 году, хотя первые знакомые всем пластиковые кубики появились значительно позже, в 1947. Примечательно, что кубики LEGO, выпускаемые в те годы, полностью совместимы с теми, что выпускаются сейчас.

История создания компании, выпущенная компанией Pixar к 80-летнему юбилею LEGO:

Сейчас компания производит около 20 миллиардов деталек в год, то есть более 630 штук в секунду. В текущем модельном ряду более 600 различных конструкторов и так уж получилось, что серия Mindstorms является своего рода вершиной технической мысли, самым-самым навороченным конструктором. Если вкратце, то она позволяет делать вполне себе полноценных роботов.

Как гласит википедия, серия LEGO Mindstorms была впервые представлена в 1998 году. Через 8 лет (в 2006) на свет появился набор LEGO Mindstorms NXT 1.0, а уже в 2009 — набор LEGO Mindstorms NXT 2.0. Сегодня речь пойдёт о LEGO Mindstorms EV3 – последнем (третьем) поколении терминатора конструктора, который был представлен почти год назад, 4 января 2013 года (в продаже появился только спустя полгода).

Отличия EV3 от NXT 2.0

В принципе, главная идея осталась прежней – серия предназначена для сборки программируемых роботов. Поэтому первым встаёт вопрос, а что же поменялось с момента выхода предыдущего конструктора и стоит ли покупать новый? Основное отличие заключается в обновленных датчиках/моторах и, самое главное, в интеллектуальном блоке EV3 (EV означает EVolution):

EV3 NXT
Дисплей Монохромный LCD, 178x128 Монохромный LCD, 100x64
Процессор 300 МГц
Texas Instruments
Sitara AM1808 (ARM9)
48 МГц Atmel
AT91SAM7S256
(ARM7TDMI)
Память 64 Мб RAM
16 Мб Flash
Слот microSDHC (до 32 Гб)
64 Кб RAM
256 Кб Flash
USB-хост Есть Нет
Wi-Fi Опционально, через USB-донгл Нет
Bluetooth Есть Есть
Поддержка Apple-устройств Есть Нет
Как видите, разница довольно существенна – было бы странным, если бы за 4 года поменяли только разрешение экрана и набор наклеек.

Ещё одно отличие заключается в том, что серия NXT продавалась в нескольких версиях (в разные годы) и представляла собой разные наборы, базовые и ресурсные. У нового EV3 с этим попроще – пока он продаётся в основном варианте – 31313 (601 деталь), из которого можно наделать кучу всего. Но при желании можно докупить базовый набор 45544 (541 деталь) с дополнительными сенсорами и детальками (использовать детали от обычных конструкторов также никто не мешает). Кстати, обратите внимание на пятизначные артикулы – на такую нумерацию компания перешла в 2013 году.

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

Внутри коробки

Ещё когда я сам был маленький и ездил с родителями в центральный Детский Мир (когда он ещё был), на Лубянку – уже тогда я не мог оторвать глаз от коробок с LEGO. Тогда не было ни Гиктаймс, ни даже Хабра, но с тех пор коробки остались всё такими же яркими и сочными, даже во взрослом возрасте активируют процесс слюновыделения ) В этом плане другим производителям есть чему поучиться.


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

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



Сам EV3, он же интеллектуальный блок, он же сердце системы, он же «кирпичик» или «кубик». Служит центром управления и энергетической станцией для вашего робота и имеет следующие функциональные элементы:


– Многофункциональный монохромный дисплей с разрешением 178х128
– Шестикнопочный интерфейс управления с функцией изменения подсветки (3 цвета) для индикации режима работы
– 4 порта ввода (1, 2, 3, 4) для подключения датчиков
– 4 порта вывода (A, B, C, D) для выполнения команд
– 1 разъём miniUSB для подключения EV3 к компьютеру
– 1 порт USB–хост (для соединения нескольких EV3 в одну цепь, например)
– 1 слот для карт памяти формата microSD (до 32Гб) – для увеличения объёма доступной памяти EV3
– Встроенный динамик




Кубик EV3 также поддерживает Bluetooth, WiFi (через USB-адаптер NETGEAR WNA1100 Wireless-N 150), для связи с компьютерами имеет программный интерфейс, позволяющий создавать программы и настраивать регистрации данных непосредственно на микрокомпьютере EV3.

» Большой EV3-сервомотор (2 штуки). Cоздан для работы с микрокомпьютером EV3 и имеет встроенный датчик вращения с точностью измерений до 1 градуса. Используя этот датчик, мотор может соединяться другими моторами, позволяя роботу двигаться с постоянной скоростью. Кроме того, датчик вращения может использоваться и при проведении различных экспериментов для точного считывания данных о расстоянии и скорости.


– Встроенный датчик вращения с точностью измерений до 1 град
– Максимальные обороты до 160-170 об/мин
– Максимальный крутящий момент в 40 Нсм
– Автоматическая идентификация программным обеспечением EV3

» Средний EV3-сервомотор. Идеален для задач, когда скорость и быстрота отклика, а также размер робота важнее его грузоподъёмности.


– Встроенный датчик вращения с точностью измерений до 1 градуса
– Максимальные обороты до 240-250 об/мин
– Максимальный крутящий момент в 12 Нсм
– Автоматическая идентификация программным обеспечением EV3

» Датчик цвета (EV3). Способен определить 8 различных цветов, хотя также может использоваться как датчик освещённости.


– Измеряет отраженный красный свет и внешнее рассеянное освещение, от полной темноты до яркого солнечного света
– Фиксирует и определяет 8 цветов
– Частота опроса до 1 кГц
– Автоматическая идентификация программным обеспечением EV3

» Датчик касания (EV3). Позволяет роботу реагировать на касания, распознает три ситуации: прикосновение, щелчок и освобождение. Также способен определить количество нажатий, как одиночных, так и множественных.

» Цифровой ИК-датчик (EV3). Для определения приближения робота. Также способен улавливать ИК-сигналы от ИК-маяка, позволяя создавать дистанционно управляемых роботов, навигационные системы для преодоления препятствий.


– Измерения приближения/удаления в радиусе 50-70 см
– Радиус улавливания ИК-сигналов до 2 метров
– До 4 индивидуальных каналов приёма сигнала
– Получение удаленных ИК-команд управления
– Автоматическая идентификация программным обеспечением EV3

» Удалённый инфракрасный маяк. Разработан для использования с ИК-датчиком EV3. Маяк излучает ИК-сигнал, улавливаемый датчиком – может использоваться в качестве пульта дистанционного управления микрокомпьютера EV3, передавая сигналы на ИК-датчик.

– До 4 индивидуальных каналов передачи сигнала (переключатель прямо на корпусе)
– Имеет кнопку и тумблер для включения/выключения
– При работе ИК-маяка горит зелёный светодиод
– Автоматическое отключение при простое более 1 часа
– Радиус действия до 2 метров

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


Стоит отметить два важных момента. Во-первых, существуют другие датчики Lego, такие как:

» Гироскопический датчик (EV3). Цифровой гироскопический датчик EV3 позволяет измерять движение вращения робота, а также улавливать изменения в его движении и положении. Режим измерения углов с точностью до ± 3 градуса; встроенный гироскоп улавливает вращения с моментом до 440 град/с; частота опроса до 1 кГц.

» Ультразвуковой датчик (EV3). Генерирует звуковые волны и фиксируюет их отражения от объектов, тем самым измеряя расстояние до объектов. Также может использоваться в режиме сонара, испуская одиночные волны. Может улавливать звуковые волны, которые будут являться триггерами для запуска программ. Измеряет расстояния в пределах от 1 до 250 см, а точность измерений составляет ± 1 см.

А во-вторых, поддерживаются сенсоры и прочие аксессуары от сторонних производителей, таких как HiTechnic и Mindsensors – они предлагают всевозможные джойстики, инфракрасные датчики расстояний, магнитные датчики, компасы, гироскопы, акселерометры, таймеры, мультиплексоры, шаровые опоры, и т.д. Так что, если задаться вопросом, можно найти много всего интересного.


В общем, как вы уже поняли, LEGO – это для реальных пацанов!

Первая модель

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


Сначала я удивился, ведь даже в самых простых наборах (серии типа LEGO Creator) всегда идёт несколько инструкций, а тут вдруг бумаги пожалели или места в коробке не нашли. Оказалось… что только на официальном сайте из набора деталей предлагается собрать 17 разных роботов! Поэтому 17 инструкций в коробке были бы действительно лишними (и для логистики, и для лесов природы). Вот названия роботов: EV3RSTORM, GRIPP3R, R3PTAR, SPIK3R, and TRACK3R. ROBODOZ3R, BANNER PRINT3R, EV3MEG, BOBB3, MR-B3AM, RAC3 TRUCK, KRAZ3, EV3D4, EL3CTRIC GUITAR, DINOR3X, WACK3M, и EV3GAME – инструкции для них придётся качать из инета, равно как и софт для подключения EV3 к компьютеру.


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


Кубик EV3 необходимо запитать, для чего можно использовать аккумулятор (нет в комплекте) или 6 пальчиковых батареек. Забегая вперёд – ещё 2 батарейки (но уже мизинчиковых) понадобятся для питания ИК-маяка (он же пульт ДУ).


Первую модель ребёнок (7 лет) собрал примерно минут за 30.


Процесс оказался не таким увлекательным, как, например, сборка моделей LEGO Technics – в инструкции предлагается собрать далеко не самого интересного робота: в нём лишь крупные детали, среди которых были практически все датчики и двигатели – видимо, чтобы продемонстрировать работу каждого из них.



Но вот результат превзошёл все детские ожидания – впервые он собрал модель, которая могла двигаться сама: вперёд-назад, поворот, разворот на месте, крутила щупальцами…



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



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

Ребёнку проще всего будет начать с предлагаемого производителем софта, который есть как под Windows, так и под OS X. Во втором случае дистрибутив весит 666 Мб, а установленное приложение займёт гигабайт. Оно называется LEGO Mindstorms EV3 Home Edition и разработано совместно с небезызвестной компанией LabView. На сайте LEGO довольно много обучающих программированию материалов.

Сразу после запуска перед нами возникает интерактивный «гараж» из роботов, которых можно собрать из набора:


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




Не вижу смысла описывать всё в деталях: вы быстрее скачаете приложение сами и увидите, что там есть и на каком уровне. Разве что упомяну один из недостатков, который мне больше всего запомнился: не самый дружелюбный (особенно для детей) интерфейс – от приложения попахивает каким–то банк-клиентом.

Нельзя ещё раз не отметить, что кубиком EV3 можно управлять со смартфона на операционных системах Android или iOS, для чего есть отдельные приложения.

Если всего этого оказалось мало, можете повысить градус хардкора. Для кубика EV3 существуют различные прошивки, которые позволяют расширить его возможности, скорость работы и т.д. Вот, например, альтернативная прошивка leJOS EV3 – прошивка с jvm, позволяющая программировать EV3 на языке Java. Хотите на другом языке? Окей, гугл – в вашем распоряжении почти 60 вариантов на выбор: ASM/C/C++/Perl/Python/Ruby/VB/Haskell/Lisp/Matlab/LabVIEW и многое-многое другое.

Более подробно об этом я рассказывать не буду по нескольким причинам: во-первых, программист из меня полный false (все надежды на сына), во-вторых, пока мы успели собрать только одну модель (и на выходных возьмёмся за вторую), а в-третьих – вы уже и так оформили заказ на этот конструктор и скоро сами всё узнаете ;) Ну а если серьёзно, то статья и так уже огромная – вот лучше две ссылочки изучите: раз и два.

Ну и ещё большой плюс – это LEGO-сообщества, которых полно по всему миру. Можете быть уверены, что на любом из этапов экспериментов с роботами вы всегда сможете найти единомышленников и тех, кто сможет помочь с решением проблемы. Помимо дружелюбных сообществ, на просторах сети выложено огромное множество различных инструкций, моделей, исходников, видеороликов и обучающих материалов. Всё это означает одно: с Mindstorms вы не соскучитесь.

Здесь публикуются заметки о том, как заменить Windows и использовать бесплатное ПО для программирования роботов.

суббота, 30 июня 2018 г.

Программирование на EV3-G под Linux


Особенности:

2 Запуск будет проводится с помощью программы wine (она позволяет запускать windows-приложения — в основном 32-битные — на linux). Функционал Lego EV3 будет полностью работать, за исключением работы с EV3-блоком по USB и Bluetooth.

3 У программы wine есть проблемы взаимодейтсвия с USB-устройствами. Несмотря на то, что подключение флешек она видит, мой EV3-блок она так и не увидела (на вышеупомянутом официальном сайте wine также описана эта проблема). Поэтому взаимодействовать по USB-проводу с EV3-блоком не получится, как и по Bluetooth (( Только по Wi-Fi, но и здесь есть нюансы:



3.1 В EV 3-блоке нет Wi-Fi карточки, поэтому нужно использовать USB -свисток. Но стандартная прошивка EV 3-блока (на момент написания, это 1.09H для домашней версии, 1.09E — для образовательной и 1.09D — для разработчиков: все практически идентичны) поддерживает только два вида Wi-Fi свистков: NetGear N150 (WNA1100) и EdiMax EW-7811UN . Если вы захотите их приобрести, то я рекомендую последний за его компактность. В продаже они редко встречаются, но можно найти в online-магазинах.

Замечание. Такой острой проблемы поддержки Wi-Fi-адаптеров нет в альтернативных прошивках, см. статьи «Сборка собственной прошивки из исходников» (ссылка ожидается) и «Программирование на Python» (ссылка ожидается).

3.2 Чтобы получить соединение между компьютером и EV3-блоком оба должны быть подключены к общей сети Wi-Fi, т. е. вам ещё и роутер нужен. Я использовал свой домашний роутер, который раздаёт интернет.

Далее ориентируюсь на статью. Там дана последовательность установки без объяснения, я разделил её на шаги и подписал назначение каждого из них.

Совет. Команды можно не перепечатывать, а копировать и вставлять в терминал (комбинации Ctrl + Insert / Shift + Insert)

Удаление ранее установленного wine

Если wine у вас уже установлен можете попробовать пропустить шаги для удаления, но я всё же рекомендую удалить wine:

1. sudo apt purge wine winetricks (удаляем утилиту для работы с wine и сам wine - нужно будет ввести пароль)

4. rm -rf ~/.wine (удаляем всю скрытую папку .wine с установленными ранее программами, из того места, где они были установлены, показан пример для удаления из домашней папки «~/» — у вас может отличаться)

Установка wine и winetricks

1. Стандартная установка нам не подойдёт, потому что в стандартном репозитории хранится старая версия wine.

Здесь публикуются заметки о том, как заменить Windows и использовать бесплатное ПО для программирования роботов.

среда, 18 июля 2018 г.

Программирование Lego EV3 на Python. Настройка Eclipse под Linux

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

Показать/Скрыть 1. Требования к подготовке

1. Терпение. Статья длинная, но она того стоит!


3. Соединение блока с компьютером по USB-проводу или с помощью сети Wi-Fi (для этого понадобится Wi-Fi-адаптер, я проверил TP-Link 725 v2 и TP-Link 723, точно подойдут NetGear 1100 и Edimax 7811Un — но их найти, как говорится, днём с огнём …)


Замечание. Соединение через Wi-Fi потребует использование роутера, именно через него, т. е. через общую сеть, будет соединение с компьютером. Но здесь плюсом будет, то, что если на роутере есть интернет, то интернет будет доступен и на EV3 блоке. Это означает, что получив к нему удаленный доступ с компьютера (например, по SSH протоколу) вы можете устанавливать на нём программы прямо из репозитория linux (но обязательно в начале нужно будет обновить список

Из минусов: мощность EV3-блока завораживает (шутка!), поэтому установка программ будет долгой, очень долгой (у меня пакет весом 180 МБ устанавливался полтора часа). По этой же причине лучше не делать sudo apt upgrade, т. к. для обновления всей системы ev3dev проще заново записать образ на SD карту.

Логика установки

Мы установим IDE Eclipse, настроим в нём пути к интерпретатору, исходникам библиотеки, соединение с блоком EV3 по протоколу SSH, вывод автодополнений и др.

Замечание: кроме Eclipse ещё тестировался редактор nxcEditor, который прекрасно программирует блоки NXT, но стабильного соединения по SSH от него к блоку EV3 получить не удалось, а в интернете информации про это не нашлось.

Важные моменты

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

Показать/Скрыть 2. Тестирование Python и SSH

Прошивка на SD-карте — ev3dev — основана на linux-дистрибутиве debian. Т.е. Python там стоит по умолчанию. Установим с EV3-блоком ssh-соединение и запустим простейший скрипт для тестирования интерпретора и библиотеки ev3dev.ev3.

Альтернативно вместо ev3dev.local можете использовать ip-адрес EV3-блока, его можно посмотреть на экране блока. Например, ssh robot:maker@10.42.0.3

Показать/Скрыть 3. Установка Eclipse

Далее используется версия программы Eclipse Photon (Eclipse IDE for Java EE Developers).

Показать/Скрыть 4. Настройка Eclipse для Python

2. При запуске программа запросит нахождение рабочей папки, т. к. у нас будет использовать только Python, то нажмите кнопку Browse… и выберите папку ~/ev3dev-Python/

Если вы будете работать только в этой рабочей папке, то можно поставить галочку Use this as the default and do not ask again.

Показать/Скрыть 5. Установка PyDev

1. Устанавливаем плагин PyDev (чтобы можно было программировать на Python). Для этого выбираем HelpEclipse Marketplace …

4. Соглашаемся с лицензиями, выбрав I accept the terms of the license agreements и нажав кнопку Finish.

7. После перезапуска проверьте установку PyDev. Для этого откройте меню WindowPreferences и слева в списке найдите пункт PyDev. Если пункт есть, значит установка прошла успешна, заодно вы можете посмотреть версию плагина. Закройте это окно.

Показать/Скрыть 6. Настройка интерпретатора в PyDev

4. Откройте меню WindowPreferences, разверните в списке слева PyDevInterpretersPython Interpreter

Показать/Скрыть 7. Установка библиотеки JCraft

Далее, устанавливаем библиотеку JCraft для автоматической синхронизации редактируемого файла с его копией на EV3-блоке. Т.е. файл проекта сохраняется на компьютере в рабочей папке ev3dev-Python и при любых изменения моментально будет загружаться и обновляться на EV3-блоке.


1. Скачайте с официального сайта библиотеку JCraft (ищите в разделе Download файл jsch-0.1.54.jar или более позднюю версию) или скачайте её по ссылке:

у меня нашлась директория org.apache.ant_1.10.3.v20180417-1627

4. Зайдите во вложенную в неё папку lib


5. Скопируйте сюда скачанную ранее библиотеку JCraft. Например, если библиотека находится в стандартной папке Загрузки, то наберите


6. Теперь откройте настройки Eclipse (меню WindowsPreference). откройте AntRuntime, выберите Ant Home Entries (Default) на закладке Classpath и нажмите кнопку Add External JARs. .

Но т.к. .p2 — скрытая папка, она отображаться не будет. Чтобы она стала доступна, щёлкните правой кнопной мыши на свободно месте и поставьте с появившемся контекстной меню галочку Show hide files

9. После этого JCraft появится в списке файлов библиотек. Нажмите Apply and Close, чтобы сохранить изменения.

Показать/Скрыть 8. Добавление шаблона программы Python для EV3

Каждый файл проекта на Python для EV3 должен начинаться с определённых строк. Для удобства добавим шаблон для нового файла.


1. Откройте настройки WindowPreferences, найдите слева в списке PyDevEditorTemplates и нажмите кнопку New


2. В появившемся окне уберите галочку Automatically insert, в списке ContextNew Module. В поле Name напишите EV3

Показать/Скрыть 9. Создание нового проекта PyDev

5. Теперь на панели PyDev Package Explorer появилась папка с вашим проектом. Обратите внимание на ссылку на интерпретатор Python3.

Показать/Скрыть 10. Добавление в проект ссылок на исходники библиотек ev3dev.ev3 и Python

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


2. Чтобы скачать исходники ev3dev.ev3 с сайта github, удобно пользоваться утилитой git, установите её


3. Далее добавим в проект Eclipse ссылку на скачанную библиотеку. Для этого щёлкните правой кнопкой мыши по названию проекта и выберите пункт Properties

4. В окне свойств проекта выберите в списке слева PyDevPYTHONPATH. Далее выберите вкладку External Libraries и нажмите на кнопку Add source folder.

7. Далее чтобы добавить путь к исходникам PyDev, смотрим версию установленной библиотеки. Меню WindowPreference и в списке слева щёлкаем по пункту PyDev и запоминаем версию

8. Далее также как и ранее заходим в свойства проекта (Properties), выбираем PyDevPYTHONPATH нажимаем Add source folder ещё раз, чтобы добавим путь к исходникам библиотеки PyDev (добавляете всю папку pysrc, у меня ~/.p2/pool/plugins/org.python.pydev.core_6.4.3.201807050139/pysrc).

Показать/Скрыть 11. Добавление модуля Python в проект

Создадим маленький проект, в котором EV3-блок будет говорить фразу Welcome to the E V 3 project как в начале статьи, но уже с помощью Eclipse, с поддержкой автодополнения и проверки синтаксиса.

4. Во втором окне показаны некоторые настройки Python, которые можно сейчас изменить. Не изменяйте их. Просто нажмите OK.

5. Наконец-то, мы видим свой созданный модуль first_module.py, при этом он уже содержит ранее созданный шаблон.

6. Предупреждение на второй строке означает, что мы сделали импорт модулей, которые не используем. Мы импортируем все модули звёздочкой … import *. Игнорируем это замечание.


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

10. Теперь поставьте точку после слова Sound. Eclipse покажет доступные методы и атрибуты класса Sound. По списку можно передвигаться клавишами-стрелками и выбирать нужный клавишей Enter.

12. Добавьте метод wait(). Наша программа готова. Чтобы сохранить изменения в текущем файле, нажмите комбинацию Ctrl + S — звёздочка слева от имени файла исчезнет. (А чтобы сохранить все изменения в проекте нужно нажать комбинацию Ctrl + Shift + S).

На выполненном проекте мы увидели как работает автодополнение, подсказки, подсветка кода и проверка синтаксиса.

Показать/Скрыть 12. Автоматическое копирование файлов программ Python на EV3

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


1. Создайте файл build.xml. Для этого щёлкните правой кнопкой мыши по названию проекта и выберете NewFile

Файл «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».

От себя добавил пункт trust="true", без него не происходило соединение и изменил хост на ev3dev.local (было ev3dev).

6. В окне Edit Configuration перейдите на вкладку Main и для Buildfile нажмите кнопку Browse Workspace.


13. Снизу окна Eclipse появилась вкладка Colsole, в которой будет написано, что файл build.xml построен успешно.

14. Теперь переключитесь на вкладку first_module.py, в любом месте поставьте и сотрите пробел, нажмите сохранение Ctrl + S. В панели Colsole показано, что произошло подключение к блоку EV3 и задание успешно выполнилось. Теперь каждое сохранение файла в Eсlipse будет обновлять копию этого файла в EV3-блоке.

Показать/Скрыть 13. Запуск программы на EV3

Программы на Python'е будем запускать через встроенный терминал Eclipse. Он позволит получить доступ к файловой системе EV3-блока, запускать и останавливать программы, в том числе принудительно, а в случае необходимости и удалять их.
В терминале мы уже работали, когда в начале статьи тестировали соединение SSH и язык Python. Теперь настроим SSH для встроенного терминала Eclipse.


1. Подключите к компьютеру EV3-блок (по USB или Wi-Fi).

2. Запустите Launch Terminal, нажав на соответствующую кнопку или комбинацией клавиш Ctrl + Alt + Shift + T.

3. Заполните поля настроек терминала.
Choose terminalSSH Terminal
Host — обычно ev3dev.local или его ip-адрес, например, 10.42.0.3
User/Password — robot/maker
EncodingUTF-8
Галочки на пунктах Save user и Save password

После настройки SSH у меня возникла интересная особенность: история команд отображалась, а сама строка ввода не пропечатывалась (возможно у вас такого не будет). Чтобы это решить можно развернуть вкладку Terminal (делается двойным щелчком по названию вкладки)

и таким же образом свернуть эту вкладку. Прокрутите полосу прокрутки до самого низа и сравните — появилась надпись robot@ev3dev:~$

Она уже скопирована в папку /home/robot/ EV3-блока, т. е. в домашней директории ~. Terminal уже открыт в этой папке. Для запуска напечатайте


Имея под рукой образовательный набор LEGO Mindstorms EV3 (45544) и шарики для пинг-понга вполне можно собрать пушку, стреляющую шариками. Пушкой можно управлять со смартфона с помощью приложения RoboCam.


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


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


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


Чтобы программировать робота LEGO Mindstorms EV3 на любимом языке программирования, использовать огромное количество продвинутых библиотек и получить доступ к дополнительному подключаемому оборудованию, такому как клавиатура, джойстики, мышки и камеры, вам просто необходимо использовать полноценную операционную систему. Здесь на помощь придёт ev3dev – операционная система, базирующаяся на Debian Linux. Я предлагаю вам познакомиться с процессом установки и настройки этой операционной системы.


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


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


Иногда, при создании роботов возникает необходимость использования нескольких различных платформ в одном проекте, например, EV3 и Arduino. Так вы сможете использовать сильные стороны каждой из платформ и распараллелить выполняемые задачи. Я предлагаю вам ознакомиться с переводом статьи, в которой описано, как соединить EV3 и Arduino и как использовать Arduino совместно с EV3.


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


Open Roberta Lab или открытая лаборатория Роберты, робо-леди, которую вы видите на картинке – это облачная среда программирования роботов Lego Mindstorms EV3 очень похожая на Scratch 2, но не требующая установки на компьютер. Ваши готовые программы вы можете протестировать здесь же на симуляторе. Для программирования и использования симулятора вам достаточно иметь браузер и доступ в интернет.


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


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


Как известно, виртуальная Java-машина leJOS, которую мы можем использовать для программирования роботизированного конструктора LEGO Mindstorms EV3, совместима не только с официально поддерживаемым адаптером NETGEAR N150, но и с рядом других адаптеров. Здесь я предлагаю вам перевод статьи с официального блога leJOS, в которой приводится сравнение различных поддерживаемых WiFi-адаптеров.


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


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


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


С помощью чего только не программируются роботы LEGO Mindstorms EV3. Поддерживается большое количество языков программирования на любой вкус. Но сегодня я хочу рассказать вам, о самом, на мой взгляд, удобном и богатом, в плане возможностей, способе программирования роботов LEGO Mindstorms EV3. Удобный, потому что разрабатывать можно в среде разработки Eclipse на языке Java, а богатый, потому, что виртуальная машина Java для EV3, которая называется leJOS, поддерживает не только стандартные возможности EV3, но даёт и гораздо больше.


Если вам нравится графическая среда программирования Scratch 2.0, то вам необязательно отказываться от неё для программирования роботов Lego Mindstorms EV3. Достаточно лишь установить и настроить нужное программное обеспечение, о чём и будет написано в этой статье.


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


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

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