English
ДонНТУ   Портал магистров

Разработка графического интерфейса для управления декоративным фонтаном

Содержание

Введение

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

Актуальность данного проекта обусловлена широким применением с различных светомузыкальных устройств с дистанционным управлением в развлекательной, профессиональной и в бытовой сфере.

Целью работы является разработка интерфейса управления на базе Processing для декоративного фонтана с динамической подсветкой.

1. Общие сведения

1.1 Описание фонтана

Фонтаны – одно из главных украшений городского пейзажа. Мы часто видим эти водные сооружения на улицах, в прогулочных зонах, как часть ландшафтного дизайна загородных особняков и вилл. Визуально фонтаны выглядят очень просто – большой резервуар с водой и устройством для распыления. Самое распространенное устройство фонтана основано на процессе круговорота воды. Под напором вода из источника распыляется наружу, далее потоки воды собираются в чаше. Из чаши вода поступает в резервуар, проходит очистку, чтобы потом вновь вернуться в источник. Чтобы создать фонтан, необходимо обустроить замкнутую систему круговорота воды в обрамлении декоративных элементов. Менее распространенный вариант – это фонтан открытого типа, такое устройство работает на проточной воде. Сконструировать такой фонтан намного сложнее, к тому же, такие сооружения имеют значительный недостаток – слишком большой расход воды.

Модель колеса Илона

Рисунок 1.1 – Модель колеса Илона

(анимация: 12 кадров, 5 циклов, 124 килобайта)

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

Для работы фонтана очень важное значение имеет насос, который отвечает за напор воды. Обойтись без насоса при постройке фонтана почти невозможно, так как придать напор струе воды иными способами будет очень сложно. Как правило, насос ставят на дно резервуара.

Воздушные узоры, создаваемые каплями воды, появляются благодаря работе форсунок. Расположение форсунок зависит от декоративного проекта фонтана и рисунка, который вы ходите получить. Форсунки могут располагаться как в резервуаре, так и в других частях фонтана. Например, в композициях с животными можно часто видеть, как вода извергается из их пасти – значит, форсунки были установлены именно там. Форсунки можно передвигать или заменять, если вы захотите получить другой водный рисунок.

1.2 Описание Processing

Processing — это C-подобный («Си-подобный») язык программирования, основанный на Java и созданный в 2001 году. Сам язык Processing — это не подвешенный в вакууме абстрактный язык программирования, а целая экосистема со своей идеологией, средой программирования и прочими подобными атрибутами. Программы на языке Processing представляют собой небольшие текстовые файлы и называются «скетчами» [3].

Изначально Processing был создан как простая система программирования для непрофессиональных пользователей и предназначен для целей обучения программированию и решения повседневных IT задач людьми различных профессий. Особый акцент создателями Processing был сделан на визуальных и мультимедийных возможностях — на Processing очень просто и удобно визуализировать различные процессы и создавать красочные анимированные демонстрации [3].

Поскольку система Processing основана на Java, то она является кроссплатформенной и работает во всех популярных операционных системах: Windows, Linux и Mac OS X..

Processing содержит множество функций, которые упрощают работу с данными, выводом на экран, управлением периферией, анимацией, 3D объектами, вводом, файлами, 3D сценами и т.д. и т.п..

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

2. Описание изделия и комплектующих

Объект управление представляет собой готовое устройство декоративного фонтана. Управление происходит при помощи микроконтроллера ArduinoNano [1]. Процесс управления фонтаном происходит по определенному протоколу, заложенному в прошивку Arduino Nano и представляет из себя два строковых числа передаваемых с ПК по шине UART. Первое число является ключом, а второе – значением.

Демонстрация работы алгоритмов при возникновении препятствия сзади

Рисунок 2.1 – Условное расположение элементов

В состав фонтана входят 5 микронасосов представляющих собой двигатель постоянного тока, драйвер на базе 5 транзисторов IRLZ44N с необходимой обвязкой, кнопки для переключения режимов. Динамическая подсветка реализована с использованием адресной светодиодной ленты WS2812 и микрофона MAX9814. На рисунке 2.2 представлен фрагмент принципиальной электрической схемы с одним насосом и драйвером для него, остальные насосы подключены аналогично.

Демонстрация работы алгоритмов при возникновении препятствия сзади

Рисунок 2.2 – Фрагмент принципиальной электрической схемы объекта управления

3. Процесс создания графического интерфейса

Среда разработки Processing (PDE или Processing Development Environment) упрощает разработку Processing-программ. Программы пишутся в текстовом редакторе и запускаются при помощи нажатия на клавишу Run. Компьютерная программа, разработанная в Processing, называется «скетчем». Скетчи хранятся в «скетчбуке» (это папка на вашем ПК).

