Важной частью современного мира являются электронные устройства. Эти устройства все больше окружают человека во всех сферах его деятельности. Большинство этих электронных устройств – это встраиваемые системы. К таким системам относят специализированные микропроцессорные системы управления, идея разработки которых заключается в том, что такие системы должны работать, будучи встроенными непосредственно в управляемые устройства. Отдельные встраиваемые системы могут активно взаимодействовать друг с другом, образуя распределенные вычислительные системы. Поэтому развитие функциональных возможностей электронных устройств сегодня происходит во многом благодаря их коммуникационным возможностям.
Значительную часть встраиваемых систем составляют так называемые микроконтроллерные системы – системы, в основе которых лежат микроконтроллеры. Микроконтроллер – это, по сути, однокристальный компьютер, способный выполнять простые задачи.
При разработке встраиваемых систем перед разработчиком встает задача организации способа управления своей системой, а также получения данных из нее. Организация пользовательского интерфейса встраиваемой системы является важным компонентом практически любого проекта в данной области. Отметим, что пользовательский интерфейс может быть, как конструктивной частью встроенной системы, в этом случае необходимо устанавливать дополнительную электронику в системы (в т.ч. экраны и средства ввода информации), так и быть независимой системой на основе мобильного устройства или другого устройства пользовательского интерфейса. В последнем случае разработчикам встроенной системы необходимы знания технологий программирования мобильных устройств, и они вынуждены полностью разрабатывать мобильное приложение для их системы с реализацией протокола взаимодействия. Для автоматизации первого способа построения пользовательского интерфейса существуют специальные инструменты — графические библиотеки, операционные системы и инструменты быстрой разработки, адаптированные к встраиваемым электронным компонентам.
Во втором случае, которому посвящена данная статья, разработчик вынужден ориентироваться как в низкоуровневых (микроконтроллер), так и в высокоуровневых (мобильное устройство) языках, а также в большом количестве платформ для разработки (Android, iOS, Windows Phone) каждая из которых имеет свой язык и структуру, что еще более усложняет эту задачу.
Аналогами разработанной авторами статьи системы являются интегрированные среды разработки Visual Studio, Xcode, Android Studio, позволяющие создавать полноценные приложения под Android, iOS, Windows Phone. Недостатком этих систем, с точки зрения рассматриваемой задачи, является то, что для создания даже простого приложения требуется изучать сложные технологии, реализовывать вручную взаимодействие между мобильным устройством и микроконтроллером.
Наиболее полным аналогом разрабатываемой системы является MIT App Inventor – веб-приложение, позволяющее сгенерировать приложение под Android. Недостатком данного аналога является то, что он позволяет создать только приложение с простой логикой и не имеет специализации к функционалу операторских панелей, управления встроенной электроникой.
Предлагаемый инструмент разработки операторских панелей состоит из трех компонентов:
- интегрированная среда разработки на базе IDE Eclipse;
- личный кабинет разработчика операторских панелей;
- мобильное приложение-шаблон для операционной системы Android.
Схематично процесс взаимодействия между данными компонентами показан на рисунке ниже.
Интегрированная среда разработки позволяет спроектировать дизайн мобильного приложения (состав компонентов, их внешний вид и расположение на экране), а также описать обработчики событий на высокоуровневом языке Lua. Компоненты делятся на визуальные и системные. Визуальные компоненты используются для построения дизайна приложения. Системные компоненты используются для организации взаимосвязи между мобильным устройством и микроконтроллерной системой, а также для добавления операторской панели некоторой дополнительной функциональности. Все системные компоненты являются не визуальными и не отображаются на операторской панели. К ним относятся, например, таймер, Bluetooth, WiFi, TCPServer и HTTPServer и другие.
Мобильное приложение, обозначенное на рисунке, является, по сути, шаблоном произвольной операторской панели, внешний вид и поведение которой настраивается создаваемой разработчиком конфигурацией.
Для хранения и доставки до конечных пользователей разработанных панелей используется веб-сервер, на который пользователь-разработчик отправляет конфигурацию (операторскую панель) после того, как у него появится необходимость протестировать ее или выложить в открытый доступ. Для управления загруженными конфигурациями используется личный кабинет разработчика. В среде разработки требуется нажать кнопку отправки и авторизоваться в системе. После этого конфигурация появится в списке конфигураций в личном кабинете и ей будет присвоен уникальный идентификатор. В таблице со списком конфигураций можно также задавать области видимости конфигураций (приватная конфигурация, доступная только разработчику, или публичная конфигурация, доступная всем по идентификатору).
Мобильное приложение на Android позволяет работать в режиме разработчика и в режиме пользователя. В режиме пользователя можно загружать только публичные конфигурации по идентификатору. В режиме разработчика можно загружать публичные конфигурации и собственные приватные конфигурации из отдельного списка. Чужую приватную конфигурацию загрузить нельзя.
Таким образом, был разработан инструмент, который позволяет упростить создание операторских панелей для мобильных устройств, обеспечивающий более эффективное прототипирование и разработку многофункционального пульта управления встраиваемой микроконтроллерной системой. Инструмент предоставляет большой выбор использования каналов связи с микроконтроллерным устройством (Wi-Fi, Bluetooth, HTTP, TCP), а также облачный сервис для хранения и редактирования конфигураций, загрузки спроектированной конфигурации на сервер и ее отправки на мобильное устройство. В дальнейшем предполагается интеграция созданного инструмента и разрабатываемого инструмента генерации реализаций протоколов взаимодействия распределенных встраиваемых систем – что еще сильнее упростит решение рассматриваемой задачи и повысит уровень автоматизации. Другим улучшением, которое планирует внести команда разработчиков MCU Blocks в созданный инструмент является расширение набора готовых компонент – в том числе компонент отображения сложной графики, диаграмм, работы с камерой мобильного устройства и взаимодействия с удаленными встраиваемыми системами по средствам облачных платформ Интернета вещей.
Добавить комментарий