樹莓派(Raspberry Pi)是一款基於Linux系統的卡片式電腦,它外形小巧,相當於一張信用卡的大小。研發樹莓派的初衷是希望通過低價硬體和自由軟體來推動學校的基礎電腦學科教育,但很快樹莓派就得到了眾多電腦發燒友和硬體愛好者的青睞。他們用它學習程式設計,並創造出各種各樣新奇的、風靡一時的軟硬體應用。
本書由樹莓派的創始人編寫,是經典的樹莓派使用者指南。這是本書全新升級之後的第4版。本書共5篇,第1篇(第1~7章)介紹樹莓派的基礎知識(樹莓派的各個版本及其相關背景)、樹莓派入門、Linux系統管理、故障排查、網路配置、樹莓派軟體配置工具和樹莓派高級配置;第2篇(第8章和第9章)介紹如何將樹莓派作為家庭影院電腦、如何將樹莓派應用於生產環境;第3篇(第10~12章)介紹Scratch程式設計、Python程式設計和樹莓派版Minecraft;第4篇(第13~16章)介紹硬體破解、GPIO埠、樹莓派的攝像頭模組和擴展電路板;第5篇(附錄A~附錄C)介紹Python程式碼、樹莓派的攝像頭知識快速參考和HDMI顯示模式。
本書可作為程式師、電腦軟硬體愛好者以及對樹莓派感興趣的讀者的參考讀物,也可作為樹莓派相關實踐課程的基礎教程。
作者介紹
埃本·阿普頓(Eben Upton)
樹莓派基金會的創辦者,並擔任樹莓派商業組織的CEO。他曾創辦過兩家移動遊戲公司,並擔任過聖約翰學院電腦科學課程組的組長。他從劍橋大學獲得了學士學位、哲學博士學位以及MBA學位。
加雷思·哈菲克(Gareth Halfacree)是一名技術專欄的自由撰稿人,與Eben Upton共同發起了樹莓派專案。同時,Gareth還長期為GNU/Linux、LibreOffice、Fritzing、Arduino等項目進行代碼審核,代碼貢獻以及文檔維護。
樹莓派基金會的創辦者,並擔任樹莓派商業組織的CEO。他曾創辦過兩家移動遊戲公司,並擔任過聖約翰學院電腦科學課程組的組長。他從劍橋大學獲得了學士學位、哲學博士學位以及MBA學位。
加雷思·哈菲克(Gareth Halfacree)是一名技術專欄的自由撰稿人,與Eben Upton共同發起了樹莓派專案。同時,Gareth還長期為GNU/Linux、LibreOffice、Fritzing、Arduino等項目進行代碼審核,代碼貢獻以及文檔維護。
目錄
第 1篇 樹莓派基礎
第 1章 初識樹莓派 2
1.1 主機板 2
1.2 Model A和Model B 5
1.3 Model A+和Model B+ 6
1.4 樹莓派2 7
1.5 樹莓派3 8
1.6 樹莓派Zero 9
1.7 背景資料 10
1.7.1 ARM與x86 10
1.7.2 Windows與Linux 11
第 2章 樹莓派入門 13
2.1 連接顯示器 13
2.1.1 複合視頻 13
2.1.2 HDMI視頻 14
2.1.3 DSI視頻 15
2.2 連接音訊設備 16
2.3 連接鍵盤和滑鼠 16
2.4 在SD卡上安裝NOOBS 19
2.5 連接外部存放裝置 20
2.6 網路連接 21
2.6.1 有線網路 21
2.6.2 無線網路 22
2.7 連接電源 24
2.8 安裝作業系統 24
2.8.1 使用NOOBS安裝 25
2.8.2 手動安裝 27
2.9 連接藍牙設備 30
第3章 Linux系統管理 32
3.1 Linux系統簡介 32
3.2 Linux基礎 34
3.3 Raspbian簡介 35
3.3.1 談談Raspbian的前身Debian 40
3.3.2 Raspbian的替代方案 40
3.4 使用外部存放裝置 41
3.5 創建一個新的帳號 42
3.5.1 檔案系統佈局 43
3.5.2 邏輯佈局 43
3.5.3 物理佈局 45
3.6 安裝和卸載軟體 45
3.6.1 以圖形方式管理軟體 46
3.6.2 以命令列方式管理軟體 47
3.6.3 查找你要的軟體 47
3.6.4 安裝軟體 48
3.6.5 卸載軟體 49
3.6.6 升級軟體 50
3.7 安全關閉樹莓派 50
第4章 故障排查 52
4.1 鍵盤與滑鼠的診斷 52
4.2 供電診斷 53
4.3 顯示診斷 55
4.4 啟動診斷 55
4.5 網路診斷 56
第5章 網路配置 59
5.1 有線網路 59
5.1.1 通過GUI連接到有線網路 59
5.1.2 通過終端連接到有線網路 60
5.1.3 測試連接 62
5.2 無線網路 63
5.2.1 通過GUI連接到無線網路 63
5.2.2 通過終端連接到無線網路 65
第6章 樹莓派軟體配置工具 70
6.1 運行raspi-config 70
6.2 System選項卡 71
6.2.1 檔案系統(Filesystem) 71
6.2.2 密碼(Password) 72
6.2.3 主機名稱(Hostname) 73
6.2.4 啟動(Boot) 73
6.2.5 自動登錄(Auto Login) 73
6.2.6 啟動時的網路(Network at Boot) 74
6.2.7 掃描(Overscan) 74
6.2.8 Rastrack 74
6.3 Interfaces選項卡 75
6.3.1 攝像頭(Camera) 76
6.3.2 SSH 76
6.3.3 串列週邊介面(SPI) 76
6.3.4 內部積體電路(I2C) 76
6.3.5 串列連接(Serial) 76
6.3.6 單匯流排介面(1-Wire) 77
6.4 Performance選項卡 77
6.4.1 超頻(Overclock) 77
6.4.2 GPU記憶體 79
6.5 Localisation選項卡 79
6.5.1 Locale 80
6.5.2 時區(Timezone) 81
6.5.3 鍵盤(Keyboard) 81
第7章 樹莓派高級配置 83
7.1 使用NOOBS編輯設定檔 83
7.2 配置硬體:config.txt 85
7.2.1 顯示設定 86
7.2.2 啟動設置 89
7.2.3 樹莓派超頻 90
7.3 關閉L2緩存 93
7.4 記憶體劃分 94
7.5 配置軟體:cmdline.txt 95
第 2篇 構建媒體中心或用於生產環境
第8章 將樹莓派作為家庭影院
電腦 100
8.1 音樂播放控制台 100
8.2 專用HTPC與OSMC 102
8.2.1 流網路媒體 104
8.2.2 本地網路上的流媒體 106
8.2.3 配置OSMC 107
第9章 將樹莓派用於生產環境 109
9.1 使用雲端的應用 109
9.2 使用LibreOffice 111
9.3 使用Gimp圖像編輯器 113
第3篇 樹莓派程式設計
第 10章 Scratch程式設計 116
10.1 Scratch簡介 116
10.2 例1:Hello World 117
10.3 例2:動畫與聲音 120
10.4 例3:一個簡單的遊戲 122
10.5 Scratch硬體介面程式設計 128
10.6 延伸閱讀 130
第 11章 Python程式設計 131
11.1 Python簡介 131
11.2 例1:Hello World 132
11.3 例2:注釋、輸入、變數和
迴圈 137
11.4 例3:用pygame開發
遊戲 141
11.5 例4:Python與網路 148
11.6 延伸閱讀 153
第 12章 樹莓派版Minecraft 155
12.1 樹莓派版Minecraft簡介 155
12.2 安裝Minecraft 156
12.3 運行Minecraft 156
12.4 探索 158
12.5 破解Minecraft 159
第4篇 硬體破解
第 13章 學習硬體破解 166
13.1 電子元件 166
13.2 解讀電阻顏色編碼 168
13.3 採購元件 169
13.3.1 線上零售商 170
13.3.2 線下零售商 170
13.3.3 業餘愛好者 171
13.4 在麵包板上更進一步 172
13.5 焊接簡介 174
第 14章 GPIO埠 179
14.1 識別樹莓派版本 179
14.2 GPIO引腳圖 181
14.3 GPIO特性 182
14.3.1 UART串列匯流排 182
14.3.2 I2C匯流排 182
14.3.3 SPI匯流排 183
14.4 通過Python使用GPIO埠 183
14.4.1 GPIO輸出—LED 184
14.4.2 GPIO輸入—按鍵輸入 187
14.5 焊接樹莓派Zero的GPIO插頭 191
第 15章 樹莓派的攝像頭模組 194
15.1 為何使用攝像頭模組 194
15.2 選擇攝像頭模組 195
15.3 安裝攝像頭模組 195
15.4 啟用攝像頭模式 198
15.5 拍攝照片 200
15.6 錄製視頻 202
15.7 命令列定時拍照 203
第 16章 擴展電路板 205
16.1 樹莓派官方盒子 206
16.2 樹莓派7英寸觸摸顯示幕 208
16.3 Sense HAT 211
16.3.1 安裝 212
16.3.2 Sense HAT程式設計 214
第5篇 附錄
附錄A Python程式碼 220
附錄B 樹莓派的攝像頭知識快速
參考 225
附錄C HDMI顯示模式 234
第 1章 初識樹莓派 2
1.1 主機板 2
1.2 Model A和Model B 5
1.3 Model A+和Model B+ 6
1.4 樹莓派2 7
1.5 樹莓派3 8
1.6 樹莓派Zero 9
1.7 背景資料 10
1.7.1 ARM與x86 10
1.7.2 Windows與Linux 11
第 2章 樹莓派入門 13
2.1 連接顯示器 13
2.1.1 複合視頻 13
2.1.2 HDMI視頻 14
2.1.3 DSI視頻 15
2.2 連接音訊設備 16
2.3 連接鍵盤和滑鼠 16
2.4 在SD卡上安裝NOOBS 19
2.5 連接外部存放裝置 20
2.6 網路連接 21
2.6.1 有線網路 21
2.6.2 無線網路 22
2.7 連接電源 24
2.8 安裝作業系統 24
2.8.1 使用NOOBS安裝 25
2.8.2 手動安裝 27
2.9 連接藍牙設備 30
第3章 Linux系統管理 32
3.1 Linux系統簡介 32
3.2 Linux基礎 34
3.3 Raspbian簡介 35
3.3.1 談談Raspbian的前身Debian 40
3.3.2 Raspbian的替代方案 40
3.4 使用外部存放裝置 41
3.5 創建一個新的帳號 42
3.5.1 檔案系統佈局 43
3.5.2 邏輯佈局 43
3.5.3 物理佈局 45
3.6 安裝和卸載軟體 45
3.6.1 以圖形方式管理軟體 46
3.6.2 以命令列方式管理軟體 47
3.6.3 查找你要的軟體 47
3.6.4 安裝軟體 48
3.6.5 卸載軟體 49
3.6.6 升級軟體 50
3.7 安全關閉樹莓派 50
第4章 故障排查 52
4.1 鍵盤與滑鼠的診斷 52
4.2 供電診斷 53
4.3 顯示診斷 55
4.4 啟動診斷 55
4.5 網路診斷 56
第5章 網路配置 59
5.1 有線網路 59
5.1.1 通過GUI連接到有線網路 59
5.1.2 通過終端連接到有線網路 60
5.1.3 測試連接 62
5.2 無線網路 63
5.2.1 通過GUI連接到無線網路 63
5.2.2 通過終端連接到無線網路 65
第6章 樹莓派軟體配置工具 70
6.1 運行raspi-config 70
6.2 System選項卡 71
6.2.1 檔案系統(Filesystem) 71
6.2.2 密碼(Password) 72
6.2.3 主機名稱(Hostname) 73
6.2.4 啟動(Boot) 73
6.2.5 自動登錄(Auto Login) 73
6.2.6 啟動時的網路(Network at Boot) 74
6.2.7 掃描(Overscan) 74
6.2.8 Rastrack 74
6.3 Interfaces選項卡 75
6.3.1 攝像頭(Camera) 76
6.3.2 SSH 76
6.3.3 串列週邊介面(SPI) 76
6.3.4 內部積體電路(I2C) 76
6.3.5 串列連接(Serial) 76
6.3.6 單匯流排介面(1-Wire) 77
6.4 Performance選項卡 77
6.4.1 超頻(Overclock) 77
6.4.2 GPU記憶體 79
6.5 Localisation選項卡 79
6.5.1 Locale 80
6.5.2 時區(Timezone) 81
6.5.3 鍵盤(Keyboard) 81
第7章 樹莓派高級配置 83
7.1 使用NOOBS編輯設定檔 83
7.2 配置硬體:config.txt 85
7.2.1 顯示設定 86
7.2.2 啟動設置 89
7.2.3 樹莓派超頻 90
7.3 關閉L2緩存 93
7.4 記憶體劃分 94
7.5 配置軟體:cmdline.txt 95
第 2篇 構建媒體中心或用於生產環境
第8章 將樹莓派作為家庭影院
電腦 100
8.1 音樂播放控制台 100
8.2 專用HTPC與OSMC 102
8.2.1 流網路媒體 104
8.2.2 本地網路上的流媒體 106
8.2.3 配置OSMC 107
第9章 將樹莓派用於生產環境 109
9.1 使用雲端的應用 109
9.2 使用LibreOffice 111
9.3 使用Gimp圖像編輯器 113
第3篇 樹莓派程式設計
第 10章 Scratch程式設計 116
10.1 Scratch簡介 116
10.2 例1:Hello World 117
10.3 例2:動畫與聲音 120
10.4 例3:一個簡單的遊戲 122
10.5 Scratch硬體介面程式設計 128
10.6 延伸閱讀 130
第 11章 Python程式設計 131
11.1 Python簡介 131
11.2 例1:Hello World 132
11.3 例2:注釋、輸入、變數和
迴圈 137
11.4 例3:用pygame開發
遊戲 141
11.5 例4:Python與網路 148
11.6 延伸閱讀 153
第 12章 樹莓派版Minecraft 155
12.1 樹莓派版Minecraft簡介 155
12.2 安裝Minecraft 156
12.3 運行Minecraft 156
12.4 探索 158
12.5 破解Minecraft 159
第4篇 硬體破解
第 13章 學習硬體破解 166
13.1 電子元件 166
13.2 解讀電阻顏色編碼 168
13.3 採購元件 169
13.3.1 線上零售商 170
13.3.2 線下零售商 170
13.3.3 業餘愛好者 171
13.4 在麵包板上更進一步 172
13.5 焊接簡介 174
第 14章 GPIO埠 179
14.1 識別樹莓派版本 179
14.2 GPIO引腳圖 181
14.3 GPIO特性 182
14.3.1 UART串列匯流排 182
14.3.2 I2C匯流排 182
14.3.3 SPI匯流排 183
14.4 通過Python使用GPIO埠 183
14.4.1 GPIO輸出—LED 184
14.4.2 GPIO輸入—按鍵輸入 187
14.5 焊接樹莓派Zero的GPIO插頭 191
第 15章 樹莓派的攝像頭模組 194
15.1 為何使用攝像頭模組 194
15.2 選擇攝像頭模組 195
15.3 安裝攝像頭模組 195
15.4 啟用攝像頭模式 198
15.5 拍攝照片 200
15.6 錄製視頻 202
15.7 命令列定時拍照 203
第 16章 擴展電路板 205
16.1 樹莓派官方盒子 206
16.2 樹莓派7英寸觸摸顯示幕 208
16.3 Sense HAT 211
16.3.1 安裝 212
16.3.2 Sense HAT程式設計 214
第5篇 附錄
附錄A Python程式碼 220
附錄B 樹莓派的攝像頭知識快速
參考 225
附錄C HDMI顯示模式 234
網路書店
類別
折扣
價格
-
新書87折$360