Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Проектирование микропроцессорных систем. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Можно подключить извещатель и без резистора на 10 кОм, но в этом
случае будет «дребезг» на цифровой порт, и в этом случае запрограммировать
плату на включение тревоги при сработке два раза будет невозможно.
Магнитоконтактные извещатели запитываются от Arduino. Для их
подключения надо также на один контакт геркона вывести «плюс» с платы, а
другой контакт геркона подключить к цифровому порту и к «земле» через
резистор 10кОм. Схема подключения геркона представлена на рисунке 28.
Рисунок 28– Подключение геркона
Оповещатель должен быть запитан через Arduino, так как он включается только при пожарной тревоге. Цифровые пины Arduino можно настроить на
подачу напряжения в 5 Вольт. Сам оповещатель запитывается от 12 Вольт.
Решением для на станет DC-DC преобразователь с 5 Вольт до 12. Схема подключения оповещателя представлена на рисунке 29.
Рисунок 29 – Подключение оповещателя
71
При подключении пожарного извещателя сталкиваемся с проблемой
расчета падения сопротивления внутри датчика. При «сработке» внутреннее
сопротивление извещателя падает примерно до 1000 Ом и при обычном
подключении мы ничего не добьемся. Кроме этого для перезагрузки датчика
необходимо перестать подавать на него питание на 2 секунды. Была построена
электрическая схема на базе делителя напряжения, транзистора и диода, для
отслеживания сопротивления и для управления питанием извещателя, но
использование данной схемы создало проблему с нехваткой питания с Arduino
на базу транзистора и с постоянным отключением реле. Для оптимальной
работы извещателя была составлена новая схема. Через цифровой пин и
«землю» подается питание на DC-DC преобразователь с 5 Вольт до 12. Он в
свою очередь открывает реле. Таким образом меняя напряжение на цифровом
порту, мы можем управлять питанием пожарного извещателя. Считывание
сопротивления решено было сделать с помощью резистивного делителя. Схема соединения представлена на рисунке 30.
Рисунок 30 – Подключение пожарного извещателя
72
Дисплей и клавиатура являются приборами управления стендом. Для
экономии места на плате, для подключения дисплея решено использовать I2C- переходник для подключения дисплея к Arduino через 4 пина («VIN», «GND», «SDA», «SCL»). I2C / IIC(Inter-Integrated Circuit) – это протокол, изначально
создававшийся для связи интегральных микросхем внутри электронного
устройства. Разработка принадлежит фирме Philips. В основе I2C протокола является использование 8-битной шины, которая нужна для связи блоков в
управляющей электронике, и системе адресации, благодаря которой можно
общаться по одним и тем же проводам с несколькими устройствами. Мы просто
передаем данные то одному, то другому устройству, добавляя к пакетам данных
идентификатор нужного элемента. Клавиатуру можно подключать напрямую через 8 пинов. Схема подключения дисплея и клавиатуры к Arduino представлена на рисунке 31. Помимо дисплея и клавиатуры, для управления
через беспроводное соединение, необходимо подключить модуль связи
ESP8266. Для этого необходимо на контакт «VIN» подать 3.3 вольта, к контакту «GND» провести «землю» с платы Arduino. Контакты «RX» и «TX» соединить с соответствующими пинами Arduino. Напряжение в 3.3 вольта нельзя взять с пина платы Arduino, так как силы тока, которую дает данный пин не хватает для питания платы ESP8266. Питание мы будем брать с пина 5V, пропустив через DC-DC преобразователь с 5 вольт до 3. Схема подключения платы ESP8266 представлена на рисунке 31.
Рисунок 31 – Подключение дисплея и клавиатуры и модуля беспроводной связи ESP8266
73
Общая электрическая схему сборки приборов представлена на рисунке 32.
Рисунок 32 – Схема сборки стенда охранно-пожарной сигнализации на базе платформы Arduino
74
5 Проектирование программного обеспечения МПС
5.1 Этапы проектирования программного обеспечения
Разработка программного обеспечения для микропроцессорной системы включает следующие этапы:
1. Разработка схемы алгоритма программы для выбранного типа
микроконтроллера.
2. Выбор среды программирования для определенного типа
микроконтроллера.
3. Разработка программы управления для микроконтроллера.
4. Разработка инструкций программиста и пользователя.
Рассмотрим кратко основные этапы проектирования программного
обеспечения. На первом этапе необходимо разработать схему алгоритма
программы. В качестве примера рассмотрим задачу мониторинга параметров
микроклимата и с беспроводной передачей параметров на клиентское
устройство. Схема алгоритма представлена на рисунке 33.
Для работы алгоритма поиска узла сети с наилучшим уровнем сигнала до
точки доступа сервера необходимо осуществить сбор данных об уровне сигнала
со всех микропроцессорных модулей. После этого, данные об уровне сигнала с
двух других модулей необходимо сравнить, и выделить наименьшее значение.
Полученное наименьшее значение необходимо сравнить с уровнем сигнала на
микропроцессорном модуле, на котором осуществляется проверка. Если
значение уровня сигнала до точки доступа на микропроцессорном модуле будет
иметь меньший показатель, чем полученное наименьшее значение, необходимо
начать процедуру формирования и отправки HTTP POST-запроса на сервер.
75
Рисунок 33 - Общий алгоритм процедур программы для микропроцессорного модуля ESP32
Выбор среды программирования зависит от типа микроконтроллера. В
случае использования Arduino применяют программную среду Arduino IDE,
которая также позволяет осуществлять загрузку кода программы в
микропроцессорный модуль [26]. При разработке программного обеспечения для микропроцессорного модуля ESP32 использовался язык программирования С++. Алгоритм работы процедуры считывания значений с датчиков представлен на рисунке 34.
76
Рисунок 34 - Алгоритм работы процедуры считывания значений с датчиков
77
5.2 Разработка инструкции программиста
Название
Назначение
1
2
setup()
Функция, предназначенная для установки начальных параметров и настроек платы
Arduino Uno R3 для проведения последующих работ.
loop()
Функция, которая выполняется в программе по бесконечному циклу. Внутри данной функции выполняются измерения и передача информации по
беспроводной сети Wi-Fi.
Руководство программиста должно содержать разделы:
1. Назначение и условия применения программы.
2. Характеристики программы.
3. Описание основных функций и методов программного средства.
При описании назначения и условий применения программы необходимо
указать назначение и функции, выполняемые программой; условия,
необходимые для выполнения программы: объем оперативной памяти,
требования к составу и параметрам периферийных устройстви т.д.
В разделе Характеристики программы необходимо привести описание
основных характеристик и особенностей программы: временных
характеристик, режима работы, средств контроля правильности выполнения и
самовосстанавливаемости программы и т.д.
Пример описания основных функций и методов программного средства,
разработанного для платформы Arduino представлено в таблице 29.
Таблица 29 – Основные функции и методы программы
78
Продолжение таблицы 29
Пример руководства программиста для микропроцессорной системы
мониторинга параметров радиовещания приведен ниже.
79
Программное обеспечение для микроконтроллера ATmega32u4
Файл
Назначение
Descriptors.h
Заголовочный файл. Определяет параметры работы протокола
HID USB
Descriptors.c
Содержит основные функции инициализации USB HID протокола, дескриптор USB, информацию об устройстве.
GenericHID.h
Заголовочный файл. Содержит описание основных функций
обмена по протоколу HID USB.
GenericHID.c
Основной файл программы. Содержит функции работы с USB HID протоколом, алгоритм ДПФ и т.д.
разработано на языке высокого уровня C в специализированной среде разработки WinAVR. Для использования аппаратного USB интерфейса микроконтроллера ATmega32u4 использована специализированная библиотека, разработанная фирмой производителем Atmel, LUFA USB.
Проект состоит из 4 файлов (не включая библиотеку LUFA USB). В таблице 30 представлено назначение файлов проекта.
Таблица 30 – Назначение файлов проекта
Рассмотрим основные функции и определения в перечисленных файлах подробнее. Файл Descriptors.h содержит определения размеров массивов для передачи по каналу USB:
– OUT_REPORT_SIZE 8 – размер массива от ПК к устройству;
– IN_REPORT_SIZE 32 – размер массива от устройства к ПК;
– GENERIC_IN_EPNUM 1 – номер конечной точки USB HID на устройстве;
– GENERIC_OUT_EPNUM 2 – номер конечно точки USB HID на ПК;
– GENERIC_EPSIZE 64 – максимальный размер репорта конечно точки устройства.
80
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]