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