Node.js Raspberry Pi - GPIO 入門
什麼是 GPIO?
GPIO 是通用輸入輸出 (General Purpose Input Output) 的縮寫。
Raspberry Pi 有兩排 GPIO 引腳,它們是 Raspberry Pi 與現實世界之間的連線。
輸出引腳就像 Raspberry Pi 可以開啟或關閉的開關(例如開啟/關閉 LED 燈)。但它也可以向另一個裝置傳送訊號。
輸入引腳就像你可以從外部世界開啟或關閉的開關(例如電燈開關)。但它也可以是來自感測器的輸入資料,或來自另一個裝置的訊號。
這意味著你可以透過 Raspberry Pi 及其 GPIO 引腳與現實世界互動,並控制裝置和電子產品!
仔細檢視 GPIO 引腳
這是 Raspberry Pi 3 的示意圖。
GPIO 引腳是 Raspberry Pi 右側兩排的小紅色方塊,在實際的 Raspberry Pi 上,它們是小的金屬引腳。
Raspberry Pi 3 有 26 個 GPIO 引腳,其餘引腳是電源、地或“其他”用途。
引腳位置對應下表。
Raspberry Pi B+, 2, 3 & Zero
| 3V3 | 1 | 2 | 5V |
| GPIO 2 | 3 | 4 | 5V |
| GPIO 3 | 5 | 6 | GND |
| GPIO 4 | 7 | 8 | GPIO 14 |
| GND | 9 | 10 | GPIO 15 |
| GPIO 17 | 11 | 12 | GPIO 18 |
| GPIO 27 | 13 | 14 | GND |
| GPIO 22 | 15 | 16 | GPIO 23 |
| 3V3 | 17 | 18 | GPIO 24 |
| GPIO 10 | 19 | 20 | GND |
| GPIO 9 | 21 | 22 | GPIO 25 |
| GPIO 11 | 23 | 24 | GPIO 8 |
| GND | 25 | 26 | GPIO 7 |
| DNC | 27 | 28 | DNC |
| GPIO 5 | 29 | 30 | GND |
| GPIO 6 | 31 | 32 | GPIO 12 |
| GPIO 13 | 33 | 34 | GND |
| GPIO 19 | 35 | 36 | GPIO 16 |
| GPIO 26 | 37 | 38 | GPIO 20 |
| GND | 39 | 40 | GPIO 21 |
圖例
| 物理引腳編號 |
| 電源 + |
| 地 |
| UART |
| I2C |
| SPI |
| GPIO |
| 請勿連線 |
仔細檢視麵包板
麵包板用於電子原型製作,它允許你在不焊接的情況下建立電路。它基本上是一個塑膠板,上面有一系列柵格狀的插孔(孔)。板內部有金屬條,以特定方式連線不同的插孔。
在下面的示意圖中,我們用不同的顏色高亮了一些區域。這是為了向您展示柵格是如何連線的。
麵包板的不同區域
- 在左側和右側,有 2 列插孔。這些列中的所有插孔都已連線。
- 電源匯流排 - 以紅色高亮的列。它們通常用於將電源連線到麵包板。由於整列都已連線,因此您可以將電源連線到該列的任何插孔。
- 地匯流排 - 以藍色高亮的列。它們通常用於將地線連線到麵包板。由於整列都已連線,因此您可以將地線連線到該列的任何插孔。
- 連線的插孔行 - 以綠色高亮的行。這些行的插孔已連線,但並非整行!左側插孔已連線(A-B-C-D-E),右側插孔已連線(F-G-H-I-J)。
- 麵包板的中間有一個溝槽,它將左右兩行的插孔分開。溝槽的寬度設計得可以容納許多積體電路。
安裝 onoff 模組
要使用 Node.js 與 Raspberry Pi 上的 GPIO 進行互動,我們將使用一個名為“onoff”的模組。
使用 npm 安裝 onoff 模組
pi@w3demopi:~ $ npm install onoff
現在 onoff 應該已經安裝好了,我們可以與 Raspberry Pi 的 GPIO 進行互動了。