20 простых проектов на Raspberry Pi®. Игрушки, инструменты, гаджеты и многое другое
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
Лаборатория знаний
Перевод:
Федотенко Мария Александровна
Год издания: 2020
Кол-во страниц: 323
Дополнительно
Вид издания:
Научно-популярная литература
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-00101-884-1
Артикул: 747799.01.99
Эта книга подходит для всех новичков, которые хотят максимально использовать возможности Raspberry Pi, будь то дети, мечтающие открыть для себя мир электроники и программирования, родители и педагоги, желающие им помочь, или же любители и изобретатели, намеревающиеся с помощью Raspberry Pi воплотить свои идеи в жизнь.
Мы совсем не предполагаем, что вы знакомы с Raspberry Pi и к тому же разбираетесь в схемотехнике или программировании. Этому вы научитесь, прочитав книгу. Но если у вас уже есть некоторые базовые навыки, то эта книга поможет развить их и дать вам идеи, что делать дальше.
Тематика:
ББК:
УДК:
- 004: Информационные технологии. Вычислительная техника...
- 087: Издания для молодежи. Детская, юношеская литература. Книги для самых маленьких. Книжки с картинками
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
EASY PROJECTS SAN FRANCISCO
Москва Лаборатория знаний 2020 RASPBERRY PI Перевод с английского М. А. Федотенко 20 простых проектов ИГРУШКИ, ИНСТРУМЕНТЫ, ГАДЖЕТЫ и многое другое Электронное издание на Руи Сантос и Сара Сантос
УДК 087.5:004 ББК 32.816 С18 Сантос Р. С18 20 простых проектов на Raspberry Pi R○. Игрушки, инструменты, гаджеты и многое другое / Р. Сантос, С. Сантос ; пер. с англ. М. А. Федотенко. — Электрон. изд. — М. : Лаборатория знаний, 2020. — 323 с. — Систем. требования: Adobe Reader XI ; экран 10". — Загл. с титул. экрана. — Текст : электронный. ISBN 978-5-00101-884-1 Эта книга подходит для всех новичков, которые хотят максимально использовать возможности Raspberry Pi, будь то дети, мечтающие открыть для себя мир электроники и программирования, родители и педагоги, желающие им помочь, или же любители и изобретатели, намеревающиеся с помощью Raspberry Pi воплотить свои идеи в жизнь. Мы совсем не предполагаем, что вы знакомы с Raspberry Pi и к тому же разбираетесь в схемотехнике или программировании. Этому вы научитесь, прочитав книгу. Но если у вас уже есть некоторые базовые навыки, то эта книга поможет развить их и дать вам идеи, что делать дальше. УДК 087.5:004 ББК 32.816 Деривативное издание на основе печатного аналога: 20 простых проектов на Raspberry Pi R○. Игрушки, инструменты, гаджеты и многое другое / Р. Сантос, С. Сантос ; пер. с англ. М. А. Федотенко. — М. : Лаборатория знаний, 2020. — 320 с. : ил. — ISBN 978-5-00101-231-3. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации ISBN 978-5-00101-884-1 c○ Copyright 2018 by Rui Santos and Sara Santos. Англоязычное оригинальное название: 20 Easy Raspberry Pi Projects: Toys, Tools, Gadgets, and More! ISBN 978-1-59327-843-4, опубликовано No Starch Press. Все права защищены. c○ Лаборатория знаний, 2020 4
Оглавление Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Для кого эта книга?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 О книге . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Что вам понадобится для реализации проектов данной книги? . . . . . . 14 Структура книги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Руководство для начинающих . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Начало работы с платой Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Возможности использования Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . 19 Различия между версиями плат Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . 20 Знакомство с Raspberry Pi и ее компонентами . . . . . . . . . . . . . . . . . . . . . . 21 Список необходимых компонентов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Загрузка операционной системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 • Загрузка NOOBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 • Форматирование карты microSD в Windows или macOS. . . . . . . . . 27 • Форматирование карты microSD в Linux . . . . . . . . . . . . . . . . . . . . . . . 29 • Загрузка Raspbian на карту памяти microSD . . . . . . . . . . . . . . . . . . . . 31 Настройка Raspberry Pi в качестве настольного компьютера . . . . . . . . 31 • Подключение Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 • Первый запуск вашей Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 • Обзор рабочего стола . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 • Выключение, перезагрузка и выход из системы . . . . . . . . . . . . . . . . . 41 Знакомство с языком Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Интегрированная среда разработки Python 3 . . . . . . . . . . . . . . . . . . . . . . . 42 Основные команды Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Редактор Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Ваша первая программа на Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Разработка простого калькулятора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 СВЕТОДИОДЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Проект 1. Мигание светодиодом. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Знакомство с портами GPIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Оглавление Знакомство со светодиодами. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Подбор подходящего резистора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 • Написание скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 • Запуск скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Проект 2. Кнопочный светодиодный фонарик . . . . . . . . . . . . . . . . . . . . . 69 Знакомство с переключателями и кнопками . . . . . . . . . . . . . . . . . . . . . . . 69 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Проект 3. Регулятор яркости светодиода. . . . . . . . . . . . . . . . . . . . . . . . . . 75 Знакомство с потенциометрами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Чтение аналоговых сигналов с помощью Raspberry Pi. . . . . . . . . . . . . . . 76 • Аналого-цифровые преобразователи. . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 • Широтно-импульсная модуляция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Программирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 • Написание скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 • Запуск скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Проект 4. Графический пользовательский интерфейс для управления многоцветным светодиодом. . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Знакомство с RGB-светодиодами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Программирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 • Управление интенсивностью цвета и закрытие окна . . . . . . . . . . . . 90 • Проектирование пользовательского интерфейса с помощью Tkinter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 • Запуск скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Проект 5. Радужная светодиодная лента . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Знакомство с адресуемой лентой RGB-светодиодов WS2812B . . . . . . 95 Знакомство с преобразователем логического уровня. . . . . . . . . . . . . . . . 97 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 • Установка библиотеки WS281X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 • Подключение интерфейса SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 • Написание скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 • Запуск скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Оглавление ДИСПЛЕИ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Проект 6. Отображение напоминаний на ЖК-дисплее. . . . . . . . . . . . . 111 Знакомство с ЖК-дисплеями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 • Пайка штыревого разъема . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 • Назначение выводов ЖК-модуля. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 • Подключение библиотеки Python для символьных ЖКдисплеев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 • Вывод символьного сообщения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 • Добавление дополнительных функций. . . . . . . . . . . . . . . . . . . . . . . . . . 118 • Прокрутка сообщения напоминания . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 • Запуск скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Проект 7. Мини-устройство прогноза погоды. . . . . . . . . . . . . . . . . . . . . . 125 Знакомство с OLED-дисплеями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Использование API-сервиса OpenWeatherMap . . . . . . . . . . . . . . . . . . . . . 126 • Структура синтаксиса JSON. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 • Создание API-запроса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 • Установка библиотеки для OLED-дисплея. . . . . . . . . . . . . . . . . . . . . . 133 • Активация протокола I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 • Написание скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 • Запуск скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Проект 8. Игра в Pong с Sense HAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Знакомство с Pong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Знакомство с платой расширения Sense HAT для Raspberry Pi . . . . . . 142 • Монтаж платы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 • Применение эмулятора платы Sense HAT . . . . . . . . . . . . . . . . . . . . . . . 143 Работа с функциями и управлением Sense HAT. . . . . . . . . . . . . . . . . . . . . 144 • Управление светодиодной матрицей . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 • Чтение данных с джойстика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 • Написание скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 • Запуск скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 ДАТЧИКИ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Проект 9. Сенсорная погодная станция «все-в-одном» . . . . . . . . . . . . 159 Sense HAT как метеостанция. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 • Датчик температуры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 • Датчик влажности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 • Датчик атмосферного давления. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Чтение показаний температуры, влажности и давления . . . . . . . . . . . . . 161 Создание пользовательского интерфейса для считанных данных . . . . 163 Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 • Создание пользовательского интерфейса . . . . . . . . . . . . . . . . . . . . . . . 166 • Автоматическое обновление данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 • Запуск скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Проект 10. Охранная сигнализация с уведомлением по e-mail . . . . . 171 Знакомство с PIR-датчиком движения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Отправка e-mail из Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 • Поиск настроек вашего SMTP-сервера. . . . . . . . . . . . . . . . . . . . . . . . . . 172 • Скрипт для отправки e-mail-сообщения. . . . . . . . . . . . . . . . . . . . . . . . . 173 • Запуск скрипта, отправляющего e-mail-сообщение . . . . . . . . . . . . . . 175 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Проект 11. Газовая и дымовая сигнализация. . . . . . . . . . . . . . . . . . . . . . . 183 Знакомство с датчиком газа и дыма MQ-2 . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Знакомство с пьезоэлектрическим зуммером . . . . . . . . . . . . . . . . . . . . . . . 185 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 • Установка порогового значения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 • Запуск скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Проект 12. Регистратор температуры и влажности . . . . . . . . . . . . . . . . 193 Знакомство с датчиком DHT22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 • Установка библиотеки DHT22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 • Написание скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 • Создание, редактирование и закрытие файлов .txt. . . . . . . . . . . . . . . 198 • Запуск скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 КАМЕРЫ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Проект 13. Детектор взлома с фоторегистрацией . . . . . . . . . . . . . . . . . 203 Знакомство с модулем камеры V2 Raspberry Pi . . . . . . . . . . . . . . . . . . . . . 203 Создание детектора взлома . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 • Активация камеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 • Подключение камеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 • Написание скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 • Запуск скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Оглавление
Проект 14. Система домашнего видеонаблюдения . . . . . . . . . . . . . . . . 213 Запись видео в файл. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 • Написание скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 • Запуск скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 ВЕБ-ПРИЛОЖЕНИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Проект 15. Ваш первый веб-сайт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Создание файлов проекта. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Создание веб-страницы на языке HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 • Создание базовой структуры веб-страницы . . . . . . . . . . . . . . . . . . . . . 224 • Добавление названия веб-страницы, заголовков и абзацев . . . . . . . 225 • Просмотр вашей веб-страницы в браузере . . . . . . . . . . . . . . . . . . . . . . 227 • Добавление ссылок, изображений и кнопок . . . . . . . . . . . . . . . . . . . . . 227 Изменение стилей веб-страницы с помощью CSS . . . . . . . . . . . . . . . . . . 231 • Подключение таблицы стилей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 • Применение стилей к HTML-файлу . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 • Применение стилей к верхнему колонтитулу. . . . . . . . . . . . . . . . . . . . 232 • Применение стилей к классу title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 • Применение стилей к заголовкам, абзацам и ссылкам . . . . . . . . . . . 236 • Применение стилей к кнопкам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 Проект 16. Подключение электроники к Интернету . . . . . . . . . . . . . . . 241 Знакомство с веб-серверами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 Знакомство с релейным модулем. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 • Контакты релейного модуля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 • Использование реле . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 Обзор проекта. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 Подготовка Pi к работе в качестве веб-сервера . . . . . . . . . . . . . . . . . . . . . . 248 • Установка Flask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 • Организация файлов проекта. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 • Создание веб-сервера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 • Создание HTML-файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 • Создание файла CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 • Запуск веб-сервера. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Проект 17. Создание центра управления Интернетом вещей с помощью Node-RED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Знакомство с Node-RED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 • Установка узлов DHT22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 • Начало работы с Node-RED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Оглавление
Оглавление Создание потока Node-RED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 • Создание панели инструментов пользовательского интерфейса . 264 • Подключение узлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Запуск приложения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 ИГРЫ И ИГРУШКИ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Проект 18. Цифровая барабанная установка . . . . . . . . . . . . . . . . . . . . . . 275 Подготовка аудиофайлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 • Настройка аудио. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 • Получение нужных семплов аудиофайлов . . . . . . . . . . . . . . . . . . . . . . 276 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 Программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 Проект 19. Игра Hungry Monkey на языке Scratch. . . . . . . . . . . . . . . . . 283 Знакомство со Scratch 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 Создание скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 • Создание спрайтов и выбор фона сцены . . . . . . . . . . . . . . . . . . . . . . . . 287 • Редактирование спрайтов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 • Добавление элементов управления в спрайт обезьянки . . . . . . . . . . 289 • Тестирование скрипта. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 • Создание таймера обратного отсчета. . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 • Подсчет и отображение результатов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 • Падение бананов с неба . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 • Добавление гнилых бананов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 Запуск игры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 Проект 20. Робот с дистанционным Wi-Fi-управлением . . . . . . . . . . . 301 Краткое описание проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 Подготовка Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 Сборка схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 • Подключение двигателей к модулю MotoZero . . . . . . . . . . . . . . . . . . 305 • Управление двигателями с помощью MotoZero . . . . . . . . . . . . . . . . . 307 Разработка приложения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 • Определение IP-адреса Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 • Создание потока Node-RED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 • Написание скрипта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 Запуск приложения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 Запуск робота . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Идеи для продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 Приложения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 Приложение А. Руководство по портам GPIO Raspberry Pi . . . . . . . . . 317 Приложение Б. Таблица цветовой маркировки резисторов . . . . . . . . . . 319