РАЗРАБОТКА ВИЗУАЛЬНОЙ СРЕДЫ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРА1
А.В. Косов, А.В. Матохина
(г. Волгоград, Волгоградский Государственный Технический Университет)
e-mail:
kosivmashadez@gmail.comDEVELOPMENT OF A VISUAL MICROCONTROLLER PROGRAMMING ENVIRONMENT
A.V. Kosov, A.V. Matohina
(Volgograd, Volgograd State Technical University)
e-mail:
kosivmashadez1997@gmail.comAbstract. This article is devoted to the development of the visual microcontroller software environment. Python, which allows you to work with a microcontroller and program it under any conditions.
Работа выполнена при финансовой поддержке РФФИ (проект № 16-07-00611А).
This site allows children to learn how to draw a code and build on the software from it, thanks to which they will run this code on the disassemble and check the performance of their built code on the microcontroller.
The site will be similar to another program, like screatch, but only our site will still show and check the program code and then send it to the microcontroller.
Введение. В век информационных технологий все богатство науки заключено в цифровом формате, как правило, в свободном доступе сети Интернет. Однако большое количество разнообразных источников информации не гарантирует быстрый поиск и адекватность
полученных сведений. Бывает так, что нелегко найти простую и интуитивно понятную не
подготовленному пользователю среду программирования под микроконтроллеры.
В статье предлагается концепция сайт визуальной среды программирования микроконтроллеров, которая позволит интерпретировать код программы на язык Python и Загрузить программу в микроконтроллер.
Идея создания визуальной среды. Комплекс программных средств, используемый программистами для разработки программного обеспечения (ПО), включают в себя:
текстовый редактор,
компилятор и/или интерпретатор,
средства автоматизации сборки,
отладчик.
Иногда содержит также средства для интеграции с системами управления версиями и
разнообразные инструменты для упрощения конструирования графического интерфейса
пользователя. Многие современные среды разработки также включают браузер классов, инспектор объектов и диаграмму иерархии классов — для использования при объектно-ориентированной разработке ПО. Интегрированная среда разработки (ИСР) обычно предназначены для нескольких языков программирования. Использование ИСР для разработки программного обеспечения является прямой противоположностью способу, в котором используются несвязанные инструменты, такие как текстовый редактор, компилятор, и т. п.
Интегрированные среды разработки созданы для того, чтобы максимизировать производительность программиста благодаря тесно связанным компонентам с простыми пользовательскими интерфейсами. Это позволяет разработчику сделать меньше действий для переключения различных режимов, в отличие от дискретных программ разработки.
Однако так как ИСР является сложным программным комплексом, то среда разработки сможет качественно ускорить процесс разработки ПО лишь после специального обучения. Для уменьшения барьера вхождения многие достаточно интерактивны, а для облегчения перехода с одной на другую интерфейс у одного производителя максимально близок, вплоть до использования одной ИСР.
ИСР обычно представляет собой единственную программу, в которой проводится вся
разработка. Она, как правило, содержит много функций для создания, изменения, компилирования, развертывания и отладки программного обеспечения.
Цель интегрированной среды заключается в том, чтобы объединить различные утилиты в одном модуле, который позволит абстрагироваться от выполнения вспомогательных задач, тем самым позволяя программисту сосредоточиться на решении собственно алгоритмической задачи и избежать потерь времени при выполнении типичных технических действий (например, вызове компилятора).
Таким образом, повышается производительность труда разработчика. Также считается, что тесная интеграция задач разработки может далее повысить производительность за счёт возможности введения дополнительных функций на промежуточных этапах работы.
Например, ИСР позволяет проанализировать код и тем самым обеспечить мгновенную обратную связь и уведомить о синтаксических ошибках.
Описание концепции разрабатываемого ИСР. Разрабатываемая среда предназначается для учебных целей. Цель заключается в разработке визуальной среды программы микроконтроллера, на котором дети будут изучать язык программирования Python и знакомство с микроконтроллерами.
Визуальная среда программирования позволит сделать процесс программирования простым и интуитивно понятным для детей. Среда позволит выполнять следующие функции
Проведение полного разбора программного кода написанным пользователем.
Проверка на синтаксическую верность программного кода.
Загрузка программного кода в микроконтроллер.
Тестирование программного кода в микроконтроллере.
выполнять функцию интерпретатора разработанного графического языка на
язык Python.
графический язык программирования будет содержать основные функции
для осуществления программирования одноплатного компьютера Rasbery Pi и не менее 40 датчиков и контроллеров.
Графический язык программирования должен быть интуитивно понятен (рис. 1): вложенные циклы структурированы; цвета операций, циклов, функций, генераторов должны отличаться и настраиваться; интерфейс должен содержать окно просмотра итогового, интевым языком, ДРАКОН образует гибридный язык: ДРАКОН-JavaScript, ДРАКОН-Python или ДРАКОН-C++.
Программирование на гибридном языке происходит следующим образом:
1. Рисуем ДРАКОН-схему.
2. Внутрь икон помещаем небольшие кусочки кода на соответствующем языке программирования.
3. Программа-транслятор преобразует ДРАКОН-схему в текстовый файл с исходным
кодом.
4. Этот текстовый файл включается в проект обычным образом.
Генерацию кода из диаграмм на сегодняшний день поддерживают несколько редакторов.
Примеры в данной статье сделаны в DRAKON Editor.
В диаграмме ДРАКОН берёт на себя управление потоком выполнения. Поэтому кусочки исходного кода в иконах не должны содержать ключевых слов типа if, else, switch, case, for, while и т. п.
Внутри икон должен быть только простой однозначный код: арифметические выражения, присваивания значений, вызовы функций, сравнения. А вот ветвление и циклы реализуются конструкциями языка ДРАКОН.
Также не рекомендуется применять логические выражения: and, or, not. Их тоже изображают средствами ДРАКОНа.
Генерация кода происходит следующим образом:
Из каждой диаграммы создаётся функция.
Название диаграммы становится названием функции.
Параметры функции берутся из иконы «Формальные параметры», что расположена
справа от названия диаграммы.
Тело функции генерируется, исходя из структуры диаграммы и содержимого икон.
На рис. 2 представлен пример небольшой диаграммы на гибридном языке ДРАКОН-JavaScript и сгенерированный код на JavaScript:
Прямоугольник с текстом console.log(cat, dog) на рис. 1 — это икона «Действие».
Сколько кода можно поместить в одну икону «Действие»? Следует стремиться к тому, чтобы в одной иконе содержалась одна мысль. Иногда это одна строка кода, иногда несколько.
Сгенерированный код снабжён комментариями, в которых указаны номера икон. Находясь в редакторе, можно быстро перескочить к любой иконе, нажав Ctrl+I.
Рис 2. Диаграмма на ДРАКОН-JavaScript и сгенерированный из неё код.Еще представители визуальных языков программирования Blockly и Scratch — визуальные язык программирования с веб-интерфейсом. Создание программы осуществляется путём соединения блоков.
Рис. 3. Пример визуальной структуры Blocky
Blocky позволяет интерпретировать собранный текст программы на язык JavaScript.
Скретч — визуальная событийно-ориентированная среда программирования для обучения школьников младших и средних классов. Название произошло от слова scratching — техники, используемой хип-хоп-диджеями, которые крутят виниловые пластинки вперед-назад руками для того, чтобы смешивать музыкальные темы.
Скретч создан как продолжение идей языка Лого и конструктора Лего. Скретч разрабатывается небольшой командой программистов для детей в Массачусетском технологическом институте. Текущая версия 3.0 Beta, выпущена в августе 2018 года.
В 2008 году Скретч был портирован для микроконтроллерного модуля Arduino. Проект носит название S4A.
Программы на Скретче состоят из графических блоков, подписи к которым зависят от
выбранного для интерфейса языка. Может быть выбран один из 50 языков интерфейса,
включая русский. Для подключения интерфейса на новом языке используются стандартные gettext-файлы.
Основными компонентами скретч-программы являются объекты-спрайты. Спрайт
состоит из графического представления — набора кадров-костюмов и сценария-скрипта. Для
редактирования костюмов спрайтов в скретч встроен графический редактор. Действие
Скретч-программы происходит на сцене размером 480×360 (условных) пикселей с центром координат в середине сцены.
Для программирования сценариев в Скретче используется drag-and-drop-подход: блоки из палитры блоков перетаскиваются в область скриптов.
По функциональному назначению блоки делятся на 8 групп, принадлежность блока к
той или иной группе обозначается его цветом.
Рис. 4. Пример скретч-кода (выбран русскоязычный интерфейс)
Рис. 5. –Объекты-спрайты
Для удобства пользователей, большая часть из которых работала с языком Scratch
планируется реализовать аналогичные, стандартные решения по визуализации типов блоков.
Заключение.Существует большое количество языков программирование использующих визуальные среды для построения структур. Подобная концепция позволяет в более упрощенной
форме преподнести концепцию структурного, а также объектноориентированного программирования. Особенно остро эта задача стоит при обучении детей младшего и среднего школьного возраста. Обзор показал, что на сегодняшний день разработаны среды для визуального программирования плат Arduino IDE, однако авторам статьи не удалось найти статьи с примерами визуальных сред программирования миникомпьютеров Raspberry PI. Запланированные работы позволят в игровой форме увидеть результат работы программы не только
в виде текста интерпретированного на язык Python, но и увидеть результат выполнения программы в виде результатов обработки данных с датчиков и управления устройствами вывода
информации и приводами, подключенными к плате.
ЛИТЕРАТУРА1. Концепция современной интегрированной среды разработки приложений [электронный ресурс]
https://www.intuit.ru/studies/courses/1 ... 86?page=22.
2. Перечень языков визуального программирования [электронный ресурс]
http://bourabai.kz/einf/vl-list.htm3. Визуальный язык программирования Google Blockly [электронный ресурс]
https://habr.com/post/145067/4. Scratch — язык программирования для детей [электронный ресурс]
https://apptractor.ru/develop/coding/sc ... detey.html5. Arduino: Программирование без программирования [электронный ресурс]
https://www.drive2.ru/b/2729013/6. Современные тенденции визуального программирования/ Осадчая Е.П., Марчук Н.С.//
Университетская наука. 2016. № 2. С. 130-132.