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

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

Установка опробована на Linux Mint 18.3


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


 1 Не существует версии Lego MindStorms EV3 для linux (но есть для Windows и MacOS)

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

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

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

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

Если вы ещё не передумали, то переходим к установке.


Важное замечание. Никогда не запускайте wine с правами администратора!
sudo wine

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

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

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


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

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

2. sudo apt autoremove (удаляем пакеты связанные с ними)

3. sudo apt clean (удаляем кеш)

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

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


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

2. Добавляем репозиторий с программой wine
sudo add-apt-repository ppa:wine/wine-builds

3. Обновляем список пакетов
sudo apt update

4. Устанавливаем wine, шрифты и др. (зачем winbind я так и не понял)
sudo apt install --install-recommends winehq-staging winbind libntlm0 ttf-mscorefonts-installer wget

5. Можете проверить версию wine
wine --version
У меня установилась wine-2.4 (Staging).

6. Важно: никогда не запускайте wine с правами root!

7. Переходим в домашнюю директорию
cd ~/

8. Скачиваем  winetricks — вспомогательный скрипт для скачивания и установки библиотек, необходимых для запуска программ под wine
wget -q https://github.com/Winetricks/winetricks/raw/master/src/winetricks -O /home/$USER/winetricks

9. Создаем папку для размещения установленных программ: 
mkdir /home/$USER/.local/share/wineprefixes

Установка LEGO MINDSTORMS EV3 Home Edition


1. Для надёжности каждую программу лучше устанавливать в отдельную папку (так называемую «бутылку»), в случае возникновения проблем её можно удалить без ущерба другим программам. В нашем случае этой папкой будет ev3, далее мы укажем, что будет устанавливаться 32-битное приложение, и создадим Windows-папки. После перезагружаем «бутылку» (компьютер перезагружать не нужно!)
WINEPREFIX="/home/$USER/.local/share/wineprefixes/ev3" WINEARCH=win32 wineboot
(обратите внимание при установки появится окно с предложением установить Mono. Mono — это аналог Framework, отказываемся, иначе будут конфликты программ. Если будет предложение установить Gecko — соглашаемся.) 

2. Можете посмотреть список созданных папок
ls ~/.local/share/wineprefixes/ev3
3. Убеждаемся, что в режиме совместимости установлена ОС Windows7
WINEPREFIX="/home/$USER/.local/share/wineprefixes/ev3" WINEARCH=win32 winecfg
4. Устанавливаем Framework4 (вместо Mono, от которого ранее отказались, возможно нужно будет доставить Internet Explorer 8 — пакет winetricks ie8)
WINEPREFIX="/home/$USER/.local/share/wineprefixes/ev3" ~/winetricks dotnet40

5. Устанавливаем саму программу LEGO MINDSTORMS EV3. Она автоматически скачивается из хранилища winetricks (ключ -q чтобы установщик не спрашивал подтверждения во время установки)
WINEPREFIX="/home/$USER/.local/share/wineprefixes/ev3" sh ~/winetricks --isolate -q ev3

6. Отключаем вывод видео через OpenGL (для него дополнительно ещё бы пришлось  ставить драйверы)
WINEPREFIX="/home/$USER/.local/share/wineprefixes/ev3" sh ~/winetricks ddr=gdi

7. На Рабочем столе сейчас появилось два ярлыка. Один из них не функционирует. Удаляем его
rm -f "/home/$USER/Рабочий стол/LEGO MINDSTORMS NXT 2.0.lnk"

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

Первая программа в LEGO MINDSTORMS EV3 Home Edition


1. Убедитесь, что компьютер подключен к роутеру, сеть должна быть с шифрованием WPA2 (с паролем, безопаснее) или без пароля (интернет в сети может отсутствовать).
2. Запустите на компьютере ранее установленную программу LEGO MINDSTORMS EV3 Home Edition (Обязательно сначала запускаем программу, а потом устанавливаем соединение с блоком! — иначе соединение не установится.)

3. Выберите в меню File New project чтобы создать новый проект.

4. Вставьте в EV3-блок Wi-Fi-адаптор (NetGear N150 (WNA1100) либо EdiMax EW-7811UN — третьего варианта на стандартной прошивке к сожалению не дано).

5. В EV3-блоке перейдите в настройки и активируйте Wi-Fi, далее перейдите к пункту Connections (Соединения) и после автоматического поиска выберите из списка найденных название вашей сети. Нажмите Connect (Соединить).

6. Выберите шифрование сети WPA2 и введите пароль или None без пароля (в зависимости от вашей сети).

7. Соединение установлено. Сверху на экране EV3-блока рядом за значком сети должна появиться двойная стрелка ⇋. 

8. В окне соединения LEGO MINDSTORMS EV3 Home Edition (справа внизу) нажмите на кнопку Available Bricks (доступные блоки) и поставьте галочку напротив пункта Wi-Fi
9. Связь с EV3-блоком установлена и уже можно программировать.

10. Создайте любую программу и загрузите её на EV3-блок.

Бонус. Удаление программ в wine


Для того чтобы просмотреть список установленного ПО в «бутылке» wine удобно пользоваться командой
WINEPREFIX="/home/$USER/.local/share/wineprefixes/ev3" WINEARCH=win32 wine uninstaller
С помощью этого окна удобно удалять приложения.

Комментариев нет:

Отправить комментарий