星期四, 2月 27, 2014

Raspberry Pi 筆記(十二):控制步進馬達

[2014/02/26]
先前寫一篇文章 Arduino筆記(八):控制步進馬達 提到如何用 Arduino 控制步進馬達,這幾天同時有兩三位網友問了相關問題,因此決定用 Raspberry Pi 來執行步進馬達控制方法,也對照一下Arduino的連接圖,轉為Raspberry Pi的線路圖。

今天晚上的實作,發生幾個問題:一開始 ULN2003APG接到 Raspberry Pi的接腳差一格,從pin2 ~ pin5,執行程式的結果就是只能正轉,怎麼樣都不能倒轉;仔細檢查後發現才改回來 pin1~ pin4。執行程式結果還是只能正轉,包括執行 backwards 那段程序也正轉,仔細檢查發現是程式中的接腳順序錯了,a1, a2, b1, b2順序對調,等修正後,終於能正確控制正反轉了。



[步進馬達]

步進馬達的種類依照結構來分可以分成三種:
• 永久磁鐵 PM 式 (permanent magnet type)
• 可變磁阻 VR 式 (variable reluctance type)
• 複合式 (hybrid type)

PM式步進馬達的轉子是以永久磁鐵製成,其特性為線圈無激磁時,由於轉子本身具磁性故仍能產生保持轉矩。

VR式步進馬達的轉子是以高導磁材料加工製成,由於是利用定子線圈產生吸引力使轉子轉動,因此當線圈未激磁時無法保持轉矩,此外,由於轉子可以經由設計提高效率,故VR式步進馬達可以提供較大之轉矩,通常運用於需要較大轉矩與精確定位之工具機上,VR式的步進角一般均為15°。

複合式步進馬達在結構上,是在轉子外圍設置許多齒輪狀之突出電極,同時在其軸向亦裝置永久磁鐵,可視為PM式與VR式之合體,故稱之為複合式步進馬達,複合式步進馬達具備了PM式與VR式兩者的優點,因此具備高精確度與高轉矩的特性,複合式步進馬達的步進角較小,一般介於1.8°~3.6°之間,最常運用於OA器材如影印機、印表機或攝影器材上。

步進馬達依定子線圈的數目可分成2相,3相,4相及5相式,小型步進馬達以4相式較普遍,高速型步進馬達則以5相式為主。4相步進馬達頂部和底部,兩側是一對,如下圖:
即(相與相)和(相與相 ),同一線圈繞在同一磁極上、兩組線圈所繞的方向相反,只需對其中一組線圈激磁,便可以改變定子磁場的極性,因此不可將A相與-A相 (或B相與-B相 ) 線圈同時激磁。

馬達正轉時,依序從( )改變線圈磁性,即可讓步進馬達正轉,如下圖:




馬達反轉時,依序從( )改變線圈磁性,即可讓步進馬達反轉,如下圖:


[材料]

• 麵包板 x 1
• Raspberry Pi Model B主板 x 1 (使用無線網卡)
• ULN2003APG x 1
• 步進馬達 x 1
• 連接線 x N條

[線路連接與電路圖]

• Pi Pin2接到麵包版 + 端,再接到步進馬達紅色線。
• Pi Pin6接到 ULN2003APG(以下簡稱2003) Pin8(GND),Pi Pin8(GPIO14)接到 2003 Pin1(IN1),Pin10(GPIO15)接到 2003 Pin2(IN2),Pin11(GPIO17)接到 2003 Pin3(IN3),Pin12(GPIO18)接到 2003 Pin4(IN4)。
• 步進馬達藍色線接到 2003 Pin14(OUT3),黃色線接到 2003 Pin13(OUT4),橘色線接到 2003 Pin15(OUT2),粉紅色線接到 2003 Pin16(OUT1)。

上面這樣說明是不是看到眼都花了,整理成下表,比較容易瞭解:

• ULN2003APG與步進馬達連接線路
ULN2003APG
Raspberry Pi
步進馬達
Pin 8  (Ground)
Pin 6 (Ground)

VCC   (5V)
Pin 2 (3.3V)
紅色線
Pin1 (IN1)
Pin8 (GPIO14)

Pin2 (IN2)
Pin10 (GPIO15)

Pin3 (IN3)
Pin11 (GPIO17)

Pin4 (IN4)
Pin12 (GPIO18)

