chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣在BeagleBone Black上設(shè)置IO Python庫

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-12-02 11:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

BeagleBone Black的獨(dú)特之處在于它具有許多可在易于使用的針座上使用的針,以及功能強(qiáng)大的小型系統(tǒng)。有2 x 46引腳可用(嗯,不是全部,但是我們稍后會(huì)介紹)。

一些可用功能:

7類比引腳

65個(gè)數(shù)字引腳,電壓為3.3V

2x I2C

2x SPI

2x CAN總線

4計(jì)時(shí)器

4x UART

8x PWM

A/D轉(zhuǎn)換器

非常豐富的功能列表! Adafruit BeagleBone IO Python庫不支持所有這些庫,但是我們希望在以后的過程中添加更多內(nèi)容。

下一頁將指導(dǎo)您安裝庫,以及入門的基本用法。 div》

本教程僅在當(dāng)前針對(duì)Angstrom,Ubuntu和Debian安裝而編寫。

在Angstrom上安裝

安裝Adafruit-BeagleBone-IO-Python(phew!)庫非常簡(jiǎn)單。確保我們首先有一個(gè)良好的基礎(chǔ)設(shè)置。

這里最重要的部分是您使用的是帶有3.8內(nèi)核的Linux發(fā)行版。該內(nèi)核版本對(duì)訪問GPIO和PWM的方式進(jìn)行了相當(dāng)重要的更改。好消息是您的BeagleBone Black預(yù)裝了正確的內(nèi)核。它可能不是最新的也是最大的。如果您有多余的時(shí)間,那么遵循我們的Angstrom安裝指南,并用最新版本的BeagleBone Black刷新并不是一個(gè)壞主意。

連接到BeagleBone Black(SSH)

一旦您在BBB上擁有最新版本的Angstrom,就讓我們進(jìn)入系統(tǒng),以便我們執(zhí)行命令。獲得系統(tǒng)訪問權(quán)限的最簡(jiǎn)單方法是使用GateOne SSH。您可以通過在瀏覽器窗口中鍵入以下內(nèi)容來輕松訪問GateOne:

下載:文件

復(fù)制代碼

http://beaglebone.local http://beaglebone.local

頁面成功加載后(您應(yīng)該會(huì)看到一個(gè)綠色框,上面寫著“您的板已連接!”),您可以單擊側(cè)邊欄中左上方的“ GateOne SSH鏈接”。然后,單擊“ GateOne SSH客戶端”鏈接開始。某些瀏覽器可能會(huì)抱怨證書無效,但仍然可以繼續(xù)進(jìn)行操作。

要登錄到beaglebone,請(qǐng)?jiān)谔崾痉骆I入以下內(nèi)容(假定root用戶使用全新的Angstrom安裝):

下載:文件

復(fù)制代碼

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

設(shè)置和安裝Adafruit_B的命令BIO 現(xiàn)在,您已經(jīng)連接到BBB,您將需要從設(shè)置日期和時(shí)間開始,以便準(zhǔn)確。將以下內(nèi)容復(fù)制并粘貼到您的終端中(您可能希望以后在啟動(dòng)時(shí)執(zhí)行此操作):

下載:文件

復(fù)制代碼

/usr/bin/ntpdate -b -s -u pool.ntp.org /usr/bin/ntpdate -b -s -u pool.ntp.org

這些命令將需要Internet訪問。如果遇到錯(cuò)誤,請(qǐng)查看FAQ頁面以獲取解決方案。

下一步,執(zhí)行以下每一行。將以下內(nèi)容一一復(fù)制并粘貼到終端中,然后按Enter鍵:

下載:文件

復(fù)制代碼

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

測(cè)試您的安裝(可選)您可以選擇嘗試加載模塊之一來選擇是否成功安裝。從控制臺(tái)(而不是從python解釋器中)執(zhí)行以下命令,它不應(yīng)引發(fā)任何錯(cuò)誤,但返回一行:

下載:文件

