Главная
АИ #29 (264)
Статьи журнала АИ #29 (264)
Особенности разработки систем управления для беспилотных летательных аппаратов

Особенности разработки систем управления для беспилотных летательных аппаратов

Рубрика

Информационные технологии

Ключевые слова

визуальные языки программирования
микроконтроллер
система управления
робототехнические конструкторы
беспилотные летательные аппараты (БПЛА)

Аннотация статьи

В статье рассматривается опыт создания среды разработки управляющих программ для конструктора беспилотного летательного аппарата «Вертолёт». Освещены существующие языки программирования для робототехнических устройств, включая беспилотные авиационные системы.

Статья представляет собой комплексный обзор современных решений в области программного обеспечения образовательной робототехники, а также конкретный пример реализации системы формирования полётного задания для БПЛА.

Текст статьи

Визуальные языки программирования – это инструменты, позволяющие создавать программы с использованием графических элементов вместо традиционного текстового кодирования. Такие языки упрощают процесс программирования, делая его более интуитивно понятным, особенно для начинающих разработчиков или тех, кто не имеет глубоких знаний в традиционном программировании.

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

Примерами визуальных языков программирования являются:

  • Scratch, разработанный MIT для обучения детей основам программирования;
  • Blockly от Google – универсальная библиотека, позволяющая внедрять визуальное программирование в любые приложения и образовательные платформы;
  • Microsoft MakeCode – платформа для начинающих разработчиков и образовательных учреждений;
  • LEGO NXT-G – визуальный язык программирования, предназначенный для программирования робототехнических конструкторов LEGO MINDSTORMS NXT и EV3.

Стоит особо отметить связь между языками Scratch и LEGO NXT-G, которая обусловлена их общей исторической и методологической основой. Оба языка вдохновлены проектом LOGO, разработанным Сеймуром Папертом и его коллегами в 1960-х годах. Идея LOGO заключалась в «обучении через творчество».

Паперт также написал книгу «Mindstorms: Children, Computers, and Powerful Ideas» (1980), оказавшую огромное влияние на развитие образовательных технологий и сотрудничество между исследователями из MIT и компанией LEGO. Именно на основе этих идей была разработана серия робототехнических наборов LEGO Mindstorms.

Первая версия визуального языка программирования от компании LEGO появилась в 1998 году вместе с первым робототехническим набором. В 2006 году язык NXT-G для роботов MINDSTORMS получил интуитивно понятный и простой интерфейс (рис. 1).

В 2007 году команда Lifelong Kindergarten Group из MIT Media Lab во главе с Митчеллом Резником представила Scratch – визуальный язык программирования, предназначенный для обучения детей основам программирования через творчество и эксперименты (рис. 2). Позднее в Scratch была добавлена поддержка программирования роботов.

image.png

Рис. 1. Пример программы на языке Lego NXT-G

image.png

Рис. 2. Пример программы для робота Lego на языке Scratch

При реализации образовательных программ по робототехнике обучение не ограничивается только визуальными языками программирования. Для расширения навыков и компетенций необходимо осваивать современные парадигмы программирования, включая процедурное и объектно-ориентированное программирование. Учитывая эти требования, разработчики робототехнических комплексов и беспилотных летательных аппаратов закладывают поддержку компиляции исполняемых программ из различных сред разработки, тем самым расширяя возрастные категории обучающихся.

В качестве языков программирования, используемых в робототехнических системах, применяются такие языки, как C/C++, Java, Python. Например, робототехнический набор LEGO Spike Prime поддерживает как визуальное программирование в среде Scratch, так и текстовое – на языке MicroPython.

В рамках разработки собственного конструктора для обучения широкой аудитории созданию беспилотного летательного аппарата вертолётного типа были учтены современные направления в разработке управляющих программ для микроконтроллеров, управляющих БПЛА.

При создании собственной системы управления был проведён анализ визуальной среды программирования в виде мобильного приложения для операционной системы Android (рис. 3), предназначенного для управления работой конструктора мини-машины. В ходе исследования были выявлены особенности реализации интерфейса редактора кода, а также возможности применения подобного подхода при разработке собственной системы программирования микроконтроллера БПЛА.

image.png

Рис. 3. Интерфейс исследуемой системы визуального программирования

В процессе углублённого изучения ресурсов редактора было обнаружено веб-приложение, встроенное в программу, которое являлось искомым визуальным редактором. Дальнейший анализ исходного кода позволил установить, что приложение написано на языке JavaScript с использованием библиотеки Blockly. После переработки кода удалось создать более простую систему редактирования полётного задания для беспилотного летательного аппарата (рис. 4). Этот способ программирования будет использоваться школьниками младших классов для программирования БПЛА.

image.png

Рис. 4. Пример простого полетного задания

Для программирования собранного конструктора в среде Arduino (для старшей и более подготовленной аудитории), а также для составления полётного задания с учётом возможностей полётного контроллера, было разработано дополнительное визуальное приложение на языке C#, генерирующее исходный код с последующим редактированием в среде Arduino.

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

На рисунке 5 представлена визуальная форма приложения формирования полётного задания.

image.png

Рис. 5. Формирование полетного задания для среды Arduino

Заключение

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

На основе полученных данных была разработана система формирования полётного задания для БПЛА вертолётного типа, поддерживающая несколько уровней сложности:

  • Визуальное программирование с использованием модифицированной библиотеки Blockly (для школьников младших классов);
  • Текстовое программирование в среде Arduino с предварительной генерацией кода через визуальное приложение на C# (для старших школьников и студентов).

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

Поделиться

101

Матель В. А. Особенности разработки систем управления для беспилотных летательных аппаратов // Актуальные исследования. 2025. №29 (264). Ч.I. С. 25-28. URL: https://apni.ru/article/12670-osobennosti-razrabotki-sistem-upravleniya-dlya-bespilotnyh-letatelnyh-apparatov

Обнаружили грубую ошибку (плагиат, фальсифицированные данные или иные нарушения научно-издательской этики)? Напишите письмо в редакцию журнала: info@apni.ru

Похожие статьи

Другие статьи из раздела «Информационные технологии»

Все статьи выпуска
Актуальные исследования

#31 (266)

Прием материалов

2 августа - 8 августа

Остался последний день

Размещение PDF-версии журнала

13 августа

Размещение электронной версии статьи

сразу после оплаты

Рассылка печатных экземпляров

27 августа