Pin14 (OUT3)

藍色
Pin13 (OUT4)

黃色
Pin15 (OUT2)

橘色
Pin16 (OUT1)

粉紅色


[程式]

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

a1_pin = 14
a2_pin = 15
b1_pin = 17
b2_pin = 18

GPIO.setup(a1_pin, GPIO.OUT)
GPIO.setup(a2_pin, GPIO.OUT)
GPIO.setup(b1_pin, GPIO.OUT)
GPIO.setup(b2_pin, GPIO.OUT)

forward_seq = ['1010', '0110', '0101', '1001']
reverse_seq = ['1001', '0101', '0110', '1010']

def forward(delay, steps):
    for i in range(steps):
        for step in forward_seq:
            set_step(step)
            time.sleep(delay)

def backwards(delay, steps):
    for i in range(steps):
        for step in reverse_seq:
            set_step(step)
            time.sleep(delay)

def set_step(step):
    GPIO.output(a1_pin, step[0] == '1')
    GPIO.output(a2_pin, step[1] == '1')
    GPIO.output(b1_pin, step[2] == '1')
    GPIO.output(b2_pin, step[3] == '1')

while True:
    set_step('0000')
    delay = raw_input("Delay between steps (milliseconds)?")
    steps = raw_input("How many steps forward? ")
    forward(int(delay) / 1000.0, int(steps))

    set_step('0000')
    steps = raw_input("How many steps backwards? ")
    backwards(int(delay) / 1000.0, int(steps))

[執行結果]



[參考資料]

Raspberry Pi Cookbook by Simon Monk
• The Hobby Electronic:Operation principle of stepper motor
黃兄知識庫
Share:

星期二, 2月 25, 2014

Raspberry Pi 筆記(十一):音效設定與播放器

[2014/02/20]
Raspberry Pi 有個可外接喇叭或耳機的3.5mm插孔,可以在x-window的環境下,使用圖形介面播放音樂,一般較不為人知的是文字介面也有播放程式,本單元就來介紹 Pi 的音樂操作指令。

[安裝音效模組]

Linux核心需安裝 snd_bcm2835音效模組,才能輸出音效,可用lsmod指令察看是否已安裝:
$ sudo lsmod | grep snd_bcm2835

執行後出現以下畫面:

或執行以下指令,可看到音效卡型號為何?
$ sudo cat /proc/asound/cards

如果沒有安裝 snd_bcm2835,可執行下列指令安裝模組:
$ sudo modprobe snd_bcm2835

[調整音量]

我使用 putty 透過ssh登入 Pi,在 Console 模式下,如要調整音量可以執行下列指令:
$ alsamixer

執行後會出現文字圖形介面,可以按方向鍵 ↑↓來調整音量大小。


[調整音效輸出]

Raspberry Pi有兩個音效輸出的地方,一個是3.5mm插孔,另一個是透過HDMI輸出,如要調整音效輸出設定,可用amixer指令:
$ amixer cset numid=3 n

n = 0 表示自動選擇音效輸出位置,如果有接HDMI優先從HDMI輸出
n = 1 透過analog從傳統的 3.5 mm耳機孔輸出
n = 2 透過HDMI輸出

[測試音效]

執行下列指令來測試音效輸出是否正常:
$ speaker -test -c2 -t wav
可以聽到一個女生說Left, Right, 耳機或喇叭只有左邊或右邊有聲音。

文字介面下播放mp3 → omxplayer
如要在命令列播放mp3,可安裝 omxplayer,以下是安裝指令:
$ sudo apt-get -y install omxplayer

播放mp3檔案
$ omxplayer Eggs.mp3

文字介面下播放mp3 → moc (music on console)
$ apt-get install moc

執行 moc 程式
$ mocp
出現以下文字視窗


如果操作mocp程式有困難,可按下 h ,會出現按鍵說明,以下摘錄常用按鍵:

q                 暫停程式
Q                結束程式
ENTER      開始播放這個檔案
n                 播放下一首歌
b                 播放上一首歌
s                  停止播放
p / 空白鍵   暫停
<                 音量減少 1%
>                 音量增加 1%

x-win 播放 mp3
在 Raspberry Pi 的功能選單中有一個 QjackCtl 的播放程式,可從開始選單 → Sound & Video → QjackCtl,即可開啟以下畫面,或是在終端機命令列輸入以下指令:
$ qjackctl

