Содержание |
страница |
Об авторе |
15 |
Об изображении на обложке |
16 |
Введение |
17 |
Принятые условные обозначения |
18 |
Примеры исходных кодов |
19 |
Ждем ваших отзывов! |
20 |
Глава 1. Настройка и подготовка к работе |
21 |
Введение |
21 |
1.1. Выбор модели |
21 |
1.2. Корпус |
23 |
1.3. Источник питания |
25 |
1.4. Выбор операционной системы |
28 |
1.5. Запись операционной системы на карту памяти |
29 |
1.6. Монтаж оборудования |
31 |
1.7. Подключение монитора |
33 |
1.8. Подключение монитора к порту композитного видеосигнала |
33 |
1.9. Изменение размера экрана |
35 |
1.10. Увеличение производительности |
37 |
1.11. Изменение пароля |
39 |
1.12. Запуск графического интерфейса |
40 |
1.13. Завершение работы |
41 |
1.14. Подключение модуля камеры |
43 |
1.15. Установка адаптера Bluetooth |
46 |
Глава 2. Работа в сети |
49 |
Введение |
49 |
2.1. Проводное подключение к сети |
49 |
2.2. Определение IP-адреса платы Raspberry Pi |
51 |
2.3. Назначение статического IP-адреса для Raspberry Pi |
53 |
2.4. Сетевое имя Raspberry Pi |
55 |
2.5. Установка беспроводного соединения с Raspberry Pi |
56 |
2.6. Подключение к компьютеру с помощью консольного кабеля |
59 |
2.7. Удаленное управление Raspberry Pi через SSH |
62 |
2.8. Удаленное управление Raspberry Pi через VNC |
64 |
2.9. Удаленное управление Raspberry Pi с помощью RDP |
66 |
2.10. Обмен файлами в сети |
67 |
2.11. Управление рабочим столом Raspberry Pi из Mac |
69 |
2.12. Raspberry Pi как сетевое хранилище данных |
71 |
2.13. Управление сетевым принтером из Raspberry Pi |
74 |
Глава 3. Операционная система |
77 |
Введение |
77 |
3.1. Графический режим |
77 |
3.2. Выполнение команд из терминала |
78 |
3.3. Управление файлами из терминала |
80 |
3.4. Копирование файла или каталога |
83 |
3.5. Переименование файла или каталога |
84 |
3.6. Редактирование файла |
85 |
3.7. Просмотр файла |
88 |
3.8. Создание файла без использования редактора |
88 |
3.9. Создание каталога |
89 |
3.10. Удаление файла или каталога |
90 |
3.11. Полномочия суперпользователя |
91 |
3.12. Права доступа к файлам |
92 |
3.13. Изменение прав доступа к файлу |
94 |
3.14. Изменение владельца файла |
95 |
3.15. Получение снимка экрана |
96 |
3.16. Установка программного обеспечения: утилита apt-get |
97 |
3.17. Удаление программного обеспечения |
98 |
3.18. Установка пакетов Python: менеджер пакетов Pip |
99 |
3.19. Загрузка файлов из командной строки |
100 |
3.20. Загрузка кода из git-репозиториев |
101 |
3.21. Автоматический запуск программы или сценария при загрузке системы |
102 |
3.22. Автоматический запуск программы как службы |
102 |
3.23. Автоматический запуск программы или сценария по расписанию |
104 |
3.24. Поиск файлов |
106 |
3.25. Журнал командной строки |
107 |
3.26. Диспетчер задач |
108 |
3.27. Архивирование файлов |
111 |
3.28. Просмотр подключенных устройств |
112 |
3.29. Сохранение содержимого командной строки в файл |
112 |
3.30. Объединение файлов |
113 |
3.31. Конвейер |
114 |
3.32. Сокрытие результатов выполнения команды |
114 |
3.33. Запуск программы в фоновом режиме |
115 |
3.34. Быстрый запуск программ |
116 |
3.35. Установка даты и времени |
117 |
3.36. Определение свободного места на карте памяти |
117 |
Глава 4. Программное обеспечение |
119 |
Введение |
119 |
4.1. Создание мультимедийного центра |
119 |
4.2. Установка офисных приложений |
121 |
4.3. Установка сторонних браузеров |
123 |
4.4. Магазин Raspberry Pi |
125 |
4.5. Создание сервера с веб-камерой |
126 |
4.6. Эмулятор старых консольных видеоигр |
128 |
4.7. Minecraft на Raspberry Pi |
130 |
4.8. Создание сервера Minecraft |
132 |
4.9. Запуск Open Arena |
135 |
4.10. Радиопередатчик |
136 |
4.11. Графический редактор GIMP |
138 |
4.12. Интернет-радио |
139 |
Глава 5. Язык программирования Python |
141 |
Введение |
141 |
5.1. Python 2 или Python 3 |
141 |
5.2. Редактирование программ в интегрированной среде разработки |
142 |
5.3. Выполнение команд Python на консоли |
145 |
5.4. Запуск программ Python из терминала |
146 |
5.5. Переменные |
147 |
5.6. Вывод значений |
148 |
5.7. Получение данных от пользователя |
148 |
5.8. Математические вычисления |
149 |
5.9. Работа со строками |
150 |
5.10. Объединение (конкатенация) строк |
151 |
5.11. Преобразование чисел в строки |
152 |
5.12. Преобразование строк в числа |
153 |
5.13. Определение длины строки |
154 |
5.14. Определение положения строки в другой строке |
154 |
5.15. Извлечение части строки |
155 |
5.16. Замена символов внутри строки |
156 |
5.17. Изменение регистра символов строки |
157 |
5.18. Условное выполнение команд |
158 |
5.19. Сравнение значений |
159 |
5.20. Логические операторы |
160 |
5.21. Повторное выполнение инструкций заданное количество раз |
161 |
5.22. Выполнение цикла по условию |
162 |
5.23. Прерывание цикла по условию |
163 |
5.24. Объявление функции |
164 |
Глава 6. Списки и словари Python |
167 |
Введение |
167 |
6.1. Создание списка |
167 |
6.2. Работа с элементами списка |
168 |
6.3. Длина списка |
169 |
6.4. Добавление элементов в список |
169 |
6.5. Удаление элементов списка |
170 |
6.6. Создание списка из строки |
171 |
6.7. Обработка элементов списка |
172 |
6.8. Индексация элементов списка |
172 |
6.9. Сортировка списка |
173 |
6.10. Урезание списка |
174 |
6.11. Применение функции к списку |
175 |
6.12. Создание словаря |
176 |
6.13. Доступ к записям словаря |
178 |
6.14. Удаление записей из словаря |
179 |
6.15. Обработка данных словаря |
179 |
Глава 7. Специальные возможности Python |
181 |
Введение |
181 |
7.1. Форматирование чисел |
181 |
7.2. Форматы даты и времени |
182 |
7.3. Возвращение нескольких значений |
183 |
7.4. Определение класса |
184 |
7.5. Определение метода |
186 |
7.6. Наследование |
187 |
7.7. Запись в файл |
188 |
7.8. Чтение файла |
189 |
7.9. Сериализация данных |
190 |
7.10. Обработка исключений |
191 |
7.11. Программные модули (библиотеки) |
193 |
7.12. Случайные числа |
194 |
7.13. Веб-запрос |
195 |
7.14. Аргументы, переданные из командной строки |
196 |
7.15. Выполнение команд Linux из Python |
197 |
7.16. Отправка электронной почты из Python |
198 |
7.17. Простой веб-сервер, написанный на Python |
199 |
7.18. Многопоточность |
201 |
7.19. Приостановка действий |
202 |
7.20. Python и Minecraft |
203 |
Глава 8. Машинное зрение |
207 |
Введение |
207 |
8.1. Программное обеспечение для машинного зрения |
207 |
8.2. Настройка камеры, подключенной к USB-порту |
208 |
8.3. Настройка модуля камеры |
210 |
8.4. Подсчет монет |
212 |
8.5. Распознавание лиц |
216 |
8.6. Обнаружение движения |
219 |
8.7. Оптическое распознавание текста |
222 |
Глава 9. Обзор оборудования |
225 |
Введение |
225 |
9.1. Интерфейс GPIO |
225 |
9.2. Безопасная работа с выводами GPIO |
228 |
9.3. Настройка интерфейса I2C |
230 |
9.4. Проверка I2C-подключения |
232 |
9.5. Настройка интерфейса SPI |
234 |
9.6. Управление последовательным портом: библиотека PySerial |
234 |
9.7. Тестирование последовательного порта: утилита Minicom |
235 |
9.8. Макетная плата и перемычки |
237 |
9.9. Подключение выводов GPIO к макетной плате с помощью шлейфа |
238 |
9.10. Подключение светодиода к порту GPIO |
241 |
9.11. Подключение кнопки к выводам GPIO |
243 |
9.12. Изменение уровня сигнала с 5 до 3,3 В |
244 |
9.13. Изменение уровня сигналов с помощью многоканального преобразователя |
246 |
9.14. Питание от блока батарей |
247 |
9.15. Питание от литий-полимерных аккумуляторов |
250 |
9.16. Сосредоточение датчиков: модуль Sense HAT |
252 |
9.17. Модуль Explorer HAT Pro |
254 |
9.18. Модуль RaspiRobot Board V3 |
256 |
9.19. Макетная плата Pi Plate |
258 |
9.20. Создание интерфейсной платы стандарта HAT |
263 |
9.21. Raspberry Pi Compute Module |
266 |
9.22. Raspberry Pi Zero |
268 |
Глава 10. Работа с внешним оборудованием |
271 |
Введение |
271 |
10.1. Подключение светодиода |
271 |
10.2. Защита выводов GPIO от повреждения |
274 |
10.3. Изменение яркости светодиода |
275 |
10.4. Зуммер |
278 |
10.5. Управление питанием мощных устройств постоянного тока с помощью транзистора |
280 |
10.6. Управление питанием мощных устройств с помощью реле |
282 |
10.7. Управление устройствами высокого напряжения |
285 |
10.8. Пользовательский интерфейс для устройств переключения питания |
287 |
10.9. Пользовательский интерфейс для генерации ШИМ-сигнала |
289 |
10.10. Изменение цвета светодиода |
290 |
10.11. Управление массивом светодиодов (чарлиплексинг) |
294 |
10.12. Вольтметр как устройство вывода |
297 |
10.13. Обработка прерываний |
299 |
Глава 11. Двигатели |
303 |
Введение |
303 |
11.1. Управление сервоприводом |
303 |
11.2. Повышение стабильности ШИМ-сигнала |
308 |
11.3. Одновременное управление несколькими сервоприводами |
310 |
11.4. Изменение скорости вращения вала двигателя |
314 |
11.5. Изменение направления вращения вала двигателя |
316 |
11.6. Однополярный шаговый двигатель |
322 |
11.7. Биполярный шаговый двигатель |
326 |
11.8. Управление биполярным шаговым двигателем с помощью модуля Stepper Motor HAT |
328 |
11.9. Управление биполярным шаговым двигателем с помощью модуля RaspiRobot Board V3 |
331 |
11.10. Самодвижущийся робот |
333 |
Глава 12. Цифровые входы |
339 |
Введение |
339 |
12.1. Подключение кнопки |
339 |
12.2. Обработка нажатий кнопки |
342 |
12.3. Двухпозиционный или ползунковый переключатель |
344 |
12.4. Трехпозиционный переключатель |
345 |
12.5. Дребезг контактов |
349 |
12.6. Внешний подтягивающий резистор |
351 |
12.7. Датчик угла поворота (поворотный регулятор) |
353 |
12.8. Цифровая клавиатура |
356 |
12.9. Распознавание движения |
360 |
12.10. Подключение GPS-модуля |
362 |
12.11. Обработка нажатий клавиш |
365 |
12.12. Распознавание движений мышью |
368 |
12.13. Модуль часов реального времени |
369 |
Глава 13. Датчики |
375 |
Введение |
375 |
13.1. Резистор как датчик |
375 |
13.2. Датчик света |
380 |
13.3. Термистор и температура |
383 |
13.4. Датчик метана |
387 |
13.5. Измерение напряжения |
390 |
13.6. Понижение измеряемого напряжения |
393 |
13.7. Резистивные датчики |
396 |
13.8. Измерение температуры с помощью АЦП |
398 |
13.9. Измерение температуры процессора Raspberry Pi |
400 |
13.10. Модуль Raspberry Pi Sense HAT |
401 |
13.11. Измерение температуры цифровым датчиком DS18B20 |
404 |
13.12. Подключение акселерометра с помощью микросхемы MCP3008 |
407 |
13.13. Инерциальный измерительный блок Sense HAT |
410 |
13.14. Нахождение северного магнитного полюса |
412 |
13.15. Определение магнитного поля герконовым реле |
413 |
13.16. Определение наличия магнита с помощью Sense HAT |
415 |
13.17. Измерения расстояния |
416 |
13.18. Емкостные датчики прикосновения |
419 |
13.19. Вывод показаний датчиков |
422 |
13.20. Сохранение журнала показаний датчика на USB-накопителе |
423 |
Глава 14. Дисплеи |
427 |
Введение |
427 |
14.1. Четырехразрядный светодиодный индикатор |
427 |
14.2. Матричный светодиодный дисплей I2C |
430 |
14.3. Матричный светодиодный дисплей Sense HAT |
432 |
14.4. Алфавитно-цифровой ЖК-дисплей модуля расширения |
435 |
14.5. Отдельный алфавитно-цифровой ЖК-дисплей |
437 |
14.6. Графический OLED-дисплей |
441 |
14.7. Цветная светодиодная лента |
444 |
Глава 15. Интернет вещей |
449 |
Введение |
449 |
15.1. Управление выводами GPIO через веб-интерфейс |
449 |
15.2. Вывод показаний датчика на веб-странице |
455 |
15.3. Отправка почтовых и других типов сообщений с помощью службы IFTTT |
458 |
15.4. Отправка твитов с помощью службы ThingSpeak |
463 |
15.5. Проект Cheerlights |
465 |
15.6. Передача показаний датчика в службу ThingSpeak |
467 |
15.7. Ответ на твиты с помощью служб Dweet и IFTTT |
470 |