Java Embedded(6)認識 Raspberry Pi 的 GPIO by Michael | CodeData
top

Java Embedded(6)認識 Raspberry Pi 的 GPIO

分享:

Java Embedded(5)開發環境、遠端執行環境的建立 << 前情

6-1 Raspberry Pi GPIO介紹

到目前為止,你應該完成工作電腦的開發環境,還有Raspberry Pi的執行環境的安裝、設定與測試。不過現在都還是撰寫與測試一般的Java應用程式,如果只是一般的系統需求,在一般的個人電腦上運作,當然會比Raspberry Pi的效率好很多。想要把應用程式放在Raspberry Pi這類的單板電腦上運作,主要有這幾種情況:

  • 應用程式的需求比較簡單,甚至不需要圖形使用者介面,所以不需要太高的硬體效能與資源,這樣可以節省一些硬體的成本
  • 應用程式需要讀取一些感應器的資訊,例如氣溫、大氣壓力或物體的距離,依照需求儲存與使用這些資訊
  • 應用程式需要控制硬體的設備,例如LED、馬達或家用電器

在讀取感應器資訊與控制硬體的部份,一般個人電腦就不太合適,能夠支援的感應器與硬體也不多。Raspberry Pi這類的單板電腦,都會提供一組用來輸出與輸入用的針腳,稱為「Gereral-Purpose Input/Output、GPIO」,Raspberry Pi Model B有32個GPIO針腳:

JavaEmbedded_06_01

Raspberry Pi Model B+有40個GPIO針腳:

JavaEmbedded_06_02

Raspberry Pi Model B與 Model B+,採用同樣的針腳編號排列,Model B有26的GPIO針腳,Model B+有40個GPIO針腳:

JavaEmbedded_06_03

Raspberry Pi提供的GPIO,每一個針腳都有各自的用途,在後續討論的內容,會很常出現「請你把某個腳位連接到某個裝置」的說明。以Model B來說,使用這樣的方式來認識所有GPIO腳位的編號:

JavaEmbedded_06_04

Raspberry Pi的GPIO經過幾次的變化,最早的GPIO稱為「Revision 1」,目前的版本是「Revision 2」,後面的討論都是以下圖右邊的Revision 2為主:

JavaEmbedded_06_05

Raspberry Pi推出的Model B+,擴充GPIO為40的針腳,原來1到26的針腳與Revision 2一樣:

JavaEmbedded_06_06

Raspberry Pi 2 Model B的針腳位置與編號,與Model B+完全一樣。

6-2 連接並點亮LED

接下來的說明會開始需要一些其它設備或零件,這樣才能夠真正體驗GPIO的功能,所以要執行一些測試之前,會把Raspberry Pi以外需要的零件列出來:

  • LED
  • 杜邦線
  • 麵包板與麵包板連接線
  • 電阻

這些零件會很常使用,這是它們實際的樣子:

JavaEmbedded_06_07

接下來的內容提供一些相關零件的基本概念,主要是讓你先認識它們,並不需要照著說明執行任何工作,後面的內容會把它們整合起來,完成需要執行的工作。這些零件的價格都很便宜,例如一般的LED都是個位數的售價,可以在一般的電子材料行購買,現在很多拍賣與購物網站也都可以買的到,使用LED、杜邦線這些名稱搜尋看看,應該就有很多選擇的賣家,不過建議先看完接下來的介紹,再決定要購買的規格與數量。

6-2-1 LED

如果你還沒有接觸過這些電子零件,可以先瞭解這些零件的說明,首先是LED的介紹。LED是Light Emitting Diode的縮寫,通常稱為發光二極體,在生活中的應用雖然已經很常見,不過這裡需要的是單顆LED的零件,並不是一般市面上賣的LED燈泡。LED在提供電源給它以後就會發亮,主要的顏色有紅、綠、藍、黃、白、暖與琥珀色,LED需要的電壓會根據顏色而不一樣,紅、黃、淺綠的電壓是1.8到2.4v之間,白、藍、深綠的電壓是3.0到3.6v之間;LED需要的電流大多是20MA,電流的大小可以控制LED的亮度。過大的電壓與電流會燒壞LED,甚至可能會讓你聞到燒焦的味道。

LED零件有兩個針腳,使用長短來分辨正負極,長的是正,短的是負。如果你有一個可以裝兩顆電池的電池盒(一顆電池的電壓只有1.5v),電池盒的紅色線接到LED的長針腳,黑色線接到短針腳,就可以點亮LED:

JavaEmbedded_06_08

6-2-2 杜邦線

要讓Raspberry Pi連接各種零件,從LED、感應器到馬達,都需要使用電線連接到對應的GPIO針腳。這種用來連接的線稱為杜邦線,這是它的樣子:

JavaEmbedded_06_09

根據不同的用途,杜邦線有一些不同規格,常見長度有20與30公分,兩端分為公與母兩種接頭:

JavaEmbedded_06_10

Raspberry Pi的GPIO是突出的針腳,所以杜邦線的一端需要母的接頭,另外一端需要依照連接的零件選擇,如果有兩條像這樣兩端都是母接頭的杜邦線:

JavaEmbedded_06_11

就可以參考這個線路圖,把一條杜邦線插入GPIO的一號(3.3V)針腳,另一端插入LED長的針腳;另一條杜邦線插入GPIO的六號(GND)針腳,另一端插入LED短的針腳,這樣就可以經由GPIO提供電源並點亮LED。這裡的線路只是用來認識杜邦線的用途,這樣的作法很容易讓LED燒掉:

JavaEmbedded_06_12

如果使用這樣的方式連接Raspberry Pi與零件,通常在零件一多以後就會很麻煩,所以通常會從GPIO連接到馬上要說明的麵包板,連接到麵包板需要公接頭,所以你可以準備一些「公-母」的杜邦線,長度選擇20或30公分都可以,規格是「2.54mm」,初期的應用大約10條就夠了。

