Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Умные устройства безопасности на микроконтроллерах Atmel

Покупка
Артикул: 712380.01.99
Доступ онлайн
299 ₽
В корзину
В книге подробно рассматривается разработка устройств на базе микроконтроллеров Atmel. С их помощью предлагается собрать ряд полезных в быту устройств безопасности, таких как датчики света, температуры, кодовые замки и других. Издание будет полезно как начинающим радиолюбителям, так и профессионалам.
Бирюков, А.А. Умные устройства безопасности на микроконтроллерах Atmel / А.А. Бирюков. - Москва : ДМК Пресс, 2017. - 162 с. - ISBN 978-5-97060-558-5. - Текст : электронный. - URL: https://znanium.com/catalog/product/1027478 (дата обращения: 23.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
www.дмк.рф

Сегодня на рынке имеется множество различных 
недорогих микроконтроллеров, с помощью которых 
даже начинающий может собрать интересные и полезные 
устройства. В книге рассматривается разработка практических устройств безопасности на основе микроконтроллеров фирмы Atmel. Предлагаемые решения не 
только позволят изучить принципы работы различных 
систем, но и самостоятельно собрать полезные в быту 
устройства. 
Книга будет интересна как начинающим радиолюбителям, 
так и опытным специалистам, которые смогут найти в ней 
полезные идеи для своих устройств.

Бирюков А. А.

Андрей Бирюков окончил факультет прикладной математики 
и физики МАИ. Последние 12 лет работает в области информационной безопасности. В настоящее время основное 
направление деятельности – защита автоматизированных 
систем управления технологическими процессами (АСУТП). 
Постоянный автор журнала «Системный администратор». 
Автор нескольких книг по информационной безопасности. 
Увлекается разработкой различных устройств, связанных с 
вопросами физической и информационной безопасности. 

Умные устройства
безопасности
на микроконтроллерах
Atmel

Интернет-магазин:
www.dmkpress.com
Книга - почтой:
orders@alians-kniga.ru
Оптовая продажа:
“Альянс-книга”
Тел.: (499)782-3889
books@alians-kniga.ru
9 785970 605585

ISBN 978-5-97060-558-5

А. А. Бирюков

Умные устройства 
безопасности  
на микроконтроллерах 
Atmel

Москва, 2017

УДК 621.398:654.924
ББК 32.968.9
 
Б64

 
Бирюков А. А.
Б64 
Умные устройства безопасности на микроконтроллерах Atmel. –
М.: ДМК Пресс, 2017. – 162 с.
ISBN 978-5-97060-558-5

В книге подробно рассматривается разработка устройств на базе

микроконтроллеров Atmel. С их помощью предлагается собрать ряд
полезных в быту устройств безопасности, таких как датчики света,
температуры, кодовые замки и других.

Издание будет полезно как начинающим радиолюбителям, так и

профессионалам.

УДК  621.398:654.924
ББК  32.968.9

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без
письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство
не может гарантировать абсолютную точность и правильность приводимых
сведений. В связи с этим издательство не несет ответственности за возможные
ошибки, связанные с использованием книги.

 
© Бирюков А. А., 2017
ISBN 978-5-97060-558-5 
© Оформление, издание, ДМК Пресс, 2017

СОДЕРЖАНИЕ

Вступление ...........................................................................................................6

1
  Что такое микроконтроллер Atmel ATTiny13 ........................17

1.1. Микроконтроллер – мозг устройства ...................................18

1.1.1. Обзор микроконтроллеров Atmel AVR ......................21
1.1.2. ATtiny13 – маленькая, но шустрая ..............................22
1.1.3. Особенности применения ...............................................24
1.1.4. Заключение ..........................................................................24

1.2. Ассемблер Atmel AVR .................................................................25

1.2.1. Почему именно ассемблер? ............................................25
1.2.2. Регистры ...............................................................................26
1.2.3. Стек и переменные ............................................................28
1.2.4. Проверка и пропуск ..........................................................29
1.2.5. Выполнение логических операций ..............................30
1.2.6. Побитовые операции ........................................................31
1.2.7. Арифметические операции ............................................32
1.2.8. Пересылаем данные ..........................................................32
1.2.9. Управление системой .......................................................33
1.2.10. Вызов процедур ................................................................33
1.2.11. Заключение ........................................................................34

1.3. Пишем первую программу ........................................................34

1.3.1. Электронный «Hello world» ...........................................35
1.3.2. Основные элементы программы ..................................36
1.3.3. Полный исходный код .....................................................39
1.3.4. Заключение ..........................................................................40

