本書展示如何在你新買的樹莓派上通過編程實現(xiàn)一個網(wǎng)絡機器人、氣象站,或是媒體服務器等功能。通過一些簡單的實例和有趣的項目,你能學到如何在樹莓派上通過Python進行編程。你將會學到如何創(chuàng)建一系列好玩且實用的項目,從可以搜索并下載文件的網(wǎng)絡機器人,到一個可以將你的寵物逼瘋的小玩具。甚至,你還會學到將樹莓派與Arduino或是Gertboard相結合的方法。新版本已經(jīng)完全更新了新板的特性。你將學習如何在樹莓派上使用Python編程,并提供實際的示例和有趣的項目。
很難相信從我寫這本書的第1版到現(xiàn)在已經(jīng)過去了四年。2014年,市面上有了樹莓派的一個版本,當時的主板動力相對不足,只有單核ARM處理器和20個GPIO引腳。我很高興能訂購我的個樹莓派,但實際上我必須先進入等待名單才能趕上第二批發(fā)貨。
每當你想要改變時,就會有人推出一款單板電腦(SBC),它試圖吸引樹莓派的主要業(yè)余愛好者和創(chuàng)客的關注,那些人正準備從Arduino升級為更強大的工具。
樹莓派在競爭中勝出,并得以蓬勃發(fā)展,F(xiàn)在有七種樹莓派模型:1型、2型、2B型、3型、3B型、Zero型和Zero W型。與原始模型相比,3型樹莓派更強大,它的四核架構使其可以執(zhí)行像計算機視覺和機器學習這樣的任務。與原始模型的頻率700MHz相比,3型的頻率高達1.5GHz。同時,Zero型和Zero W型的價位很低(分別為5美元和10美元),讀者經(jīng)常會問我:為什么要用Arduino呢?樹莓派Zero更便宜!
現(xiàn)在樹莓派已經(jīng)不是選擇了。根據(jù)你的預算,有相當多的SBC可以用于你想到的項目,從30美元的BeagleBoard到550美元的NVidia Jetson TX2。不過我還是喜歡樹莓派,它是我次開始玩嵌入式計算機時所使用的主板。它還很便宜,所以當它被弄壞時(我已經(jīng)弄壞過很多個了),至少我可以在不破產(chǎn)的情況下替換它,并且它仍然足以應付很多事情。
感謝你和我一起讀這本新版書。如果你是我上一版書的粉絲,謝謝你長期以來的支持。如果你是一個新讀者和一個新的樹莓派使用者,非常歡迎你的加入!
我希望用剩余的篇幅向你介紹一個令人興奮的項目和一個計算的新世界。
前言
引言
致謝
關于作者
關于技術審校
第1章 樹莓派介紹1
1.1 樹莓派的歷史2
1.2 探索樹莓派6
1.2.1 GPIO引腳7
1.2.2 USB和以太網(wǎng)端口7
1.2.3 音頻插孔7
1.2.4 攝像機插口7
1.2.5 HDMI接口8
1.2.6 電源8
1.2.7 顯示器9
1.2.8 片上系統(tǒng)9
1.2.9 SD卡9
1.2.10 不可見的部分9
1.3 樹莓派Zero/Zero W10
1.3.1 GPIO10
1.3.2 攝像機插口10
1.3.3 電源11
1.3.4 USB接口11
1.3.5 HDMI接口11
1.3.6 SD卡 11
1.3.7 片上系統(tǒng)11
1.3.8 不可見的部分12
1.4 樹莓派與相似設備之間的對比12
1.5 樹莓派入門12
1.6 樹莓派的硬件需求13
1.6.1 通電13
1.6.2 添加顯示器13
1.6.3 添加USB集線器13
1.7 樹莓派操作系統(tǒng)14
1.7.1 格式化SD卡15
1.7.2 安裝操作系統(tǒng)15
1.8 連接外圍設備16
1.9 配置樹莓派17
1.10 關閉樹莓派19
1.11 總結20
第2章 輕松掌握Linux21
2.1 開始使用樹莓派上的Linux23
2.1.1 Linux文件和文件系統(tǒng)23
2.1.2 Root用戶與sudo24
2.1.3 命令25
2.1.4 練習:在Linux文件系統(tǒng)內(nèi)進行導航29
2.1.5 Linux中的shell30
2.1.6 包管理器32
2.2 文本編輯器33
2.2.1 Vim、emacs和nano34
2.2.2 使用Vim35
2.2.3 使用emacs36
2.2.4 使用nano37
2.2.5 默認文本編輯器38
2.3 總結39
第3章 Python介紹40
3.1 腳本語言與編程語言40
3.2 Python語言的理念43
3.3 Python入門44
3.3.1 通過IDLE運行Python44
3.3.2 通過終端運行Python48
3.3.3 通過腳本運行Python48
3.4 探究Python的數(shù)據(jù)類型50
3.4.1 數(shù)值50
3.4.2 字符串51
3.4.3 列表52
3.4.4 字典54
3.4.5 元組和文件55
3.5 利用Python進行編程57
3.5.1 IF測試58
3.5.2 循環(huán)60
3.5.3 函數(shù)62
3.5.4 對象和面向對象編程63
3.6 總結64
第4章 電子知識大科普66
4.1 基本電路常識67
4.2 開發(fā)所需要的工具69
4.2.1 螺絲刀69
4.2.2 鉗子和剝線鉗70
4.2.3 剪線鉗71
4.2.4 銼刀72
4.2.5 放大鏡燈73
4.2.6 熱膠槍73
4.2.7 各類膠水73
4.2.8 萬用表74
4.2.9 電源74
4.2.10 實驗板75
4.2.11 插線板76
4.2.12 電烙鐵77
4.3 一般的安全規(guī)則78
4.3.1 認真對待溫度78
4.3.2 認真對待鋒利的物體79
4.3.3 戴安全鏡79
4.3.4 準備好滅火器79
4.3.5 在手邊放置一個急救包80
4.3.6 在通風的環(huán)境下工作80
4.3.7 整理好你的工作環(huán)境81
4.4 福利:焊接技術82
4.5 總結84
第5章 網(wǎng)絡機器人85
5.1 機器人禮儀86
5.2 網(wǎng)絡的連接87
5.2.1 網(wǎng)絡通信協(xié)議88
5.2.2 網(wǎng)頁格式88
5.2.3 請求舉例89
5.3 網(wǎng)絡機器人的概念90
5.4 解析網(wǎng)頁91
5.5 利用Python模塊編碼92
5.5.1 使用Mechanize模塊93
5.5.2 用Beautiful Soup解析94
5.5.3 利用urllib庫下載94
5.6 決定下載的內(nèi)容95
5.6.1 選擇起點96
5.6.2 存儲文件96
5.7 編寫Python網(wǎng)絡機器人97
5.7.1 讀取一個字符串并提取所有鏈接97
5.7.2 尋找并下載文件98
5.7.3 測試網(wǎng)絡機器人99
5.7.4 創(chuàng)建目錄并實例化一個列表101
5.8 終代碼103
5.9 總結105
第6章 氣象站106
6.1 零件購買清單107
6.2 使用I2C協(xié)議108
6.3 使用風速計109
6.3.1 構造風速計110
6.3.2 將風速計與樹莓派連接113
6.3.3 根據(jù)風速糾正每秒轉數(shù)114
6.4 連接數(shù)字指南針116
6.5 連接溫度/濕度傳感器118
6.6 連接氣壓計120
6.7 連接所有部件122
6.8 終代碼124
6.9 總結126
第7章 媒體服務器127
7.1 零件購買清單128
7.2 使用NTFS格式的硬盤128
7.3 安裝Samba131
7.4 配置Samba132
7.5 Linux權限設置134
7.6 重新啟動Samba服務135
7.7 與Linux / OS X連接136
7.8 Kodi和Plex138
7.9 Python在哪里140
7.10 總結141
第8章 家庭安防系統(tǒng)142
8.1 用于安防的狗143
8.2 用于安防的樹莓派143
8.3 使用傳感器網(wǎng)絡144
8.4 了解下拉電阻 145
8.5 零件購買清單146
8.6 以無線方式連接你的家庭網(wǎng)絡146
8.7 訪問GPIO引腳149
8.8 設置運動傳感器150
8.9 設置磁簧開關152
8.10 設置壓力開關 154
8.11 連接磁傳感器155
8.12 設置樹莓派的攝像機156
8.13 利用樹莓派發(fā)送短信157
8.14 實現(xiàn)回調(diào)158
8.15 連接所有的部件159
8.16 終代碼159
8.17 總結161
第9章 貓玩具162
9.1 零件購買清單162
9.2 玩具背后的設計理念163
9.3 創(chuàng)建和使用隨機數(shù)164
9.4 使用GPIO庫 166
9.5 控制舵機168
9.6 構建舵機結構171
9.7 構建激光結構172
9.8 將激光指示器連接到舵機上173
9.9 連接運動傳感器175
9.10 連接所有的部件177
9.11 終代碼180
9.12 總結181
第10章 無線電遙控飛機182
10.1 零件購買清單183
10.2 將GPS接收器連接至樹莓派184
10.3 設置日志文件187
10.4 格式化KML文件189
10.5 使用線程和對象190
10.6 設置自啟動192
10.7 連接所有部件194
10.8 終代碼197
10.8.1 飛機飛行程序197
10.8.2 KML轉換程序198
10.9 總結199
第11章 氣象氣球200
11.1 零件購買清單201
11.2 設置GPS接收器202
11.3 存儲GPS數(shù)據(jù)204
11.4 安裝PiFM205
11.5 安裝festival206
11.6 安裝ffmpeg207
11.7 準備樹莓派208
11.8 使用線程和對象209
11.9 連接所有部件210
11.10 觀察照片結果213
11.11 終代碼215
11.12 總結216
第12章 潛水器217
12.1 零件購買清單218
12.2 訪問樹莓派的GPIO引腳219
12.3 安裝樹莓派攝像頭模塊222
12.4 控制潛水器223
12.5 連接Wiichuck適配器224
12.6 激活樹莓派的I2C226
12.7 從nunchuk讀取數(shù)據(jù)227
12.8 nunchuk和LED測試項目228
12.9 通過nunchuk控制潛水器電機和攝像頭231
12.10 遠程啟動程序233
12.11 終代碼235
12.12 構造潛水器237
12.13 構建框架237
12.14 構建樹莓派的外殼238
12.15 電機的防水外殼239
12.16 連接至nunchuk241
12.17 裝配終的產(chǎn)品241
12.18 總結246
第13章 樹莓派和Arduino247
13.1 探索Arduino248
13.2 在樹莓派中安裝Arduino IDE250
13.3 運行舵機255
13.4 總結256