出現以下畫面:



[參考資料]

Raspberry Pi Spy
Hsian Studio - Freebsd Music On Console (MOC)
Raspberry Pi for Secret Agents

Share:

星期二, 2月 18, 2014

Raspberry Pi 筆記(十):使用PIR (Passive Infrared)偵測物體移動

[2014/02/17]
當我們進出便利商店時,會聽到叮咚的聲音,主要是PIR元件感應到物體移動,驅動喇叭發出聲音。接下來的實驗就是是否透過PIR感應讓LED發亮。當感應到時綠燈亮,否則就亮紅燈。

[材料]

• 麵包板 x 1
• Raspberry Pi 主板 x 1
• PIR感應器 x 1
• LED  x 2
• 220k 電阻 x 2
• 連接線 x 6條

[線路連接與電路圖]

• 將PIR 5V線路接到麵包版 +的那一排
• 將PIR GND Pin接到Raspberry Pi Pin 6 (GND)
• Raspberry Pi Pin12(GPIO18)接到 PIR 中間那條 Out
• 將綠色LED一腳接到 Raspberry Pi Pin18 (GPIO24),另一隻腳接+極
• 將紅色LED一腳接到 Raspberry Pi Pin16 (GPIO23),另一隻腳接+極







[程式]

import RPi.GPIO as GPIO
import time

pir = 18
led_red = 23
led_green = 24

GPIO.setmode(GPIO.BCM)
GPIO.setup(pir, GPIO.IN)

while True:
    input_state = GPIO.input(pir)
    if input_state == True:
        print('Motion Detected')
        GPIO.setup(led_red, GPIO.IN)
        GPIO.setup(led_green, GPIO.OUT)
        time.sleep(1)
    else
        GPIO.setup(led_green, GPIO.IN)
        GPIO.setup(led_red, GPIO.OUT)
        time.sleep(1)


[參考資料]

Raspberry Pi Cookbook
Share:

星期一, 2月 17, 2014

Raspberry Pi 筆記(九):使用Keypad

[2014/02/15]
有一段時間非常熱衷使用Arduino做一些有趣的實驗,其中一個就是Keypad,從拆解看Keypad線路到完成使用按鍵演奏音樂,覺得非常充實。今天使用Raspberry Pi也來試試看能否成功安裝Keypad 輸出數字。


[材料]

• 麵包板 x 1
• Raspberry Pi 主板 x 1
• 3x4 Keypad x 1
• 連接線 x 7條

[線路連接與電路圖]

• Raspberry Pi Pin7(GPIO4)接到 Keypad 左邊第一隻接腳
• Raspberry Pi Pin11(GPIO17)接到 Keypad 左邊第二隻接腳
...請參考下表,於此類推:

位置 KeyPad接腳 Raspberry Pi GPIO接腳
COL0
5
23
COL1
6
24
COL2
7
25
ROW0
1
4
ROW1
2
17
ROW2
3
18
ROW3
4
22


實驗過程中,數字789那一排一直無法出現在Console上,覺得很奇怪,查一下那一排ROW2是接到Pin13,也就是GPIO21,先將 Pin13 改接到 Pin7 (GPIO4),顯示就就沒問題了。後來在網路上查詢時發現新版Raspberry Pi 新推出的版本已經將GPIO21改為GPIO27。於是將程式的Pin7 的GPIO4改為Pin 13的GPIO27,鍵盤按鍵789也可以顯示在Console上了。

[程式]

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

rows = [4, 17, 18, 22]
cols = [23, 24, 25]
keys = [
    ['1', '2', '3'],
    ['4', '5', '6'],
    ['7', '8', '9'],
    ['*', '0', '#']]

