Да, вот такие условыия. Диплом - Мальцев (1). Разработка аппаратнопрограммного комплекса "Умный будильник" с дополнительным функционалом на базе микроконтроллерного модуля Arduino
Скачать 1.74 Mb.
|
2.1 Разработка архитектуры На рисунке 4 представлена структурная схема разрабатываемого устройства. Рис.4 Структурная схема электронного разрабатываемого устройства. Питание. Питание, используемое в разрабатываемом устройстве немаловажный показатель. Микроконтроллерная плата Arduino Nano V3 питается от сети, при отсутствии сетевого питания устройство запитывается от часов реального времени DS3231 При подаче сетевого питания начинается зарядка батареи. Батарея емкостью 80 mAh хватает примерно на 1 неделю круглостуточной работы. Устройство контроля и управления. Устройство контроля управления представляет собой Arduino Nano V3 (рисунок 5), на порты которого могут подаваться низкого и высокого уровня сигналы, микроконтроллер выполняет действия, строго прописанные кодом программы, после чего с определенных портов микроконтроллера (эти порты называются выходными) сигнал подается на индикацию устройства и передачу данных. Рис.5 Внешний вид Arduino Nano V3 Устройство ввода информации. Своё применение энкодер нашёл в разных системах точных перемещений, в промышленности (станкостроительные заводы); в роботостроении, измерительных устройствах, для которых важен точный учёт измерений вращения, поворота, наклона и угла. Также их применяют в таких сферах как: автомобилестроение и компьютерная техника. Принцип работы энкодера заключается в его передаче сигнала на вращающийся объект. При этом он позволяет увидеть такую информацию как: угол поворота/направление/скорость и позиция. Энкодер – это поворотный датчик. Самый простой датчик оснащён ручкой, способной совершать поворот, как по стрелке часов, так и против неё. От поворотного угла и направления зависит выдаваемый цифровой сигнал, который информирует либо о том, какое положение приняла ручка, либо её стороне поворота. Обычно у таких энкодеров ручка применяется ещё в виде кнопки [4]. Датчики поворотного угла подразделяют по следующим критериям: принцип выдачи данных: инкрементный и абсолютный; принцип работы: оптический, магнитный и механический. Инкрементальный энкодер принцип работы. Имея более простую конструкцию, преобразователь формирует импульсы, благодаря которым устройство приёма информации определяет нынешнее положение объекта, подсчитывая счётчиком число импульсов. Сразу после приведения этого вида ДУПа в действие, положение интересующего объекта (вала) неизвестно. Для подключения системы отсчёта непосредственно к отсчётному началу такие датчики оснащены нулевой меткой. Через них валу необходимо пройти после соответствующего включения устройства. Из недостатков данного вида датчиков можно выделить то, что определить пропуск импульсов от преобразователя не представляется возможным. Это соответственно является причиной накопления ошибки при выявлении поворотного угла объекта (пока он не пройдёт нуль-метку). Для выявления направления поворота используется пара измерительных каналов — косинусный и синусный. В них одинаковые импульсные последовательности перемещены ровно на 90 градусов относительно обоих каналов. Инкрементный энкодер показан на рисунке рисунке 6. Рис.6 Инкрементный энкодер 2.2 Выбор элементной базы В этом разделе производится описание органов управления и индикации, используемых при создании АПК "Умный будильник". Модуль MOSFET IRF520. Arduino MOSFET модуль IRF520 — предназначен для подключения к нему мощных нагрузок, работающих в цепи постоянного тока и напряжения. В отличие от механических реле, Arduino MOSFET надежный и долговечный модуль, так как у него нет контактов, которые могли бы подгорать, сплавляться между собой, залипать и выходить из строя, а так же MOSFET IRF520 может работать на высокой частоте, что позволяет использовать его в режиме управления ШИМ (рисунок 7). Рис.7 Модуль управления MOSFET IRF520 Технические характеристики: рабочее напряжение: 3.3 В, 5 В; выходное напряжение: 0-24 В; выходной ток нагрузки: до 5 А; размер: 33х24 мм; максимальный ток: 9.2 А. Модуль часов реального времени DS3231. Модуль DS3231— представляет собой недорогую плату с чрезвычайно точными часами реального времени (RTC), с температурной компенсацией кварцевого генератора и кристалла, показанного на рисуноке 8. Рис.8 Модуль часов реального времени DS3231 Большинство микросхем, которые используют внешний кварцевый генератор частотой 32 кГц, имеют существенный недостаток, при изменении температуры меняется частота кварца, что приводит к погрешности в подсчете времени. Эта проблема устранена в чипе DS3231, внутрь которого установили кварцевый генератор и датчик температуры, который компенсирует изменения температуры, так что время остается точным (при необходимости, показатели температуры можно считать). Так же чип DS3231 поддерживает секунды, минуты, часы, день недели, дата, месяц и год информацию, а так же следит за количеством дней в месяце и делает поправку на високосный год. Поддерживает работу часов в двух форматов 24 и 12, а также возможно запрограммировать два будильника. Модуль работает по двух проводной шине I2C. А так-же модуль часов DS3231 включает в себя литиевую батарею, которая поддерживает бесперебойную работу, даже при отключении источник питания. Интегрированный генератор помог улучшить точность работы устройства и позволил уменьшить количество компонентов на микросхеме DS3231 [7]. Технические характеристики: напряжение питания: 3,3 - 5,5 В; рабочая температура: 0-40 ℃; размеры: 38 мм * 22 мм * 14 мм . Энкодер (ДУП). Энкодер (ДУП) — это специальное устройство, необходимое для точного измерения интересующих параметров движения детали цифровым способом (угол поворота/направление/скорость и позиция), к примеру, редуктора или вала на электродвигателе (рисунок 9). Стоит отметить, что это устройство может носить название преобразователя угловых помещений. Принцип работы энкодерного датчика заключается в преобразовании механического перемещения в электрические сигналы. Рис.9 Энкодер (ДУП) Технические характеристики: рабочее напряжение: 3-15 В; максимальный ток через кнопку: 20 мA; число импульсов (шагов) на оборот: 20 мм; диаметр вала: 6 мм; длина вала: 20 мм. тип монтажа: монтаж на плату в отверстия. Светодиод. Светодиоды — полупроводниковые приборы с электронно-дырочным переходом, создающий оптическое излучение при пропускании через него электрического тока в прямом направлении. Рис.10 Инфракрасный фотодиод Подключать светодиод нужно с соблюдением полярности, иначе он выйдет из строя. Излучаемый светодиодом свет лежит в узком диапазоне спектра. Иными словами, его кристалл изначально излучает конкретный цвет (если речь идёт об СД видимого диапазона) — в отличие от лампы, излучающей более широкий спектр, где нужный цвет можно получить лишь применением внешнего светофильтра. Диапазон излучения светодиода во многом зависит от химического состава использованных полупроводников. Дисплей на базе TM1637. Одним из широко используемых устройств для отображения информации в любительских проектах Arduino являются 7-сегментные светодиодные индикаторы, которые используют в сборках из 4 или 8 штук. На эти дисплеи уже можно выводить какие-то осмысленные данные, например текущее время или курс валюты. Но еще совсем недавно это требовало использования очень большого количества контактов Arduino. С появлением дисплеев на светодиодных индикаторах на микросхеме TM1637 (рисунок 11) для подключения используется в сего 2 цифровых контакта Arduino, плюс питание и земля. TM1637 полностью берет на себя организацию динамической индикации индикаторов. Рис.11 Дисплей на базе TM1637 Технические характеристики: цвет свечения: красный; рабочее напряжения: 3.3 — 5.5 В; размер: 42х24 мм; ток потребления: 0.2 – 80 мА. интерфейс: двухпроводной последовательный. Для подключения дисплея к микроконтороллеру используют два контакта дисплея показаных на рисунке 12: DIO — отправка данных; CLK — синхронизация. Рис.12 Подключение дисплея к плате Arduino 2.3 Выбор микроконтроллера Микроконтроллер должен соответствовать следующим требованиям: иметь требуемое число контактов/портов ввода/вывода, так как в случае их недостатка он не сможет выполнить работу; обеспечивать необходимую производительность, то есть вычислительную мощность, позволяющую обрабатывать системные запросы в течение всей жизни системы на выбранном прикладном языке; иметь малое энергопотребление; быть отказоустойчивым. Микроконтроллер ATmega328P (рисунок 13) семейства AVR установлен на плату Arduino Nano. Рис.13 Микроконтроллер ATmega328P Микроконтроллерная плата Arduino Nano от производителя Arduino (рисунок 14) имеет такие свойства как: компактность, надежности, и простоту программирования. Рис.14 Микроконтроллерный модуль Arduino Nano Характеристики микроконтроллерной платы Arduino Nano приведены в таблице 1. Таблица 1 Характеристики микроконтроллерной платы Arduino Nano
Под маркой Arduino выпускается несколько плат с различными микроконтроллерами и платами расширения. Большинство плат с микроконтроллером снабжены минимально необходимым набором обвязок для нормальной работы микроконтроллера (стабилизатор питания, кварцевый резонатор, цепочки сброса и т. п.). Модули Arduino основаны на микросхеме ATmega328, и легко программируются через USB порт (либо COM порт в варианте MaxSerial) при помощи бесплатного программного обеспечения [2]. Платформа имеет 14 цифровых вход/выходов, 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB, либо подать питание при помощи адаптера AC/DC или батареи. В качестве периферии могут быть подключены любые устройства – от светодиодов до радиоуправляемых моделей. Программы пишутся на простом и интуитивно понятном С-подобном языке – Wiring. С возможностью подключения сторонних библиотек. В библиотеке уже есть большая часть кода, которую не нужно будет писать, библиотека облегчает работу с определенным модулем или одним из их типов и ее всего лишь необходимо подключить в программе. Каждый из 14 выводов модуля можно использовать как вход или как выход данных. Эти выводы работают с сигналами уровнем 0...5 В. Каждый из выводов рассчитан на входной (или выходной) ток до 20 мА и имеет внутренний программно отключаемый подтягивающий резистор сопротивлением 20-50 кОм, который по умолчанию отключен. Выводы 3, 5, 6, 9, 10 и 11 могут работать в режиме выходов сигналов широтно-импульсного модулирования. Выводы 1 или 2, совмещены с цепями, работающими в режиме обмена по USB/COM каналу. Поэтому в момент записи программы и при других операциях обмена данными с компьютером внешние цепи нужно будет отключать. Токовая защита разъема USB. В Arduino Uno встроен самовостанавливающийся предохранитель (автомат), защищающий порт USB компьютера от токов короткого замыкания и сверхтоков. Хотя практически все компьютеры имеют подобную защиту, тем не менее, данный предохранитель обеспечивает дополнительный барьер. Предохранитель срабатыват при прохождении тока более 500 мА через USB порт и размыкает цепь до тех пока нормальные значения токов не будут востановлены. Arduino, также имеет 6 аналоговых входов аналого-цифрового преобразователя (далее – АЦП). Микроконтроллеры ATmega, используемые в Arduino, содержат шестиканальный АЦП. Разрешение преобразователя составляет 10 бит, что позволяет на выходе получать значения от 0 до 1023. Основным применением аналоговых входов большинства платформ Arduino является чтение аналоговых датчиком, но в тоже время они имеют функциональность вводов/выводов. Таким образом, при необходимости применения дополнительных портов ввода/вывода имеется возможность сконфигурировать неиспользуемые аналоговые входы [5]. Микроконтроллер ATmega328 (рисунок 15) используется на микроконтроллерной плате Arduino Uno (рисунок 16). Платформа и меет 14 цифровых входа/выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки [8]. Рис.15 Микроконтроллер ATmega328 Рис.16 Микроконтроллерный модуль Arduino Uno Подробные характеристики микроконтроллерной платы Arduino Uno указаны в таблице 2. Таблица 2 Характеристики микроконтроллерной платы Arduino Uno
|