Скетчи могут рисовать 2D и 3D-мерную графику. Визуализатор, используемый по умолчанию, предназначен для рисования 2D-графики. ВизуализаторP3Dпозволяет рисовать 3D-графику, куда входит управление камерой, освещением и материалами. Визуализатор P2D быстрее, но рисует 2D-графику с меньшей точностью. Оба визуализатора P2D и P3D будут работать быстрее, если ваш компьютер оснащен видеокартой, совместимой сOpenGL.

Возможности Processing мощно расширить при помощи библиотек и инструментов. Библиотеки позволяют скетчам делать вещи, на которые не способен основной код Processing. Членами сообщества Processing разработаны сотни библиотек, которые можно добавить в свои скетчи и дополнить их новым функционалом – проигрыванием звуков, а также обработкой компьютерного зрения и продвинутой 3D-геометрии. Инструменты позволяют упростить разработку скетчей, оснащая PDE дополнительными элементами интерфейса (вроде меню для выбора цветов).

Интерфейс разработан в Processing при помощи библиотек ControlP5 и G4P для дистанционного управление декоративным фонтаном. Интерфейс создается в зависимости от библиотек, которые используются. В Processing можно полностью настраивать окно рабочей программы, каждую кнопку и их расположение внутри окна. Соответственно настраивать так любой объект внутри окна по своему желанию. При добавлении сторонних файлов в интерфейс, например, картинки или текста, выводимого на экран, нужно чтобы все эти файлы находились в одной папке с нужным скетчем, в папке data. Сама рабочая часть программы, которая используется для связи с платой Arduino меньше, чем полное описание всех элементов интерфейса.

С помощью библиотеки ControlP5 были сделаны элементы подключение к плате ArduinoNano: выбор нужного COM-портана, подключение и отключение [5]. С помощью библиотеки G4P были реализованы элементы управление, такие как кнопки, слайдеры и ручки регулировки, а также кнопка в виде картинки [4].Настройка таких элементов происходит в самой программе путем команд в блоке описания внешнего вида интерфейса. Такие маленькие программы служат для визуализации внешней настройки интерфейса из которых уже и необходимо брать нужные элементы.Так как некоторые элементы управления из библиотеки ControlP5 внешне показывают себя хуже аналогов из библиотеки G4P, то основной упор был сделан на данную библиотеку. Также большое преимущество библиотеки G4P это широкий функционал настройки её элементов. Поэтому в данном интерфейсе реализована одна цветовая гамма, комфортная для глаз.

Был реализован обмен данных через связь программы написанной на Arduino IDE и запрограммированной в микроконтроллер с программой, написанной на Processing и интерфейсом, созданным в ней. Управление осуществляется с помощью ключей, которые получаем в формате key, data;.

Демонстрация работы алгоритмов при возникновении препятствия сзади

Рисунок 3.1 – Протокол управления

Система управления построена таким образом, что предоставлена возможность выбора режима работы подсветки. Предусмотрена калибровка устройства по нижнему порогу шума, также имеется автоматическая калибровка при включении.В представленном интерфейсе на рисунке 3.2, был создан выпадающий список, для того, чтобы была возможность подключится к выбранному COM-порту. Кнопки open и close, которые открывают и закрывают передачу данных по каналу связи, 5 кнопок, которые включают различные режимы работы фонтана. Далее слайдеры, которые служат для регулирования яркости подсветки и чувствительности микрофона. Также переключатель для управления непосредственно насосами, для изменения их мощности. Была предусмотрена кнопка для включения и выключения фонтана, она изображена в виде лампы накаливания, это сделано для того, чтобы панель управления была более интуитивно понятной для пользователя.

Демонстрация работы алгоритмов при возникновении препятствия сзади

Рисунок 3.2 – Интерфейс в Processing

Выводы

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

Список источников

  1. ARDUINO.RU [Электронный ресурс]. – Режим доступа: http://arduino.ru/
  2. ELECTROINFO.NET [Электронный ресурс]. – Режим доступа: https://electroinfo.net/
  3. PROCESSING.ORG [Электронный ресурс]. – Режим доступа: https://processing.org/
  4. LAGERS.ORG [Электронный ресурс]. – Режим доступа: http://www.lagers.org.uk/g4p
  5. WIKIHANDBK.COM [Электронный ресурс]. – Режим доступа: https://wikihandbk.com/
  6. DISCOURSE.PROCESSING.ORG [Электронный ресурс]. – Режим доступа: https://discourse.processing.org/.