树莓派python gpio 模仿iic_Adafruit的树莓派教程:GPIO配置
概覽
樹莓派最令人興奮的特點(diǎn)之一是它有一個(gè)GPIO連接器可以用來接其他的硬件設(shè)備。
GPIO連接器實(shí)際上是由許多不同類型的接口組成的:
真正的GPIO(General Purpose Input Output,通用輸入/輸出)針腳,你可以用來控制LED燈的開和關(guān)。
I2C(Inter-Integrated Circuit)接口針腳,使你能夠僅使用2個(gè)控制針腳連接硬件模塊。
SPI(Serial Peripheral Interface,串行外設(shè)接口)接口用以連接SPI設(shè)備,概念上與I2C接口類似,但是標(biāo)準(zhǔn)不同。
Serial Rx和Tx針腳用于和其他的串行外圍設(shè)備通信。
另外,一些針腳可被用于PWM(pulse Width Modulation, 脈沖寬度調(diào)制)進(jìn)行電源控制,以及PPM(Pulse Position Modulation,脈沖位置調(diào)制)控制馬達(dá)。
在這篇教程里,你實(shí)際上用不著組裝任何東西,但你將學(xué)到如何配置你的樹莓派并且安裝有用的類庫來為連接外部電子元件做準(zhǔn)備。
注意:這篇教程只適用于Raspbian和Raspbian衍生的系統(tǒng)(例如Occidentalis)
GPIO連接器
下面的圖表展示了第一版樹莓派的GPIO連接器的針腳(當(dāng)這篇文章發(fā)布時(shí)存在的版本)第二版的只是用27針替換了21針,其他都是一樣的。
除了供電針腳(包括GND,3.3V和5V),所有的GPIO針腳均可被用于數(shù)字輸入或輸出。標(biāo)記為SCL和SDA的針腳可被用于I2C。標(biāo)記為MOSI,MISO和SCKL的針腳可以用于連接高速SPI設(shè)備。
所有針腳有一個(gè)3.3V的邏輯電平并且不是5V安全的,所以輸出電平是O-3.3V并且輸入電平也不應(yīng)高于3.3V。如果想要連接5V的輸出電平作為樹莓派的輸入電平,你需要使用一個(gè)電平位移器
一個(gè)流行的連接到樹莓派的做法是接一塊擴(kuò)展板(Pi Cobbler)。
一定要確認(rèn)確認(rèn)再確認(rèn)連接線的第一針標(biāo)識靠近樹莓派的角落。如果你使用的是灰色的連接線,它是紅色條紋,而黑色的連接線是白色的條紋。那一針一定不能挨著TV連接口。把連接線翻個(gè)個(gè)或者擰一下使它翻到正確的方向。
這里使用了一個(gè)帶狀電纜來連接GPIO到一個(gè)無焊點(diǎn)的面包板上,這樣你就可以在它上面連接其他電子元件了。
Adafruit Pi Code
為了方便那些想要連接電子元件到他們的小派上的人們,Adafruit編寫了許多可以擴(kuò)展的非常有用的代碼集合。這包含了大量電子元件的簡單Python類庫,例如顯示,傳感器和PWM控制等等。
要獲得這些代碼,你需要使用一個(gè)名為”git”的軟件。這預(yù)裝在Occidentalis里面了,但是在Raspbian上你必須通過在終端里輸入下面的命令來安裝。
你會在桌面上找到終端LX Terminal的快捷方式。
在我們更加深入之前,先運(yùn)行一下下面的命令。這將會確保能找到你所要安裝的軟件包并且是最新版本。無論你是在什么路徑下。
sudo apt-get update
update命令將會花費(fèi)一點(diǎn)時(shí)間,特別是當(dāng)你第一次在小派上運(yùn)行的時(shí)候。最終它會變成一個(gè)命令提示符”$”并且這時(shí)已經(jīng)可以敲下一個(gè)命令了。
sudo apt-get install git
一旦git安裝完成(如果原來沒有裝過)你就可以使用下面的命令”check out” Adafruit Pi Python代碼庫到你自己的小派上了。
git clone http://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
cd Adafruit-Raspberry-Pi-Python-Code
ls
如果上面的步驟出現(xiàn)了一些問題,你會看到一條錯(cuò)誤信息。通常導(dǎo)致安裝失敗的原因有以下幾點(diǎn):
網(wǎng)絡(luò)連接問題
命令拼寫錯(cuò)誤。要記得Linux下是大小寫敏感的。最好是在樹莓派上直接打開這個(gè)頁面,這樣你就只需要復(fù)制粘貼就可以了
在這里你將會找到好多好東東,我們會在今后的教程里用到它們。
配置GPIO
GPIO針腳可被用于數(shù)字輸出和數(shù)字輸入。作為數(shù)字輸出,你可以寫程序切換某些針的高低電平。如果置為3.3V就是高電平,0V就是低電平。要使得一個(gè)針腳控制LED燈,你需要一個(gè)1kΩ的電阻連接到LED上,因?yàn)镚PIO針腳可管理的電量很小。
如果你用針腳作為數(shù)字輸入,你可以把開關(guān)和簡單的傳感器連到一針上然后檢查它是否打開或關(guān)閉(也就是是否激活)。
一些使用GPIO的Adafruit項(xiàng)目:
要使用Python對GPIO端口進(jìn)行編程,我們需要安裝一個(gè)十分有用的Python 2 類庫,它叫做Rpi.GPIO。這個(gè)Python類庫使我們了能夠十分容易的控制GPIO針腳。
安裝流程對于Raspbian或者Occidentalis來說都是一樣的。實(shí)際上,一些版本的Raspbian已經(jīng)包含了這個(gè)類庫,但是也推薦你升級到最新版本,這是值得的。
sudo apt-get update
要安裝RPI.GPIO,你首先需要安裝RPi.GPIO所需的Python Development toolkit。
通過下面的命令來安裝:
sudo apt-get install python-dev
然后安裝Rpi.GPIO:
sudo apt-get install python-rpi.gpio
你可能會收到提示,只需要按’Y’確認(rèn)就行了。
就是這樣了,現(xiàn)在你可以嘗試我上面提到的那些項(xiàng)目了。
配置I2C
I2C是一個(gè)廣泛使用的芯片通信設(shè)計(jì)標(biāo)準(zhǔn)。所以我們可以在樹莓派上連接許多帶I2C接口的芯片和模塊。
以下是一些使用I2C設(shè)備和模塊的Adafruit項(xiàng)目:
如果你正在使用Occidentalis,那你的小派已經(jīng)配置好I2C接口了,如果你使用Raspbian,你需要打開LXTerminal終端窗口并且輸入下面的命令:
sudo nano /etc/modules
并且在文件末尾添加下面兩行:
i2c-bcm2708
i2c-dev
編輯完成后,你需要重啟來使改動生效。
如果在Raspbian上你的I2C有問題,那最好升級到最新版本。這篇教程的測試版本是2012-10-28。
I2C總線允許你連接多個(gè)設(shè)備到樹莓派上,每一臺設(shè)備都有一個(gè)唯一地址,這通常可以通過改變模塊上的跳線進(jìn)行設(shè)置。能看到哪臺設(shè)備連接到你的小派上非常有用,因?yàn)檫@樣可以讓你確保所有事情都正常工作。
要達(dá)到這一點(diǎn),你需要在命令行里敲入下面的命令來安裝i2c-tools工具。
sudo apt-get install python-smbus
sudo apt-get install i2c-tools
根據(jù)你的發(fā)行版,你可能會找到一個(gè)這樣的文件:
/etc/modprobe.d/raspi-blacklist.conf
如果沒有這個(gè)文件,那什么都不用動,如果找到了這個(gè)文件,你需要編輯它注釋掉下面兩行:
blacklist spi-bcm2708
blacklist i2c-bcm2708
通過在行首添加一個(gè)’#’來進(jìn)行注釋。
通過鍵入下面的命令打開編輯器:
sudo nano /etc/modprobe.d/raspi-blacklist.conf
然后像下圖那樣編輯文件,然后使用CTRL+X和CTRL+Y保存退出。
一旦完成,你就可以通過下面的命令看到連接的設(shè)備了(假設(shè)你使用的是512MB的Model B型樹莓派)
sudo i2cdetect -y 1
上圖顯示有兩個(gè)I2C地址被使用 – 0×40和0×70。
注意如果你還使用的是先前版本的樹莓派(256MB的Model B型)那你需要把命令改為:
sudo i2cdetect -y 0
樹莓派不同型號的I2C端口不同。所以要記住:512M的小派使用i2c端口1,256MB的使用端口0!
測試和配置
最好的測試方法是挑選一個(gè)項(xiàng)目(最好從一個(gè)十分簡單的項(xiàng)目開始)然后自己親手試一試。
下面是我推薦的一些可以作為入門項(xiàng)目的教程:
總結(jié)
以上是生活随笔為你收集整理的树莓派python gpio 模仿iic_Adafruit的树莓派教程:GPIO配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的爬虫第一天
- 下一篇: python遍历文件夹下所有文件名中含有