《Python樹莓派開發(fā)從入門到精通》從初學者角度出發(fā),通過通俗易懂的語言、豐富多彩的實例,詳細介紹了使用Python樹莓派進行軟件和硬件項目開發(fā)需要掌握的技術。全書共分為4篇15章,包括樹莓派基礎、樹莓派使用Python、Linux命令、常用操作、常用服務、GPIO基礎、簡單硬件、高級硬件、控制電機、OpenCV應用、傳感器、擴展板、Arduino使用,以及4個小型軟件項目實戰(zhàn)和智能小車硬件項目實戰(zhàn)。書中所有知識都結合具體實例進行介紹,涉及的程序代碼給出了詳細的注釋,可以使讀者輕松領會樹莓派開發(fā)的精髓,快速提高開發(fā)技能。本書列舉了大量的小型實例、綜合實例和部分項目案例;所附資源包中有實例源程序及項目源碼等;本書的服務網(wǎng)站提供了模塊庫、案例庫、題庫、素材庫、答疑服務等。
《Python樹莓派開發(fā)從入門到精通》以入門為主、進階為輔,提供了從Python樹莓派開發(fā)入門到編程高手所必需的各項知識。
(1)主流技術,全面解析。本書內容豐富,涵蓋Python樹莓派開發(fā)的方方面面,包括樹莓派基礎、樹莓派使用Python、Linux命令、常用操作和常用服務、PIO、GPS、控制電機、OpenCV、傳感器、Arduino應用,以及智能小車硬件項目。一本書教你掌握Python樹莓派開發(fā)領域的主流核心技術。
(2)循序漸進,實戰(zhàn)講述。本書引領讀者按照基礎入門核心框架項目實戰(zhàn)循序漸進地學習,符合認知規(guī)律。
(3)邊學邊練,學以致用。你得到的不僅僅是一本紙書,而是全套的學習資源。120個應用實例 5個行業(yè)項目案例 136集Python零基礎掃盲課,邊學邊練,在實踐中提升技能。
(4)精彩欄目,貼心提醒。本書設置了很多注意說明技巧等小欄目,有利于讀者在學習過程中更輕松地理解相關知識點及概念,并輕松地掌握個別技術的應用技巧。
(5)在線解答,高效學習。在線答疑QQ及技術支持網(wǎng)站,不定期進行在線直播課程。
在大數(shù)據(jù)、人工智能應用越來越普遍的今天,Python可以說是當今世界上熱門、應用廣泛的編程語言之一,在人工智能、爬蟲、數(shù)據(jù)分析、游戲、自動化運維等方面,無處不見其身影。而樹莓派作為流行的開發(fā)板之一,在其上可以使用Python等多種編程語言進行開發(fā)。翻開本書,通過樹莓派使用Python開發(fā)軟件和硬件的大門緩緩打開。
本書內容
本書提供了從Python樹莓派入門到編程高手所必需的各類知識,共分為4篇。
第1篇:基礎知識。本篇主要包括樹莓派基礎、樹莓派使用Python、Linux命令、常用操作和常用服務等內容。通過本篇的學習,可以使讀者快速掌握樹莓派的基礎知識,為以后編程奠定堅實的基礎。
第2篇:核心技術。本篇介紹樹莓派中GPIO相關基礎知識,并使用部分簡單和高級的硬件,后還將介紹常見控制電機的控制方法和OpenCV庫在樹莓派中的安裝方法與簡單應用。學習完本篇,即可控制一些常見的硬件,以此來實現(xiàn)一個簡單的項目需求。
第3篇:高級應用。本篇介紹樹莓派常用的各類傳感器和擴展板,以及配合Arduino的使用方法。學完這一部分,可以利用各類傳感器、擴展板和Arduino來實現(xiàn)一些較為復雜的項目。
第4篇:項目實戰(zhàn)。本篇使用樹莓派來完成一些常用的軟件項目,如家居控制、智能音箱、Android TV和個人博客網(wǎng)站搭建。同時,也使用樹莓派制作了類似智能小車的硬件項目。通過本篇的學習,可以使用樹莓派研發(fā)一些高級的應用,并加深對軟件和硬件項目的實踐開發(fā)流程的理解。
本書特點
由淺入深,循序漸進:本書以初、中級程序員為對象,采用圖文結合、循序漸進的編排方式,從樹莓派每個硬件介紹和系統(tǒng)燒錄,到樹莓派的核心技術應用,后通過多個完整軟件和硬件實戰(zhàn)項目,對樹莓派開發(fā)進行詳細講解,幫助讀者快速掌握樹莓派開發(fā)技術,全面提升開發(fā)經(jīng)驗。
實例典型,輕松易學:本書實例豐富,提供了120個應用實例,讀者可邊學邊練。另外,為了便于讀者閱讀程序代碼,快速學習編程技能,書中為重要代碼提供了注釋。
項目實戰(zhàn),積累經(jīng)驗:本書通過完整的實戰(zhàn)項目,講解實際項目的完整開發(fā)過程,帶領讀者親身體驗開發(fā)項目的全過程,積累項目經(jīng)驗。
精彩欄目,貼心提醒:本書根據(jù)學習需要使用了很多注意說明技巧等小欄目,可以讓讀者在學習過程中更輕松地理解相關知識點及概念,并輕松地掌握個別技術的應用技巧。
讀者對象
初學編程的自學者、編程愛好者、大中專院校的老師和學生、相關培訓機構的老師和學員、畢業(yè)設計的學生、初中級程序開發(fā)人員、程序測試及維護人員、參加實習的菜鳥程序員。
讀者服務
本書配套的學習資源,讀者可登錄清華大學出版社網(wǎng)站,在對應圖書頁面下獲取其下載方式。讀者也可掃描圖書封底的文泉云盤二維碼,獲取其下載方式。
致讀者
感謝您購買本書,希望本書能成為您編程路上的領航者。
零門檻學編程,一切皆有可能。
祝讀書快樂!
明日科技,全稱是吉林省明日科技有限公司,是一家專業(yè)從事軟件開發(fā)、教育培訓以及軟件開發(fā)教育資源整合的高科技公司,其編寫的教材非常注重選取軟件開發(fā)中的必需、常用內容,同時也很注重內容的易學、方便性以及相關知識的拓展性,深受讀者喜愛。其教材多次榮獲全行業(yè)優(yōu)秀暢銷品種全國高校出版社優(yōu)秀暢銷書等獎項,多個品種長期位居同類圖書銷售排行榜的前列。
第1篇 基礎知識
第1章 樹莓派基礎 2
1.1 樹莓派簡介 2
1.1.1 起源 2
1.1.2 介紹 3
1.1.3 系統(tǒng) 4
1.1.4 應用 4
1.2 燒錄系統(tǒng) 4
1.2.1 電源 5
1.2.2 顯示器 5
1.2.3 TF內存卡 6
1.2.4 鍵盤和鼠標 7
1.2.5 可選設備 7
1.2.6 安裝系統(tǒng) 8
1.2.7 無顯示器安裝系統(tǒng) 9
1.3 小結 11
第2章 樹莓派使用Python 12
2.1 樹莓派使用 12
2.1.1 Raspberry Pi OS簡介 12
2.1.2 使用LXDE 12
2.1.3 使用終端 14
2.1.4 使用SSH 14
2.1.5 使用VNC 15
2.1.6 中文輸入法 17
2.2 安裝Python 17
2.2.1 安裝Python 18
2.2.2 Python解釋器 19
2.2.3 使用Thonny 19
2.3 小結 20
第3章 Linux命令 21
3.1 系統(tǒng)管理 21
3.1.1 用戶管理 21
3.1.2 進程和服務管理 22
3.1.3 系統(tǒng)重啟和關機 26
3.2 文件管理 27
3.2.1 創(chuàng)建和刪除 27
3.2.2 目錄切換 28
3.2.3 權限設置 29
3.2.4 查找 30
3.3 軟件管理 30
3.3.1 軟件安裝 31
3.3.2 軟件升級 31
3.3.3 軟件搜索 31
3.3.4 軟件卸載 32
3.4 性能監(jiān)控 32
3.4.1 使用命令查看 32
3.4.2 使用腳本查看 33
3.5 小結 35
第4章 常用操作 36
4.1 樹莓派換源 36
4.1.1 查看系統(tǒng)版本 36
4.1.2 更換系統(tǒng)源 37
4.1.3 更換pip源 38
4.2 文件存儲 38
4.2.1 FTP服務 39
4.2.2 文件共享 40
4.3 系統(tǒng)備份 43
4.3.1 全卡備份 43
4.3.2 壓縮備份 44
4.4 小結 45
第5章 常用服務 46
5.1 遠程監(jiān)控 46
5.2 Web技術 48
5.2.1 nginx 48
5.2.2 內網(wǎng)穿透 49
5.2.3 Aria2 51
5.2.4 NTP 55
5.3 MariaDB 57
5.4 小結 60
第2篇 核心技術
第6章 GPIO基礎 62
6.1 GPIO簡介 62
6.1.1 GPIO定義 62
6.1.2 GPIO引腳布局 63
6.2 連接GPIO 66
6.2.1 直接連接 66
6.2.2 使用T形擴展板 67
6.2.3 使用面包板 67
6.3 使用RPi.GPIO模塊 68
6.3.1 基本用法 68
6.3.2 模塊的輸入 70
6.3.3 脈沖寬度調制 72
6.4 控制GPIO輸出 74
6.4.1 硬件連接 74
6.4.2 測試GPIO輸出 75
6.5 檢測GPIO輸入 77
6.5.1 硬件連接 77
6.5.2 下拉電阻 78
6.5.3 上拉電阻 79
6.5.4 反應測試 81
6.6 拓展GPIO 83
6.6.1 SPI通信協(xié)議 83
6.6.2 I2C通信協(xié)議 88
6.6.3 串口通信協(xié)議 90
6.7 小結 90
第7章 簡單硬件 91
7.1 LED 91
7.1.1 控制亮度 91
7.1.2 改變顏色 92
7.1.3 RGB-LED燈條 95
7.1.4 LED矩陣 98
7.1.5 使用OLED 102
7.2 蜂鳴器 103
7.2.1 有源蜂鳴器 104
7.2.2 無源蜂鳴器 105
7.3 實時時鐘 108
7.4 小結 111
第8章 高級硬件 112
8.1 GPS 112
8.1.1 連接GPS模塊 112
8.1.2 使用Python讀取數(shù)據(jù) 113
8.2 供電設備 116
8.2.1 鋰電池 116
8.2.2 不間斷電源 117
8.2.3 太陽能電池板 118
8.3 數(shù)字鍵盤 119
8.4 指紋識別 123
8.5 麥克風陣列 124
8.6 小結 128
第9章 控制電機 129
9.1 直流電機 129
9.1.1 直流電機簡介 129
9.1.2 驅動直流電機 130
9.1.3 控制方向 132
9.1.4 控制轉速 133
9.2 伺服電機 135
9.2.1 伺服電機簡介 135
9.2.2 控制伺服電機 136
9.2.3 控制多臺伺服電機 137
9.3 步進電機 139
9.3.1 步進電機簡介 139
9.3.2 單極步進電機 140
9.3.3 雙極步進電機 142
9.4 小結 147
第10章 OpenCV應用 148
10.1 OpenCV基礎 148
10.1.1 OpenCV簡介 148
10.1.2 樹莓派安裝OpenCV 149
10.1.3 圖像處理過程 156
10.2 使用各類攝像頭 157
10.2.1 CSI攝像頭 157
10.2.2 USB攝像頭 160
10.3 圖像基礎操作 161
10.3.1 載入和顯示圖像 162
10.3.2 輸出灰度圖像 163
10.3.3 繪圖 164
10.4 簡單的圖像識別 166
10.4.1 數(shù)字識別 166
10.4.2 英文識別 168
10.4.3 人臉識別 169
10.5 小 結 171
第3篇 高級應用
第11章 傳感器 174
11.1 氣體傳感器 174
11.1.1 二氧化碳傳感器 174
11.1.2 MQ系列傳感器 176
11.2 溫度、濕度和氣壓傳感器 179
11.2.1 溫度傳感器 179
11.2.2 濕度傳感器 181
11.2.3 氣壓傳感器 183
11.3 電阻式傳感器 185
11.3.1 熱敏電阻 185
11.3.2 光敏電阻 187
11.4 聲波傳感器 189
11.4.1 聲音傳感器DO模塊 189
11.4.2 聲音傳感器AO模塊 191
11.4.3 超聲波傳感器 193
11.5 光傳感器 196
11.5.1 光照傳感器 196
11.5.2 紅外傳感器 198
11.5.3 紫外傳感器 199
11.5.4 激光傳感器 201
11.5.5 顏色傳感器 203
11.5.6 火焰?zhèn)鞲衅?204
11.6 力傳感器 208
11.6.1 壓力傳感器 208
11.6.2 震動傳感器 211
11.6.3 電子羅盤傳感器 213
11.6.4 角速度和加速度傳感器 215
11.6.5 霍爾傳感器 219
11.7 小結 221
第12章 擴展板 222
12.1 溫控風扇 222
12.1.1 溫控風扇簡介 222
12.1.2 溫控風扇使用方法 223
12.1.3 開機自啟 223
12.2 電源管理 224
12.2.1 X735擴展板簡介 224
12.2.2 X735使用方法 225
12.2.3 腳本安裝 226
12.3 存儲擴展 227
12.3.1 X872存儲擴展板簡介 227
12.3.2 X872和X735安裝方法 228
12.4 Sense Hat 228
12.4.1 Sense Hat簡介 228
12.4.2 控制LED 229
12.4.3 使用傳感器 232
12.4.4 控制操縱桿 233
12.4.5 乒乓游戲 235
12.5 無線通信 236
12.5.1 無線通信簡介 237
12.5.2 網(wǎng)絡連接 238
12.5.3 撥打電話 240
12.5.4 收發(fā)短信 242
12.5.5 GPS定位 244
12.6 模數(shù)轉換 246
12.6.1 模數(shù)轉換擴展板簡介 246
12.6.2 模擬信號轉數(shù)字信號 248
12.6.3 數(shù)字信號轉模擬信號 250
12.7 接口擴展 251
12.7.1 GPIO擴展 252
12.7.2 面包板擴展 252
12.7.3 USB擴展 253
12.7.4 串口擴展 254
12.8 以太網(wǎng)供電 257
12.8.1 POE擴展板簡介 257
12.8.2 POE擴展板使用方法 257
12.9 繼電器 258
12.9.1 繼電器擴展板簡介 258
12.9.2 繼電器擴展板使用方法 259
12.10 小結 261
第13章 Arduino使用 262
13.1 Arduino基本情況 262
13.1.1 Arduino簡介 262
13.1.2 Arduino的特點 262
13.1.3 Arduino版本 263
13.1.4 Arduino引腳 265
13.2 Arduino應用 266
13.2.1 IDE工具 266
13.2.2 點亮LED 268
13.2.3 Arduino語言 269
13.3 基礎函數(shù)庫 270
13.3.1 I/O函數(shù) 270
13.3.2 字符函數(shù) 273
13.3.3 數(shù)學庫 278
13.4 進階函數(shù)庫 282
13.4.1 脈沖寬度調制 283
13.4.2 隨機數(shù) 283
13.4.3 中斷 284
13.4.4 串口通信 285
13.4.5 I2C通信 287
13.4.6 串行外設接口 290
13.5 與樹莓派通信 292
13.5.1 樹莓派安裝Arduino IDE 292
13.5.2 通過USB進行通信 293
13.5.3 通過I2C進行通信 295
13.6 使用Python控制Arduino 297
13.6.1 使用PyFirmata簡單控制Arduino 298
13.6.2 控制Arduino的數(shù)字輸出 299
13.6.3 控制Arduino的PWM輸出 300
13.6.4 讀取Arduino的數(shù)字輸入 301
13.6.5 讀取Arduino的模擬輸入 303
13.7 小結 304
第4篇 項目實戰(zhàn)
第14章 項目實踐 306
14.1 家居控制 306
14.1.1 Home Assistant安裝 306
14.1.2 命令行基礎操作 309
14.1.3 基礎配置 312
14.1.4 接入設備 314
14.1.5 綁定微信小程序 316
14.1.6 安裝Hass.io組件 317
14.2 智能音箱 319
14.2.1 wukong-robot安裝 319
14.2.2 更新喚醒詞 321
14.3 Android TV 325
14.3.1 Android TV簡介 325
14.3.2 安裝方法 326
14.4 個人博客網(wǎng)站 328
14.4.1 安裝依賴 328
14.4.2 數(shù)據(jù)庫配置 329
14.4.3 Gunicorn配置 331
14.4.4 Nginx配置 332
14.4.5 Supervisor配置 333
14.4.6 內網(wǎng)穿透 334
14.5 小結 334
第15章 智能小車 335
15.1 開發(fā)準備 335
15.1.1 需求分析 335
15.1.2 開發(fā)環(huán)境 335
15.1.3 硬件清單 336
15.1.4 項目預覽 337
15.2 硬件安裝 338
15.2.1 底盤 338
15.2.2 循跡模塊 339
15.2.3 電池 341
15.2.4 主板 342
15.2.5 轉接板 343
15.2.6 電壓表 344
15.2.7 紅外模塊 345
15.2.8 超聲波模塊 345
15.2.9 面包板 347
15.2.10 云臺 347
15.2.11 連接底層板和頂層板 348
15.2.12 接線 349
15.3 燒錄鏡像 350
15.4 控制實驗 351
15.4.1 控制蜂鳴器 351
15.4.2 按鍵檢測 353
15.4.3 實現(xiàn)基本運動 354
15.4.4 自動循跡 358
15.4.5 自動避障 361
15.4.6 超聲單方向避障 365
15.4.7 超聲多方向避障 368
15.4.8 紅外控制 373
15.4.9 WIFI控制 377
15.5 小結 378