Радиотехнический сайт RADIOTRACT

Радиотехника и электроника для разработчиков и радиолюбителей

Информация

 

 

Справочные данные на радиоэлектронные компоненты, приборы, средства связи и измерений. Радиотехническая литература.

Общая

Микроконтроллеры

ПЛИС

Измерения

Радиостанции

Библиотека

Справочники

Доска объявлений

Объявления о покупке и продаже радиокомпонентов. Спрос и предложение на различные радиодетали и приборы.

Куплю

Продам

Магазин

Программы

Полезные программы для радиолюбителей и разработчиков радиоэлектроники.

Радиотехника

Интернет

Калькуляторы

Другие

Мы в соцсетях

  

Arduino

Информация\Микроконтроллеры\Arduino\Изучаем Arduino. Инструменты и методы технического волшебства


Изучаем Arduino. Инструменты и методы технического волшебства.

Автор: Джереми Блум
Оригинальное название: Exploring Arduino. Tools and Techniques for Engineering Wizardry
Формат издания: 170x240 мм (средний формат)
Количество страниц: 336
Год выпуска: 2016
ISBN: 978-5-9775-3585-4
Язык издания: русский

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

Изучаем Arduino. Инструменты и методы технического волшебства

Издательство: БХВ-Петербург.
Мягкая обложка, 336 стр.
ISBN 978-5-9775-3585-4

Найти в магазинах со скидкой

Содержание

