Файл: Разработка аппаратнопрограммного комплекса "Умный будильник" с дополнительным функционалом на базе микроконтроллерного модуля Arduino.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.11.2023
Просмотров: 508
Скачиваний: 9
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Вывод: любой из приведенных микроконтроллерных модулей позволяет реализовать АПК "Умный будильник". В связи с этим выбор микроконтроллерного модуля осуществлялся по габаритным размерам. В качестве управляющей схемы в дипломном проекте будет применен микроконтроллерный модуль Arduino Nano с микроконтроллером ATmega328P.2.4 Разработка интерфейса.Рассмотрим интерфейсы сопряжения микроконтроллерной платы Arduino и функциональных элементов, которые используются в дипломном проекте на рисуноке 17.Рис.17 Функциональная схема опытного образца модели "Умный будильник"Светодиод подключен к микроконтроллерной плате Arduino Nano через контакты: минус подключен к контакту GND модуля Mosfet IRF520, плюс к контакту D6 через резистор 220 Ом к микроконтроллерной плате.Зуммер подключен к микроконтроллерной плате Arduino Nano через контакты: минус подключен к GND модуля Mosfet IRF520, плюс к контакту D7 через резистор 100 Ом к микроконтроллерной плате [11].Модуль RTC3231 подключен микроконтроллерной плате Arduino Nano через контакты: SCL подключен к микроконтроллерной плате Arduino Nano к контакту A5, SDA подключен к микроконтроллерной плате Arduino Nano к контакту A4, контакт VCC модуля RTC3231 подключен к контакту VCC модуля Mosfet IRF520, контакт GND модуля RTC3231 подключен к контакту GND модуля Mosfet IRF520.Модуль TM1637 подключен микроконтроллерной плате Arduino Nano через контакты: CLK подключен к микроконтроллерной плате Arduino Nano к контакту D12, DIO подключен к микроконтроллерной плате Arduino Nano к контакту D11, контакт VCC модуля TM1637 подключен к контакту VCC модуля Mosfet IRF520, контакт GND модуля TM1637 подключен к контакту GND модуля Mosfet IRF520.Модуль энкодера подключен к микроконтроллерной плате Arduino Nano через контакты: контакт CLK моудля энкодера подключен к микроконтроллерной плате Arduino Nano к контакту D8, контакт DT моудля энкодера подключен к микроконтроллерной плате Arduino Nano к контакту D9, контакт SW моудля энкодера подключен к микроконтроллерной плате Arduino Nano к контакту D10, контакт VCC модуля энкодера подключен к контакту VCC модуля Mosfet IRF520, контакт GND модуля энкодера подключен к контакту GND модуля Mosfet IRF520.Модуль Mosfet IRF520 подключен микроконтроллерной плате Arduino Nano через контакты: SIG подключен к микроконтроллерной плате Arduino Nano к контакту D3, контакт VCC модуля Mosfet IRF520 подключен к контакту VCC модуля RTC3231, TM1637, энкодера а так-же к Arduino Nano к контакту 5V, контакт GND модуля Mosfet IRF520 подключен к контакту GND модуля RTC3231, TM1637, энкодера а так-же к Arduino Nano к контакту GND.
3 РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ АППАРАТНО-ПРОГРАММНОГО КОМПЛЕКСА "УМНЫЙ БУДИЛЬНИК"3.1 Разработка алгоритма работы Одним из главных компонентов электронного, умного будильника является программное обеспечение. Программа для разрабатываемого устройства позволяет работать устройству автономно в течение длительного времени.Программа электронного будильника выполняет следующие функции:
-
подсчет реального времени; -
подсчет до срабатывания сигнала о пробуждении; -
подача сигнала для включения светодиодной ленты.
-
области сообщений; -
редактора программного кода; -
панели инструментов с кнопками часто используемых команд; -
окна вывода текста; -
нескольких меню.
void setup() { // код выполняется один раз при запуске программы }void loop() { // основной код, выполняется в цикле }Функция setup() выполняется один раз, при включении питания или сбросе контроллера. Обычно в ней происходят начальные установки переменных, регистров. Функция должна присутствовать в программе, даже если в ней ничего нет. После завершения setup() управление переходит к функции loop(). Она в бесконечном цикле выполняет команды, записанные в ее теле (между фигурными скобками). Собственно эти команды и совершают все алгоритмические действия контроллера [12].Функционал среды разработки Arduino IDE является минимальным достаточным для разработки программного обеспечения электронной копилки.Выбор языка программирования.Язык программирования — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под её управлением.Все языки программирования можно разделить на следующие категории:
-
процедурные; -
логические; -
объектно-ориентированные; -
функциональные; -
мультипарадигмальные; -
графические языки.
-
полностью автоматическое управление памятью. Данная функция позволяет программистам избежать волнений по поводу необходимости распределять или освобождать память; -
выполнение операций осуществляется в более высоком уровне абстракций отчасти по причине архитектуры языка, отчасти благодаря расширенной библиотеке кодов, поставляемой вместе с Python; -
массив может включать объекты различных типов; -
значение любого типа может быть назначено переменной; -
язык легко объединяется с написанными на С и С++ модулями, что позволяет существенно увеличить скорость программ.
Основным недостатком Python является не полная контролируемость языка, поскольку происходит частичная трансляция к внутренней форме кода байта, выполненного интерпретатором Python. В настоящее время Python активно используется огромным количеством программистов в разных странах мира, причем число их постоянно увеличивается. Одной из причин популярности языка является то, что он с одинаковой эффективностью работает на OS/2, Macintosh, UNIX, Windows. Универсальность языка обеспечивает развертку больших программ и разработку малых приложений.Arduino — Язык программирования Arduino является стандартным C++ (используется компилятор AVR-GCC) с некоторыми особенностями, облегчающими новичкам написание первой работающей программы.Программы, написанные программистом Arduino, называются наброски (или иногда скетчи — калька от англ. sketch) и сохраняются в файлах с расширением ino. Эти файлы перед компиляцией обрабатываются препроцессором Arduino. Также существует возможность создавать и подключать к проекту стандартные файлы C++.Обязательную в C++ функцию main() препроцессор Arduino создает сам, вставляя туда необходимые «черновые» действия. Программист должен написать две обязательные для Arduino функции setup() и loop(). Первая вызывается однократно при старте, вторая выполняется в бесконечном цикле.В текст своей программы (скетча) программист не обязан вставлять заголовочные файлы используемых стандартных библиотек. Эти заголовочные файлы добавит препроцессор Arduino в соответствии с конфигурацией проекта. Однако пользовательские библиотеки нужно указывать.Менеджер проекта Arduino IDE имеет нестандартный механизм добавления библиотек. Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге IDE. При этом название библиотеки добавляется в список библиотек в меню IDE. Программист отмечает нужные библиотеки, и они вносятся в список компиляции.Arduino IDE не предлагает никаких настроек компилятора и минимизирует другие настройки, что упрощает начало работы для новичков и уменьшает риск возникновения проблем.Из множества микрокомпютеров и платформ у Arduino есть весомые преимущества перед рядом конкурентов:
-
бесплатность; -
кроссплатформенность; -
платформа отлично подходит для новичков; -
возможность расширить под себя программное обеспечение или аппаратную составляющую.