Обычно после того, как заметил слово "Remix" в описании, то ничего хорошего уже не жду. Но в данном случае был приятно разочарован. Неплохо, неплохо.. Даже хорошо.
Если серьезно, то друзей или хотя бы союзников у нас там, конечно, никогда не было. Так что демократы или республиканцы - почти один черт. Более того, ожесточенное противостояние между Конгрессом и Белым домом может сыграть нам на руку, если они будут заняты ветированием инициатив и друг другом. Хорошо, что мы ничего не успели с Трампом подписать ни по хутору, ни по экономике. Думаю, в Кремле понимали расклады и не торопились, чтобы потом не говорить, что нас обманули. Сам Дональд Трамп заявил, что готов принять результаты выборов и работать с демократами. Впрочем, ранее он обещал стать "мистером Вето" и блокировать все законопроекты демократов. Также он попытался дистанцироваться от поражения, заявив: "Меня не было в бюллетене, а если бы был, мы бы победили с разгромным счетом".
Недоброжелатели uкраины вновь повержены! Что теперь скажут все те, кто говорил, что на краине нет роста, нет рекордов:
Внешний и внутренний госдолг uкраины к 30 сентября достиг показателя $212,6 млрд. За 20 лет размер долга вырос почти в 130 раз ????! (с) Минфин uкраины Завидуй, вата!
Из полицейского протокола: «Бросал хлеб лебедям, сорвал балет».
***
— Как ты зарабатываешь на жизнь? — Зарабатываю тем, что пишу. — И что же ты пишешь? — Я пишу своим родителям, чтобы прислали денег.
***
Женщина, которая придумала, в чем она завтра пойдет на работу, спит на полтора часа дольше.
***
Она была его музой, пока не разорила авторскими отчислениями.
***
— Почему дисковод так шумит? — Диск читает. — Вслух, что ли?!
***
На приеме терапевта. — Доктор, по правде говоря, я не верил, что лекарство, которое вы мне выписали, поможет. Вы — волшебник. — Волшебник вовсе не я, а аптекарь. Я по ошибке дал вам бланк, на котором ручку расписывал.
***
Нет беспомощнее женщины, чем та, у которой еще не высох маникюр.
***
Едет богатырь по дороге, впереди три дороги, камень, а на камне надпись: «Налево пойдешь — по морде получишь, направо пойдешь — по морде получишь, прямо пойдешь — тоже по морде получишь»... Стал думать — куда идти. А тут голос сверху: — Решай быстрей, а то прямо здесь по морде получишь!
***
— Когда Авpаам Линкольн был в твоем возрасте, он каждый день ходил по 19 километров пешком в школу! — Папа, когда Авpаам Линкольн был в твоем возpасте, он был пpезидентом!
***
Третий день я наедине с котом. Знаете, существо, которое только ест и спит, — так себе компания. Поэтому коту скучно.
***
Знаете, почему так много людей ездят на дорогих машинах? Потому что на автобусе и троллейбусе нельзя ездить в долг.
***
Швейцария может семь раз поместиться на территории Тюменской области. Но не хочет. Да и кто б ей дал...
***
В меховом салоне. – Абрам, так какую шубу ты посоветуешь мне купить? – Не знаю, Сарочка, не знаю... Здесь каждый совет слишком дорого стоит.
***
Муж возвращается с охоты. – Как охота, дорогой? – Нормально, месяц не будем покупать мясо... – Ты убил лося? – Нет... пропил зарплату.
***
– Жена, ты зачем мой пиджак стираешь? Он же новый, я в нём всего один раз на работу сходил. – Наш кот в него тоже один раз сходил.
***
Согласитесь, что слову «близорукость» должно противостоять слово «дальноногость».
"Легкий для понимания стиль изложения и глубокое содержание книги по Arduino позволят новичкам в области цифровых технологий обрести почву под ногами, а опытным пользователям, увлеченным своим хобби, окунуться в мир Arduino для создания оригинальных устройств". Грис Гэммель, ведущий интернет-станции Amp Hour Podcast
Книга посвящена проектированию электронных устройств на основе микроконтроллерной платформы Arduino. Приведены основные сведения об аппаратном и программном обеспечении Arduino. Изложены принципы программирования в интегрированной среде Arduino IDE. Показано, как анализировать электрические схемы, читать технические описания, выбирать подходящие детали для собственных проектов. Приведены примеры использования и описание различных датчиков, электродвигателей, сервоприводов, индикаторов, проводных и беспроводных интерфейсов передачи данных. В каждой главе перечислены используемые комплектующие, приведены монтажные схемы, подробно описаны листинги программ. Имеются ссылки на сайт информационной поддержки книги.
Материал ориентирован на применение несложных и недорогих комплектующих для экспериментов в домашних условиях.
✔ Откройте для себя особенности использования плат Arduino различных типов ✔ Используйте Аrduino для решения простых и сложных задача в области электроники ✔ Изучите принципы проектирования, программирования и разработки электронных устройств ✔ Используйте полученный передовой опыт, код и схемотехнические решения при создании собственных проектов ✔ Используйте приобретенные навыки при освоении других микроконтроллерных платформ
Схемы, обучающие видеоролики, а также программный код вы найдете на сайте exploringarduino
Оригинальное название книги: Exploring Arduino: Tools and Techniques for Engineering Wizardry (Jeremy Blum)
Откройте для себя мир Arduino вместе с этой книгой!
Об авторе 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.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 Предметный указатель