Кафедра АИиСУ уже более 35 лет готовит профессионалов в области разработки и эксплуатации электронных, микропроцессорных, компьютерных, робототехнических, мехатронных и информационных систем управления для автомобильной и аэрокосмической техники, машиностроения и бизнеса. Научно-исследовательская работа сотрудников кафедры ведется в областях, связанных с разработкой систем поддержки принятия решений на основе технологий искусственного интеллекта, анализа и синтеза процессов управления сложными системами, контроля и интеллектуального выявления сбоев аппаратуры. Важным направлением научной деятельности кафедры является проведение исследований в области автоматических и электронных систем транспортных средств.
В данной статье мы последовательно расскажем о том, как создать устройство на базе микроконтроллера (МК), которым можно управлять с помощью персонального компьютера (ПК). Основной идеей данного материала является помощь начинающим в разработке и построении устройств на базе микроконтроллера с возможностью обмена данными с ПК.
В учебных целях управлять мы будем достаточно тривиальным, но все же жутко актуальным в условиях летнего солнцепека, устройством – вентилятором. Но чтобы все не казалось таким скучным, снабдим его поворотным устройством, задающим направление воздушного потока. Таким образом, в приложении на ПК получим следующие возможности:
вкл/выкл;
ручная установка направления воздушного потока
автоматический, так называемый «плавающий» режим направления воздушного потока.
Для работы нам понадобятся четыре программных продукта:
Microsoft Office Visio – используем для начертания схемного решения;
Algorithm Builder – среда программирования для МК;
AvrProg – утилита для прошивки МК Atmel (входит в бесплатный пакет AVR Studio);
RAD Studio Delphi – среда программирования для создания управляющей программы для ПК.
А так же из железа нам понадобится:
кусок оргстекла – для изготовления подставки;
сервопривод – обеспечит задание направления воздушного потока;
привод лопастей вентилятора – в нашем случае вытащили из старого привода CD;
крепление привода лопастей – можно изготовить из металлического корпуса того же CD привода, путем вырезания продолговатой пластинки и изгибания ее в форме буквы Г;
лопастной винт вентилятора – можно купить в магазине радиоуправляемых моделей;
преобразователь интерфейса USB-UART – в нашем случае BM8051;
микроконтроллер ATmega8 с колодкой на 28 ножек;
стабилизаторы напряжения L78L05 и L7805 (+ радиатор);
разъемы под питание платы, сервопривод, привод лопастей и под преобразователь интерфейсов;
набор проводов.
отвертка;
термопаста;
канифоль;
припой;
кусачки;
паяльник;
держатель для плат;
горелка (или хорошая зажигалка);
программатор для МК Atmel – можно собрать самостоятельно.
Microsoft Office Visio помогает создавать имеющие профессиональный вид схемы, служащие пониманию, документированию и анализу сведений, данных, систем и процессов. Можно использовать любое другое приложение, позволяющее создавать и/или даже моделировать происходящие в схеме процессы, как например в Electronics Workbench Multisim или Altium Designer (ренее P-CAD), предназначенный для проектирования многослойных печатных плат, вычислительных и радиоэлектронных устройств, или вообще начертить схемное решение от руки. Но мы воспользуемся Microsoft Office Visio 2010. И хотя данное приложение не входит в стандартный пакет Microsoft Office оно все же является достаточно распространенным программным продуктом, позволяющим создавать схемы, планы и чертежи в векторном формате.
Visio обладает специальным набором библиотек для создания принципиальных электрических схем. Именно им и предстоит воспользоваться.
Центральным элементом всей схемы является микроконтроллер - в нашем случае AVR ATmega8. Выбор пал именно на этот МК в связи с тем, что контроллеры серии AVR фиры Atmel являются достаточно простыми в программировании, объединяют богатый набор инструкций, ориентированы на выполнение разносторонних задач, обладают хорошим набором функций и при этом отличаются сравнительно невысокой ценой. К тому же большое количество современных устройств построено на МК именно этой фирмы, что является еще одним аргументом в пользу изучения именно этих контроллеров.
Поскольку МК - это основа всей нашей принципиальной схемы, то ее формирование необходимо начинать именно с контроллера. Далее к нему подключаются все исполнительный, периферийные, буферные и прочие устройства. Выбор ножек МК для подключения к ним устройств зависит от требуемого функционала, например, если нам необходимо воспользоваться аналогово-цифровым преобразователем (АЦП) то провод с измеряемым (читай преобразуемым в цифровой вид) сигналом необходимо подключать к одной из ножек с обозначением ADC. Если же необходимо просто устанавливать на ножке уровень логической 1 или 0, либо считывать те же уровни, т.е. фактически выполнять задачу "общего назначения" можно воспользоваться любой ножкой любого порта, руководствуясь при этом только взаимным расположением элементов и загруженностью других портов. Не следует так же распыляться между всеми портами, припаивая к каждому из портов по одному контакту, поскольку может случиться так, что в дальнейшем Вы захотите доработать схему и может потребоваться полностью свободный порт. Так же будет очень удобно, если все исполнительные устройства (будь то двигатели или что-то иное) будут подключаться через стандартные разъемы, а будут просто припаяны - ведь может случить так, что одно устройство необходимо будет заменить другим, а переподключить разъем гораздо проще, чем перепаивать контакты.
В зависимости от версии МК питающее напряжение обычно колеблется в диапазоне 1,5-5 В. Для создания такого напряжения можно воспользоваться стабилизатором напряжения, например, таким как L78L05 (последние две цифры обозначают уровень напряжения на выходе). Такой стабилизатор позволяет преобразовывать напряжения номиналом до 35 В на входе в 5 В на выходе. В документации к L78L05 можно найти схему его подключения - она достаточно проста и требует только наличия двух конденсаторов: 0,33 мкФ на входе стабилизатора и 0,1 мкФ - на выходе. Выход стабилизатора соединяем с ножками МК, соответственно VCC и GND.
Вся прелесть AVR в том, что к выходам контроллера можно подключать некоторые исполнительные устройства напрямую, что мы и сделаем, подключив между ножкой PC1 (хотя это могла быть абсолютно любая другая ножка любого из трех имеющихся портов, за исключением ножек PD0 и PD1 - к ним мы вернемся чуть позже) и землей привод лопастей вентилятора.
Далее необходимо подключить сервопривод, обеспечивающий задание направления воздушного потока. Сервомашинки имеют три провода с разъемом контактов на конце: питание (как привило красный провод), земля (черный, либо коричневый) и сигнальный, на который подается сигнал управления (как правило желтый, либо белый). Уровень управляющего сигнала составляет около 5 В, что также позволяет подключить сигнальный провод напрямую к МК (в нашем случае выбор пал на ножку PC3). С целью обеспечения достаточного питающего тока и напряжения для сервопривода подключим его через стабилизатор L7805. Такой стабилизатор имеет аналогичную схему включения как и L78L05, но обладает более высокой допустимой токовой нагрузкой на выходе (до 1,5 А).
Остается только подключить преобразователь сигналов USB-UART, через который мы в дальнейшем будем посылать команды управления из ПК в МК. Тут-то и следует вспомнить, про выше упомянутые ножки PD0 и PD1 - это UART приемник (RxD) и передатчик (TxD). Тут следует обратить внимание, что линии RxD и TxD одного устройства должны соединяться с линиями TxD и RxD (а не RxD и TxD) другого, т.е. передатчик одного устройства должен быть соединен с приемником другого и наоборот - передатчик другого должен быть соединен с приемником первого.
Готовая принципиальная электрическая схема показана на рис. 1. Процесс проектирования схемы можно посмотреть на youtube по .
Рис. 1. Принципиальная электрическая схема управляемого вентилятора на ATmega8
Далее необходимо написать управляющую программу для МК, которая будет принимать и дешифровывать команды ПК, а затем вырабатывать управляющие воздействия для приводов. Т.е. МК будет выступать здесь в качестве некоторого буферного устройства или посредника между исполнительными механизмами и ПК.
Авторы:
Крюков А.И., Шубникова И.С., Тройков С.М.
e-mail: mr.krukov@mail.ru
кафедра «Автоматика, Информатика и Системы Управления» Московкого Государственного Индустриального Университета (ГОУ МГИУ), http://www.msiu.ru