for row_pin in rows:
    GPIO.setup(row_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

for col_pin in cols:
    GPIO.setup(col_pin, GPIO.OUT)

def get_key():
    key = 0
    for col_num, col_pin in enumerate(cols):
        GPIO.output(col_pin, 1)
        for row_num, row_pin in enumerate(rows):
            if GPIO.input(row_pin):
               key = keys[row_num][col_num]
        GPIO.output(col_pin, 0)
     return key

while True:
    key = get_key()
    if key :
        print(key)
    time.sleep(0.2)

[參考資料]

Raspberry Pi Cookbook
Share:

星期三, 2月 12, 2014

Raspberry Pi 筆記(八):安裝Webmin、FTP、Web、Web伺服器及無線網路

[2014/02/12]
Raspberry Pi可以作為伺服器使用,只要安裝套裝軟體,啟動服務,即可當作伺服器使用。以下為各種安裝方法的筆記,未來將陸續新增常用的伺服器安裝方法:

安裝 Webmin
Webmin 是一套透過網頁管理Linux 系統好用的工具,畫面如下:

如果要再Raspberry Pi自動安裝的話,要將來源加到source.list當中,需先開啟文字編輯程式,加入來源位置:
$ sudo nano /etc/apt/sources.list

增加以下兩行:
$ sudo deb http://download.webmin.com/download/repository sarge contrib
$ sudo deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib

接著要安裝GPG key:
$ sudo cd /root
$ sudo wget http://www.webmin.com/jcameron-key.asc
$ sudo apt-key add jcameron-key.asc

接著更新系統並安裝 Webmin 套件:
$ sudo apt-get update
$ sudo apt-get install webmin

安裝成功後,會出現以下畫面;就可用瀏覽器輸入  https://localhost:10000 開啟Webmin,開啟畫面後需要經過驗證才能登入系統,可輸入root帳號及密碼即可登入。



安裝 Web Server
$ sudo apt-get install lighttpd

顯示服務狀態及啟動
$ sudo service lighttpd status
$ sudo service lighttpd start

安裝FTP Server
以下指令執行安裝vsftp:
$ sudo apt-get install vsftpd

重新啟動FTP指令如下:
$ /etc/init.d/vsftpd restart

預設只能用anonymous登入,如果要用帳號登入,需修改/etc/vsftpd.conf檔案,將以下這行變成註解:
#anonymous_enable=YES

將以下這行註解拿掉:
local_enable=YES

存檔後,重新啟動vsftpd即可以帳號登入。

安裝無線網路
我使用的USB無線網卡是TP-Link,Raspberry Pi 可自動安裝驅動程式,剩下的就是設定連接哪個無線AP、SSID及密碼等,要修改以下兩個檔案:
修改 interface檔案
$ vi /etc/network/interfaces
#程式碼如下:
auto wlan0

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

修改interfaces 設定的wpa-conf指定的檔案
$ vi /etc/wpa_supplicant/wpa_supplicant.conf
#程式碼如下:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
        ssid="home"
        psk="xxxx"
        proto=WPA
        key_mgmt=WPA-PSK
        pairwise=CCMP
        auth_alg=OPEN
}

[2014/03/30]
最近買了一個很小的無線網路網卡TP-Link,型號:TL-WN725N,回來一插入Raspberry Pi,結果抓不到驅動程式,無法連線,於是上網找了一下是否能夠啟動,找到一個安裝方法,先執行以下指令:
$ uname -a

出現以下回應
Linux raspberrypi 3.10.25+ #622 PREEMPT Fri Jan 3 18:41:00 GMT 2014 armv6l GNU/Linux

看到版本及序號#622,到以下網站找到對應的日期的驅動程式
http://www.raspberrypi.org/forum/viewtopic.php?f=28&t=62371

再到以下網站找到對應的日期檔案,下載後進行解開:
http://dl.ciph.se/raspberrypi/

安裝的步驟如下:
將firmware 複製至指定目錄
$ sudo cp rtl8188eufw.bin /lib/firmware/rtlwifi
安裝驅動程式8818eu.ko
$ sudo install -p -m 622 8188eu.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless
$ sudo insmod /lib/modules/$(uname -r)/kernel/drivers/net/wireless/8188eu.ko
檢查這些模組的主要資訊,然後定義出相依性,利用 depmod 這個指令就可以建立 /lib/modules/$(uname -r)/modules.dep
$ sudo depmod -a

安裝完成後,無線網卡就開始亮燈,且可抓到無線 AP的訊號,輸入PSK密碼後即可連線。

[2017/03/02 更新]

目前新的kernel版本為:
# uname -a
Linux raspberrypi 4.4.48-v7+ #964 SMP Mon Feb 13 16:57:51 GMT 2017 armv7l GNU/Linux

安裝TP-Link無線網卡時,又出現問題,解決方法如下:

先到下列網站下載驅動程式:(2017/2/14開機時,無線網卡亮燈,這段可以不用執行)

# wget https://dl.dropboxusercontent.com/u/80256631/8188eu-4.4.48-v7-964.tar.gz
# tar xzf 8188eu-4.4.48-v7-964.tar.gz
# ./install.sh

重新開機後 (很重要),修改以下設定檔:

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid=”home”
psk=”mypassword”
}

如果還是不行,執行 iwconfig看看是否wlan0有啟動。如果有啟動:

將 /etc/network/interfaces 的 wlan0那段改成以下設定:

auto wlan0
allow-hotplug wlan0
# iface wlan0 inet manual
#     wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

iface wlan0 inet dhcp
        wpa-ssid "home"
        wpa-psk "mypassword"


重新啟動無線網卡或重開機:
$ sudo ifdown wlan0
$ sudo ifup wlan0


[2017/01/26 --更新]

[2017/09/07 更新]

上述的下載網站 dl.dropboxusercontent.com 已經改成 www.fars-robotics.net

# wget http://www.fars-robotics.net/8188eu-4.9.41-1023.tar.gz
# tar xzf 8188eu-4.4.8-881.tar.gz
# ./install.sh

[2017/09/07 --更新]

參考資料:
http://www.raspberrypi.org/forum/viewtopic.php?f=28&t=62371
http://raspberrypi.stackexchange.com/questions/56395/cant-get-tp-link-tl-wn725n-working-raspberry-pi-2-model-b
Share:

星期二, 2月 11, 2014

Raspberry Pi 筆記(七):使用L293D驅動馬達

[2014/02/07]
一般控制DC 馬達驅動時,如果只是單一方向轉動,只要控制其電壓正負極的接腳,就可以控制轉向。如果要有正反轉能力的話,就必須在電路運作中將馬達電壓反向,一般常用的是L293D 這顆 IC,其他還有L298N、TA7257P、SN754410等。一般馬達電流比 Raspberry Pi 控制板大很多,如果直接使用,可能會因為控制板電流輸出過小推不動馬達,或是馬達的電流太大把控制板燒壞。所以建議使用獨立的電源供應馬達,並搭配馬達驅動器L293D。

[基礎知識:H-Bridge]

驅動馬達時,使用H-Bridge,連接的方式如下圖:

圖片來源:Wikipedia

當開關S1和S4 (下圖左方) 閉合且S2和S3是打開的,正電壓將依照電流方向使馬達正轉。當S1和S4的開關打開且S2和S3的開關閉合 (下圖右方) ,此電壓是相反的,會使馬達轉向相反。使用這個電路時,開關S1和S2不應該在同一時間被封閉,因為這將導致輸入電壓短路,電流就會從正極穿過兩個電晶體直接回到負極,同樣的S3和S4也不能同時閉合,這種情況被稱為直通 (shoot-through),是有可能燒壞電晶體的。在實際驅動電路中通常要用硬體電路方便地控制電晶體的開關。

 圖片來源:Wikipedia

圖片來源:Robotix

[L293D接腳說明]

• 1 Enable 1-2:作為左半邊IC控制用。當這個Pin為高電壓時,左半邊IC可作用,反之,低電壓時,左半邊IC無作用。
• 2 INPUT 1:當這個Pin為高電壓時,電流會流出至Output 1。
• 3 OUTPUT 1:這個Pin要接到終端馬達的一個接腳。
• 4,5 GND:接地。
• 6 OUTPUT 2:這個Pin要接到終端馬達的一個接腳。
• 7 INPUT 2, 當這個Pin為高電壓時,電流會流出至Output 2。
• 8 VC:供給給馬達使用的電壓,如果要驅動的馬達是12V,那就要供給這個Pin 12V直流電。
• 9 Enable 3-4:作為右半邊IC控制用。當這個Pin為高電壓時,右半邊IC可作用,反之,低電壓時,右半邊IC無作用。
• 10 INPUT 3,:這個Pin為高電壓時,電流會流出至Output 3。
• 11 OUTPUT 3:這個Pin要接到終端馬達的一個接腳。
• 12,13 GND:接地。
• 14 OUTPUT 4:這個Pin要接到終端馬達的一個接腳。
• 15 INPUT 4:當這個Pin為高電壓時,電流會流出至Output 4。
• 16 VSS:提供給IC的電源,這個Pin要供給5V電壓。

[材料]

• 麵包板 x 1
• Raspberry Pi 主板 x 1
• 直流 3V 馬達 x 1
• L293D IC晶體 x 1
• 電池盒(3V) x 1
• 連接線 x N條

[線路連接與電路圖]

• Raspberry Pi Pin2接到L293D Pin16(Vcc 1),Pin6接到L293D Pin5(GND)。
• Raspberry Pi Pin12接到L293D Pin1(Enable1,2),Pin16接到Pin2(Input1),Pin18接到Pin7(Input2)。
• 電池盒正負極接到L293D Pin8(VCC 2)及Pin12(GND)。
• 馬達的兩條線分別接在L293D Pin3(Output1)及Pin6(Output2)。

[程式碼]

import time
import RPi.GPIO as GPIO

enable_pin = 18
in1_pin = 23
in2_pin =24
GPIO.setmode(GPIO.BCM)
GPIO.setup(enable_pin, GPIO.OUT)
GPIO.setup(in1_pin, GPIO.OUT)
GPIO.setup(in2_pin, GPIO.OUT)

pwm = GPIO.PWM(enable_pin, 500)
pwm.start(0)

def clockwise():
    GPIO.output(in1_pin, True)
    GPIO.output(in2_pin, False)

def counter_clockwise():
    GPIO.output(in1_pin, False)
    GPIO.output(in2_pin, True)

while True:
    cmd = raw_input("Command, f/r 0..9, E.g. f5 :")
    direction = cmd[0]
    if direction == "f":
        clockwise()
    else:
        counter_clockwise()
    speed = int(cmd[1]) * 10
    pwm.ChangeDutyCycle(speed)

[程式說明]

GPIO.setmode設定有兩種方法:(GPIO.BCM) 跟(GPIO.Board),這兩種方式可以透過 RPi.GPIO對 Raspberry Pi上的Pin進行編號。
● 第一種方式是使用 BOARD 編號系統。這個方式是參考 Raspberry Pi 主機板上 P1 接線柱的針腳編號。使用這個方式的優點是無需考慮主機板的修訂版本,不會隨著硬體版本更新而改變Pin腳編號,程式也無須改變。指令為:GPIO.setmode(GPIO.BOARD)。
● 第二種方式是使用 BCM 編號系統。這是一種低階的工作方式,需參考 Broadcom SOC 的通道編號。使用時,需注意主機板上的針腳與圖表上標注的通道編號相對應。程式可能會因為Raspberry Pi 主機板進行版本更新而無法工作。指令為:GPIO.setmode(GPIO.BCM)。


[參考資料]

● Raspberry Pi Cookbook
● ROBOTIX-Motor Driver IC
● WikiPedia-H Bridge
Share:

星期日, 2月 02, 2014

Raspberry Pi 筆記(六):使用WiringPi 控制GPIO

[2014/01/30]
在 Raspberry Pi 筆記(二):GPIO接腳與控制軟體安裝 提到另一個可控制GPIO的函數庫WiringPi,WiringPi包含命令列的gpio函數庫工具,可以使用程式控制 gpio,透過 shell scripts讀寫 pins。以下介紹兩個安裝 WiringPi 的方法。

[方法一:使用git]

git 是一套分散式的版本控制系統,如果系統中沒有git,就要先安裝,指令如下:
$ sudo apt-get install git-core

使用Git 下載程式
$ git clone git://git.drogon.net/wiringPi

取得最新版本
$ cd wiringPi
$ git pull origin

如果已經是最新版本,可以執行以下指令:
$ cd wiringPi
$ sudo ./build

如果看到 All Done. 表示已經安裝完成。


[方法二:下載壓縮檔後進行安裝]

先到以下網站下載主程式:
https://git.drogon.net/?p=wiringPi;a=summary

按下 snapshot 下載程式
$ tar xfz wiringPi--f18c8f7.tar.gz
$ cd wiringPi-f18c8f7
$ ./build

[測試WiringPi是否安裝完成]

顯示版本:出現一些版權宣言,並告知這個軟體是免費的
$ gpio -v

顯示目前所有GPIO的輸入或輸出狀態
$ sudo gpio readall
如果出現下圖wiringPi的Pin腳編號,就表示安裝成功了。


[2017/05/28更新--]
上圖是 Pi一代 Model B的WiringPi跟GPIO對照表,以下是 Pi 2 Model B的 GPIO表。


[2017/05/28更新--]

WiringPi 接腳圖



 參考資料:
Gordons Projects-WiringPi
Share: