Статья опубликована в рамках: C Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 08 апреля 2021 г.)
Наука: Технические науки
Секция: Технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ УПРАВЛЕНИЯ ЭЛЕКТРООБОРУДОВАНИЕМ
Язык программирования устройств Ардуино основан на C/C++. Он прост в освоении, и на данный момент Arduino — это, пожалуй, самый удобный способ программирования устройств на микроконтроллерах [1]. Компилятор Arduino IDE значительно упрощает написание программ для этой платформы и создание устройств на Ардуино становится намного доступней людям, не имеющих больших познаний в языке C/C++. Язык можно разделить на четыре раздела: операторы, данные, функции и библиотеки.
Микроконтроллер ATmega328 поставляется с записанным загрузчиком, облегчающим запись новых программ без использования внешних программаторов. Связь осуществляется оригинальным протоколом STK500.
Имеется возможность не использовать загрузчик и запрограммировать микроконтроллер через выводы ICSP (внутрисхемное программирование) [2].
Технология программирования контроллера Arduino
Программирование ведется целиком через собственную программную оболочку (IDE), бесплатно доступную на сайте Arduino [3]. В этой оболочке имеется текстовый редактор, менеджер проектов, препроцессор, компилятор и инструменты для загрузки программы в микроконтроллер. Оболочка написана на Java на основе проекта Processing, работает под Windows, Mac OS X и Linux.
Язык программирования Arduino является стандартным C++ (используется компилятор AVR-GCC) с некоторыми особенностями, облегчающими написание программы: Программы, написанные программистом Arduino, называются наброски и сохраняются в файлах с расширением ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино.
Также существует возможность создавать и подключать к проекту стандартные файлы C++.
- Обязательную в C++ функцию main() препроцессор Arduino создает сам, вставляя туда необходимые «черновые» действия.
- Программист должен написать две обязательные для Arduino функции setup() и loop(). Первая вызывается однократно при старте, вторая выполняется в бесконечном цикле.
- В тексте своей программы (скетча) программист не обязан вставлять заголовочные файлы используемых стандартных библиотек. Эти заголовочные файлы добавит препроцессор Arduino в соответствии с конфигурацией проекта. Однако пользовательские библиотеки нужно указывать.
- Менеджер проекта Arduino IDE имеет нестандартный механизм добавления библиотек. Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге IDE. При этом название библиотеки добавляется в список библиотек в меню IDE. Программист отмечает нужные библиотеки и они вносятся в список компиляции.
- Arduino IDE не предлагает никаких настроек компилятора и минимизирует другие настройки.
Простейшая Arduino-программа состоит из двух функций:
setup(): функция вызывается однократно при старте микроконтроллера.
loop(): функция вызывается после setup () в бесконечном цикле все время работы микроконтроллера.
Обе функции требуются для работы программы.
Перед функцией setup - в самом начале программы, обычно, идёт, объявление всех переменных. setup - это первая функция, выполняемая программой, и выполняемая только один раз, поэтому она используется для установки режима работы портов (pinMode()) или инициализации последовательного соединения. Функция setup() вызывается один раз, когда программа стартует. Она должна быть включена в программу, даже если в ней нет никакого содержания.
После вызова функции setup() – управление переходит к функции loop(), которая содержит код, который выполняется постоянно — читаются входы, переключаются выходы и т.д. Эта функция — ядро всех программ Arduino и выполняет основную работу.
Закачка программы в микроконтроллер Arduino происходит через предварительно запрограммированный специальный загрузчик (все микроконтроллеры от Ардуино продаются с этим загрузчиком). Загрузчик создан на основе Atmel AVR Application Note AN109. Загрузчик может работать через интерфейсы RS-232, USB или Ethernet в зависимости от состава периферии конкретной процессорной платы. В некоторых вариантах, таких как Arduino Mini или неофициальной Boarduino, для программирования требуется отдельный переходник.
Пользователь может самостоятельно запрограммировать загрузчик в чистый микроконтроллер. Для этого в IDE интегрирована поддержка программатора на основе проекта AVRDude. Поддерживается несколько типов популярных дешёвых программаторов.
Установка библиотек
Библиотека - это набор функций, предназначенных для того, чтобы максимально упростить работу с различными датчиками, ЖК-экранами, модулями и пр. Например, встроенная библиотека LiquidCrystal позволяет легко взаимодействовать с символьными LCD-экранами. Существуют сотни дополнительных библиотек, которые можно скачать в Интернете.
Чаще всего библиотеки выкладываются в виде ZIP-архива или просто папки. Название этой папки является названием библиотеки. Внутри папки будет файл с расширением .cpp, файл с расширением .h, а также текстовый файл keywords.txt, папка с примерами examples и другие файлы, требуемые библиотекой.
Рисунок 1. Окно программы при установке библиотеки
После скачивания библиотеки в виде zip-архива его не нужно распаковывать. Для установки запакованной библиотеки служит меню Скетч → Подключить библиотеку → Добавить .ZIP библиотеку (рисунок 1).
После этого нужно указать путь к zip-файлу библиотеки. Этот zip-файл будет распакован и помещен в папку libraries в директорию со скетчами Arduino.
Нужно отметить, что после установки библиотека становится доступной через меню Скетч → Подключить библиотеку, но для того, чтобы стали доступны файлы примеров этой библиотеки, используя меню Файл → Примеры, необходимо перезапустить Arduino IDE (рисунок 2).
Рисунок 2. Окно приложения с готовыми примерами программ
Список литературы:
- Информационные технологии. [Электронный ресурс]. – Режим доступа: http://kunegin.narod.ru/index.html
- Техническая спецификация ATMEL. [Электронный ресурс]. – Режим доступа: http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf
- Техническая спецификация DS18B20. [Электронный ресурс]. – Режим доступа: https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf
дипломов
Оставить комментарий