復(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:

您還可以通過執(zhí)行“ python”命令進(jìn)行驗(yàn)證啟用解釋器并運(yùn)行以下代碼(當(dāng)您在終端中看到“ 》》》”時(shí),便可以知道您在正確的位置):

下載:文件

復(fù)制代碼

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)安裝(可選)您還可以通過克隆git存儲(chǔ)庫來安裝Adafruit_BBIO。以下命令也應(yīng)將其安裝:

下載:文件

復(fù)制代碼

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上安裝

該庫的大部分內(nèi)容必須是在Debian和Ubuntu中以sudo的身份運(yùn)行。

安裝Adafruit-BeagleBone-IO-Python(phew!)庫非常簡(jiǎn)單。確保我們首先有一個(gè)良好的基礎(chǔ)設(shè)置。

這里最重要的部分是您使用的是帶有3.8內(nèi)核的Linux發(fā)行版。此內(nèi)核版本在訪問GPIO,PWM和ADC的方式方面進(jìn)行了相當(dāng)重要的更改。

連接到BeagleBone Black(SSH)

讓ssh進(jìn)入系統(tǒng),以便我們執(zhí)行命令。打開您喜歡的終端,然后通過SSH進(jìn)入BeagleBone Black(BBB)。注意,Ubuntu沒有預(yù)裝Avahi-Daemon。這意味著您需要使用IP地址而不是主機(jī)名進(jìn)行連接。

下載:文件

復(fù)制代碼

ssh [email protected] ssh [email protected]

輸入密碼(最有可能是“ temppwd”)?,F(xiàn)在,您應(yīng)該可以使用提示輸入命令。

用于設(shè)置和安裝的命令BBIO 現(xiàn)在,您已經(jīng)連接到BBB,您將需要從設(shè)置日期和時(shí)間開始,以便準(zhǔn)確。將以下內(nèi)容復(fù)制并粘貼到您的終端中(您可能希望以后在啟動(dòng)時(shí)執(zhí)行此操作):

下載:文件

復(fù)制代碼

sudo ntpdate pool.ntp.org sudo ntpdate pool.ntp.org

下一步安裝依賴項(xiàng):

下載:文件

復(fù)制代碼

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

根據(jù)您所安裝的Debian或Ubuntu版本,您可能需要dtc的修補(bǔ)版本。

dtc(設(shè)備樹編譯器)的修補(bǔ)版本具有編譯覆蓋圖的功能。 Adafruit_BBIO庫為SPI和UART編譯了一組覆蓋。如果您不使用SPI或UART,則可以跳過升級(jí)和修補(bǔ)dtc的步驟。

您可以按照本指南測(cè)試dtc。如果您不滿意本指南,則僅安裝dtc的修補(bǔ)程序版本不會(huì)造成任何問題。

您可以在我們的Github存儲(chǔ)庫中查看疊加層。

您可以找到dtc的修補(bǔ)程序版本。

確定了是否需要dtc的修補(bǔ)版本并安裝后,執(zhí)行命令安裝BBIO:

下載:文件

復(fù)制代碼

sudo pip install Adafruit_BBIO sudo pip install Adafruit_BBIO

測(cè)試安裝(可選)您可以選擇通過簡(jiǎn)單地嘗試測(cè)試安裝是否成功加載模塊之一。從控制臺(tái)執(zhí)行以下命令(而不是從python解釋器中執(zhí)行),它不應(yīng)引發(fā)任何錯(cuò)誤,而應(yīng)返回一行:

下載:文件

復(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:

您還可以通過執(zhí)行“ python‘命令啟用解釋器,并運(yùn)行以下代碼(當(dāng)您在終端中看到“ 》》》”時(shí),便可以知道您在正確的位置):

下載:文件

復(fù)制代碼

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)安裝(可選)您也可以通過克隆git存儲(chǔ)庫來安裝BBIO。以下命令也應(yīng)將其安裝:

下載:文件

復(fù)制代碼

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庫

此庫對(duì)它。在您更新庫時(shí),請(qǐng)隨時(shí)閱讀CHANGELOG,以確保它不會(huì)破壞您的程序。

將Adafruit_BBIO庫與BeagleBone Black(BBB)結(jié)合使用非常簡(jiǎn)單,尤其是如果您熟悉Raspberry Pi的RPi.GPIO庫。

