Главная страница

учебник. Бхв, 2020. Isbn 9781119405375 (англ.) Isbn 9785977567367 (рус.) 2020 by John Wiley & Sons, Inc. Перевод на русский язык, оформление. Ооо бхвпетербург, Ооо бхв, 2020


Скачать 1.9 Mb.
НазваниеБхв, 2020. Isbn 9781119405375 (англ.) Isbn 9785977567367 (рус.) 2020 by John Wiley & Sons, Inc. Перевод на русский язык, оформление. Ооо бхвпетербург, Ооо бхв, 2020
Анкоручебник
Дата11.12.2022
Размер1.9 Mb.
Формат файлаpdf
Имя файлаB-BHV-6735-part.pdf
ТипКнига
#838435
страница3 из 8
1   2   3   4   5   6   7   8
Глава 1.
Начало работы и основные сведения о платформе Arduino
Глава 2.
Цифровые входы и выходы и широтно-импульсная модуляция
Глава 3.
Считывание сигналов аналоговых датчиков

Начало работы и основные сведения о платформе Arduino
1
Список деталей и оборудования для проектов этой главы
Плата Arduino Uno или Adafruit METRO 328.
USB-кабель (тип A на B для Arduino Uno, тип A на Micro-B для METRO 328).
Исходный код и прочие электронные ресурсы
Исходный код программ, видеоуроки и прочие электронные ресурсы для этой главы можно загрузить с веб-страницы https://www.explorin-
garduino.com/content2/ch1.
Исходный код для проектов этой главы можно также загрузить на вкладке Downloads веб-страницы издательства Wiley для этой книги:
https://www.wiley.com/go/exploringarduino2e.
ЧТО ВЫ УЗНАЕТЕ ИЗ ЭТОЙ ГЛАВЫ
З
анимаетесь ли вы электроникой только по выходным, чтобы узнать для себя что-то новое, являетесь ли начинающим инженером-электронщиком или разработчиком программного обеспечения, который хочет лучше понять аппаратную составляющую, на которой исполняется ваш код, — запуск в ра- боту своего первого проекта Arduino непременно будет для вас стимулирую- щим событием. Прочитав вступление, вы уже получили определенное пред- ставление о платформе Arduino и ее возможностях, а теперь мы приступим к подробному изучению этих возможностей. В этой главе мы рассмотрим до- ступное нам аппаратное обеспечение, ознакомимся со средой разработки и языком программирования, а также напишем и заставим работать нашу пер- вую программу. Когда вы поймете, какие возможности может предоставить платформа Arduino, создание этой простейшей программы для Arduino, кото- рая мигает светодиодом, не будет представлять для вас никакой трудности.
Примечание
Изучение материала этой главы можно сопровождать просмотром видеоурока, представ- ляющего платформу Arduino. Этот видеофайл находится на странице для главы 1 второго издания этой книги по адресу https://www.exploringarduino.com/content2/ch1.

Глава 1. Начало работы и основные сведения о платформе Arduino
34
ИССЛЕДУЕМ СРЕДУ ARDUINO
Для экспериментов с платформой Arduino необходимо наличие трех основных составляющих:
платы Arduino (оригинальные или клоны);
периферийное оборудование (включая как шилды, так и самостоятель- но собранные схемы, которые мы будем рассматривать в этой книге);
интегрированная среда разработки Arduino IDE.
Все эти системные компоненты работают совместно, позволяя реализо- вать с помощью платформы Arduino практически любую задачу.
Существует большой выбор плат разработки Arduino. Для большинства проектов в этой книге используются оригинальные платы Arduino разра- ботанные одноименной компанией. Но в некоторых проектах последних глав применяются платы-клоны Arduino сторонних разработчиков, позво- ляющие расширить стандартные возможности Arduino дополнительны- ми функциональностями, как, например, связь Bluetooth и Wi-Fi. Многие платы-клоны Arduino полностью совместимы с программами, библиоте- ками и аппаратным обеспечением платформы Arduino. Некоторые из этих плат являются точными копиями официальных плат Arduino, тогда как в другие добавлены дополнительные особенности или возможности. Все платы, предназначенные для реализации проектов в этой книге, можно программировать в одной и той же среде IDE. Когда необходимо, мы бу- дем указывать специфичные особенности использования конкретных плат для разных проектов. Большинство проектов в этой книге ориентирова- ны на плату Arduino Uno, поскольку, по сути, она стала платой по умол- чанию для начальных этапов изучения Arduino. При этом в любом про- екте, в котором используется плата Arduino Uno, ее можно заменить пла- той Adafruit METRO 328, которая функционально идентична ей. Эту плату можно будет увидеть вместо платы Arduino на некоторых фотографиях и видео, сопутствующих этой книге. В большинстве начальных учебных по- собий по Arduino, которые можно найти в Интернете, рекомендуется плата
Arduino Uno или ее разновидности. Но если вы предпочтете плату Adafruit
METRO 328, для нее, возможно, придется установить драйверы, чтобы
Windows определяла ее как Arduino Uno. Эти драйверы можно загрузить по адресу blum.fyi/adafruit-windows-drivers.
Внимание!
Остерегайтесь подделок. Платы Arduino и их клоны следует покупать только у постав- щиков с хорошей репутацией (таких как поставщики, упоминаемые в этой книге). На рынке присутствует много компаний, которые изготавливают клоны популярных плат
Arduino, используя некачественные компоненты.