2
  Компилируем, отлаживаем и заливаем .....................................41

2.1. Средства разработки ...................................................................42

2.1.1. Работа в AVR Studio ..........................................................42
2.1.2. Получаем hex-файл ...........................................................48
2.1.3. Программирование микроконтроллера  
с помощью AVRdude ....................................................................49
2.1.4. Заключение ..........................................................................51

2.2. Моделируем работу устройства ..............................................52

2.2.1. Системы моделирования ................................................52
2.2.2. Начало работы с ISIS Proteus ........................................53

СОДЕРЖАНИЕ
4

2.2.3. Учимся рисовать схемы ...................................................55
2.2.4. Оживляем схему ................................................................57
2.2.5. Отладка .................................................................................58
2.2.6. Заключение ..........................................................................61

3
  Устройства для обнаружения различных событий .............62

3.1. Разрыв и замыкание цепи ..........................................................63

3.1.1. Простейший «антивор» ...................................................63
3.1.2. Передаем код одной кнопкой ........................................71
3.1.3. Заключение ..........................................................................83

3.2. Реагируем на различные явления с помощью  
датчиков...................................................................................................83

3.2.1. Обнаружение света ...........................................................84
3.2.2. Устройство для обнаружения перегрева ....................89
3.2.3. Датчик влажности .............................................................92
3.2.4. Обнаруживаем движение ................................................96
3.2.5. Датчик удара ........................................................................99
3.2.6. Датчики дыма и газа .......................................................103
3.2.7. Заключение ........................................................................107

4
  По мотивам кухонных таймеров… .............................................108

4.1. Работаем со временем ...............................................................109

4.1.1. Циклы для таймера .........................................................109
4.1.2. Таймер ..................................................................................110
4.1.3. Программируемый таймер ...........................................113

4.2. Заключение ...................................................................................121

5
  Охранные системы на ATTiny13 ..................................................122

5.1. Основы разработки безопасных устройств .......................123

5.1.1. Надежность ........................................................................123
5.1.2. Безопасность .....................................................................125

5.2. Прикладные задачи ....................................................................127

5.2.1. Скрытый кодовый замок ...............................................127
5.2.2. Не влезай… .........................................................................135
5.2.3. Закладка в автомобиле ..................................................138
5.2.4. Интеграция с ПК и Raspberry .....................................143

5.3. Концепции других устройств .................................................148

СОДЕРЖАНИЕ
5

5.3.1. ATTiny vs Arduino ...........................................................148
5.3.2. ESP8266 и Интернет вещей .........................................150
5.3.3. Onion – темная луковица IoT ......................................151

5.4. Заключение ...................................................................................151

Подведение итогов .......................................................................................152

Приложение .....................................................................................................154

П.1. Микроконтроллеры семейства AtmelATTiny .................154
П.2. Команды ассемблера AtmelATTiny .....................................155
П.3. Где взять исходный код ...........................................................161
П.4. Библиография ............................................................................161

ВСТУПЛЕНИЕ

Развитие микроэлектроники привело к появлению достаточно мощных, но при этом недорогих микроконтроллеров, с помощью которых радиолюбители могут разрабатывать собственные устройства.  
На рынке имеется множество различной литературы, посвященной 
различным микроконтроллерам. Значительная часть этих книг носит справочный характер, то есть в них большое внимание уделяется 
общим технологиям, применяемым в том или ином микроконтроллере, рассматривается система команд языка Ассемблер для данного 
семейства микроконтроллеров. Несомненно, данный тип книг очень 
полезен, но в них, как правило, не делается упора на разработку 
практических устройств, а ведь это следующий шаг при практическом изучении микроконтроллеров. Поэтому, на мой взгляд, имеется 
определенная потребность в практическом описании устройств, их 
схемах, исходных кодах прошивок с комментариями, а также способах их применения. Конечно, часть этой информации можно найти 
в Интернете. При написании своей книги я использовал материалы 
некоторых наиболее интересных ресурсов. Однако данная информация в большинстве своем отрывистая или неполная, например 
прошивка устройства представлена в виде скомпилированного hexфайла, без исходных кодов, что не позволяет изучить этот код и подправить его под свои нужды. Кроме того, часто примеры нужных 
устройств приводятся не под ту номенклатуру деталей, и прежде 
всего микроконтроллер, которые хотелось бы использовать. В таком 
случае также могут возникнуть сложности с внесением исправлений 
в схему устройства и исходный код.
В своей книге я делаю попытку исправить приведенные выше недостатки практических описаний устройств. Рассмотрев базовые основы программирования микроконтроллеров, я перейду к рассмотрению практических устройств. Все примеры будут содержать список необходимых для данного устройства деталей, схему, исходный 
код прошивки с комментариями, а также блок-схему, на которой 
будет представлен алгоритм работы программы. Данная блок-схема, 
во-первых, позволит лучше понимать, как работает программа, а вовторых, при необходимости читатель сможет самостоятельно реализовать данный алгоритм на другом языке программирования. Обо 
всем этом мы поговорим в моей книге.
Все приведенные устройства построены на базе микроконтроллера ATTiny 13 фирмы Atmel. Выбор именно этого микроконтроллера 
не случаен. Конечно, в линейке Atmel имеется много интересных 
и более мощных контроллеров для решения различных задач. Од
С ЧЕГО НАЧАТЬ
7

