Рудирон — разработка ПО на языке С++ и дополнительные программные инструментальные средства
«Рудирон» — это уникальный Российский образовательный программно-аппаратный комплекс (ПАК), построенный на базе 32-разрядного микроконтроллера К1986ВЕ92. Платформа позволяет создавать проекты на языке C++: к контроллеру возможно подключать внешние датчики, дисплеи, радиомодули и другие компоненты, необходимые для реализации инженерных идей.
«Рудирон» дает возможность юным разработчикам плавно перейти от изучения основ программирования микроконтроллеров к созданию более сложных проектов с отладкой и визуализацией данных. Простота использования и универсальность ПАКа — «Рудирон» делают его подходящим инструментом как для школьников (начиная с 5-ого класса), так и для студентов колледжей и вузов при выполнении лабораторных и исследовательских работ.
Методика работы с комплексом: от основ электроники и программирования на C++ до создания автономных мобильных роботов и систем Интернета вещей, готовых к решению задач промышленного уровня.
В этой статье рассказываем о первых шагах к вашим проектам — установке ПО для работы с контроллером «Рудирон».
Среда разработки
В зависимости от уровня подготовки, разработку можно вести в среде Arduino IDE или в Visual Studio Code.
• Arduino IDE ориентирована для школьников с 5-го класса и их педагогов,
• Visual Studio Code — рекомендуется для школьников старших классов, студентов колледжей и вузов.
Для корректной работы специализированного программного обеспечения для работы с «Рудироном» на компьютере должны быть предустановлены:
• Arduino IDE версии 2.2 (или выше);
• Visual Studio Code версии 1.80 (или выше);
• Python версии 3.6 (или выше).
Полная инструкция по установке находится в репозитории GitFlic (раздел «Методические материалы по работе с «Рудироном»).
В образовательных учреждениях это программное обеспечение, как правило, уже установлено. При необходимости инструкцию по установке можно найти на сайте Рудирон.рф.
Состав установочных скриптов
Пакет программного обеспечения «Рудирон» включает:
- драйвер COM-порта;
- тулчейн (toolchain);
- расширение для Visual Studio Code;
- библиотеки для работы с контроллером.
Скрипты для установки, а также техническая и методическая документация находятся на GitFlic.
Скрипты установки для ПАК «Рудирон», а также все необходимые программы и библиотеки, по умолчанию располагаются в каталоге:
C:\Users\Пользователь\AppData\Local\Arduino15\packages\Rudiron
Структура каталогов:
hardware библиотеки для интеграции с Arduino.
tools: программные средства – драйверы, программы для прошивки контроллера, средства отладки openOCD, toolchain.
Установка под Windows (на примере Windows 10)
- Скачайте установочный скрипт по ссылке.
2. Распакуйте архив с помощью любого архиватора (WinZip, WinRar и т.п. или встроенного средства Windows) во временный каталог, например “C:\temp\”.
3. Запустите файл «install.ру».
Если двойной щелчок не запускает скрипт, откройте командную строку Win+R, введите cmd) и выполните:
cd "c:\temp\Rudiron_Distribution_Scripts"
Скорректируйте путь в команде, если название или расположение вашего каталога отличается. Точный путь к папке можно скопировать в проводнике:
4. Дождитесь завершения установки. Признак успешного выполнения – сообщение «Установка дистрибутива успешно завершена».
5. Нажмите клавишу «Enter» для закрытия данного окна.
Установка под Linux (на примере Astra Linux)
Процесс установки в ОС семейства Linux аналогичен
1. Скачайте скрипты установки по адресу.
2. Распакуйте их в любой каталог (например “/tmp”),
3. Откройте терминал (сочетание клавиш и перейдите в каталог распакованных скриптов при помощи команды:
cd /tmp/’наименование каталога со скриптами’
4. Запустите скрипт:
python3 install.py
5. Дождитесь сообщения об успешном завершении установки и нажмите Enter.
Настройка виртуальных COM-портов
В отличие от Windows, где виртуальные COM-порты доступны пользователю сразу, в Linux необходимо вручную настроить права доступа. Чтобы обеспечить обмен данными с ПАК «Рудирон»:
1. Добавьте пользователя в группу dialout. В Astra Linux выполните команду:
bash
sudo usermod -a -G dialout имя_пользователя
(имя пользователя указывается без кавычек)
Временно разрешите чтение и запись для конкретного порта:
bash
sudo chmod a+rw /dev/ttyUSB0
На этом установка в Astra Linux завершена.
Расширение для Visual Studio Code «Rudiron Tasks»
Для удобной загрузки программ в контроллер напрямую из среды разработки мы создали отдельный модуль «Rudiron Tasks». Это расширение не входит в стандартную поставку VS Code и устанавливается вместе с дистрибутивом ПО для ПАК «Рудирон». После установки значок модуля появляется на левой боковой панели VS Code.
Установка под Windows
1. Запустите скрипт «install_vscode_extentions».
Если команда в меню отсутствует, используйте для запуска скрипта CMD, как описано выше:
python install_vscode_extentions.py
2. Дождитесь сообщения «Установка расширений VS Code успешно завершена».
Нажимаем «Enter» для закрытия данного окна.
Установка под Linux
Аналогично Windows, расширение можно установить через выполнение скрипта «install_vscode_extentions».
Клавишей «Enter» закрываем данное окно.
Прошивка Рудирон из VS Code
Перед началом работы:
1. Установите перемычки на плате «Рудирон» в соответствии с инструкцией (обычно выделены красным)
2. Подключите контроллер к компьютеру через USB-кабель.
Интерфейс управления компиляцией и загрузкой появляется при нажатии на иконку модуля, «Rudiron Tasks». Важно, чтобы плата была подключена до открытия вкладки модуля. Если это не так, переключитесь на другую вкладку и вернитесь обратно.
Основные элементы окна
1. Выбор виртуального COM-порта.
Укажите порт, к которому подключен «Рудирон». Если плата была подключена до открытия модуля, порт определится автоматически. Если нет – перейдите в любой другой раздел интерфейса VS Code (например, «Проводник» / Explorer), затем подключите контроллер и вернитесь в модуль «Rudiron Tasks».
2. Скорость загрузки (baud Rate).
По умолчанию установлена скорость 9600 бод, которой достаточно для загрузки кода. Также доступна скорость 115200 бод. На старых компьютерах при выборе высокой скорости могут возникать ошибки – в таком случае используйте значение по умолчанию (9600).
3. Дополнительные опции.
- «Скомпилировать перед записью»
- «Очистить память перед записью»
- «Запустить после записи»
4. Кнопки управления и режим ожидания загрузки.
Для перевода контроллера в режим ожидания загрузки кратковременно нажмите кнопку RESET на плате или переподключите питание. Доступны следующие команды:
- «Записать» — загрузка программы в контроллер. При активных настройках из пункта 3 программа будет скомпилирована, память очищена, после чего код запишется и автоматически запустится.
- «Запустить» — выполнение уже загруженной в память программы.
- «Очистить» — полное удаление программы из памяти контроллера.
Монитор последовательного порта
Для визуализации данных, передаваемых контроллером «Рудирон», разработан собственный монитор последовательного порта. Это решение является частью стратегии по постепенному отходу от Arduino IDE в пользу VS Code и отечественных сред разработки.
Монитор позволяет не только принимать и отображать данные (в текстовом виде или в форме графиков), но и отправлять команды на контроллер.
Программное обеспечение монитора состоит из исполняемого файла rudiron_monitor (с расширением .exe для Windows или .so для Linux) и вспомогательных файлов в каталоге \data.
Основное окно программы
После запуска монитора последовательного порта открывается его основное окно.
Основные элементы интерфейса
В интерфейсе монитора последовательного порта можно выделить пять основных зон:
- Панель выбора режима работы. Кнопки для переключения между текстовым и графическим отображением данных.
- Панель управления приемом данных. Элементы для настройки и контроля процесса получения информации из последовательного порта (например, запуск/остановка чтения, настройки порта).
- Основная рабочая область. Центральная часть окна, где в реальном времени отображаются полученные данные – в виде текстового лога или графиков.
- Панель отправки команд. Блок с полем ввода и кнопкой для отправки текстовых команд и данных в микроконтроллер ПАК «Рудирон».
- Главное меню программы. Стандартное меню приложения с доступом к файловым операциям, настройкам и справке.
Сразу после запуска монитора соединение с ПАК «Рудирон» еще не установлено, данные не поступают, поэтому рабочая область пуста. При этом кнопки выбора режима работы остаются активными.
Управление приемом данных через серийный порт:
Управление отправкой сообщений в ПАК «Рудирон»:
Включение обмена данными с ПАК «Рудирон»
Для начала работы подключите контроллер к компьютеру с помощью USB-кабеля.
- Выбор порта. Нажмите кнопку выпадающего списка «Порт». Инструмент просканирует доступные в системе последовательные порты и отобразит их в списке. В Windows порты имеют обозначения вида COM1, COM2 и т.д., в Linux – ttyUSB0, ttyACM0 и т.д. Выберите порт, к которому подключен «Рудирон».
- Настройка скорости (Baud Rate). Установите скорость обмена. Она должна совпадать со значением, заданным в функции Serial.begin() в вашей программе для контроллера. Наиболее часто используется скорость 115200 бит/с.
- Установка соединения. Завершив настройку, нажмите переключатель «Прием» (или аналогичный). Если он сменил цвет на зеленый – соединение по последовательному порту установлено, и монитор начал получать данные. При этом автоматически активируется режим текстового отображения.
Если соединение установить не удалось, программа выведет соответствующее сообщение об ошибке. Проверьте:
- правильность выбора порта и скорости;
- не занят ли порт другим приложением (например, другой IDE или монитором порта).
Особенность для ОС Linux: Для доступа к последовательному порту могут потребоваться дополнительные права. Решить это можно одним из двух способов:
Предоставить права всем пользователям. Выполните в терминале команду от имени суперпользователя:
bash
sudo chmod 666 /dev/ttyUSB0
(замените /dev/ttyUSB0 на актуальный порт)
Добавить пользователя в группу dialout. Используйте средства администрирования вашего дистрибутива (например, команду sudo usermod -a -G dialout $USER).
Отображение данных
Монитор порта поддерживает два основных режима визуализации данных, полученных от «Рудирона»: текстовый и графический.
Режим текстового отображения
Когда контроллер передает данные, основное окно монитора в текстовом режиме выглядит следующим образом:
В блоке кнопок управления режимом работы (зона 1) появляются дополнительные элементы управления, а в рабочей зоне (зона 2) отображаются данные от ПАК «Рудирон», полученные через последовательный порт, а также дополнительный переключатель «Добавить метки времени».
Журнал с отметками времени выглядит следующим образом:
Работа с текстовым журналом
Чтобы изучить данные в середине журнала без сохранения файла, отключите автопрокрутку, сняв флажок «Автоскроллинг», а затем используйте ползунок или колесо мыши для ручной навигации.
Режим графического отображения
Монитор порта способен строить графики на основе получаемых данных. Для корректной обработки передаваемая информация должна соответствовать определенному формату:
<имя1>:<знач1>;<имя2>:<знач2>;….;<имяN>:<значN>;
Описание формата:
- <имя> – название графика (ряда данных). Может быть любой текстовой строкой (например, line_1, y(x), PIN-A0).
- <знач> – числовое значение по оси Y для данного графика. Должно быть представлено в виде десятичной дроби с точкой в качестве разделителя (например, 1.00, -3.14).
Особенности работы:
- Монитор автоматически создает отдельный график для каждого уникального имени, встречающегося в данных. Таким образом, количество отображаемых графиков равно количеству уникальных имен в потоке.
- На скриншоте выше показан пример строки с тремя парами «имя:значение» – line_1, line_2, line_3. Для такой строки будут построены три независимых графика.
- Количество рядов данных может меняться динамически. Если в поступающем потоке появится новое имя, монитор создаст для него новый график и начнет отображать соответствующие значения.
Синтаксис и разделители
Данные для графиков структурируются с помощью специальных символов-сепараторов:
Эти разделители используются по умолчанию и могут быть изменены в настройках программы.
Основное окно монитора порта в режиме отображения графиков выглядит следующим образом:
В блоке переключения режимов появляются дополнительные элементы управления (зона 1), а в рабочей области отображаются графики и их легенды (зона 3).
В списке «Ряды данных» перечислены все графики, которые монитор порта смог выделить из полученных с ПАК «Рудирон» данных. На скриншоте видно, что в передаче были дефекты: присутствуют ряды с именами ine2 и liline1, которых не должно быть в корректном потоке. Как правило, такие артефакты состоят из одной точки и возникают при подключении или отключении порта в момент передачи данных. Удалить ошибочный ряд можно через контекстное меню (правая кнопка мыши → пункт «Удалить»).
Каждый ряд данных можно временно скрыть с графика, сняв флажок напротив его имени в списке. Также управлять видимостью уже отображаемых графиков можно напрямую через легенду, нажимая соответствующие кнопки-индикаторы.
Назначение дополнительных элементов управления:
Навигация и масштабирование графика
Перемещение по графику и детальный просмотр доступны только при остановленном приеме данных с последовательного порта.
Со статичным графиком можно работать следующим образом:
Нажатие на кнопку «Показать всё» или «Бегущий график» вернет масштаб к соответствующему виду.
Использование дополнительного графика
Если необходимо изучить детали основного графика, не изменяя его масштаб, можно использовать дополнительную область построения. Для этого установите флажок «Детальный график». Ниже основной появится дополнительная области построения, в которой будет отображен выделенный с помощью правой кнопки мыши участок на основной области.
Передача информации в ПАК «Рудирон»
Передача команд возможна при соблюдении двух условий:
- Установлено стабильное соединение с контроллером по последовательному порту.
- Программа, загруженная в микроконтроллер «Рудирона», содержит код для приема и обработки данных через последовательный порт (например, с помощью функций Serial.read() или Serial.parse()).
Если эти условия не выполнены, отправленная информация либо не будет передана, либо не будет обработана контроллером.
Процедура отправки:
1. Введите команду или данные в текстовое поле ввода.
2. Нажмите кнопку «Отправить» или клавишу Enter (если активирована опция «Включить отправку по Enter»).
Пример: Можно отправить команду для увеличения амплитуды графика в 2.2 раза:
Окно настроек монитора порта
В настройках программы можно указать нужные символы-сепараторы:
Под цифрой 1 обозначен сепаратор строк, под цифрой 2 – сепаратор 1-го уровня, под цифрой 3 – сепаратор 2-го уровня.
После нажатия кнопки «Применить» настройки сохраняются в файле settings.ini и немедленно вступают в силу в текущем сеансе работы программы.
Файл settings.ini также можно отредактировать вручную с помощью любого текстового редактора. В этом случае для применения изменений потребуется перезапуск программы.
Генератор скетчей и встроенные шаблоны
Генератор предназначен для автоматического создания текста программ для ПАК «Рудирон» на основе заданных шаблонов.
Порядок работы:
- Выберите вкладку с нужным шаблоном.
- Задайте исходные параметры.
- Нажмите кнопку «Создать скетч».
Сгенерированный код можно:
- редактировать прямо в окне генератора;
- скопировать в буфер обмена для использования в другой среде разработки (Arduino IDE, VS Code);
- перегенерировать с новыми параметрами, не закрывая окно.
В комплект входят два готовых шаблона:
- «Набор графиков» – создает основу программы для передачи данных, пригодных для построения графиков в мониторе порта.
- «Чтение из АЦП» – формирует код для работы с аналого-цифровым преобразователем.
Шаблон «Набор графиков»
Шаблон генерирует каркас программы, которая отправляет в последовательный порт структурированные данные, готовые для визуализации в виде графиков в мониторе порта.
В настройках шаблона нужно указать количество графиков и префикс для их имени. Далее имена будут формироваться по правилу «префикс + номер графика».
Для примера создадим скетч с параметрами «Количество рядов данных» равно 2 и «Префикс» = line_.
В зоне 1 интерфейса появились кнопки «Скопировать в Clipboard» и «Сохранить в файл», а в зоне 2 отображается сгенерированный текст скетча.
Чтобы превратить шаблон в готовую программу, необходимо реализовать функции вычисления значений для каждого графика ( func1(), func2(), …). Эти функции должны возвращать числовое значение (целое или с плавающей точкой). В качестве источника данных может выступать:
- чтение с порта ввода–вывода;
- результат математического выражения;
- значение от датчика;
- генератор случайных чисел и т.п.
Шаблон «Чтение из АЦП»
Этот шаблон создает основу программы, в которой микроконтроллер ПАК «Рудирон» периодически опрашивает указанный аналого-цифровой преобразователь (АЦП) и отправляет полученные значения в последовательный порт.
В параметрах шаблона укажите:
- Порт АЦП (доступные варианты: A0–A5);
- Период опроса в миллисекундах.
Как уже упоминалось, вы можете создавать и использовать собственные шаблоны скетчей.
Представленный набор инструментов — от установочных скриптов и библиотек до многофункционального монитора порта и генератора шаблонов — формирует готовую среду разработки для ПАК «Рудирон». Этот комплекс решает ключевую задачу: позволяет быстро перейти от изучения основ программирования микроконтроллеров к созданию полноценных проектов — с отладкой, визуализацией данных и загрузкой кода прямо из среды VS Code.
Мы продолжаем развивать платформу, стремясь сделать работу с отечественным оборудованием максимально эффективной и удобной для образовательных и инженерных задач.
Подробнее о нашем программно-аппаратном комплексе Рудирон
Остались вопросы?
Напишите нам aqrobo@aq.ru
Ищем интересные проекты!
Программируете с «Рудироном»? Будем рады рассказать про ваши проекты — присылайте их нам marketing@aq.ru