|
Содержание |
страница |
|
Об авторе |
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 |