нако для разработки тех устройств, о которых пойдет речь в книге, 
данная микросхема является наиболее подходящей по следующим 
причинам: невысокая стоимость (около $1), наличие АЦП, требования к питанию от 2,7 до 5,5 В, объема энергонезависимой памяти 
в 1 Кб и оперативной в 64 байта вполне достаточно для решения 
большинства задач. Кроме того, маленький размер позволяет делать 
миниатюрные, портативные устройства.       
Почему устройства безопасности? Будучи по роду своей деятельности специалистом по информационной безопасности, я немало 
внимания уделяю аспектам, связанным с физической безопасностью. 
Причем здесь речь идет не только о средствах, предназначенных для 
предотвращения хищений и другой криминальной активности, но 
и о пожарной безопасности, утечек газа, протечек воды и тому подобных угроз. Таким образом, я считаю, что устройства безопасности являются необходимыми, и поэтому решил написать эту книгу. 
А зачем вообще что-то делать самому, ведь все можно купить? Сами радиолюбители и вообще люди, увлекающиеся различными хобби, вряд ли задаются подобным вопросом. А вот их близкие и знакомые довольно часто об этом спрашивают. Объясняют они это тем, 
что сейчас производители из Юго-Восточной Азии предлагают множество различных устройств по низким ценам. Казалось бы, зачем 
делать устройства самому, если их можно легко приобрести дешево 
через Интернет. Однако на практике я часто сталкиваюсь с ситуацией, когда готовые устройства либо не обладают нужным функционалом, либо имеют избыточные возможности, которые мешают 
их нормальному применению, или просто недостаточно качест венно 
сделаны, что также мешает их долговременной эксплуатации. Таким образом, зачастую недорогое, специально разработанное под 
конкретные задачи устройство собственного изготовления может 
лучше решать поставленные задачи, чем покупное. 
На этом, я думаю, вступление можно завершить. Думаю, мне удалось убедить читателя в полезности моей книги.

С чего начать

Новичку в области  радиоэлектроники непросто разобраться в том, 
как работает даже самое простое устройство. Кроме того, при работе с микроконтроллерами необходимо наличие базовых знаний по 
программированию. Для того чтобы получить общее представление 
о работе электронных устройств, я рекомендовал бы прочесть книгу 
«Искусство схемотехники» П. Хоровица и У. Хилла [1]. В этой книге 
рассматриваются базовые аспекты электроники. О более специфич
ВСТУПЛЕНИЕ
8

ной литературе, связанной с микроконтроллерами Atmel, мы будем 
говорить в соответствующих разделах. Ну а теперь поговорим о том, 
что нам потребуется для работы.    

Необходимые инструменты

Радиолюбительство традиционно ассоциируется с паяльниками, 
припоем, печатными платами и прочим оборудованием. Все это нам, 
несомненно, потребуется при сборке готового устройства. Но для 
быстрого «прототипирования», то есть разработки прототипа макета 
будущего устройства, нам потребуются другие компоненты.
Прежде всего нам необходима беспаечная макетная плата. Применение такой платы позволяет проверить, наладить и протестировать схему еще до того, как устройство будет собрано на готовой 
печатной плате. Это дает возможность избежать ошибок при конструировании, а также быстро внести изменения в разрабатываемую 
схему и тут же проверить результат. Понятно, что макетная плата, 
безуслов но, экономит массу времени и является очень полезной 
в мастерской радиолюбителя. Самый важный плюс беспаечной монтажной платы – это отсутствие процесса пайки при макетировании 
схемы. Данное обстоятельство значительно сокращает процесс макетирования и отладки устройств. 
Беспаечная макетная плата состоит из пластмассового основания, 
в котором имеется набор токопроводящих контактных разъемов 
(рис. В.1).

