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

20 простых проектов на Raspberry Pi®. Игрушки, инструменты, гаджеты и многое другое

Покупка
Артикул: 747799.01.99
Эта книга подходит для всех новичков, которые хотят максимально использовать возможности Raspberry Pi, будь то дети, мечтающие открыть для себя мир электроники и программирования, родители и педагоги, желающие им помочь, или же любители и изобретатели, намеревающиеся с помощью Raspberry Pi воплотить свои идеи в жизнь. Мы совсем не предполагаем, что вы знакомы с Raspberry Pi и к тому же разбираетесь в схемотехнике или программировании. Этому вы научитесь, прочитав книгу. Но если у вас уже есть некоторые базовые навыки, то эта книга поможет развить их и дать вам идеи, что делать дальше.
Сантос, Р. 20 простых проектов на Raspberry Pi®. Игрушки, инструменты, гаджеты и многое другое : научно-популярное издание / Р. Сантос, С. Сантос ; пер. с англ. М. А. Федотенко. - Москва : Лаборатория знаний, 2020. - 323 с. - ISBN 978-5-00101-884-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/1203930 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов

                                    
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