樹(shù)莓派開(kāi)發(fā)實(shí)戰(zhàn)(第3版)
定 價(jià):109.8 元
- 作者:[英]西蒙·蒙克(Simon Monk)
- 出版時(shí)間:2023/11/1
- ISBN:9787115609083
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561
- 頁(yè)碼:428
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書是對(duì)樹(shù)莓派開(kāi)發(fā)的內(nèi)容進(jìn)行全面升級(jí)之后的第 3 版,囊括豐富的實(shí)踐示例,詳細(xì)講解樹(shù)莓派的配置與管理、網(wǎng)絡(luò)連接、操作系統(tǒng)及軟件,以及使用Python進(jìn)行樹(shù)莓派開(kāi)發(fā)的各項(xiàng)技巧,包括有關(guān)Python編程的基礎(chǔ)知識(shí)、列表與字典、Python高級(jí)特性。同時(shí),本書還涉及機(jī)器視覺(jué)、硬件基礎(chǔ)、控制硬件、電機(jī)、數(shù)字輸入、傳感器、顯示設(shè)備、音頻設(shè)備、物聯(lián)網(wǎng)、家庭自動(dòng)化、Arduino等內(nèi)容。
本書適合程序員、計(jì)算機(jī)軟硬件愛(ài)好者,以及對(duì)樹(shù)莓派感興趣的讀者閱讀,也適合作為樹(shù)莓派相關(guān)實(shí)踐課程的指導(dǎo)書。
這是一本全面升級(jí)的實(shí)戰(zhàn)圖書,通過(guò)200多個(gè)動(dòng)手實(shí)驗(yàn)為讀者演示了如何在樹(shù)莓派上運(yùn)行Linux系統(tǒng),如何利用Python對(duì)樹(shù)莓派進(jìn)行編程,如何將樹(shù)莓派與傳感器、電機(jī)和Arduino進(jìn)行連接,以及如何將樹(shù)莓派用于物聯(lián)網(wǎng)。
本書涉及以下主題:
(1)配置樹(shù)莓派并連接網(wǎng)絡(luò)
(2)使用基于Linux的操作系統(tǒng)
(3)使用Python進(jìn)行樹(shù)莓派編程
(4)通過(guò)機(jī)器視覺(jué)讓樹(shù)莓派“睜眼看世界”
(5)通過(guò)GPIO接口控制硬件
(6)通過(guò)樹(shù)莓派控制不同類型的電機(jī)
(7)使用開(kāi)關(guān)、鍵盤及其他數(shù)字輸入
(8)通過(guò)傳感器測(cè)量溫度、亮度和距離
(9)利用各種方式連接物聯(lián)網(wǎng)并實(shí)現(xiàn)家庭自動(dòng)化
西蒙·蒙克博士(Dr. Simon Monk)已經(jīng)撰寫了很多關(guān)于電子學(xué)和開(kāi)源硬件的圖書,他還為MonkMakes公司設(shè)計(jì)產(chǎn)品,這是他與妻子Linda共同經(jīng)營(yíng)的一家公司。同時(shí),他還是移動(dòng)軟件公司Momote Ltd.的聯(lián)合創(chuàng)始人,并擁有軟件工程博士學(xué)位以及控制論和計(jì)算機(jī)科學(xué)的學(xué)士學(xué)位。
第3版前言 1
第1章 配置與管理 5
1.0 引言 5
1.1 選擇樹(shù)莓派型號(hào) 5
1.2 裝配系統(tǒng) 8
1.3 封裝樹(shù)莓派 10
1.4 選擇電源 11
1.5 選擇操作系統(tǒng) 13
1.6 通過(guò)NOOBS刷寫microSD卡 14
1.7 在不借助NOOBS的情況下安裝操作系統(tǒng) 17
1.8 使用PiBakery配置和刷寫SD卡 18
1.9 使用PiBakery配置headless模式的樹(shù)莓派 20
1.10 從真正的硬盤或U盤啟動(dòng) 22
1.11 連接DVI或VGA顯示器 24
1.12 使用復(fù)合視頻顯示器/電視 24
1.13 調(diào)整顯示器中的圖像尺寸 26
1.14 優(yōu)化性能 27
1.15 修改密碼 29
1.16 關(guān)閉樹(shù)莓派 30
1.17 為樹(shù)莓派安裝攝像頭模塊 32
1.18 使用藍(lán)牙設(shè)備 34
第2章 網(wǎng)絡(luò)連接 36
2.0 引言 36
2.1 連接有線網(wǎng)絡(luò) 36
2.2 查看自己的IP地址 37
2.3 配置靜態(tài)IP地址 39
2.4 為樹(shù)莓派配置網(wǎng)絡(luò)名稱 42
2.5 配置無(wú)線網(wǎng)絡(luò)連接 44
2.6 使用控制臺(tái)線聯(lián)網(wǎng) 46
2.7 利用SSH遠(yuǎn)程控制樹(shù)莓派 48
2.8 利用VNC遠(yuǎn)程控制樹(shù)莓派 50
2.9 利用RDP遠(yuǎn)程控制樹(shù)莓派 52
2.10 在Mac網(wǎng)絡(luò)中實(shí)現(xiàn)文件共享 53
2.11 將樹(shù)莓派用作網(wǎng)絡(luò)附接存儲(chǔ)系統(tǒng) 55
2.12 網(wǎng)絡(luò)打印 58
第3章 操作系統(tǒng) 60
3.0 引言 60
3.1 通過(guò)圖形界面處理文件 60
3.2 將文件復(fù)制到U盤中 61
3.3 啟動(dòng)一個(gè)終端會(huì)話 63
3.4 利用終端瀏覽文件系統(tǒng) 64
3.5 復(fù)制文件或文件夾 66
3.6 重命名文件和文件夾 67
3.7 編輯文件 68
3.8 查看文件內(nèi)容 70
3.9 在不借助編輯器的情況下創(chuàng)建文件 70
3.10 創(chuàng)建目錄 71
3.11 刪除文件或目錄 71
3.12 以超級(jí)用戶權(quán)限執(zhí)行任務(wù) 72
3.13 理解文件權(quán)限 73
3.14 修改文件的權(quán)限 75
3.15 修改文件的屬主 76
3.16 屏幕截圖 76
3.17 利用apt-get安裝軟件 77
3.18 刪除利用apt-get安裝的軟件 78
3.19 利用Pip安裝Python庫(kù) 79
3.20 通過(guò)命令行獲取文件 79
3.21 利用Git獲取源代碼 80
3.22 獲取本書的隨附代碼 82
3.23 在系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行程序或腳本 85
3.24 讓程序或腳本作為服務(wù)自動(dòng)運(yùn)行 85
3.25 定期自動(dòng)運(yùn)行程序或腳本 87
3.26 搜索功能 88
3.27 使用命令行歷史記錄功能 89
3.28 監(jiān)視處理器活動(dòng) 90
3.29 文件壓縮 92
3.30 列出已連接的USB設(shè)備 93
3.31 將輸出從命令行重定向到文件 93
3.32 連接文件 94
3.33 使用管道 94
3.34 不將輸出結(jié)果顯示到終端 95
3.35 在后臺(tái)運(yùn)行程序 96
3.36 創(chuàng)建命令別名 96
3.37 設(shè)置日期和時(shí)間 97
3.38 查看SD卡剩余存儲(chǔ)空間 98
3.39 檢查操作系統(tǒng)版本 98
3.40 更新Raspbian操作系統(tǒng) 99
第4章 軟件 101
4.0 引言 101
4.1 搭建媒體中心 101
4.2 安裝辦公軟件 102
4.3 打造網(wǎng)絡(luò)攝像頭服務(wù)器 103
4.4 運(yùn)行老式游戲控制臺(tái)模擬器 105
4.5 運(yùn)行樹(shù)莓派版Minecraft 107
4.6 樹(shù)莓派無(wú)線電發(fā)射器 107
4.7 編輯位圖 109
4.8 編輯矢量圖 110
4.9 互聯(lián)網(wǎng)廣播 111
第5章 Python入門 113
5.0 引言 113
5.1 在Python 2和Python 3之間做出選擇 113
5.2 使用Mu編輯Python程序 114
5.3 使用Python控制臺(tái) 117
5.4 利用終端運(yùn)行Python程序 118
5.5 為值(變量)命名 119
5.6 顯示輸出結(jié)果 120
5.7 讀取用戶的輸入 120
5.8 算術(shù)運(yùn)算 121
5.9 創(chuàng)建字符串 122
5.10 連接(合并)字符串 122
5.11 將數(shù)字轉(zhuǎn)換為字符串 123
5.12 將字符串轉(zhuǎn)換為數(shù)字 124
5.13 確定字符串的長(zhǎng)度 125
5.14 確定某字符串在另一個(gè)字符串中的位置 125
5.15 截取部分字符串 126
5.16 使用字符串替換另一個(gè)字符串中的內(nèi)容 127
5.17 字符串的大小寫轉(zhuǎn)換 127
5.18 根據(jù)條件運(yùn)行命令 128
5.19 值的比較 129
5.20 邏輯運(yùn)算符 130
5.21 將指令重復(fù)執(zhí)行特定次數(shù) 131
5.22 重復(fù)執(zhí)行指令直到特定條件改變?yōu)橹? 132
5.23 跳出循環(huán)語(yǔ)句 132
5.24 定義Python函數(shù) 133
第6章 Python中的列表與字典 135
6.0 引言 135
6.1 創(chuàng)建列表 135
6.2 訪問(wèn)列表元素 136
6.3 確定列表長(zhǎng)度 136
6.4 為列表添加元素 137
6.5 刪除列表元素 138
6.6 通過(guò)解析字符串創(chuàng)建列表 139
6.7 遍歷列表 139
6.8 枚舉列表 140
6.9 列表排序 141
6.10 分割列表 142
6.11 將函數(shù)應(yīng)用于列表 142
6.12 創(chuàng)建字典 143
6.13 訪問(wèn)字典 144
6.14 刪除字典元素 145
6.15 遍歷字典 146
第7章 Python高級(jí)特性 147
7.0 引言 147
7.1 格式化數(shù)字 147
7.2 格式化時(shí)間和日期 148
7.3 返回多個(gè)值 149
7.4 定義類 150
7.5 定義方法 151
7.6 繼承 152
7.7 向文件中寫入內(nèi)容 153
7.8 讀文件 154
7.9 序列化 155
7.10 異常處理 156
7.11 使用模塊 157
7.12 隨機(jī)數(shù) 158
7.13 利用Python發(fā)送Web請(qǐng)求 160
7.14 Python的命令行參數(shù) 160
7.15 從Python運(yùn)行Linux命令 161
7.16 從Python發(fā)送電子郵件 162
7.17 利用Python編寫簡(jiǎn)單Web服務(wù)器 163
7.18 讓Python無(wú)所事事 164
7.19 同時(shí)進(jìn)行多件事情 165
7.20 將Python應(yīng)用于樹(shù)莓派版Minecraft 166
7.21 解析JSON 168
7.22 創(chuàng)建用戶界面 169
7.23 使用正則表達(dá)式在文本中搜索 171
7.24 使用正則表達(dá)式來(lái)驗(yàn)證數(shù)據(jù)輸入 173
7.25 使用正則表達(dá)式抓取網(wǎng)頁(yè) 174
第8章 機(jī)器視覺(jué) 176
8.0 引言 176
8.1 安裝SimpleCV 176
8.2 為機(jī)器視覺(jué)配置USB攝像頭 177
8.3 將樹(shù)莓派的攝像頭模塊用于機(jī)器視覺(jué) 179
8.4 數(shù)硬幣 179
8.5 人臉檢測(cè) 182
8.6 運(yùn)動(dòng)檢測(cè) 184
8.7 光學(xué)字符識(shí)別 186
第9章 硬件基礎(chǔ) 187
9.0 引言 187
9.1 GPIO連接器使用說(shuō)明 187
9.2 使用GPIO接口時(shí)樹(shù)莓派的安全保護(hù) 189
9.3 配置I2C 190
9.4 使用I2C工具 191
9.5 配置SPI 193
9.6 安裝PySerial以便通過(guò)Python訪問(wèn)串口 194
9.7 安裝Minicom以檢測(cè)串口 194
9.8 使用帶有跳線的面包板 195
9.9 使用樹(shù)莓派的排線連接面包板 196
9.10 使用樹(shù)莓派Squid 198
9.11 使用Raspberry Squid按鈕 199
9.12 利用兩個(gè)電阻器將5V信號(hào)轉(zhuǎn)換為3.3V 200
9.13 利用電平轉(zhuǎn)換模塊將5V信號(hào)轉(zhuǎn)換為3.3V 201
9.14 利用電池為樹(shù)莓派供電 202
9.15 利用鋰電池為樹(shù)莓派供電 203
9.16 Sense HAT入門指南 204
9.17 Explorer HAT Pro入門指南 205
9.18 RasPiRobot Board入門指南 207
9.19 使用Pi Plate原型板 208
9.20 制作樹(shù)莓派擴(kuò)展板 211
9.21 樹(shù)莓派Zero與W型樹(shù)莓派Zero 213
第10章 控制硬件 215
10.0 引言 215
10.1 連接LED 215
10.2 讓GPIO引腳進(jìn)入安全狀態(tài) 218
10.3 控制LED的亮度 218
10.4 利用晶體管開(kāi)關(guān)大功率直流設(shè)備 220
10.5 使用繼電器控制大功率設(shè)備的開(kāi)關(guān) 222
10.6 控制高壓交流設(shè)備 224
10.7 用Android手機(jī)和藍(lán)牙控制硬件 225
10.8 編寫用于控制開(kāi)關(guān)的用戶界面 228
10.9 編寫控制LED和電機(jī)的PWM功率的用戶界面 229
10.10 改變RGB LED的顏色 230
10.11 將模擬儀表用作顯示器 232
第11章 電機(jī) 235
11.0 引言 235
11.1 控制伺服電機(jī) 235
11.2 精確控制伺服電機(jī) 239
11.3 精確控制多臺(tái)伺服電機(jī) 241
11.4 控制直流電機(jī)的速度 243
11.5 控制直流電機(jī)的方向 244
11.6 使用單極步進(jìn)電機(jī) 247
11.7 使用雙極步進(jìn)電機(jī) 251
11.8 利用步進(jìn)電機(jī)HAT驅(qū)動(dòng)雙極步進(jìn)電機(jī) 252
11.9 使用RasPiRobot Board驅(qū)動(dòng)雙極步進(jìn)電機(jī) 253
11.10 打造一款簡(jiǎn)單的機(jī)器人小車 255
第12章 數(shù)字輸入 258
12.0 引言 258
12.1 連接按鈕開(kāi)關(guān) 258
12.2 通過(guò)按鈕開(kāi)關(guān)切換開(kāi)關(guān)狀態(tài) 261
12.3 使用雙位撥動(dòng)開(kāi)關(guān)或滑動(dòng)開(kāi)關(guān) 262
12.4 使用三位撥動(dòng)開(kāi)關(guān) 263
12.5 按鈕去抖 265
12.6 使用外部上拉電阻器 267
12.7 使用旋轉(zhuǎn)(正交)編碼器 268
12.8 使用數(shù)字鍵盤 271
12.9 檢測(cè)移動(dòng) 273
12.10 為樹(shù)莓派添加GPS模塊 275
12.11 攔截按鍵 278
12.12 攔截鼠標(biāo)移動(dòng) 279
12.13 使用實(shí)時(shí)時(shí)鐘模塊 280
12.14 為樹(shù)莓派提供重啟按鈕 283
第13章 傳感器 286
13.0 引言 286
13.1 使用電阻式傳感器 286
13.2 測(cè)量亮度 289
13.3 利用熱敏電阻器測(cè)量溫度 290
13.4 檢測(cè)甲烷 292
13.5 測(cè)量二氧化碳濃度 294
13.6 測(cè)量電壓 296
13.7 為測(cè)量而降低電壓 298
13.8 使用電阻式傳感器與ADC 300
13.9 使用ADC測(cè)量溫度 301
13.10 測(cè)量樹(shù)莓派的CPU溫度 303
13.11 利用Sense HAT測(cè)量溫度、濕度和氣壓 304
13.12 利用數(shù)字傳感器測(cè)量溫度 306
13.13 利用MMA8452Q模塊測(cè)量加速度 308
13.14 使用Sense HAT檢測(cè)磁北 312
13.15 使用Sense HAT的慣性管理單元 313
13.16 利用簧片開(kāi)關(guān)檢測(cè)磁場(chǎng) 314
13.17 利用Sense HAT感應(yīng)磁場(chǎng) 315
13.18 測(cè)量距離 316
13.19 使用飛行時(shí)間傳感器測(cè)量距離 318
13.20 電容式觸摸傳感技術(shù) 320
13.21 用RFID讀寫器讀取智能卡 322
13.22 顯示傳感器的值 325
13.23 利用USB閃存驅(qū)動(dòng)器記錄日志 326
第14章 顯示設(shè)備 328
14.0 引言 328
14.1 使用四位LED顯示設(shè)備 328
14.2 在I2C LED矩陣上面顯示消息 330
14.3 使用Sense HAT LED矩陣顯示器 332
14.4 在Alphanumeric LCD HAT上顯示消息 333
14.5 使用OLED圖形顯示器 335
14.6 使用可尋址的RGB LED燈條 337
14.7 使用Pimoroni Unicorn HAT 340
14.8 使用ePaper顯示屏 341
第15章 音頻設(shè)備 343
15.0 引言 343
15.1 連接一個(gè)揚(yáng)聲器 343
15.2 控制聲音的輸出位置 345
15.3 通過(guò)命令行播放聲音 346
15.4 通過(guò)Python程序播放聲音 346
15.5 使用USB麥克風(fēng) 347
15.6 播放蜂鳴聲 349
第16章 物聯(lián)網(wǎng) 352
16.0 引言 352
16.1 使用Web接口控制GPIO輸出 352
16.2 在網(wǎng)頁(yè)上顯示傳感器讀數(shù) 356
16.3 Node-RED入門 358
16.4 使用IFTTT發(fā)送電子郵件及其他通知 361
16.5 利用ThingSpeak發(fā)送推文 364
16.6 CheerLights 366
16.7 向ThingSpeak發(fā)送傳感器數(shù)據(jù) 368
16.8 使用Dweet和IFTTT響應(yīng)推文 370
第17章 家庭自動(dòng)化 373
17.0 引言 373
17.1 通過(guò)Mosquitto將樹(shù)莓派打造成MQTT代理 373
17.2 組合使用Node-RED與MQTT服務(wù)器 376
17.3 刷寫Sonoff Wi-Fi智能開(kāi)關(guān),使其適用于MQTT 380
17.4 配置Sonoff Wi-Fi智能開(kāi)關(guān) 385
17.5 通過(guò)MQTT使用Sonoff網(wǎng)絡(luò)開(kāi)關(guān) 387
17.6 利用Node-RED制作Sonoff閃爍開(kāi)關(guān) 389
17.7 Node-RED Dashboard擴(kuò)展 391
17.8 基于Node-RED的預(yù)定事件 394
17.9 通過(guò)Wemos D1發(fā)布MQTT消息 395
17.10 在Node-RED中使用Wemos D1 398
第18章 Arduino與樹(shù)莓派 400
18.0 引言 400
18.1 通過(guò)樹(shù)莓派對(duì)Arduino進(jìn)行編程 401
18.2 利用Serial Monitor與Arduino進(jìn)行通信 402
18.3 配置PyFirmata以便通過(guò)樹(shù)莓派來(lái)控制Arduino 404
18.4 通過(guò)樹(shù)莓派對(duì)Arduino的數(shù)字輸出進(jìn)行寫操作 406
18.5 使用PyFirmata與TTL串口 407
18.6 使用PyFirmata讀取Arduino的數(shù)字輸入 409
18.7 利用PyFirmata讀取Arduino的模擬輸入 411
18.8 模擬輸出(PWM)與PyFirmata 412
18.9 利用PyFirmata控制伺服電機(jī) 414
18.10 在樹(shù)莓派上使用小型Arduino 415
18.11 使用支持Wi-Fi的小型Arduino兼容系統(tǒng)(ESP8266) 416
附錄A 配件與供應(yīng)商 419
附錄B 樹(shù)莓派引腳 426