УДК 004.89
ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ В СРЕДЕ РАЗРАБОТКИ LABVIEW
Инна Евгеньевна Рудова
Сибирский государственный университет геосистем и технологий, 630108, Россия, г. Новосибирск, ул. Плахотного, 10, обучающийся, тел. (953)781-96-27, e-mail: [email protected]
Руслан Владимирович Гришин
Сибирский государственный университет геосистем и технологий, 630108, Россия, г. Новосибирск, ул. Плахотного, 10, обучающийся, тел. (913)956-52-09, e-mail: [email protected]
Анна Александровна Селютина
Сибирский государственный университет геосистем и технологий, 630108, Россия, г. Новосибирск, ул. Плахотного, 10, обучающийся, тел. (913)206-08-10, e-mail: [email protected]
В статье описана графическая среда разработки Lab VIEW. Рассмотрен интерфейс и функционал данной среды. Перечислены возможности при подключении дополнительных библиотек. Приведен пример работы на основе программирования платы Arduino UNO.
Ключевые слова: графическая среда разработки, графический язык программирования «G», Arduino, микроконтроллеры.
PROGRAMMING OF MICROCONTROLLERS IN LABVIEW
Inna E. Rudova
Siberian State University of Geosystems and Technologies, 10, Plakhotnogo St., Novosibirsk, 630108, Russia, Student, phone: (953)781-96-27, e-mail: [email protected]
Ruslan V. Grishin
Siberian State University of Geosystems and Technologies, 10, Plakhotnogo St., Novosibirsk, 630108, Russia, Student, phone: (913)956-52-09, e-mail: [email protected]
Anna A. Selytina
Siberian State University of Geosystems and Technologies, 10, Plakhotnogo St., Novosibirsk, 630108, Russia, Student, phone: (913)206-08-10, e-mail: [email protected]
The article describes graphic design environment LabVIEW. The interface and functional of the given environment are considered. Possibilities when connecting additional libraries are listed. An example of work on the basis of programming the Arduino UNO board is shown.
Key words: graphic design environment, graphical programming language "G", Arduino, microcontrollers.
Современные средства разработки программного обеспечения представляют ряд всевозможных инструментов, как для опытных программистов, так и для начинающих пользователей. Для многих начинающих программистов трудно разобраться и понять трудоемкий код. Данную проблему можно решить
с помощью использования среды разработки, основанной на графическом языке. Примером таковой является среда разработки Lab VIEW.
LabVIEW - это кроссплатформенная графическая среда разработки приложений и универсальный язык программирования. И хотя этот продукт порой тесно связан с аппаратным обеспечением National Instruments, он тем не менее не связан с конкретной операционной системой. Существуют версии для Windows, Linux, MacOS. Исходные тексты переносимы, а программы будут выглядеть одинаково во всех системах. Код, сгенерированный LabVIEW, также может быть исполнен на Windows Mobile. Этот язык может с успехом использоваться для создания больших систем, обработки текстов, изображений и работы с базами данных.
LabVIEW - весьма высокоуровневый язык. Однако ничто не мешает включать «низкоуровневые» модули в LabVIEW-программы. Даже если требуется использовать ассемблерные вставки - это тоже возможно, надо лишь сгенерировать DLL и вставить вызовы в код. С другой стороны, высокоуровневый язык позволяет производить весьма нетривиальные операции с данными. Ради справедливости надо отметить, что некоторые операции низкоуровневых языков (например, работа с указателями), не так просто реализовать в LabVIEW ввиду его «высокоуровневости». Разумеется, язык LabVIEW включает основные конструкции управления, имеющие аналоги и в «традиционных» языках:
• переменные (локальные или глобальные);
• for - циклы с проверкой завершения и без;
• while - циклы;
• группировка операций.
В LabVIEW разрабатываемые программные модули называются «Virtual Instruments» (Виртуальные Инструменты) или по-простому VI. Они сохраняются в файлах с расширением *.vi. VIs - это кирпичики, из которых состоит LabVIEW - программа. Любая LabVIEW программа содержит как минимум один VI. В терминах языка Си можно достаточно смело провести аналогию с функцией с той лишь разницей, что в LabVIEW одна функция содержится в одном файле (можно также создавать библиотеки инструментов). Само собой разумеется, один VI может быть вызван из другого VI. В принципе каждый VI состоит из двух частей - Блок-Диаграмма (Block Diagram) и Передняя Панель (Front Panel). Блок-диаграмма - это программный код (точнее визуальное графическое представление кода), а Передняя панель - это интерфейс. Общий вид интерфейса, состоящего из двух частей представлен на рис. 1.
Рис 1. Интерфейс программы
LabVIEW поддерживает огромный спектр оборудования различных производителей и имеет в своем составе (либо позволяет добавлять к базовому пакету) многочисленные библиотеки компонентов:
• для подключения внешнего оборудования по наиболее распространенным интерфейсам и протоколам (RS-232, GPIB-488, TCP/IP и пр.);
• для удаленного управления ходом эксперимента;
• для управления роботами и системами машинного зрения;
• для генерации и цифровой обработки сигналов;
• для применения разнообразных математических методов обработки данных;
• для визуализации данных и результатов их обработки (включая 3D-модели);
• для моделирования сложных систем;
• для хранения информации в базах данных и генерации отчетов;
• для взаимодействия с другими приложениями в рамках концепции COM/DCOM/OLE.
Для упрощения процесса программирования микроконтроллеров мы внедрили графическую среду разработки LabView.
Arduino - это торговая марка аппаратно-программных средств для построения простых систем автоматики и робототехники. Аппаратная часть представляет собой набор смонтированных печатных плат. Полностью открытая архитектура системы позволяет свободно копировать или дополнять линейку продукции Arduino.
Для осуществления эксперимента нам потребовалось: плата Arduino UNO, библиотека для взаимодействия платы с програмными средствами LabView, программа LabView для программирования данного микроконтроллера.
Осуществляя программирование микроконтроллера через графическую среду разработки LabView перед нами стояла задача научить плату взаимодействовать с данной средой и правильно интерпретировать графический язык. В этом непростом деле поможет установка библиотеки Arduino для LabView и залив прошивки на плату, позволившая в последствии переводить графический язык в понятный для платы код. Когда все действия выполнены перейдем непосредственно к среде разработке где обнаружим что добавились дополнительные блоки для взаимодействия с платой. Теперь можно приступать к написанию кода. На рис. 2 представлен пример программы, которая зажигает светодиод на одну секунду после чего гасит свет на одну секунду и так продолжает повторяться бесконечно. После того как программный код завершен мы можем запустить его в среде разработки и посмотреть как она работает, все ли выполнено правильно и какие ошибки могли возникнуть.
Г* 1Н «п ■ — ■ Л - гт* > #1 , Ц^
Рис. 2. Программа для платы Агёшпо
Интуитивно понятная графическая среда разработки ЬаЬУ1е,№ является идеальной платформой для разработчиков, обладающих недостаточным опытом программирования, которые разрабатывают приложения для микроконтроллеров. Опытным разработчикам ЬаЬУ1е,№ предоставляет средства для более быстрого и рационального подхода к программированию.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Блюм П. ЬаЬУШ'^ стиль программирования. Пер. с англ. Под ред. Михеева П.- М.: ДМК Пресс, 2008- 400 с: ил.
2. Жуков К. Модельное проектирование встраиваемых систем в ЬаЬУШ'^ - М.: ДМК-Пресс, 2011. -688 с: ил.
3. Тревис Дж. LabVIEW для всех / Джеффри Тревис: Пер. с англ. Клушин Н.А.-М.: ДМК Пресс; ПриборКомплект, 2005. - 544с: ил.
4. Суранов А. LAbVIEW 8.20: Справочник по функциям. - М.: ДМК Пресс, 2007. - 536.
© И. Е. Рудова, Р. В. Гришин, А. А. Селютина, 2018