Рис. В.1. Беспаечная макетная плата 

С ЧЕГО НАЧАТЬ
9

Представленная на рисунке плата имеет горизонтальные ряды 
контактов, подключенных к общему проводнику. А вот по вертикали эти ряды контактов изолированы друг от друга. Таким образом, если нам нужен прототип устройства, мы размещаем детали, 
подключая их в разные ряды контактов. Для подключения микросхем имеется специальная бороздка посередине. Над ней крепятся 
микросхемы, при этом левый и правый ряды ножек изолированы 
друг от друга.
Еще одним полезным средством является набор монтажных перемычек, предназначенных для соединения удаленных друг от друга 
контактов. Конечно, можно использовать обычные провода, например можно «разобрать» кусок сетевого кабеля с витой парой. Однако такие проводки могут плохо держаться в макетной плате, в результате чего может возникать «дребезг контактов». Поэтому я бы 
рекомендовал использовать наборы готовых перемычек, например 
BBJ-65.
Для работы любого электронного устройства необходимо электропитание. Для большинства описываемых в книге устройств 
для прототипирования достаточно питания 5 В. Случаи, когда используются батарейки с напряжением 3 В, будут рассматриваться 
особо.
А для того чтобы подать на плату напряжение 5 В, проще всего 
взять старую зарядку от мобильного телефона соответствующего 
номинала и срезать с нее штекер, затем зачистить и залудить контакты проводов. Теперь необходимо надежно закрепить провода 
в плате, например с помощью изоленты. Затем, не забывая про полярность, с помощью перемычек выводим питание на собранный 
макет устройства. 
Думаю, с прототипированием устройств все понятно, теперь перейдем к рассмотрению элементной базы.  

Какие потребуются детали

Перед началом разработки устройств нам потребуется некоторый 
набор деталей. Для большинства из них этот набор будет идентичен, 
отличаясь лишь двумя-тремя компонентами. 
Прежде всего нам нужен микроконтроллер. В последующих главах мы подробно рассмотрим всю номенклатуру микроконтроллеров линейки ATTiny от Atmel. Но для наших задач нам потребуется 
микроконтроллер ATTINY13A-PU. Обращаю внимание на индекс 
PU, продаются также детали с индексом SSU, однако для разработки устройств, приведенных в моей книге, необходимо использовать 
микроконтроллеры с индексом PU.

ВСТУПЛЕНИЕ
10

Неотъемлемой частью практически любого устройства являются резисторы. Прежде всего рекомендую запастись резисторами 
номиналом в 10 кОм, они будут использоваться в каждом устройстве. Также для индикации сигналов на светодиоды предлагается 
использовать резисторы 300–400 Ом. В приведенных устройствах 
для работы с диодами я, как правило, использую 330 Ом. Также 
нам потребуются сами светодиоды. Кроме того, для подачи звуковых сигналов необходимо приобрести несколько динамиков. Здесь 
подойдут самые простые угольные.
Для получения информации о различных событиях окружающей 
среды нам потребуются соответствующие сенсоры, однако о конкретных моделях мы будем говорить в главах, посвященных данным 
устройствам (таких как датчик дыма, температуры и т. д.). 
Ну и для разработки конечного устройства нам потребуется монтажная плата. В отличие от беспаечной макетной платы, здесь нам 
обязательно потребуется пайка. Так как все описываемые в книге 
устройства достаточно простые, я предлагаю не заниматься травлением платы, а использовать готовую печатную плату. Такая плата 
содержит поле с изолированными друг от друга контактами, находящимися на расстоянии 2,54 мм. Для монтажа детали сначала 
впаиваются в контакты, а затем с помощью припоя соединяются 
друг с другом. Однако, если читателю больше нравится вариант 
с травлением платы, материалы по данной теме можно легко найти 
в Интернете.

Немного о программном обеспечении

Поговорив о необходимых деталях, теперь перейдем к не менее 
важному вопросу – какие программы нам потребуются. Прежде 
всего ответим на вопрос: зачем вообще нужно ПО при разработке 
устройств? У нас есть микроконтроллер, на который необходимо 
установить соответствующую прошивку. Для этого нам потребуется, 
во-первых, средство разработки и компиляции, во-вторых, средство 
эмуляции и, в-третьих, программатор, с помощью которого мы будем записывать прошивку на микроконтроллер. 
В качестве основного средства разработки я предпочитаю использовать AVR Studio [2]. Это интегрированная среда разработки (IDE) 
для создания 8- и 32-битных AVR-проектов от компании Atmel, 
работающая в операционных системах семейства Windows. AVR 
Studio содержит компилятор ассемблера и C/C++ и симулятор, 
позволяющий отследить выполнение программы. Текущая версия 6 
поддерживает все выпускаемые на сегодняшний день контроллеры 
AVR и средства разработки. AVR Studio содержит в себе менеджер 