Об авторе ......................................................................................................................... 15
О техническом редакторе ............................................................................................ 16
Благодарности ................................................................................................................ 17
Введение .......................................................................................................................... 19
Для кого эта книга ......................................................................................................................... 19
О чем эта книга .............................................................................................................................. 20
Что вам понадобится ..................................................................................................................... 20
Электронные ресурсы к книге ...................................................................................................... 20
Дополнительный материал и поддержка ..................................................................................... 21
Что такое Arduino?......................................................................................................................... 21
О движении Open Source ............................................................................................................... 22
Несколько советов читателю ........................................................................................................ 22
Дополнительная информация издательства "БХВ-Петербург"
к русскоязычному изданию книги ................................................................................................ 23
ЧАСТЬ I. ОБЩИЕ СВЕДЕНИЯ О ПЛАТФОРМЕ ARDUINO ............................. 25
Глава 1. Начало работы, переключаем светодиод из Arduino ............................. 27
1.1. Знакомство с платформой Arduino ........................................................................................ 27
1.2. Аппаратная часть .................................................................................................................... 28
1.3. Микроконтроллеры Atmel ...................................................................................................... 28
1.4. Интерфейсы программирования ........................................................................................... 30
1.5. Цифровые и аналоговые контакты ввода-вывода ................................................................ 31
1.6. Источники питания ................................................................................................................. 31
1.7. Платы Arduino ......................................................................................................................... 31
1.8. Запускаем первую программу ............................................................................................... 36
1.8.1. Загрузка и установка Arduino IDE .................................................................................. 36
1.8.2. Запуск IDE и подключение к Arduino ............................................................................. 37
1.8.3. Анализируем программу Blink ........................................................................................ 39
Резюме ............................................................................................................................................ 41
Глава 2. Цифровые контакты ввода-вывода, широтно-импульсная модуляция .... 42
2.1. Цифровые контакты ............................................................................................................... 43
2.2. Подключение внешнего светодиода ..................................................................................... 43
2.2.1. Работа с макетной платой ................................................................................................ 43
2.3. Подсоединение светодиодов .................................................................................................. 44
2.3.1. Закон Ома и формула для расчета мощности ................................................................ 45
2.4. Программирование цифровых выводов ............................................................................... 47
2.5. Использование цикла ............................................................................................................. 48
2.6. Широтно-импульсная модуляция с помощью analogWrite() .............................................. 49
2.7. Считывание данных с цифровых контактов ......................................................................... 52
2.7.1. Считывание цифровых входов со стягивающим резистором ....................................... 52
2.8. Устранение "дребезга" кнопок .............................................................................................. 55
2.9. Создание управляемого ночника на RGB-светодиоде......................................................... 58
Резюме ............................................................................................................................................ 62
Глава 3. Опрос аналоговых датчиков ....................................................................... 63
3.1. Понятие об аналоговых и цифровых сигналах ..................................................................... 64
3.2. Сравнение аналоговых и цифровых сигналов ...................................................................... 64
3.3. Преобразование аналогового сигнала в цифровой .............................................................. 65
3.4. Считывание аналоговых датчиков с помощью Arduino. Команда analogRead() .............. 67
3.5. Чтение данных с потенциометра ........................................................................................... 67
3.6. Использование аналоговых датчиков ................................................................................... 71
3.7. Работа с аналоговым датчиком температуры....................................................................... 73
3.8. Использование переменных резисторов для создания собственных аналоговых датчиков ... 75
3.9. Резистивный делитель напряжения ....................................................................................... 75
3.10. Управление аналоговыми выходами по сигналу от аналоговых входов ......................... 77
Резюме ............................................................................................................................................ 79
ЧАСТЬ II. УПРАВЛЕНИЕ ОКРУЖАЮЩЕЙ СРЕДОЙ ...................................... 81
Глава 4. Использование транзисторов и управляемых двигателей ................... 83
4.1. Двигатели постоянного тока .................................................................................................. 84
4.2. Борьба с выбросами напряжения .......................................................................................... 85
4.3. Использование транзистора в качестве переключателя ...................................................... 86
4.4. Назначение защитных диодов ............................................................................................... 86
4.5. Назначение отдельного источника питания ......................................................................... 87
4.6. Подключение двигателя ......................................................................................................... 87
4.7. Управление скоростью вращения двигателя с помощью ШИМ ........................................ 88
4.8. Управление направлением вращения двигателя постоянного тока
с помощью Н-моста ................................................................................................................ 91
4.9. Сборка схемы H-моста ........................................................................................................... 92
4.10. Управление работой H-моста .............................................................................................. 94
4.11. Управление серводвигателем .............................................................................................. 98
4.11.1. Стандартные сервоприводы и сервоприводы вращения ............................................. 98
4.11.2. Принцип работы серводвигателя .................................................................................. 98
4.12. Контроллер серводвигателя ............................................................................................... 102
4.13. Создание радиального датчика расстояния ...................................................................... 103
Резюме .......................................................................................................................................... 107
Глава 5. Работаем со звуком ..................................................................................... 108
5.1. Свойства звука ...................................................................................................................... 109
5.2. Как динамик воспроизводит звук ........................................................................................ 110
5.3. Использование функции tone() для генерации звуков ....................................................... 110
5.4. Включение файла заголовка ................................................................................................ 111
5.5. Подключение динамика ....................................................................................................... 112
5.6. Создание мелодии ................................................................................................................. 114
5.6.1. Использование массивов ............................................................................................... 114
5.6.2. Создание массивов нот и определение их длительности звучания ............................ 115
5.6.3. Написание программы воспроизведения звука ........................................................... 116
Резюме .......................................................................................................................................... 117
Глава 6. USB и последовательный интерфейс....................................................... 118
6.1. Реализация последовательного интерфейса в Arduino ...................................................... 119
6.2. Платы Arduino с внутренним или внешним преобразователем FTDI .............................. 120
6.3. Платы Arduino c дополнительным микроконтроллером для преобразования USB
в последовательный порт ..................................................................................................... 122
6.4. Платы Arduino с микроконтроллером, снабженным встроенным интерфейсом USB .... 123
6.5. Платы Arduino с возможностями USB-хоста ..................................................................... 124
6.6. Опрос Arduino с компьютера ............................................................................................... 124
6.6.1. Пример вывода данных .................................................................................................. 124
6.6.2. Использование специальных символов ........................................................................ 126
6.6.3. Изменение представлений типа данных ....................................................................... 127
6.6.4. Общение с Arduino ......................................................................................................... 128
6.6.5. Чтение информации из компьютера или другого последовательного устройства ...... 129
Плата Arduino в качестве транслятора данных ............................................................... 129
Различие между char и int ................................................................................................. 130
Отправка одиночных символов для управления светодиодом ...................................... 131
Отправка последовательности цифр для управления RGB-светодиодом ..................... 133
6.7. Создаем компьютерное приложение .................................................................................. 136
6.7.1. Интерфейс Processing ..................................................................................................... 136
6.7.2. Установка Processing ...................................................................................................... 136
6.7.3. Плата Arduino управляет приложением на Processing ................................................ 136
6.7.4. Отправка данных из Processing-приложения в Arduino .............................................. 140
6.8. Изучаем особенности работы с Arduino Leonardo (и другими платами на основе процессора 32U4) ... 143
6.8.1. Эмуляция клавиатуры .................................................................................................... 143
6.8.2. Отправка команд для управления компьютером ......................................................... 147
6.8.3. Эмуляция мыши ............................................................................................................. 148
Резюме .......................................................................................................................................... 151
Глава 7. Сдвиговые регистры .................................................................................. 153
7.1. Что такое сдвиговый регистр ............................................................................................... 154
7.2. Последовательная и параллельная передача данных......................................................... 155
7.3. Сдвиговый регистр 74HC595 ............................................................................................... 155
7.3.1. Назначение контактов сдвигового регистра ................................................................ 155
7.3.2. Принцип действия сдвиговых регистров...................................................................... 156
7.3.3. Передача данных из Arduino в сдвиговый регистр...................................................... 158
7.3.4. Преобразование между двоичным и десятичным форматами ................................... 160
7.4. Создание световых эффектов с помощью сдвигового регистра ....................................... 161
7.4.1. Эффект "бегущий всадник" ........................................................................................... 161
7.4.2. Отображение данных в виде гистограммы .................................................................. 162
Резюме .......................................................................................................................................... 165
ЧАСТЬ III. ИНТЕРФЕЙСЫ ПЕРЕДАЧИ ДАННЫХ .......................................... 167
Глава 8. Интерфейсная шина I2C ............................................................................. 169
8.1. История создания протокола I2C ......................................................................................... 170
8.2. Схема подключения устройств I2C ...................................................................................... 170
8.2.1. Взаимодействие и идентификация устройств .............................................................. 171
8.2.2. Требования к оборудованию и подтягивающие резисторы ........................................ 173
8.3. Связь с датчиком температуры I2C ..................................................................................... 173
8.3.1. Сборка схемы устройства .............................................................................................. 173
8.3.2. Анализ технического описания датчика ....................................................................... 174
8.3.3. Написание программы ................................................................................................... 177
8.4. Проект, объединяющий регистр сдвига, последовательный порт и шину I2C .... 179
8.4.1. Создание системы мониторинга температуры ............................................................ 179
8.4.2. Модификация кода программы ..................................................................................... 180
8.4.3. Написание программы на Processing ............................................................................ 182
Резюме .......................................................................................................................................... 185
Глава 9. Интерфейсная шина SPI ............................................................................ 186
9.1. Общие сведения о протоколе SPI ........................................................................................ 187
9.2. Подключение устройств SPI ................................................................................................ 188
9.2.1. Конфигурация интерфейса SPI...................................................................................... 189
9.2.2. Протокол передачи данных SPI .................................................................................... 189
9.3. Сравнение SPI и I2C .............................................................................................................. 190
9.4. Подключение цифрового потенциометра SPI .................................................................... 190
9.4.1. Техническое описание MCP4231 .................................................................................. 190
9.4.2. Описание схемы устройства .......................................................................................... 193
9.4.3. Написание программы ................................................................................................... 195
9.5. Создание световых и звуковых эффектов с помощью цифровых потенциометров SPI ... 197
9.5.1. Описание схемы устройства .......................................................................................... 197
9.5.2. Модификация программы ............................................................................................. 198
Резюме .......................................................................................................................................... 201
Глава 10. Взаимодействие с жидкокристаллическими дисплеями ................... 202
10.1. Настройка жидкокристаллического дисплея .................................................................... 203
10.2. Библиотека LiquidCrystal ................................................................................................... 206
10.3. Вывод текста на дисплей ................................................................................................... 206
10.4. Создание специальных символов и анимации ................................................................. 208
10.5. Создание регулятора температуры .................................................................................... 211
10.5.1. Монтаж схемы устройства........................................................................................... 212
10.5.2. Отображение данных на ЖК-дисплее......................................................................... 213
10.5.3. Установка порогового значения температуры с помощью кнопок ......................... 215
10.5.4. Добавляем вентилятор и звуковое оповещение ......................................................... 216
10.5.5. Итог всего: полная программа .................................................................................... 217
10.6. Как усовершенствовать проект ......................................................................................... 221
Резюме .......................................................................................................................................... 221
Глава 11. Беспроводная связь с помощью радиомодулей XBee ........................ 222
11.1. Общие сведения о беспроводной связи XBee .................................................................. 223
11.1.1. Радиомодули XBee ....................................................................................................... 224
11.1.2. Платы расширения для XBee ...................................................................................... 226
Стабилизатор 3,3 В ............................................................................................................ 226
Согласование логических уровней ................................................................................... 226
Светодиодные индикаторы ............................................................................................... 226
Перемычка или переключатель выбора UART ............................................................... 227
Программная или аппаратная реализация UART ............................................................ 227
11.2. Настройка модулей XBee ................................................................................................... 228
11.2.1. Настройка с помощью USB-адаптера ......................................................................... 228
Первый вариант программирования (не рекомендуется) ............................................... 229
Второй вариант программирования (рекомендуется)..................................................... 229
11.2.2. Настройка модуля XBee и его подключение к компьютеру ..................................... 229
11.2.3. Настройка XBee с помощью Windows-приложения X-CTU .................................... 230
11.2.4. Настройка модулей XBee из последовательного терминала .................................... 234
11.3. Соединяемся с компьютером по беспроводной сети....................................................... 235
11.3.1. Автономное питание платы Arduino ........................................................................... 235
Питание от USB с компьютера или сетевого адаптера ................................................... 235
Питание от батареи ............................................................................................................ 236
Сетевые источники питания .............................................................................................. 237
11.3.2. Пример 1: беспроводное управление цветом окна на компьютере.......................... 237
11.3.3. Пример 2: управление RGB-светодиодом .................................................................. 240
11.4. Беспроводной дверной звонок ........................................................................................... 243
11.4.1. Разработка системы ...................................................................................................... 243
11.4.2. Оборудование для передатчика ................................................................................... 244
11.4.3. Оборудование для приемника ..................................................................................... 245
11.4.4. Программа для передатчика ........................................................................................ 246
11.4.5. Программа для приемника .......................................................................................... 247
Резюме .......................................................................................................................................... 249
ЧАСТЬ IV. ДОПОЛНИТЕЛЬНЫЕ ТЕМЫ И ПРОЕКТЫ.................................. 251
Глава 12. Аппаратные прерывания и прерывания по таймеру ........................ 253
12.1. Использование аппаратных прерываний .......................................................................... 254
12.2. Что выбрать: опрос состояния в цикле или прерывания? ............................................... 255
12.2.1. Программная реализация ............................................................................................. 255
12.2.2. Аппаратная реализация ................................................................................................ 255
12.2.3. Многозадачность .......................................................................................................... 255
12.2.4. Точность сбора данных ................................................................................................ 256
12.2.5. Реализация аппаратного прерывания в Arduino ........................................................ 256
12.3. Разработка и тестирование системы противодребезговой защиты для кнопки ............ 257
12.3.1. Создание схемы аппаратного устранения дребезга ................................................... 257
12.3.2. Монтаж схемы .............................................................................................................. 260
12.3.3. Программа обработки аппаратного прерывания ....................................................... 262
12.4. Прерывания по таймеру ..................................................................................................... 264
12.4.1. Общие сведения о прерываниях по таймеру .............................................................. 264
12.4.2. Установка библиотеки ................................................................................................. 264
12.4.3. Одновременное выполнение двух задач ..................................................................... 265
12.5. Музыкальный инструмент на прерываниях ..................................................................... 266
12.5.1. Схема музыкального инструмента .............................................................................. 266
12.5.2. Программа для музыкального инструмента............................................................... 266
Резюме .......................................................................................................................................... 269
Глава 13. Обмен данными с картами памяти SD ................................................. 270
13.1. Подготовка к регистрации данных .................................................................................... 271
13.1.1. Форматирование данных с помощью CSV-файлов ................................................... 271
13.1.2. Подготовка SD-карты для регистрации данных ........................................................ 272
13.2. Взаимодействие Arduino с SD-картой............................................................................... 276
13.2.1. Платы расширения для SD-карт .................................................................................. 276
13.2.2. SPI-интерфейс SD-карты ............................................................................................. 280
13.2.3. Запись на SD-карту ....................................................................................................... 280
13.2.4. Чтение с SD-карты ....................................................................................................... 285
13.3. Использование часов реального времени ......................................................................... 288
13.3.1. Общие сведения о часах реального времени ............................................................. 289
Микросхема часов реального времени DS1307 .............................................................. 289
Сторонняя библиотека Arduino RTClib ............................................................................ 290
13.3.2. Использование часов реального времени .................................................................. 290
Подключение модулей SD card shield и RTC .................................................................. 291
Модификация программы для работы с RTC .................................................................. 291
13.4. Регистратор прохода через дверь ...................................................................................... 295
13.4.1. Схема регистратора ...................................................................................................... 296
13.4.2. Программа для регистратора ....................................................................................... 296
13.4.3. Анализ зарегистрированных данных .......................................................................... 300
Резюме .......................................................................................................................................... 301
Глава 14. Подключение Arduino к Интернету....................................................... 302
14.1. Всемирная паутина, Arduino и Вы .................................................................................... 303
14.1.1. Сетевые термины .......................................................................................................... 303
IP-адрес ............................................................................................................................... 303
MAC-адрес .......................................................................................................................... 304
HTML .................................................................................................................................. 304
HTTP ................................................................................................................................... 304
GET/POST ........................................................................................................................... 304
DHCP ................................................................................................................................... 304
DNS ..................................................................................................................................... 305
Клиенты и серверы ............................................................................................................ 305
Подключение к сети платы Arduino ................................................................................. 305
14.2. Управление платой Arduino из Интернета........................................................................ 306
14.2.1. Настройка оборудования для управления вводом-выводом ..................................... 306
14.2.2. Создание простой веб-страницы ................................................................................. 306
14.2.3. Написание программы для Arduino-сервера .............................................................. 308
Подключение к сети и получение IP-адреса через DHCP .............................................. 308
Ответ на клиентский запрос .............................................................................................. 309
Итоговая программа веб-сервера ..................................................................................... 309
14.3. Управление платой Arduino по сети.................................................................................. 313
14.3.1. Управление платой Arduino по локальной сети ......................................................... 313
14.3.2. Организация доступа к плате Arduino из внешней сети............................................ 314
Вход в панель администрирования маршрутизатора ...................................................... 315
Резервирование IP-адреса для Arduino в DHCP .............................................................. 315
Перенаправление порта 80 на плату Arduino ................................................................... 316
Обновление динамического DNS ..................................................................................... 316
14.4. Отправка данных в реальном времени в графические сервисы ..................................... 317
14.4.1. Создание потока данных на Xively ............................................................................. 317
Создание учетной записи Xively ....................................................................................... 317
Создание потока данных ................................................................................................... 317
Установка библиотек Xively и HTTPClient ...................................................................... 318
Подключение к плате Arduino .......................................................................................... 319
Настройка Xively и выполнение программы ................................................................... 320
Отображение данных на веб-странице ............................................................................. 322
14.4.2. Добавление компонентов в поток ............................................................................... 322
Добавление аналогового датчика температуры .............................................................. 323
Добавление показаний датчика в поток ........................................................................... 323
Резюме .......................................................................................................................................... 326
Приложение. Документация на микроконтроллер ATmega и схема платы Arduino ... 327
Знакомство с технической документацией ................................................................................ 327
Анализ технического описания ............................................................................................... 327
Цоколевка микросхемы ATmega 328P ................................................................................... 329
Принципиальная схема Arduino ................................................................................................. 331
Предметный указатель .............................................................................................. 333

Поддерживаемый автором сайт http://www.exploringarduino.com специально предназначен для сопровождения этой книги. На нем вы можете загрузить исходный код примеров и проектов для каждой главы, а также видеоуроки и другие полезные материалы. Издательство Wiley также предоставляет электронные ресурсы для этой книги на сайте wiley.com. Получить доступ к исходным кодам программ можно на вкладке Download code на странице http://www.wiley.com/go/exploringarduino. Вы можете найти данную страницу по коду ISBN (для этой книги 978-1-118-54936-0). В начале каждой главы приведены ссылки на скачивание файлов с листингами программ данной главы. Файлы представлены в виде zip-архивов, после скачивания их необходимо разархивировать.
Во время изучения платформы Arduino у вас неизбежно возникнут вопросы, и возможно, вы столкнетесь с проблемами. За поддержкой всегда можно обратиться к сообществу пользователей Arduino, которое легко найти в Интернете. Вот список полезных ресурсов для разработчиков Arduino:


Комментарии

comments powered by Disqus