Исследуем среду Arduino
35
Мы начнем наше знакомство с платформой Arduino, исследуя базовые воз- можности, поддерживаемые всеми платами Arduino. Затем мы рассмотрим различия между всеми современными платами, чтобы вы могли принять обо- снованное решение при выборе платы для своего последующего проекта.
БОЛЬШОЙ РАСКОЛ И ПРИМИРЕНИЕ В РЯДАХ ARDUINO
Прежде чем приступать к изучению доступных опций в платформе Arduino, нам нужно разобраться с одним щекотливым вопросом, о котором все знают, но предпочитают обходить стороной. В частности, в период времени между выходом из печати первого и второго изданий этой книги команды разра- ботчиков аппаратного и программного обеспечения Arduino рассорились между собой. Я не буду вдаваться в подробности этой ссоры или вставать на чью-либо сторону, а только изложу сухие факты. В основном компания
Arduino разделилась на две команды, представляемые двумя веб-сайтами:
Arduino.cc и Arduino.orb. Эти две группы начали выпускать слегка отлича- ющиеся платы, разветвили кодовую базу и оспаривали подлинность обо- рудования, производимого противной стороной. К счастью, в настоящее время обе стороны этого противостояния нашли общий язык, и мы снова имеем единую платформу Arduino. В настоящей книге я обычно рассматри- ваю оборудование, предлагаемое группой Arduino.cc, хотя к тому времени, когда вы сможете приобрести эту книгу, обе группы Arduino снова должны объединиться. Если вас интересуют нюансы этой драмы, их можно узнать на веб-сайте организации Hackaday.com (https://hackaday.com), которая выпустила ряд докладов на эту тему. А дополнительные подробности о раз- решении этого конфликта можно узнать на веб-странице blum.fyi/arduino-
vs-arduino.
Функциональные возможности Arduino
Все платы Arduino поддерживают несколько ключевых функциональных возможностей. Уделите немного времени и исследуйте плату Arduino Uno, показанную на рис. 1.1; это будет нашей базовой конфигурацией.
Общую функциональность платы Arduino можно разбить на следующие функциональные группы:
Микроконтроллер
— основной компонент любой платы Arduino. Это
«мозги» платы;
Программирование
— интерфейсы программирования позволяют за- гружать программы в плату Arduino;
Ввод/Вывод
— схемы ввода-вывода позволяют плате Arduino взаимо- действовать с датчиками, приводами и прочими периферийными устройствами;

Глава 1. Начало работы и основные сведения о платформе Arduino
36
Рис. 1.1. Функциональные группы платы Arduino. Источник: Arduino, arduino.cc; примечания автора
Питание
— существуют разные способы подачи питания на плату Ar- du ino. Большинство плат могут автоматически переключаться между не- сколькими источниками питания (например, от порта USB и от батареи).
Микроконтроллер
Самый важный компонент любой платы Arduino — микроконтроллер.
Все первоначальные платы Arduino, включая Arduino Uno, использовали
8-разрядный микроконтроллер ATmega компании Atmel
®
на основе архитек- туры AVR
®
. Например, в плате Arduino Uno на рис. 1.1 установлен микрокон- троллер ATmega 328P. Для большинства проектов, которые вы скорее всего захотите реализовать, простого 8-разрядного микроконтроллера подобного этому будет более чем достаточно. Его мы и будем применять для большин- ства упражнений в этой книге.
Примечание
Компания Atmel была недавно поглощена компанией Microchip , производителем ми- кросхем, известным своими микроконтроллерами серий PIC. Производство микросхем
ATmega продолжается под этой новой торговой маркой. Поэтому производитель ми- кроконтроллеров ATmega может равнозначно называться Microchip или Atmel. Но, не- зависимо от названия производителя, если микросхемы разных производителей имеют одинаковый номер артикула детали, они функционально идентичны.
Программирование и питание:
Интерфейс USB/RS-232
Питание:
7-12 В пост. тока и стабилизатор напряжения
Программирование и Ввод/Вывод:
Кнопка сброса
Питание: Контакты земли и положительного напряжения питания
Ввод/вывод: Входы аналого-цифрового преобразователя (АЦП)
Микроконт роллер:
AT
mega 328P
Прог раммирование:
Раз ъем ICSP д ля вн ут рис хемног о пос ледова те льног о прог раммирования
Ввод/вывод: Светодиод отладки и светодиоды USB-интерфейса
Ввод/Вывод: Контакты общего назначения,
ШИМ и коммуникационные шины

2
Цифровые входы и выходы и широтно- импульсная модуляция
Список деталей и оборудования для проектов этой главы
Плата Arduino Uno или Adafruit METRO 328.
USB-кабель (тип A на B для Arduino Uno, тип A на Micro-B для METRO 328).
Беспаечная макетная плата половинного или полного размера.
Набор проволочных перемычек.
Кнопка.
Резистор номиналом 220 Ом (3 шт.).
Резистор номиналом 10 кОм (1 шт.).
Светодиод красный диаметром 5 мм.
Трехцветный светодиод с общим анодом диаметром 5 мм.
Исходный код и прочие электронные ресурсы
Исходный код, видеоуроки и прочие электронные ресурсы для этой главы можно загрузить с веб-страницы https://www.exploringarduino.
com/content2/ch2.
Исходный код для проектов этой главы можно также загрузить на вкладке Downloads веб-страницы издательства Wiley для этой книги:
https://www.wiley.com/go/exploringarduino2e.
ЧТО ВЫ УЗНАЕТЕ ИЗ ЭТОЙ ГЛАВЫ
М
игание светодиодом может наполнить вас чувством гордости, но толь- ко на первых порах. Ведь если это все, что можно делать с помощью
Arduino, то такое достижение не очень впечатляет. Но мы знаем, что плата
Arduino способна на многое другое, и здесь мы продолжим узнавать об этих возможностях. Главное, что делает платформу Arduino таким универсальным инструментом, — возможность как ввода, так и вывода сигналов. При их со- вместном использовании круг возможных применений платформы почти безграничный. Например, с помощью геркона можно определить момент от- крытия вашей входной двери и проигрывать какой-либо звуковой сигнал в ответ на это событие: либо сигнал тревоги, либо сигнал приветствия. Или же можно создать электронный замок или устройство для цветомузыки.

Глава 2. Цифровые входы и выходы и широтно-импульсная модуляция
54
В этой главе мы начнем приобретать знания и умения, необходимые для реализации подобных проектов. Мы исследуем возможности ввода циф- ровых сигналов, применение понижающих и повышающих резисторов и управление выводом цифровых сигналов. Большинство плат Arduino не имеют средств вывода аналоговых сигналов, но для многих задач эти сигна- лы можно эмулировать с помощью цифровой широтно-импульсной модуля- ции (ШИМ). В этой главе мы рассмотрим, как генерировать ШИМ-сигналы.
Также мы выясним, как устранять дребезг контактов переключателей, что очень важно при считывании сигналов, вводимых пользователями. В конце главы у вас будет достаточно знаний, чтобы собрать и управлять программи- руемым ночником на трехцветном (красном, зеленом и синем) светодиоде.
Примечание
Излагаемый в этой главе материал по вводу и выводу цифровых сигналов, устране- нию дребезга контактов, широтно-импульсной модуляции и основным электротех- ническим понятиям можно сопровождать просмотром моих видеоуроков, в которых я рассматриваю эти темы. Эти видеоуроки находятся на веб-странице https://www.
exploringarduino.com/content2/ch2.
ВВОД ЦИФРОВЫХ СИГНАЛОВ
В главе 1 мы научились применять плату Arduino для мигания светодио- дом. В этой главе мы продолжим исследовать возможности Arduino по выво- ду цифровых сигналов, включая следующие темы:
установка режима вывода для контактов микроконтроллера;
подключение к плате внешних компонентов;
знакомство с основными понятиями программирования, включая кон- станты, переменные и циклы;
вывод цифровых, аналоговых и ШИМ-сигналов.
Подключение светодиода и работа
с беспаечными макетными платами
Для работы программы мигания светодиодом из главы 1 кроме платы
Arduino нам не нужно было никаких дополнительных компонентов, по- скольку управляемый светодиод был встроен в саму плату. Но использо- вание встроенного светодиода существенно ограничивает наши возмож- ности, и поэтому мы рассмотрим, как подключить внешний светодиод к контакту 9 платы Arduino, применив для этого беспаечную макетную плату.
Подключение внешнего светодиода будет начальным этапом в процессе при- обретения знаний, как собирать более сложные внешние схемы, с которы-

Ввод цифровых сигналов
57
Светодиод подключается к контакту 9 разъема платы Arduino. Светодиоды всегда нужно включать с последовательным токоограничивающим резисто- ром. Резисторы большего номинала снижают протекающий ток, в результате чего яркость свечения светодиода уменьшается. В данном примере мы вы- брали резистор номиналом 220 Ом. На рис. 2.2 показано, как подключить к плате Arduino Uno светодиод и токоограничивающий резистор.
Закон Ома и уравнение мощности
Самое важное уравнение, которое должен знать каждый инженер- электрик, — закон Ома , описывающий взаимоотношения в схеме между напряжением (в вольтах), током (в амперах) и сопротивлением (в Омах).
Схема — это замкнутая электрическая цепь , содержащая источник электри- ческой энергии (например, батарею с напряжением 9 В) и нагрузку (устрой- ство, потребляющее электроэнергию, например, светодиод). Прежде чем приступать к подробному рассмотрению этого закона, объясним, хотя бы поверхностно, значение каждого из составляющих его терминов.
Рис. 2.2. Подключение светодиода к плате Arduino Uno (рисунок создан в программе Fritzing)

3
Считывание сигналов аналоговых датчиков
Список деталей и оборудования для проектов этой главы
Плата Arduino Uno или Adafruit METRO 328.
USB-кабель (тип A на B для Arduino Uno, тип A на Micro-B для METRO 328).
Беспаечная макетная плата половинного или полного размера.
Набор проволочных перемычек.
Резистор номиналом 220 Ом (3 шт.).
Резистор номиналом 10 кОм (1 шт.).
Подстроечный потенциометр номиналом 10 кОм.
Фоторезистор.
Аналоговый датчик (любой из следующих):
аналоговый датчик температуры TMP36;
ИК-дальномер GP2Y0A21YK0F производства компании Sharp в комплекте с JST-кабелем;
трехосевой акселерометр ADXL335, ADXL377 или ADXL326.
Светодиод белый диаметром 5 мм.
Трехцветный светодиод с общим анодом диаметром 5 мм.
Исходный код и прочие электронные ресурсы
Исходный код, видеоуроки и прочие электронные ресурсы для этой главы можно загрузить с веб-страницы https://www.exploringarduino.
com/content2/ch3.
Исходный код для проектов этой главы можно также загрузить на вкладке Downloads веб-страницы издательства Wiley для этой книги:
https://www.wiley.com/go/exploringarduino2e.
ЧТО ВЫ УЗНАЕТЕ ИЗ ЭТОЙ ГЛАВЫ
Н
ас окружает аналоговый мир. Хотя, возможно, вам приходится часто слышать, что наш мир становится цифровым, природа большинства обозримых явлений в нашей окружающей среде всегда будет аналоговой.
Число возможных состояний, которые может принимать окружающий мир,

Глава 3. Считывание сигналов аналоговых датчиков
84
бесконечно, будь то солнечный свет, температура воды в океанах или кон- центрация загрязнителей в воздухе. В этой главе мы остановимся на раз- работке методов преобразования этих бесконечных возможных состояний в приемлемое количество цифровых значений, которые можно анализиро- вать с помощью микроконтроллерной системы, наподобие нашей платфор- мы Arduino.
В ней мы рассмотрим различия между аналоговыми и цифровыми сиг- налами и узнаем, как преобразовывать сигналы одного типа в другой, при- меняя для этого несколько аналоговых датчиков, подключаемых к Arduino.
В частности, используя навыки, приобретенные в предыдущей главе, мы подключим к плате Arduino светочувствительный датчик для автоматиче- ского управления созданным ранее ночником. Мы также научимся рабо- тать с последовательным интерфейсом, чтобы посылать аналоговые данные с платы Arduino на компьютер, что откроет нам огромные возможности для разработки более сложных систем для передачи на компьютер данных о со- стоянии внешней среды.
Примечание
На веб-странице для этой главы (https://www.exploringarduino.com/content2/ch3) можно просмотреть видеоурок на тему считывания аналоговых сигналов, а также очень подробный видеофильм, в котором рассматриваются различия между аналоговыми и цифровыми сигналами.
АНАЛОГОВЫЕ И ЦИФРОВЫЕ СИГНАЛЫ
Чтобы наши устройства могли взаимодействовать с внешним миром, они должны обладать интерфейсом для обмена аналоговыми данными. Вспомним, как в проектах из предыдущей главы мы использовали кнопочный переключа- тель для управления светодиодом. Такой переключатель является цифровым устройством ввода, поскольку он может иметь только два выходных состоя- ния: включенное или выключенное, высокий выходной уровень или низкий,
1 или 0 и т.д. Ваш компьютер и подключенная к нему плата Arduino работают с цифровыми данными, которые представляют собой последовательности дво- ичных (или цифровых) значений, называющихся битами . Каждый бит может принимать только одно из двух возможных значений.
Но явления в окружающем нас мире редко можно характеризовать только двумя способами. Взгляните в окно. Что вы там видите? Если это дневное вре- мя, то, наверное, вы видите солнечный свет, колышущиеся на ветру деревья и, возможно, проезжающие мимо автомобили или проходящих людей. Все эти воспринимаемые нами явления нельзя легко выразить двоичными данными.
Например, солнечный свет не просто есть или нет, а его яркость варьирует

Аналоговые и цифровые сигналы
85
в течение дня. Сила ветра также не характеризуется двумя состояниями, ве- тер дует порывами с разной скоростью и в разных направлениях.
Сравнение аналоговых и цифровых сигналов
На рис. 3.1 показаны осциллограммы цифрового (слева) и аналогового
(справа) сигналов.
Прямоугольный сигнал на левой осциллограмме принимает только два значения: 0 и 5 вольт. Подобно выходному сигналу кнопки в предыдущей главе, эти значения соответствуют низкому и высокому логическим уров- ням. Справа на рисунке изображена осциллограмма синусоидального сиг- нала. Хотя значения этого сигнала ограничены теми же пределами (0 и 5 В), между этими двумя граничными уровнями он может принимать бесконеч- ное число значений.
Аналоговые сигналы, подобные изображенному на рис. 3.1, нельзя выра- зить дискретно, поскольку в пределах определенного диапазона они могут принимать теоретически бесконечное множество значений. Возьмем, напри- мер, в качестве аналогового сигнала, который мы хотим измерить, яркость солнечного света. Очевидно, что его яркость, или создаваемая им освещен- ность (измеряемая в люксах — световом потоке на единицу площади), огра- ничена определенным разумным диапазоном значений. В частности, можно обоснованно ожидать, что наши измерения будут находиться в диапазоне от
0 люкс (полная темнота) до 130 000 люкс под прямым солнечным светом. Если бы мы обладали измерительным устройством с бесконечной точностью, то могли бы измерить бесконечное число значений освещенности между этими двумя крайними величинами. Например, освещенность внутри помещения
6
Прямоугольный сигнал
Синусоидальный сигнал
5 4
3
Напряжение (В)
2 1
0 0
2 4
Время (с)
6 8
10 6
5 4
3
Напряжение (В)
2 1
0 0
2 4
Время (с)
6 8
10
Рис. 3.1. Осциллограммы аналогового и цифрового сигналов (рисунок создан в программе MATLAB)

II
1   2   3   4   5   6   7   8


написать администратору сайта