首先,您需要導(dǎo)入該庫。目前有兩個(gè)不同的選項(xiàng)可以導(dǎo)入。第一個(gè)用于GPIO:

下載:文件

復(fù)制代碼

import Adafruit_BBIO.GPIO as GPIO import Adafruit_BBIO.GPIO as GPIO

如果要使用PWM,請(qǐng)按以下方式導(dǎo)入:

下載:文件

復(fù)制代碼

import Adafruit_BBIO.PWM as PWM import Adafruit_BBIO.PWM as PWM

您可以通過引用“鍵”或名稱來訪問通道。如果您看一下BeagleBone Black,您會(huì)看到每組排針都有一個(gè)名稱,即P8或P9。然后,您會(huì)看到有從1開始的針腳編號(hào),然后轉(zhuǎn)到46。

當(dāng)您對(duì)針腳進(jìn)行計(jì)數(shù)時(shí),您并不是沿長度方向走,而是從1開始,然后到2,然后備份到下一個(gè)針3,依此類推。下圖更好地說明了這一點(diǎn):

因此,要訪問P9的第一個(gè)圖釘,請(qǐng)使用“ P9_1”。您也可以使用圖釘?shù)拿Q進(jìn)行訪問,即為。但是您不希望這樣做,因?yàn)镻9_1實(shí)際上是gnd!您將要查看本指南的最后一頁,以查看可以使用哪些引腳。

并非所有引腳都必須可用。 HDMI和eMMC閃存模塊默認(rèn)情況下占用了很多。

I2C僅與Python2兼容。

GPIO

下面是一些使用Adafruit_BBIO.GPIO模塊的示例。使用起來非常簡(jiǎn)單。

您可能需要使用sudo運(yùn)行此庫,尤其是在Ubuntu上。

設(shè)置

要將數(shù)字引腳設(shè)置為輸出,請(qǐng)將輸出值設(shè)置為HIGH,然后在完成后進(jìn)行清除:

下載:文件

復(fù)制代碼

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()

您還可以參考引腳名稱:

下載:文件

復(fù)制代碼

GPIO.setup(“GPIO0_26”, GPIO.OUT) GPIO.setup(“GPIO0_26”, GPIO.OUT)

在第一個(gè)示例中,您可以看到我們使用“ P8_10”鍵來指定我們使用哪個(gè)引腳想要設(shè)置為輸出,在第二個(gè)示例中使用相同的引腳,但使用的名稱為“ GPIO0_26”。

您還可以將引腳設(shè)置為輸入,如下所示:

下載:文件

復(fù)制代碼

import Adafruit_BBIO.GPIO as GPIO

GPIO.setup(“P8_14”, GPIO.IN) import Adafruit_BBIO.GPIO as GPIO

GPIO.setup(“P8_14”, GPIO.IN)

完成此操作后,您可以通過幾種不同的方式訪問輸入值。第一種也是最簡(jiǎn)單的方法是輪詢輸入,例如在不斷檢查輸入的循環(huán)中:

下載:file

復(fù)制代碼

if GPIO.input(“P8_14”):

print(“HIGH”)

else:

print(“LOW”) if GPIO.input(“P8_14”):

print(“HIGH”)

else:

print(“LOW”)

您也可以等待邊緣。這意味著如果值是下降(從3V下降到0V),上升(從0V上升到3V)或兩者(即從3V變化)到0V或相反),GPIO庫將觸發(fā)并繼續(xù)執(zhí)行您的程序。

wait_for_edge 方法被阻止,并將等待直到發(fā)生某些事情:

下載:文件

復(fù)制代碼

GPIO.wait_for_edge(“P8_14”, GPIO.RISING) GPIO.wait_for_edge(“P8_14”, GPIO.RISING)

另一個(gè)非阻塞選項(xiàng)是添加要檢測(cè)的事件。首先,您要設(shè)置要監(jiān)視的事件,然后可以執(zhí)行程序?qū)⒁獔?zhí)行的其他任何操作,然后可以檢查是否檢測(cè)到該事件。

一個(gè)簡(jiǎn)單的示例如下:

下載:文件

復(fù)制代碼

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!”

我們將繼續(xù)添加更多示例和功能,因此請(qǐng)經(jīng)?;貋聿榭?!

PWM

下面是一些使用Adafruit_BBIO.PWM模塊的示例。使用起來也非常簡(jiǎn)單!

設(shè)置使用PWM的引腳:

下載:文件

復(fù)制代碼

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。無需使用Adafruit_BBIO.PWM 設(shè)置通道。

啟動(dòng)后,您可以設(shè)置占空比或頻率:

下載:文件

復(fù)制代碼

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)

您還希望禁用該特定通道,或者在完成后全部清理:

下載:文件

復(fù)制代碼

PWM.stop(“P9_14”)

PWM.cleanup() PWM.stop(“P9_14”)

PWM.cleanup()

ADC

ADC當(dāng)前有三種可用方法。 設(shè)置,讀取 和 read_raw 。您需要確保在閱讀之前使用設(shè)置,否則將引發(fā)錯(cuò)誤。

ADC僅在少數(shù)幾個(gè)引腳上可用,如下所示:

下載:文件

復(fù)制代碼

“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引腳上的電壓不要超過1.8V! VDD_ADC(P9_32)提供1.8V。將GNDA_ADC(P9_34)接地。

將設(shè)備的3.3V降至所需的1.8V的一種簡(jiǎn)單方法是使用電阻分壓器。從3v模擬信號(hào)到地串聯(lián)兩個(gè)相同的電阻器(10K至100K),然后在兩者之間連接模擬輸入引腳。分壓器會(huì)將0至3.3v的電壓均分為0-1.65V,這也為您提供了一些余量。

設(shè)置以設(shè)置ADC,只需導(dǎo)入模塊,然后調(diào)用 setup :

下載:文件

復(fù)制代碼

import Adafruit_BBIO.ADC as ADC

ADC.setup() import Adafruit_BBIO.ADC as ADC

ADC.setup()

然后,要讀取P9_40上的模擬值,只需閱讀它們:

下載:文件

復(fù)制代碼

value = ADC.read(“P9_40”) value = ADC.read(“P9_40”)

除鍵(上方)外,您還可以使用引腳名稱進(jìn)行讀?。?/p>

下載:文件

復(fù)制代碼

value = ADC.read(“AIN1”) value = ADC.read(“AIN1”)

ADC驅(qū)動(dòng)程序當(dāng)前存在錯(cuò)誤。您需要讀取兩次值才能獲取最新值。

read 返回的值在0范圍內(nèi)-1.0。您可以通過執(zhí)行以下操作獲取電壓:

下載:文件

復(fù)制代碼

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 來獲取實(shí)際值:

下載:文件

復(fù)制代碼

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模塊現(xiàn)在作為頂級(jí)模塊包含在Adafruit_BBIO庫中。這意味著許多為Raspberry Pi構(gòu)建的流行Python庫現(xiàn)在可以在BeagleBone Black上運(yùn)行,如果它們使用的是I2C,例如BMP085傳感器庫。

要使用該模塊,就像導(dǎo)入它一樣簡(jiǎn)單。 ,并設(shè)置I2C地址,并設(shè)置總線(默認(rèn)為I2C-1):

下載:文件

復(fù)制代碼

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”,以使其正常運(yùn)行。它已包含在Adafruit_BBIO安裝說明中。到目前為止,python-smbus僅與Python2兼容。

默認(rèn)情況下啟用的I2C SCL和SDA引腳如下:

下載:文件

復(fù)制代碼

P9_19: I2C2, SCL

P9_20: I2C2, SDA P9_19: I2C2, SCL

P9_20: I2C2, SDA

探針連接設(shè)備的I2C總線:

下載:文件

復(fù)制代碼

i2cdetect -y -r 0

i2cdetect -y -r 1 i2cdetect -y -r 0

i2cdetect -y -r 1

I2C模塊的最新pydoc:

下載:文件

復(fù)制代碼

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包含在Adafruit_BBIO庫中。以下是有關(guān)如何使用它的基礎(chǔ)知識(shí)。

您可以導(dǎo)入SPI模塊:

下載:文件

復(fù)制代碼

from Adafruit_BBIO.SPI import SPI from Adafruit_BBIO.SPI import SPI

導(dǎo)入后,您將要初始化總線和設(shè)備:

下載:文件

復(fù)制代碼

spi = SPI(0,0) spi = SPI(0,0)

BeagleBone Black(BBB)包括SPI0和SPI1。 SPI1當(dāng)前默認(rèn)情況下不可用,因?yàn)镠DMI接口使用的是其中一個(gè)引腳。

注意:如果不禁用HDMI接口,則無法在BeagleBone Black上使用SPI1。

有四種/dev/spidev *總線和設(shè)備組合可用。通過執(zhí)行以下代碼可以使用它們:

下載:文件

復(fù)制代碼

#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訪問SPI1,可以將以下內(nèi)容添加到BBB的小FAT分區(qū)中的uEnv.txt文件中:

下載:文件

復(fù)制代碼

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的引腳

《表類=“ 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庫將方便地導(dǎo)出UART設(shè)備樹覆蓋。擴(kuò)展頭中有五個(gè)串行端口(UART3僅具有一個(gè)方向,TX),而一個(gè)端口(UART0)具有專用頭,這些擴(kuò)展頭在Python程序中不可用。

設(shè)置要設(shè)置和導(dǎo)出UART,您可以執(zhí)行以下操作:

下載:文件

復(fù)制代碼

import Adafruit_BBIO.UART as UART

UART.setup(“UART1”) import Adafruit_BBIO.UART as UART

UART.setup(“UART1”)

就是這樣!

此外,還有一個(gè) cleanup()方法可以使用,但由于內(nèi)核中的錯(cuò)誤導(dǎo)致在卸載設(shè)備樹覆蓋時(shí)導(dǎo)致內(nèi)核崩潰,該方法目前無法使用。我們會(huì)在工作時(shí)進(jìn)行更新。一種解決方法是使UART保持啟用狀態(tài),或者重新啟動(dòng)BeagleBone Black。

UART的引腳表

UARTRXTXCTSRTS設(shè)備

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結(jié)合使用,您可以使用pyserial mod python中的ule,但是您首先需要使用pip安裝它。如果尚未安裝pip,則可以按照本教程安裝頁面上的說明進(jìn)行操作。

SSH進(jìn)入BeagleBone Black,并執(zhí)行以下命令:

下載:文件

復(fù)制代碼

pip install pyserial pip install pyserial

下面是一個(gè)非常簡(jiǎn)單的python程序,這是一個(gè)很好的起點(diǎn)。將其保存到文件中,然后使用“ python file_name.py”

執(zhí)行該文件:文件

復(fù)制代碼

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()

測(cè)試和使用UART ,您可以輕松測(cè)試一切正常,而無需編寫任何代碼,也無需安裝任何其他依賴項(xiàng)即可開始使用。

下一步,您將需要將兩條線連接到UART引腳。我們將要穿越UART1和UART2的RX/TX。第一線應(yīng)從P9_24連接到P9_22。第二根線應(yīng)從P9_26連接到P9_21。

接下來,使用Adafruit IO庫在python解釋器中導(dǎo)出UART1和UART2:

下載:文件

復(fù)制代碼

