本書特色
樹莓派規格、安裝、設定到開發完整說明。
使用最熱門語言Python玩轉樹莓派GPIO控制。
外接轉接板,免去麵包板上的繁瑣佈線。
完整學習GPIO、LCD、ADC、1-Wire、SPI Bus、I2C Bus、IR、Motor及感測器等控制。
另備有教學影片,提高學習效率。
作者簡介:
李宜達
交通大學控制工程研究所畢。
專長單晶片、Arduino、Raspberry Pi、LinkIt 7688/7697、NodeMCU、ESP32程式設計。
章節試閱
1-1 Raspberry Pi開發板
Raspberry Pi(樹莓派)開發板目前已經發展到第三代,在此對一些Raspberry Pi開發板規格做一個簡單的說明,讓你對Raspberry Pi開發板的發展歷史有一些了解,如欲購買時,基本上是購買最新版的開發板,因為越新的會越容易上手,詳細的說明可以瀏覽https://www.raspberrypi.org官方網站。
Raspberry Pi是一款基於Linux作業系統、大小只有一張信用卡般大的單板電腦,是由英國的樹莓派基金會所開發,目的是以低價硬體和自由軟體這兩種方式來刺激學校的基本電腦科學教育,讓每一個學生,甚至是中小學生,從小就能接觸並學習程式設計。
Raspberry Pi可以透過和螢幕、鍵盤的連結後成為一台小型電腦,使其和一般電腦一樣可以執行如程式設計、圖形處理和遊戲開發等功能,並藉由連結、讀取及控制相關的外部感測器,配合有線或無線網路,達到物聯網遠端控制的目的。
最初的Raspberry Pi開發板配備一個700MHz博通(Broadcom)出產的ARM架構BCM2835處理器,256MB隨機存取記憶體,使用SD卡作為儲存媒體,且支援擁有一個Ethernet、兩個USB介面,以及HDMI和RCA端子輸出,目前已經發展到第三代,規格上已有顯著提升,圖1-1-1所示為目前Raspberry Pi家族產品的外觀示意圖。
表1-1所示為Raspberry Pi各版本:RPi Zero、RPi A+、RPi B、RPi B+、RPi 2 B、RPi 3 B,其詳細硬體規格比較表。
1-2 Raspberry Pi 3概述
Raspberry Pi 3比起前兩代產品具有更高階的規格,不但處理器性能有所升級,更是首次將無線網路WiFi 802.11n與藍牙BLE 4.1(Bluetooth Low Engery)功能內建於晶片之中,讓使用者能夠享受更多元的連接方式。另一方面,Raspberry Pi 3不但在尺寸與I/O接腳上相容於前兩代產品,更好的是價格依然維持在35美元。
到底在硬體性能上增加了什麼呢?Raspberry Pi 3最大的亮點在於它搭載了博通全新的SoC BCM2837,其處理器相較於1代(採用700MHz單核心ARM1176JZF-S)與2代(900MHz四核心ARM Cortex-A7)產品,Raspberry Pi 3採用64位元1.2GHz四核心ARM Cortex-A53,號稱比第一代增加了十倍的效能,Raspberry Pi發明人Eben Upton建議最好外接5V、2.5A電源供應器,也就是12.5瓦的外接電源來供電,以確保用電電源的穩定,比起第一代的3.5瓦,性能提升了,但也增加了功耗。
Raspberry Pi 3的記憶體容量維持與2代一樣,皆為1GB,Raspberry Pi 3採用Model B尺寸設計,所以能夠沿用Raspberry Pi 1(Model B、Model B+)、Raspberry Pi 2的外殼、擴充套件等周邊設備,在GPIO接腳配置與驅動能力部分,也與2代產品一樣,方便使用者在升級Raspberry Pi時,不需額外更換周邊設備。
在作業系統支援性方面,Raspberry Pi 3也與前代產品一樣支援Linux以及Windows IoT,不過需要注意的是,Windows IoT與Windows 10雖然很相似,但是礙於處理器架構不同的關係,因此應用程式互不相容,也就是說,Raspberry Pi 3並無法執行一般Windows程式。
1-3 Raspberry Pi轉接板
本書中絕大部分的實驗都是利用作者所開發的Raspberry Pi轉接板來實習,將轉接板插在Raspberry Pi開發板上使用,如圖1-3-1所示為轉接板與Raspberry Pi開發板結合照片,這樣設計目的是為了專注在學習Raspberry Pi/Python的程式設計上,可以省去在麵包板上插上零件和杜邦線的時間,而且轉接板上元件的接腳與Raspberry Pi開發板上的接腳並沒有接在一起,也就是說,並不是固定的接在一起,例如如圖1-3-2所示為轉接板上LED-E1的線路圖,Raspberry Pi開發板上輸出入接腳GPIO19(接腳編號35)的接腳雖然設計是用來驅動LED-E1,但必須使用短路片將這兩個接腳連接起來,因為P1是雙排針座,一邊是接至LED-E1,另一邊是接至Raspberry Pi開發板上輸出入接腳GPIO19,必須靠短路片將排針這兩個針腳連接起來,如圖1-3-3所示,這種設計是富有彈性的,如果想使用其他的接腳來控制LED,則可以使用杜邦線去連接,或是想控制其他的感測器模組,也可以用杜邦線配合麵包板去完成。
如圖1-3-4所示為Raspberry Pi轉接板硬體資源示意圖,它能提供的實驗非常廣泛,包括有實習數位輸出入、類比輸入、外部中斷、PWM訊號輸出、蜂鳴器、一線式數據傳輸(1-wire)、SPI匯流排、I2C匯流排、紅外線遙控等,組合變化的實驗可憑讀者的創意組合,簡單敘述可實習的項目有:
• LED流水燈
• PWM控制—LED燈亮度變化
• 按鍵開關檢測及控制
• 按鍵開關中斷(外部中斷)
• 蜂鳴器演奏電子音樂
• SPI匯流排控制實習—MAX7219晶片的使用
• 4位七段顯示器顯示
• 8×8點陣顯示器顯示
• LCD文字型液晶顯示器顯示
• MCP3002用於可變電阻類比電壓輸入顯示
• 遙控器遙控LED燈號顯示
• 一線式數據傳輸實習—DS18B20溫度顯示
• I2C匯流排控制實習—DS1307實時時鐘RTC顯示
1-1 Raspberry Pi開發板
Raspberry Pi(樹莓派)開發板目前已經發展到第三代,在此對一些Raspberry Pi開發板規格做一個簡單的說明,讓你對Raspberry Pi開發板的發展歷史有一些了解,如欲購買時,基本上是購買最新版的開發板,因為越新的會越容易上手,詳細的說明可以瀏覽https://www.raspberrypi.org官方網站。
Raspberry Pi是一款基於Linux作業系統、大小只有一張信用卡般大的單板電腦,是由英國的樹莓派基金會所開發,目的是以低價硬體和自由軟體這兩種方式來刺激學校的基本電腦科學教育,讓每一個學生,甚至是中小學生,從小就能接...
作者序
最近幾年比較少出書了,並不是沒有題材可以出書,事實上手上已準備好的有Arduino、Raspberry Pi、Linkit 7688/7697、BLE4.2相關的書可以出,但網路興起,任何資料只要Google一下幾乎垂手可得,又加上少子化浪潮席捲而來,學生很少買書了,加深了實體出版業的經營困境,不敢貿然出書,惡性循環之下,導致許多知識無法傳承下去,是很可惜的。
樹莓派(Raspberry Pi)開發板是一款基於Linux作業系統.的單板電腦,由英國的樹莓派基金會所開發,目的是以低價硬體和自由軟體這兩種方式來刺激學校的基本電腦科學教育,讓每一個學生,甚至是中小學生,從小就能接觸並學習程式設計。樹莓派可以透過和螢幕、鍵盤的連結後成為一台小型電腦,可以執行如程式設計、圖形處理和遊戲開發等功能,並藉由連結外部感測器,配合有線或無線網路,達到物聯網遠端控制的目的。
Python是2019年程式語言排名的第三名,超越了C++,因為AI以及大數據的崛起,成為最值得學習的語言之一。Python是一套直譯式、物件導向、功能強大的語言,Python的設計哲學強調程式碼的可讀性和簡潔的語法,讓程式的結構清晰明瞭。
為了提高學習效率,本書使用作者開發的轉接板,它可以直接插在樹莓派上使用,免去麵包板上的繁瑣佈線,詳細說明以Python語言執行樹莓派的GPIO控制,內容包括有基本的輸出入控制、LCD液晶顯示器、類比至數位轉換、一線式溫度感測器、SPI匯流排、I2C匯流排、紅外線接收器、馬達控制及一些典型的感測器的使用。
目前臺灣廠商早已由代工為導向的產業結構升級為以臺灣研發海外生產的模式,這其中的關鍵有賴於臺灣教育對高科技人才的培育是否踏實,臺灣高等教育不應該只在量的擴大上,而更應該是在質的提升上,培養出有研發實力、有國際觀的科技人才,才能在世界經濟舞台上與其他國家競爭。
由於筆者所學有限,書中難免會有一些錯誤及不夠完善之處,尚祈請讀者先進不吝批評指正。
最近幾年比較少出書了,並不是沒有題材可以出書,事實上手上已準備好的有Arduino、Raspberry Pi、Linkit 7688/7697、BLE4.2相關的書可以出,但網路興起,任何資料只要Google一下幾乎垂手可得,又加上少子化浪潮席捲而來,學生很少買書了,加深了實體出版業的經營困境,不敢貿然出書,惡性循環之下,導致許多知識無法傳承下去,是很可惜的。
樹莓派(Raspberry Pi)開發板是一款基於Linux作業系統.的單板電腦,由英國的樹莓派基金會所開發,目的是以低價硬體和自由軟體這兩種方式來刺激學校的基本電腦科學教育,讓每一個學生,甚至是中小...
目錄
第一章 初識Raspberry Pi
1-1 Raspberry Pi開發板
1-2 Raspberry Pi 3概述
1-3 Raspberry Pi轉接板
1-4 燒錄映像檔
1-5 鍵盤、時區與Wifi區域設定
1-6 網路設定
1-7 Linux命令列操作
第二章 Python程式設計
2-1 Python開發環境
2-2 基本語法
2-3 控制程序
2-4 元組(tuple)
2-5 列表(list)
2-6 函數
2-7 模組
第三章 基本輸出控制—顯示
3-1 導入GPIO.RPi模組
3-2 LED發光二極體
3-3 LED範例實驗
3-4 7段顯示器
3-5 7段顯示器範例實驗
3-6 8x8點陣LED顯示器
3-7 8x8點陣顯示器範例實驗
第四章 基本輸入控制—按鍵
4-1 GPIO輸入檢測
4-2 獨立按鍵開關
4-3 按鍵開關範例實驗
4-4 中斷
4-5 中斷範例實驗
第五章 LCD液晶顯示器
5-1 文字型LCD1602
5-2 LCD液晶顯示器範例實驗
第六章 類比至數位轉換
6-1 類比至數位轉換概論
6-2 MCP3002簡介
6-3 AD轉換實驗
第七章 一線式溫度感測器
7-1 DS18B20概述
7-2 手動操作DS18B20
7-3 DS18B20範例實驗
第八章 I2C匯流排
8-1 I2C匯流排概述
8-2 DS1307簡介
8-3 實時時鐘DS1307實驗
第九章 紅外線遙控器
9-1 紅外線遙控器概述
9-2 紅外線接收範例實驗
第十章 蜂鳴器
10-1 蜂鳴器概述
10-2 蜂鳴器實驗
第十一章 架設伺服器
11-1 安裝Apache2 & PHP5
11-2 安裝MySQL
11-3 安裝FTP
11-4 安裝Wordpress
第十二章 馬達控制
12-1 步進馬達
12-2 步進馬達實驗
12-3 伺服馬達
12-4 伺服馬達實驗
12-5 直流馬達
12-6 直流馬達實驗
第十三章 感測器
13-1 HC-SR04超音波測距模組簡介
13-2 超音波測距模組實驗
13-3 熱釋電紅外線感測器
13-4 熱釋電紅外線感測器實驗
13-5 DHT11簡介
13-6 DH11範例實驗
13-7 PM2.5感測器
13-8 PM2.5粉塵感測器讀取實驗
第一章 初識Raspberry Pi
1-1 Raspberry Pi開發板
1-2 Raspberry Pi 3概述
1-3 Raspberry Pi轉接板
1-4 燒錄映像檔
1-5 鍵盤、時區與Wifi區域設定
1-6 網路設定
1-7 Linux命令列操作
第二章 Python程式設計
2-1 Python開發環境
2-2 基本語法
2-3 控制程序
2-4 元組(tuple)
2-5 列表(list)
2-6 函數
2-7 模組
第三章 基本輸出控制—顯示
3-1 導入GPIO.RPi模組
3-2 LED發光二極體
3-3 LED範例實驗
3-4 7段顯示器
3-5 7段顯示器範例實驗
3-...