На момент написания статьи я работаю в образовательной организации и столкнулся с задачей установки среды блочного программирования для роботов VEX IQ второго поколения на дистрибутиве Alt Linux.
Немного о Vex
Компания VEX Robotics выпускает разнообразные наборы программируемых конструкторов для разных возрастных категорий. Конструкторы VEX IQ предоставляют возможность блочного программирования, что отлично подходит для обучения юных умов основам разработки и робототехники. Роботов линейки VEX IQ можно программировать на языках Python и на C++.
Проблема
На официальном сайте можно скачать среду разработки для VEX IQ, но только под операционные системы Windows, Mac, Android и Chromebook.
Запуск в среде Wine не подошёл — это оказалось довольно сложной задачей из-за драйверов и других технических нюансов.
Также у VEX есть веб-версия среды разработки, но на Linux она работает некорректно: веб-страница постоянно выдает ошибки.
Решение
Немного поискав в интернете, я нашёл плагин для Visual Studio Code, предназначенный для разработки под конструкторы VEX, и решил копать в эту сторону.
У меня возникла идея: если получится компилировать и загружать код из Visual Studio Code на устройство VEX, то можно будет разработать собственную программу для блочного программирования, копировать из неё код и вставлять его в Visual Studio Code для запуска.
Я скачал Visual Studio Code и плагин, подключил VEX-устройство и столкнулся с ошибкой: компьютер не мог его найти.

Плагин искал утилиту udevadm, которая отвечает за управление USB-устройствами, по пути /sbin/udevadm. Однако в Alt Linux эта утилита обычно располагается в /usr/local/bin/udevadm. Чтобы плагин смог её найти, я создал символическую ссылку и теперь при обращении по первому пути система автоматически перенаправляет запрос по второму.
Разработка собственного блочного редактора
Далее я занялся разработкой веб-страницы для блочного программирования устройств VEX IQ.
За основу я взял библиотеку для Node.js — Blockly. Она достаточно удобна для быстрого создания инструментов блочного программирования и поддерживает разные языки программирования.
Я изучил документацию API VEX IQ и проанализировал функционал официального блочного редактора. На основе этого я разработал собственную веб-страницу с конструктором блоков. В моём инструменте реализованы основные категории блоков для работы с VEX IQ, а также поддержка двух языков — русского и английского.

Установка и запуск
Чтобы запустить данный веб-сервис, требуется установка Node.js, npm и nvm.
Набор команд для установки всех нужных инструментов и настройки системы:
# Желательно выполнять от лица суперпользователя # 1. Обновляем список пакетов apt-get update # 2. Устанавливаем epm (менеджер пакетов для Alt Linux) и Node.js с npm apt-get install eepm node npm # 3. Устанавливаем Visual Studio Code через epm epm play code # 4. Применяем изменения в ~/.bashrc source ~/.bashrc # 5. Создаём символическую ссылку для udevadm ln -s /sbin/udevadm /usr/local/bin/udevadm # 6. Устанавливаем нужную версию Node.js через nvm (от имени обычного пользователя) nvm install 20
Чтобы упростить работу с инструментом для детей и учителей, я создал ярлык для быстрого запуска. При нажатии на ярлык запускается bash-скрипт, который делает следующее:
Загружает переменные окружения для Node.js с нужной для работы проекта версией.
Переходит в папку с проектом VexIQBlockly.
Запускает локальный веб-сервер в фоновом режиме.
Открывает Visual Studio Code.
После закрытия Visual Studio Code автоматически завершает работу сервера.
Такой подход позволяет не открывать терминал и не вводить команды вручную — всё выполняется по одному клику.
#!/bin/bash -l # Загружаем nvm и нужную версию Node.js export NVM_DIR="$HOME/.nvm" export NODE_VERSION="v20.20.2" export PATH="$HOME/.nvm/versions/node/$NODE_VERSION/bin:$PATH" # Переходим в папку с проектом и запускаем сервер в фоне cd путь_до_проекта/vex-iq-blockly npm start & SERVER_PID=$! # Даём серверу время на запуск sleep 1 # Открываем Visual Studio Code и ждём его закрытия code --wait ~/. # Когда VS Code закрыт — убиваем сервер kill $SERVER_PID
Итог
Таким образом, мне удалось настроить рабочую среду для программирования роботов VEX IQ 2 на Alt Linux.
Ссылки, которые могут быть полезны: