概述
BeagleBone Black的獨特之處在于它具有許多可在易于使用的針座上使用的針,以及功能強大的小型系統。有2 x 46引腳可用(嗯,不是全部,但是我們稍后會(huì )介紹)。
一些可用功能:
7類(lèi)比引腳
65個(gè)數字引腳,電壓為3.3V
2x I2C
2x SPI
2x CAN總線(xiàn)
4計時(shí)器
4x UART
8x PWM
A/D轉換器
非常豐富的功能列表! Adafruit BeagleBone IO Python庫不支持所有這些庫,但是我們希望在以后的過(guò)程中添加更多內容。
下一頁(yè)將指導您安裝庫,以及入門(mén)的基本用法。 div》
本教程僅在當前針對Angstrom,Ubuntu和Debian安裝而編寫(xiě)。
在A(yíng)ngstrom上安裝
安裝Adafruit-BeagleBone-IO-Python(phew?。旆浅:?jiǎn)單。確保我們首先有一個(gè)良好的基礎設置。
這里最重要的部分是您使用的是帶有3.8內核的Linux發(fā)行版。該內核版本對訪(fǎng)問(wèn)GPIO和PWM的方式進(jìn)行了相當重要的更改。好消息是您的BeagleBone Black預裝了正確的內核。它可能不是最新的也是最大的。如果您有多余的時(shí)間,那么遵循我們的Angstrom安裝指南,并用最新版本的BeagleBone Black刷新并不是一個(gè)壞主意。
連接到BeagleBone Black(SSH)
一旦您在BBB上擁有最新版本的Angstrom,就讓我們進(jìn)入系統,以便我們執行命令。獲得系統訪(fǎng)問(wèn)權限的最簡(jiǎn)單方法是使用GateOne SSH。您可以通過(guò)在瀏覽器窗口中鍵入以下內容來(lái)輕松訪(fǎng)問(wèn)GateOne:
下載:文件
復制代碼
http://beaglebone.local http://beaglebone.local
頁(yè)面成功加載后(您應該會(huì )看到一個(gè)綠色框,上面寫(xiě)著(zhù)“您的板已連接!”),您可以單擊側邊欄中左上方的“ GateOne SSH鏈接”。然后,單擊“ GateOne SSH客戶(hù)端”鏈接開(kāi)始。某些瀏覽器可能會(huì )抱怨證書(shū)無(wú)效,但仍然可以繼續進(jìn)行操作。
要登錄到beaglebone,請在提示符下鍵入以下內容(假定root用戶(hù)使用全新的Angstrom安裝):
下載:文件
復制代碼
Host/IP or SSH URL [localhost]: beaglebone.local
Port [22]: (just hit enter)
User: root
Connecting to ssh://[email protected]:22 Host/IP or SSH URL [localhost]: beaglebone.local
Port [22]: (just hit enter)
User: root
Connecting to ssh://[email protected]:22
設置和安裝Adafruit_B的命令BIO 現在,您已經(jīng)連接到BBB,您將需要從設置日期和時(shí)間開(kāi)始,以便準確。將以下內容復制并粘貼到您的終端中(您可能希望以后在啟動(dòng)時(shí)執行此操作):
下載:文件
復制代碼
/usr/bin/ntpdate -b -s -u pool.ntp.org /usr/bin/ntpdate -b -s -u pool.ntp.org
這些命令將需要Internet訪(fǎng)問(wèn)。如果遇到錯誤,請查看FAQ頁(yè)面以獲取解決方案。
下一步,執行以下每一行。將以下內容一一復制并粘貼到終端中,然后按Enter鍵:
下載:文件
復制代碼
opkg update && opkg install python-pip python-setuptools python-smbus
pip install Adafruit_BBIO opkg update && opkg install python-pip python-setuptools python-smbus
pip install Adafruit_BBIO
測試您的安裝(可選)您可以選擇嘗試加載模塊之一來(lái)選擇是否成功安裝。從控制臺(而不是從python解釋器中)執行以下命令,它不應引發(fā)任何錯誤,但返回一行:
下載:文件
復制代碼
python -c “import Adafruit_BBIO.GPIO as GPIO; print GPIO”
#you should see this or similar:
python -c “import Adafruit_BBIO.GPIO as GPIO; print GPIO”
#you should see this or similar:
您還可以通過(guò)執行“ python”命令進(jìn)行驗證啟用解釋器并運行以下代碼(當您在終端中看到“ 》》》”時(shí),便可以知道您在正確的位置):
下載:文件
復制代碼
import Adafruit_BBIO.GPIO as GPIO; print GPIO
#you should see this or similar:
import Adafruit_BBIO.GPIO as GPIO; print GPIO
#you should see this or similar:
手動(dòng)安裝(可選)您還可以通過(guò)克隆git存儲庫來(lái)安裝Adafruit_BBIO。以下命令也應將其安裝:
下載:文件
復制代碼
git clone git://github.com/adafruit/adafruit-beaglebone-io-python.git
#set the date and time
/usr/bin/ntpdate -b -s -u pool.ntp.org
#install dependency
opkg update && opkg install python-distutils python-smbus
cd adafruit-beaglebone-io-python
python setup.py install git clone git://github.com/adafruit/adafruit-beaglebone-io-python.git
#set the date and time
/usr/bin/ntpdate -b -s -u pool.ntp.org
#install dependency
opkg update && opkg install python-distutils python-smbus
cd adafruit-beaglebone-io-python
python setup.py install
在Debian和Ubuntu上安裝
該庫的大部分內容必須是在Debian和Ubuntu中以sudo的身份運行。
安裝Adafruit-BeagleBone-IO-Python(phew?。旆浅:?jiǎn)單。確保我們首先有一個(gè)良好的基礎設置。
這里最重要的部分是您使用的是帶有3.8內核的Linux發(fā)行版。此內核版本在訪(fǎng)問(wèn)GPIO,PWM和ADC的方式方面進(jìn)行了相當重要的更改。
連接到BeagleBone Black(SSH)
讓ssh進(jìn)入系統,以便我們執行命令。打開(kāi)您喜歡的終端,然后通過(guò)SSH進(jìn)入BeagleBone Black(BBB)。注意,Ubuntu沒(méi)有預裝Avahi-Daemon。這意味著(zhù)您需要使用IP地址而不是主機名進(jìn)行連接。
下載:文件
復制代碼
ssh [email protected] ssh [email protected]
輸入密碼(最有可能是“ temppwd”)?,F在,您應該可以使用提示輸入命令。
用于設置和安裝的命令BBIO 現在,您已經(jīng)連接到BBB,您將需要從設置日期和時(shí)間開(kāi)始,以便準確。將以下內容復制并粘貼到您的終端中(您可能希望以后在啟動(dòng)時(shí)執行此操作):
下載:文件
復制代碼
sudo ntpdate pool.ntp.org sudo ntpdate pool.ntp.org
下一步安裝依賴(lài)項:
下載:文件
復制代碼
sudo apt-get update
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus -y sudo apt-get update
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus -y
根據您所安裝的Debian或Ubuntu版本,您可能需要dtc的修補版本。
dtc(設備樹(shù)編譯器)的修補版本具有編譯覆蓋圖的功能。 Adafruit_BBIO庫為SPI和UART編譯了一組覆蓋。如果您不使用SPI或UART,則可以跳過(guò)升級和修補dtc的步驟。
您可以按照本指南測試dtc。如果您不滿(mǎn)意本指南,則僅安裝dtc的修補程序版本不會(huì )造成任何問(wèn)題。
您可以在我們的Github存儲庫中查看疊加層。
您可以找到dtc的修補程序版本。
確定了是否需要dtc的修補版本并安裝后,執行命令安裝BBIO:
下載:文件
復制代碼
sudo pip install Adafruit_BBIO sudo pip install Adafruit_BBIO
測試安裝(可選)您可以選擇通過(guò)簡(jiǎn)單地嘗試測試安裝是否成功加載模塊之一。從控制臺執行以下命令(而不是從python解釋器中執行),它不應引發(fā)任何錯誤,而應返回一行:
下載:文件
復制代碼
sudo python -c “import Adafruit_BBIO.GPIO as GPIO; print GPIO”
#you should see this or similar:
sudo python -c “import Adafruit_BBIO.GPIO as GPIO; print GPIO”
#you should see this or similar:
您還可以通過(guò)執行“ python‘命令啟用解釋器,并運行以下代碼(當您在終端中看到“ 》》》”時(shí),便可以知道您在正確的位置):
下載:文件
復制代碼
import Adafruit_BBIO.GPIO as GPIO; print GPIO
#you should see this or similar:
import Adafruit_BBIO.GPIO as GPIO; print GPIO
#you should see this or similar:
》
手動(dòng)安裝(可選)您也可以通過(guò)克隆git存儲庫來(lái)安裝BBIO。以下命令也應將其安裝:
下載:文件
復制代碼
sudo ntpdate pool.ntp.org
sudo apt-get update
sudo apt-get install build-essential python-dev python-pip python-smbus -y
git clone git://github.com/adafruit/adafruit-beaglebone-io-python.git
cd adafruit-beaglebone-io-python
sudo python setup.py install
cd 。.
sudo rm -rf adafruit-beaglebone-io-python sudo ntpdate pool.ntp.org
sudo apt-get update
sudo apt-get install build-essential python-dev python-pip python-smbus -y
git clone git://github.com/adafruit/adafruit-beaglebone-io-python.git
cd adafruit-beaglebone-io-python
sudo python setup.py install
cd 。.
sudo rm -rf adafruit-beaglebone-io-python
使用Adafruit_BBIO庫
此庫對它。在您更新庫時(shí),請隨時(shí)閱讀CHANGELOG,以確保它不會(huì )破壞您的程序。
將Adafruit_BBIO庫與BeagleBone Black(BBB)結合使用非常簡(jiǎn)單,尤其是如果您熟悉Raspberry Pi的RPi.GPIO庫。
首先,您需要導入該庫。目前有兩個(gè)不同的選項可以導入。第一個(gè)用于GPIO:
下載:文件
復制代碼
import Adafruit_BBIO.GPIO as GPIO import Adafruit_BBIO.GPIO as GPIO
如果要使用PWM,請按以下方式導入:
下載:文件
復制代碼
import Adafruit_BBIO.PWM as PWM import Adafruit_BBIO.PWM as PWM
您可以通過(guò)引用“鍵”或名稱(chēng)來(lái)訪(fǎng)問(wèn)通道。如果您看一下BeagleBone Black,您會(huì )看到每組排針都有一個(gè)名稱(chēng),即P8或P9。然后,您會(huì )看到有從1開(kāi)始的針腳編號,然后轉到46。
當您對針腳進(jìn)行計數時(shí),您并不是沿長(cháng)度方向走,而是從1開(kāi)始,然后到2,然后備份到下一個(gè)針3,依此類(lèi)推。下圖更好地說(shuō)明了這一點(diǎn):
因此,要訪(fǎng)問(wèn)P9的第一個(gè)圖釘,請使用“ P9_1”。您也可以使用圖釘的名稱(chēng)進(jìn)行訪(fǎng)問(wèn),即為。但是您不希望這樣做,因為P9_1實(shí)際上是gnd!您將要查看本指南的最后一頁(yè),以查看可以使用哪些引腳。
并非所有引腳都必須可用。 HDMI和eMMC閃存模塊默認情況下占用了很多。
I2C僅與Python2兼容。
GPIO
下面是一些使用Adafruit_BBIO.GPIO模塊的示例。使用起來(lái)非常簡(jiǎn)單。
您可能需要使用sudo運行此庫,尤其是在Ubuntu上。
設置
要將數字引腳設置為輸出,請將輸出值設置為HIGH,然后在完成后進(jìn)行清除:
下載:文件
復制代碼
import Adafruit_BBIO.GPIO as GPIO
GPIO.setup(“P8_10”, GPIO.OUT)
GPIO.output(“P8_10”, GPIO.HIGH)
GPIO.cleanup() import Adafruit_BBIO.GPIO as GPIO
GPIO.setup(“P8_10”, GPIO.OUT)
GPIO.output(“P8_10”, GPIO.HIGH)
GPIO.cleanup()
您還可以參考引腳名稱(chēng):
下載:文件
復制代碼
GPIO.setup(“GPIO0_26”, GPIO.OUT) GPIO.setup(“GPIO0_26”, GPIO.OUT)
在第一個(gè)示例中,您可以看到我們使用“ P8_10”鍵來(lái)指定我們使用哪個(gè)引腳想要設置為輸出,在第二個(gè)示例中使用相同的引腳,但使用的名稱(chēng)為“ GPIO0_26”。
您還可以將引腳設置為輸入,如下所示:
下載:文件
復制代碼
import Adafruit_BBIO.GPIO as GPIO
GPIO.setup(“P8_14”, GPIO.IN) import Adafruit_BBIO.GPIO as GPIO
GPIO.setup(“P8_14”, GPIO.IN)
完成此操作后,您可以通過(guò)幾種不同的方式訪(fǎng)問(wèn)輸入值。第一種也是最簡(jiǎn)單的方法是輪詢(xún)輸入,例如在不斷檢查輸入的循環(huán)中:
下載:file
復制代碼
if GPIO.input(“P8_14”):
print(“HIGH”)
else:
print(“LOW”) if GPIO.input(“P8_14”):
print(“HIGH”)
else:
print(“LOW”)
您也可以等待邊緣。這意味著(zhù)如果值是下降(從3V下降到0V),上升(從0V上升到3V)或兩者(即從3V變化)到0V或相反),GPIO庫將觸發(fā)并繼續執行您的程序。
wait_for_edge 方法被阻止,并將等待直到發(fā)生某些事情:
下載:文件
復制代碼
GPIO.wait_for_edge(“P8_14”, GPIO.RISING) GPIO.wait_for_edge(“P8_14”, GPIO.RISING)
另一個(gè)非阻塞選項是添加要檢測的事件。首先,您要設置要監視的事件,然后可以執行程序將要執行的其他任何操作,然后可以檢查是否檢測到該事件。
一個(gè)簡(jiǎn)單的示例如下:
下載:文件
復制代碼
GPIO.add_event_detect(“P9_12”, GPIO.FALLING)
#your amazing code here
#detect wherever:
if GPIO.event_detected(“P9_12”):
print “event detected!” GPIO.add_event_detect(“P9_12”, GPIO.FALLING)
#your amazing code here
#detect wherever:
if GPIO.event_detected(“P9_12”):
print “event detected!”
我們將繼續添加更多示例和功能,因此請經(jīng)?;貋?lái)查看!
PWM
下面是一些使用Adafruit_BBIO.PWM模塊的示例。使用起來(lái)也非常簡(jiǎn)單!
設置使用PWM的引腳:
下載:文件
復制代碼
import Adafruit_BBIO.PWM as PWM
#PWM.start(channel, duty, freq=2000, polarity=0)
PWM.start(“P9_14”, 50)
#optionally, you can set the frequency as well as the polarity from their defaults:
PWM.start(“P9_14”, 50, 1000, 1) import Adafruit_BBIO.PWM as PWM
#PWM.start(channel, duty, freq=2000, polarity=0)
PWM.start(“P9_14”, 50)
#optionally, you can set the frequency as well as the polarity from their defaults:
PWM.start(“P9_14”, 50, 1000, 1)
有效的值是0.0到100.0。 start 方法激活該通道上的pwm。無(wú)需使用Adafruit_BBIO.PWM 設置通道。
啟動(dòng)后,您可以設置占空比或頻率:
下載:文件
復制代碼
PWM.set_duty_cycle(“P9_14”, 25.5)
PWM.set_frequency(“P9_14”, 10) PWM.set_duty_cycle(“P9_14”, 25.5)
PWM.set_frequency(“P9_14”, 10)
您還希望禁用該特定通道,或者在完成后全部清理:
下載:文件
復制代碼
PWM.stop(“P9_14”)
PWM.cleanup() PWM.stop(“P9_14”)
PWM.cleanup()
ADC
ADC當前有三種可用方法。 設置,讀取 和 read_raw 。您需要確保在閱讀之前使用設置,否則將引發(fā)錯誤。
ADC僅在少數幾個(gè)引腳上可用,如下所示:
下載:文件
復制代碼
“AIN4”, “P9_33”
“AIN6”, “P9_35”
“AIN5”, “P9_36”
“AIN2”, “P9_37”
“AIN3”, “P9_38”
“AIN0”, “P9_39”
“AIN1”, “P9_40” “AIN4”, “P9_33”
“AIN6”, “P9_35”
“AIN5”, “P9_36”
“AIN2”, “P9_37”
“AIN3”, “P9_38”
“AIN0”, “P9_39”
“AIN1”, “P9_40”
1.8V是最大電壓。 AIN引腳上的電壓不要超過(guò)1.8V! VDD_ADC(P9_32)提供1.8V。將GNDA_ADC(P9_34)接地。
將設備的3.3V降至所需的1.8V的一種簡(jiǎn)單方法是使用電阻分壓器。從3v模擬信號到地串聯(lián)兩個(gè)相同的電阻器(10K至100K),然后在兩者之間連接模擬輸入引腳。分壓器會(huì )將0至3.3v的電壓均分為0-1.65V,這也為您提供了一些余量。
設置以設置ADC,只需導入模塊,然后調用 setup :
下載:文件
復制代碼
import Adafruit_BBIO.ADC as ADC
ADC.setup() import Adafruit_BBIO.ADC as ADC
ADC.setup()
然后,要讀取P9_40上的模擬值,只需閱讀它們:
下載:文件
復制代碼
value = ADC.read(“P9_40”) value = ADC.read(“P9_40”)
除鍵(上方)外,您還可以使用引腳名稱(chēng)進(jìn)行讀?。?/p>
下載:文件
復制代碼
value = ADC.read(“AIN1”) value = ADC.read(“AIN1”)
ADC驅動(dòng)程序當前存在錯誤。您需要讀取兩次值才能獲取最新值。
read 返回的值在0范圍內-1.0。您可以通過(guò)執行以下操作獲取電壓:
下載:文件
復制代碼
import Adafruit_BBIO.ADC as ADC
ADC.setup()
value = ADC.read(“P9_40”)
voltage = value * 1.8 #1.8V import Adafruit_BBIO.ADC as ADC
ADC.setup()
value = ADC.read(“P9_40”)
voltage = value * 1.8 #1.8V
您還可以使用 read_raw 來(lái)獲取實(shí)際值:
下載:文件
復制代碼
import Adafruit_BBIO.ADC as ADC
ADC.setup()
value = ADC.read_raw(“P9_40”) import Adafruit_BBIO.ADC as ADC
ADC.setup()
value = ADC.read_raw(“P9_40”)
I2C
Adafruit_I2C.py模塊現在作為頂級模塊包含在A(yíng)dafruit_BBIO庫中。這意味著(zhù)許多為Raspberry Pi構建的流行Python庫現在可以在BeagleBone Black上運行,如果它們使用的是I2C,例如BMP085傳感器庫。
要使用該模塊,就像導入它一樣簡(jiǎn)單。 ,并設置I2C地址,并設置總線(xiàn)(默認為I2C-1):
下載:文件
復制代碼
from Adafruit_I2C import Adafruit_I2C
i2c = Adafruit_I2C(0x77) from Adafruit_I2C import Adafruit_I2C
i2c = Adafruit_I2C(0x77)
I2C需要從發(fā)行版的程序包管理器(opkg或apt-get)中安裝python程序包“ python-smbus”,以使其正常運行。它已包含在A(yíng)dafruit_BBIO安裝說(shuō)明中。到目前為止,python-smbus僅與Python2兼容。
默認情況下啟用的I2C SCL和SDA引腳如下:
下載:文件
復制代碼
P9_19: I2C2, SCL
P9_20: I2C2, SDA P9_19: I2C2, SCL
P9_20: I2C2, SDA
探針連接設備的I2C總線(xiàn):
下載:文件
復制代碼
i2cdetect -y -r 0
i2cdetect -y -r 1 i2cdetect -y -r 0
i2cdetect -y -r 1
I2C模塊的最新pydoc:
下載:文件
復制代碼
class Adafruit_I2C
| Methods defined here:
|
| __init__(self, address, busnum=-1, debug=False)
|
| errMsg(self)
|
| readList(self, reg, length)
| Read a list of bytes from the I2C device
|
| readS16(self, reg)
| Reads a signed 16-bit value from the I2C device
|
| readS16Rev(self, reg)
| Reads a signed 16-bit value from the I2C device with rev byte order
|
| readS8(self, reg)
| Reads a signed byte from the I2C device
|
| readU16(self, reg)
| Reads an unsigned 16-bit value from the I2C device
|
| readU16Rev(self, reg)
| Reads an unsigned 16-bit value from the I2C device with rev byte order
|
| readU8(self, reg)
| Read an unsigned byte from the I2C device
|
| reverseByteOrder(self, data)
| Reverses the byte order of an int (16-bit) or long (32-bit) value
|
| write16(self, reg, value)
| Writes a 16-bit value to the specified register/address pair
|
| write8(self, reg, value)
| Writes an 8-bit value to the specified register/address
|
| writeList(self, reg, list)
| Writes an array of bytes using I2C format class Adafruit_I2C
| Methods defined here:
|
| __init__(self, address, busnum=-1, debug=False)
|
| errMsg(self)
|
| readList(self, reg, length)
| Read a list of bytes from the I2C device
|
| readS16(self, reg)
| Reads a signed 16-bit value from the I2C device
|
| readS16Rev(self, reg)
| Reads a signed 16-bit value from the I2C device with rev byte order
|
| readS8(self, reg)
| Reads a signed byte from the I2C device
|
| readU16(self, reg)
| Reads an unsigned 16-bit value from the I2C device
|
| readU16Rev(self, reg)
| Reads an unsigned 16-bit value from the I2C device with rev byte order
|
| readU8(self, reg)
| Read an unsigned byte from the I2C device
|
| reverseByteOrder(self, data)
| Reverses the byte order of an int (16-bit) or long (32-bit) value
|
| write16(self, reg, value)
| Writes a 16-bit value to the specified register/address pair
|
| write8(self, reg, value)
| Writes an 8-bit value to the specified register/address
|
| writeList(self, reg, list)
| Writes an array of bytes using I2C format
SPI
SPI包含在A(yíng)dafruit_BBIO庫中。以下是有關(guān)如何使用它的基礎知識。
您可以導入SPI模塊:
下載:文件
復制代碼
from Adafruit_BBIO.SPI import SPI from Adafruit_BBIO.SPI import SPI
導入后,您將要初始化總線(xiàn)和設備:
下載:文件
復制代碼
spi = SPI(0,0) spi = SPI(0,0)
BeagleBone Black(BBB)包括SPI0和SPI1。 SPI1當前默認情況下不可用,因為HDMI接口使用的是其中一個(gè)引腳。
注意:如果不禁用HDMI接口,則無(wú)法在BeagleBone Black上使用SPI1。
有四種/dev/spidev *總線(xiàn)和設備組合可用。通過(guò)執行以下代碼可以使用它們:
下載:文件
復制代碼
#import the library
from Adafruit_BBIO.SPI import SPI
#Only need to execute one of the following lines:
#spi = SPI(bus, device) #/dev/spidev.
spi = SPI(0,0) #/dev/spidev1.0
spi = SPI(0,1) #/dev/spidev1.1
spi = SPI(1,0) #/dev/spidev2.0
spi = SPI(1,1) #/dev/spidev2.1 #import the library
from Adafruit_BBIO.SPI import SPI
#Only need to execute one of the following lines:
#spi = SPI(bus, device) #/dev/spidev.
spi = SPI(0,0) #/dev/spidev1.0
spi = SPI(0,1) #/dev/spidev1.1
spi = SPI(1,0) #/dev/spidev2.0
spi = SPI(1,1) #/dev/spidev2.1
如果要禁用HDMI訪(fǎng)問(wèn)SPI1,可以將以下內容添加到BBB的小FAT分區中的uEnv.txt文件中:
下載:文件
復制代碼
mkdir /mnt/boot
mount /dev/mmcblk0p1 /mnt/boot
nano /mnt/boot/uEnv.txt
#change contents of uEnv.txt to the following:
optargs=quiet capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN mkdir /mnt/boot
mount /dev/mmcblk0p1 /mnt/boot
nano /mnt/boot/uEnv.txt
#change contents of uEnv.txt to the following:
optargs=quiet capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN
用于SPI0和SPI1的引腳
《表類(lèi)=“ editor-table”》 PORT CS0 DO DI SCLK SPI0 P9_17 P9_21 P9_18 P9_22 SPI1 P9_28 P9_29 P9_30 P9_31
UART
Adafruit IO Python庫將方便地導出UART設備樹(shù)覆蓋。擴展頭中有五個(gè)串行端口(UART3僅具有一個(gè)方向,TX),而一個(gè)端口(UART0)具有專(zhuān)用頭,這些擴展頭在Python程序中不可用。
設置要設置和導出UART,您可以執行以下操作:
下載:文件
復制代碼
import Adafruit_BBIO.UART as UART
UART.setup(“UART1”) import Adafruit_BBIO.UART as UART
UART.setup(“UART1”)
就是這樣!
此外,還有一個(gè) cleanup()方法可以使用,但由于內核中的錯誤導致在卸載設備樹(shù)覆蓋時(shí)導致內核崩潰,該方法目前無(wú)法使用。我們會(huì )在工作時(shí)進(jìn)行更新。一種解決方法是使UART保持啟用狀態(tài),或者重新啟動(dòng)BeagleBone Black。
UART的引腳表
UARTRXTXCTSRTS設備
UART1P9_26P9_24P9_20P9_19/dev/ttyO1
UART2P9_22P9_21
/dev/ttyO2
UART3
P9_42P8_36P8_34/dev/ttyO3
UART4P9_11P9_13P8_35P8_33/dev/ttyO4
UART5P8_38P8_37P8_31P8_32/dev/ttyO5
將UART與Python結合使用,您可以使用pyserial mod python中的ule,但是您首先需要使用pip安裝它。如果尚未安裝pip,則可以按照本教程安裝頁(yè)面上的說(shuō)明進(jìn)行操作。
SSH進(jìn)入BeagleBone Black,并執行以下命令:
下載:文件
復制代碼
pip install pyserial pip install pyserial
下面是一個(gè)非常簡(jiǎn)單的python程序,這是一個(gè)很好的起點(diǎn)。將其保存到文件中,然后使用“ python file_name.py”
執行該文件:文件
復制代碼
import Adafruit_BBIO.UART as UART
import serial
UART.setup(“UART1”)
ser = serial.Serial(port = “/dev/ttyO1”, baudrate=9600)
ser.close()
ser.open()
if ser.isOpen():
print “Serial is open!”
ser.write(“Hello World!”)
ser.close()
# Eventually, you’ll want to clean up, but leave this commented for now,
# as it doesn‘t work yet
#UART.cleanup() import Adafruit_BBIO.UART as UART
import serial
UART.setup(“UART1”)
ser = serial.Serial(port = “/dev/ttyO1”, baudrate=9600)
ser.close()
ser.open()
if ser.isOpen():
print “Serial is open!”
ser.write(“Hello World!”)
ser.close()
# Eventually, you’ll want to clean up, but leave this commented for now,
# as it doesn‘t work yet
#UART.cleanup()
測試和使用UART ,您可以輕松測試一切正常,而無(wú)需編寫(xiě)任何代碼,也無(wú)需安裝任何其他依賴(lài)項即可開(kāi)始使用。
下一步,您將需要將兩條線(xiàn)連接到UART引腳。我們將要穿越UART1和UART2的RX/TX。第一線(xiàn)應從P9_24連接到P9_22。第二根線(xiàn)應從P9_26連接到P9_21。
接下來(lái),使用Adafruit IO庫在python解釋器中導出UART1和UART2:
下載:文件
復制代碼
[email protected]:~# python
Python 2.7.3 (default, May 29 2013, 21:25:00)
[GCC 4.7.3 20130205 (prerelease)] on linux2
Type “help”, “copyright”, “credits” or “l(fā)icense” for more information.
》》》 import Adafruit_BBIO.UART as UART
》》》 UART.setup(“UART1”)
》》》 UART.setup(“UART2”)
》》》 exit() [email protected]:~# python
Python 2.7.3 (default, May 29 2013, 21:25:00)
[GCC 4.7.3 20130205 (prerelease)] on linux2
Type “help”, “copyright”, “credits” or “l(fā)icense” for more information.
》》》 import Adafruit_BBIO.UART as UART
》》》 UART.setup(“UART1”)
》》》 UART.setup(“UART2”)
》》》 exit()
完成后,執行以下命令以啟動(dòng)minicom(使用您選擇的終端使用兩個(gè)單獨的ssh會(huì )話(huà),我的在OS X中由選項卡分隔):
下載:文件
復制代碼
#first terminal window:
minicom -b 9600 -D /dev/ttyO1
#second terminal window:
minicom -b 9600 -D /dev/ttyO2 #first terminal window:
minicom -b 9600 -D /dev/ttyO1
#second terminal window:
minicom -b 9600 -D /dev/ttyO2
打開(kāi)minicom后應該看起來(lái)像這樣:
class =“ fa fa-search-plus”》
查看另一個(gè)終端,您應該會(huì )看到類(lèi)似以下內容:
您可以通過(guò)按Ctrl-A,然后按Z,然后按X,然后在對話(huà)框中按Enter鍵退出minicom。
Pin詳細信息
更多詳細信息即將發(fā)布!下圖來(lái)自BeagleBone Black系統參考手冊。
下表可用于查找GND和VDD引腳:
除非您不介意禁用這些功能,否則請完全避免使用eMMC和HDMI(LCD)引腳。
在BeagleBone啟動(dòng)過(guò)程中應避免使用Boot Configuration(啟動(dòng)配置)引腳。
常見(jiàn)問(wèn)題解答
使用opkg安裝或執行ntpupdate設置時(shí)間時(shí)出現錯誤。如何解決?
您需要按順序連接到BeagleBone Black。安裝IO Python庫。確保您可以訪(fǎng)問(wèn)互聯(lián)網(wǎng)。您可以嘗試:以ping adafruit.com為例,或者如果您正在使用HDMI輸出并擁有臺式機,請打開(kāi)瀏覽器并測試Internet。
首先,確保將以太網(wǎng)連接到交換機或路由器?;蛘?,如果您已使用我們的指南之一設置了wifi,請確保其正常工作。
接下來(lái),您可以嘗試通過(guò)添加DNS名稱(chēng)服務(wù)器來(lái)解決此問(wèn)題。只需使用以下命令即可:
下載:文件
復制代碼
echo nameserver 8.8.8.8 》 /etc/resolv.conf echo nameserver 8.8.8.8 》 /etc/resolv.conf
Adafruit BBIO python內核的來(lái)源在哪里?
檢查! -》 http://github.com/adafruit/adafruit-beaglebone-io-python
Adafruit BBIO庫是否支持Python 3?
已關(guān)閉。一切都準備就緒,但是我們大多數都需要人們對其進(jìn)行測試,并將任何錯誤(帶有修復程序都很好?。┨峤坏紾itHub存儲庫。
《我class =“ fa fa-question-circle-o”》
改進(jìn)圖書(shū)館的一些想法,我該怎么做?
源代碼位于GitHub上。請隨代碼一起提交拉取請求以及支持它的測試。
如果有任何錯誤,也請在那里提交它們。
責任編輯:wv
-
python
+關(guān)注
關(guān)注
53文章
4700瀏覽量
83648 -
BeagleBone
+關(guān)注
關(guān)注
4文章
26瀏覽量
65659
發(fā)布評論請先 登錄
相關(guān)推薦
評論