С ЧЕГО НАЧАТЬ
11

проектов, редактор исходного кода, инструменты виртуальной симуляции и внутрисхемной отладки, позволяет писать программы на 
ассемблере или на C/C++.
В своей книге я буду использовать AVR Studio в качестве среды 
разработки и компиляции. Для эмуляции работы мы будем использовать Proteus.
Пакет Proteus [3] предназначен для синтеза и моделирования непосредственно электронных схем. Работает также только под Windows. 
Еще в состав пакета входит ARES – программа разработки печатных плат, однако в рамках данной книги мы ее рассматривать не 
будем. Вместе с программой устанавливается набор демонстрационных проектов для ознакомления.
AVR Studio и Proteus являются коммерческими решениями. Бесплатная ознакомительная версия характеризуется полной функциональностью, но не имеет возможности сохранения файлов.
И третий программный компонент – это программатор. Здесь, 
правда, нам потребуется не только софт, но и аппаратные средства. 
В качестве программного средства выступает небольшая бесплатная 
утилита AVRdude [4]. Здесь у многих бывалых специалистов могут 
возникнуть вопросы, почему я использую именно эту утилиту для 
прошивки микроконтроллеров, ведь существует множество других. 
Тут каждый волен использовать тот инструментарий, который ему 
больше нравится. Это же относится и к аппаратному программатору. 
Для разработки своих устройств я использовал ATMEL AVR DIP 
PROGRAMMER (рис. В.2).

Рис. В.2. Программатор 

Более подробно о том, как использовать описанные в этом разделе 
приложения и устройства, я расскажу далее в своей книге.  

ВСТУПЛЕНИЕ
12

Некоторые особенности сборки 
готовых устройств

Итак, вы прошли весь путь от проектирования устройства до его 
сборки на реальной печатной плате. И теперь необходимо правильно 
продумать его форм-фактор. Все описанные в книге устройства являются малогабаритными, причем многие предполагают портативное использование и работу от батарейки. В связи с этим требования 
к корпусу становятся жестче, ведь нам необходимо, с одной стороны, 
небольшое (не многим более спичечной коробки), но, с другой – надежно работающее устройство. 
Конечно, готовые корпуса можно приобрести в магазинах радиотоваров. Однако я столкнулся с тем, что имеющиеся в продаже корпуса или слишком большие, или же недостаточно надежны и удобны для установки платы, батарейки или вывода выключателей.
В связи с этим я хотел бы поделиться своим опытом по изготовлению корпусов для готовых устройств. Прежде всего необходимо 
определиться с тем, как устройство будет получать питание. Например, одно из моих устройств работало непосредственно от USBпорта. То есть его можно было включать в любой USB-порт, будь 
то компьютер или зарядное устройство от телефона, и оно начинало 
работать. Такое устройство вполне можно поместить в корпус от 
старой флешки или mp3-плеера. Также если детали на плате расположить соответствующим образом, то плата вполне помещается 
внутри гильзы от гладкоствольного охотничьего ружья, например 
12-го калибра. Только гильза должна быть обязательно пластиковой, 
так как латунная может начать «коротить», если контакты попадут 
на ее корпус. Так что если у читателя есть знакомые охотники, то 
можно попробовать попросить несколько стрелянных гильз.
  Если же устройство полностью портативное и предполагается 
часто его носить с собой, то здесь хорошим корпусом будет пластиковая сфера, которую используют для хранения игрушки в шоколадных яйцах, типа «Киндер-сюрприз». Небольшая овальная сфера 
помещается внутри яйца и используется для хранения игрушки. Так 
вот, в эту сферу можно поместить саму плату, а также батарейку типа CR2032, и при необходимости еще и динамик или другой элемент 
для вывода сигнала. Такой форм-фактор позволяет устройству быть 
более устойчивым при падениях и сотрясениях.
А кроме этого, корпуса можно делать из пластиковых электромонтажных коробов соответствующих размеров, просто отпиливая от 
короба кусочки нужно размера. Затем необходимо с одной стороны 
заклеить, например, кусочком пластика. После чего плату можно 
помещать в получившуюся коробочку.

Доступ онлайн
299 ₽
В корзину