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