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