6-2-3 麵包板與麵包板連接線

為了比較方便Raspberry Pi連接各種零件,通常會使用一塊麵包板,先把需要的GPIO針腳連接到麵包板,在麵包板插入LED或其它零件,再把它們連接起來。先看看這個使用GPIO控制八顆LED的連接圖:

JavaEmbedded_06_13

麵包板有幾種不同的尺寸,選擇630洞的尺寸比較夠用。麵包板上面有很多洞可以用來插入杜邦線的公頭,或是插入LED與其它零件。板子上的洞分為垂直與水平連接,下圖線條穿越的洞都是連接在一起的:

JavaEmbedded_06_14

所以只要依照這個圖形,把GPIO的一號(3.3V)與六號(GND)針腳連接到麵包板,需要電源的的零件都可以從垂直的洞連接:

JavaEmbedded_06_15

如果一次要點亮多顆LED燈的話,就可以使用這樣的作法,把所有的LED長腳插入與3.3V垂直的洞,短腳插入與GND垂直的洞。這裡的說明只是用來認識麵包板的用途,這樣的作法很容易讓LED燒掉:

JavaEmbedded_06_16

麵包板上水平連接的洞,在以後連接感應器的時候,就會比較常用,不過現在可以先看看這種點亮LED的作法。先依照下面的圖型把LED插在麵包板上,再使用公-公的杜邦線,通常稱為麵包板連接線,連接到3.3V與GND垂直的洞,同樣可以點亮LED。還是點再提醒你,這樣的作法很容易讓LED燒掉:

JavaEmbedded_06_17

麵包板連接線(公-公的杜邦線)通常需要不同的長度,才不會讓接完線路後的麵包板變得很雜亂,市面上可以找到各種不同長度的一組連接線,你可以考慮購買這樣的麵包板連接線。

JavaEmbedded_06_18

6-2-4 電阻

從上面介紹的內容,你可以發現直接把LED接在GPIO提供的電源,是一件不太好的作法,在LED的介紹內容,LED需要的電流大多是20MA,如果超過太多的話,就很容易燒壞LED。Raspberry Pi的3.3V最大輸出電流是50mA,所以很容易燒壞LED。使用5V的時候要更小心,它的輸出電流是根據提供給Raspberry Pi的電源決定的,所以在連接LED的時候,不小心把3.3V接到5V,在電流過大的情況下,這個LED幾乎肯定會燒壞的。

雖然一顆LED不會花費太多,不過在使用3.3V電源點亮LED的時候,為了讓LED可以使用久一些,應該要連接電阻限制通過的電流,不過電流也會影響LED的量度,所以也不適合使用太大的電阻值。一般使用220 ohm到1k ohm的電阻都可以,不過電阻值越大的話,LED的亮度就會減低很多。

電阻的價格非常便宜,通常三到五個才$1,在電子材料行可以直接購買指定電阻值的電阻,例如220 ohm,你可以考慮多買幾個,大約8到10個左右就夠用了。電阻使用顏色標示電阻值,使用不同的顏色線條換算,如果你想要確認電阻值,可以到這個網站http://www.digikey.com/en/resources/conversion-calculators/conversion-calculator-resistor-color-code-4-band

JavaEmbedded_06_19

依照電阻上的顏色選擇完後,就會自動幫你計算它的電阻值:

JavaEmbedded_06_20

為了避免燒壞LED這類電流需求比較小的零件,在連接的時候就要加上電阻。像下面這個圖型的連接方式,把LED的短針腳接在GND,長針腳插入麵包板;使用麵包板連接線連接3.3V,最後使用220 ohm的電阻連接LED的長針腳與3.3V:

JavaEmbedded_06_21

因為現在的線路比較簡單,所以還可以直接在麵包板上畫出圖型,以後的線路比較複雜的時候,就會使用這樣的方式表示連接的作法:

JavaEmbedded_06_22

6-3 點亮兩顆LED

現在可以真的把這些零件接在一起,試試看點亮兩顆LED,而且不會燒壞它們。你要準備這些零件:

  • Raspberry Pi(包含電源與記憶卡)
  • 麵包板一個
  • LED兩顆
  • 220 ohm電阻兩個
  • 公-母杜邦線兩條
  • 麵包板連接線(公-公杜邦線)三條

在開始連接所有線路之前,如果Raspberry Pi是開機中的狀態,建議先執行關機的指令,關機完成後移除或關閉Raspberry Pi的電源。在沒有電源的狀態下連接線路是比較安全的,例如不小心連接5V與其它針腳,有可能會燒壞Raspberry Pi。參考下面的圖型連接所有的零件:

JavaEmbedded_06_23

連接完成後,最好再檢查一次,確認沒有問題以後,為Raspberry Pi接上電源,兩顆LED應該就會同時點亮了,一直到關閉電源Raspberry Pi的以後,LED才會關閉。你可以使用這樣的連接方式,試試看第三或第四棵LED。瞭解這些連接的方式以後,後面的的內容就會開始討論使用程式點亮與關閉LED的作法。

課程相關的檔案都可以GitHub瀏覽與下載。

http://github.com/macdidi5/JavaEmbedded

後續 >> Java Embedded (7)Raspberry Pi GPIO 的基礎應用與實作(上)

分享:
按讚!加入 CodeData Facebook 粉絲群

相關文章

留言

留言請先。還沒帳號註冊也可以使用FacebookGoogle+登錄留言

Shih Jie Shyu11/01

請問文章內有許多GPIO與麵包板之間連接的圖
那是用特定軟體畫的嗎
還是一般的繪圖軟體弄的呢

熱門論壇文章

熱門技術文章