Визуальные языки программирования – это инструменты, позволяющие создавать программы с использованием графических элементов вместо традиционного текстового кодирования. Такие языки упрощают процесс программирования, делая его более интуитивно понятным, особенно для начинающих разработчиков или тех, кто не имеет глубоких знаний в традиционном программировании.
Визуальное программирование предполагает использование блоков, иконок, диаграмм и других графических элементов, представляющих различные аспекты программы: переменные, циклы, условные операторы, функции и т. д. Эти языки находят широкое применение в образовании, так как снижают порог входа в программирование и делают обучение более увлекательным и интерактивным. Также они используются в профессиональной сфере, например, при прототипировании и разработке пользовательских интерфейсов.
Примерами визуальных языков программирования являются:
- 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 была добавлена поддержка программирования роботов.
Рис. 1. Пример программы на языке Lego NXT-G
Рис. 2. Пример программы для робота Lego на языке Scratch
При реализации образовательных программ по робототехнике обучение не ограничивается только визуальными языками программирования. Для расширения навыков и компетенций необходимо осваивать современные парадигмы программирования, включая процедурное и объектно-ориентированное программирование. Учитывая эти требования, разработчики робототехнических комплексов и беспилотных летательных аппаратов закладывают поддержку компиляции исполняемых программ из различных сред разработки, тем самым расширяя возрастные категории обучающихся.
В качестве языков программирования, используемых в робототехнических системах, применяются такие языки, как C/C++, Java, Python. Например, робототехнический набор LEGO Spike Prime поддерживает как визуальное программирование в среде Scratch, так и текстовое – на языке MicroPython.
В рамках разработки собственного конструктора для обучения широкой аудитории созданию беспилотного летательного аппарата вертолётного типа были учтены современные направления в разработке управляющих программ для микроконтроллеров, управляющих БПЛА.
При создании собственной системы управления был проведён анализ визуальной среды программирования в виде мобильного приложения для операционной системы Android (рис. 3), предназначенного для управления работой конструктора мини-машины. В ходе исследования были выявлены особенности реализации интерфейса редактора кода, а также возможности применения подобного подхода при разработке собственной системы программирования микроконтроллера БПЛА.
Рис. 3. Интерфейс исследуемой системы визуального программирования
В процессе углублённого изучения ресурсов редактора было обнаружено веб-приложение, встроенное в программу, которое являлось искомым визуальным редактором. Дальнейший анализ исходного кода позволил установить, что приложение написано на языке JavaScript с использованием библиотеки Blockly. После переработки кода удалось создать более простую систему редактирования полётного задания для беспилотного летательного аппарата (рис. 4). Этот способ программирования будет использоваться школьниками младших классов для программирования БПЛА.
Рис. 4. Пример простого полетного задания
Для программирования собранного конструктора в среде Arduino (для старшей и более подготовленной аудитории), а также для составления полётного задания с учётом возможностей полётного контроллера, было разработано дополнительное визуальное приложение на языке C#, генерирующее исходный код с последующим редактированием в среде Arduino.
При формировании более сложных заданий может потребоваться внесение изменений в код управления. Поэтому можно сначала сформировать базовое задание, а затем, в зависимости от образовательных целей, внести дополнительные коррективы – например, добавить взаимодействие с датчиками или управление моторами непосредственно в среде Arduino, после чего загрузить обновлённую программу в полётный контроллер.
На рисунке 5 представлена визуальная форма приложения формирования полётного задания.
Рис. 5. Формирование полетного задания для среды Arduino
Заключение
В ходе проведённого исследования были проанализированы современные подходы к разработке систем управления для беспилотных летательных аппаратов, ориентированных на образовательное использование. Особое внимание уделено применению визуальных языков программирования, которые позволяют сделать процесс обучения программированию и робототехнике более доступным и наглядным, особенно для начинающих пользователей.
На основе полученных данных была разработана система формирования полётного задания для БПЛА вертолётного типа, поддерживающая несколько уровней сложности:
- Визуальное программирование с использованием модифицированной библиотеки Blockly (для школьников младших классов);
- Текстовое программирование в среде Arduino с предварительной генерацией кода через визуальное приложение на C# (для старших школьников и студентов).
Такой многоуровневый подход обеспечивает преемственность в обучении, способствует развитию логического мышления и технического творчества, а также готовит обучающихся к работе с реальными инженерными задачами.