[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()

完成后,執(zhí)行以下命令以啟動(dòng)minicom(使用您選擇的終端使用兩個(gè)單獨(dú)的ssh會(huì)話,我的在OS X中由選項(xiàng)卡分隔):

下載:文件

復(fù)制代碼

#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

打開minicom后應(yīng)該看起來像這樣:

class =“ fa fa-search-plus”》

查看另一個(gè)終端,您應(yīng)該會(huì)看到類似以下內(nèi)容:

您可以通過按Ctrl-A,然后按Z,然后按X,然后在對(duì)話框中按Enter鍵退出minicom。

Pin詳細(xì)信息

更多詳細(xì)信息即將發(fā)布!下圖來自BeagleBone Black系統(tǒng)參考手冊(cè)。

下表可用于查找GND和VDD引腳:

除非您不介意禁用這些功能,否則請(qǐng)完全避免使用eMMC和HDMI(LCD)引腳。

在BeagleBone啟動(dòng)過程中應(yīng)避免使用Boot Configuration(啟動(dòng)配置)引腳。

常見問題解答

使用opkg安裝或執(zhí)行ntpupdate設(shè)置時(shí)間時(shí)出現(xiàn)錯(cuò)誤。如何解決?

您需要按順序連接到BeagleBone Black。安裝IO Python庫。確保您可以訪問互聯(lián)網(wǎng)。您可以嘗試:以ping adafruit.com為例,或者如果您正在使用HDMI輸出并擁有臺(tái)式機(jī),請(qǐng)打開瀏覽器并測(cè)試Internet。

首先,確保將以太網(wǎng)連接到交換機(jī)或路由器?;蛘?,如果您已使用我們的指南之一設(shè)置了wifi,請(qǐng)確保其正常工作。

接下來,您可以嘗試通過添加DNS名稱服務(wù)器來解決此問題。只需使用以下命令即可:

下載:文件

復(fù)制代碼

echo nameserver 8.8.8.8 》 /etc/resolv.conf echo nameserver 8.8.8.8 》 /etc/resolv.conf

Adafruit BBIO python內(nèi)核的來源在哪里?

檢查! -》 http://github.com/adafruit/adafruit-beaglebone-io-python

Adafruit BBIO庫是否支持Python 3?

已關(guān)閉。一切都準(zhǔn)備就緒,但是我們大多數(shù)都需要人們對(duì)其進(jìn)行測(cè)試,并將任何錯(cuò)誤(帶有修復(fù)程序都很好?。┨峤坏紾itHub存儲(chǔ)庫。

《我class =“ fa fa-question-circle-o”》

改進(jìn)圖書館的一些想法,我該怎么做?

源代碼位于GitHub上。請(qǐng)隨代碼一起提交拉取請(qǐng)求以及支持它的測(cè)試。

如果有任何錯(cuò)誤,也請(qǐng)?jiān)谀抢锾峤凰鼈儭?/p>

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4876

    瀏覽量

    90032
  • BeagleBone
    +關(guān)注

    關(guān)注

    4

    文章

    26

    瀏覽量

    66404
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何在 Vision Five 2 安裝 python

    這可能是一個(gè)完全愚蠢的問題,但我如何在 Vision Five 2 安裝 python 。 使用該命令后,它給了我這個(gè)錯(cuò)誤。 默認(rèn)為用戶安裝,因?yàn)槠胀ㄕ军c(diǎn)包不可寫 錯(cuò)誤:找不到滿足要求
    發(fā)表于 03-06 07:51

    無法去除 Python VisionFive.i2c 的終端輸出?

    燒的官方最新八月份的 debian 12 的系統(tǒng)。 根據(jù)這個(gè)案例安裝好了 python 環(huán)境和 VisionFive 。 執(zhí)行下面這條代碼: import VisionFive.i2c
    發(fā)表于 02-25 06:13

    磁盤IO問題的定位根因與調(diào)優(yōu)解決思路

    監(jiān)控大屏 iowait 突然飆到 80%,SSH 連上去敲個(gè) ls 要等 5 秒才有響應(yīng),業(yè)務(wù)日志瘋狂報(bào)超時(shí),數(shù)據(jù)慢查詢告警刷屏。這種場(chǎng)景 SRE 的日常里出現(xiàn)頻率極高,尤其是跑著 MySQL
    的頭像 發(fā)表于 02-24 14:11 ?321次閱讀

    請(qǐng)問CW32F030IO是處于什么狀態(tài)?

    請(qǐng)問CW32F030IO是處于什么狀態(tài)?為了防止MCU電,對(duì)外圍的電路的誤動(dòng)作,一把很多MCU會(huì)上電瞬間設(shè)置為高阻態(tài),不知道CW32F030 的端口
    發(fā)表于 12-09 07:38

    Python調(diào)用API教程

    兩個(gè)不同系統(tǒng)之間的信息交互。在這篇文章中,我們將詳細(xì)介紹Python調(diào)用API的方法和技巧。 一、用Requests發(fā)送HTTP請(qǐng)求 使用Python調(diào)用API的第一步是發(fā)送HTTP請(qǐng)求,通常
    的頭像 發(fā)表于 11-03 09:15 ?886次閱讀

    MCU200t板子蜂鳥E203核的io口的控制方法

    問題介紹 NucleiStudio的工程文件中, hbird_sdkSoChbirdv2CommonSourceDrivers的路徑下存放了已經(jīng)封裝好的函數(shù),如圖: 這里就是控制io
    發(fā)表于 10-31 07:17

    BB Black使用uboot啟動(dòng)rtt,data abort錯(cuò)誤怎么解決?

    事情是這樣的,我想在Beaglebone Black啟動(dòng)RT-Thread。 硬件環(huán)境:Beaglebone Black 編譯器:arm
    發(fā)表于 09-28 06:45

    rt-thread系統(tǒng)中,使用stm32,怎樣設(shè)置接收中斷字節(jié)數(shù)?

    rt-thread系統(tǒng)中,使用stm32,怎樣設(shè)置接收中斷字節(jié)數(shù)
    發(fā)表于 09-15 06:17

    termux如何搭建python游戲

    termux如何搭建python游戲 Termux搭建Python游戲開發(fā)環(huán)境的完整指南 一、Termux基礎(chǔ)環(huán)境準(zhǔn)備 Termux是一款無需root即可在安卓設(shè)備運(yùn)行的Linux終端
    發(fā)表于 08-29 07:06

    GraniStudio:IO寫入例程

    說明 實(shí)現(xiàn)輸出IO控制以及讀取。 2.1通過初始化IO算子連接格拉尼控制器IO塊,導(dǎo)入工程自動(dòng)進(jìn)行連接。 2.2 通過IO配置算子輸出配置的IO
    的頭像 發(fā)表于 08-22 16:47 ?764次閱讀
    GraniStudio:<b class='flag-5'>IO</b>寫入例程

    linux虛擬環(huán)境中調(diào)用Linux 版matlab編譯的python時(shí)出錯(cuò)

    matlab代碼編譯為CAO_pythonpython,其中cp_Main_python.m為入口文件,編譯后生成的文件有mccExcludedFiles.log、setup.py
    發(fā)表于 07-18 10:40

    如何在Ubuntu 24.04運(yùn)行5.4.47版本?

    18.04 中的 SDK,但最終導(dǎo)致構(gòu)建錯(cuò)誤, ubuntu 24.04 缺少,因此 SDK 似乎對(duì)構(gòu)建系統(tǒng)本身有很強(qiáng)的依賴性。 下一步,我嘗試 Ubuntu 24.04
    發(fā)表于 04-11 06:08

    ?如何在虛擬環(huán)境中使用 Python,提升你的開發(fā)體驗(yàn)~

    。RaspberryPiOS預(yù)裝了Python3。干擾系統(tǒng)Python的安裝可能會(huì)給你的操作系統(tǒng)帶來問題。安裝第三方Python時(shí),請(qǐng)務(wù)必使用正確的包管理工具。
    的頭像 發(fā)表于 03-25 09:34 ?813次閱讀
    ?如何在虛擬環(huán)境中使用 <b class='flag-5'>Python</b>,提升你的開發(fā)體驗(yàn)~

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

    在這篇文章中,我將為你簡(jiǎn)要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi編寫和運(yùn)行一個(gè)簡(jiǎn)單的Python程序。什么是
    的頭像 發(fā)表于 03-25 09:27 ?2037次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行<b class='flag-5'>Python</b>程序?

    Python嵌入式系統(tǒng)中的應(yīng)用場(chǎng)景

    你想把你的職業(yè)生涯提升到一個(gè)新的水平?Python嵌入式系統(tǒng)中正在成為一股不可缺少的新力量。盡管傳統(tǒng)嵌入式開發(fā)更多地依賴于C和C++語言,Python的優(yōu)勢(shì)在于其簡(jiǎn)潔的語法、豐富的
    的頭像 發(fā)表于 03-19 14:10 ?1497次閱讀