91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

Raspberry Pi 3擴展板的特性與控制應(yīng)用

電子設(shè)計 ? 來源:郭婷 ? 作者:電子設(shè)計 ? 2019-01-22 09:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

有些小企業(yè)的工業(yè)作業(yè)需要同時滿足惡劣工作環(huán)境、高 I/O 能力和復(fù)雜功能要求,可編程邏輯控制器 (PLC) 正好可以勝任。盡管存在簡化版 PLC,但設(shè)計師現(xiàn)在也可以選擇多種低成本的開源硬件和軟件解決方案,以實現(xiàn)有效的工業(yè)監(jiān)視和控制。

Raspberry Pi Foundation 的微小型 Raspberry Pi 3 及其相關(guān)的擴展板就是此類解決方案的一個實例。本文將介紹 Raspberry Pi 3 的主要特征,然后討論如何使用它來監(jiān)視和控制應(yīng)用。

Raspberry Pi 為何適用于小企業(yè)工業(yè)控制

對于很多較小作業(yè)規(guī)模而言,Raspberry Pi 3 平臺提供了一種性能卓越的低成本解決方案。Raspberry Pi 3 開發(fā)板結(jié)合了基于 Broadcom ARM? Cortex?-A53 的處理器、1 GB RAM、數(shù)字接口、Wi-Fi藍牙連接,完全能夠勝任專門的工業(yè)自動化任務(wù)。處理器本身就是一個高性能的片上系統(tǒng) (SoC) 器件,集成了具有 512 KB L2 緩沖的四核 ARM Cortex-A53 CPU 以及 54 個排列成三組的 GPIO。

每個 GPIO 分別支持最少兩種、最多六種替代性功能,包括脈寬調(diào)制器、時鐘和串行接口。開發(fā)人員可以將任何未分配的 GPIO 用作可提供最多 16 毫安 (mA) 電流(每組 GPIO 總電流最多為 50 mA)的中斷線、輸入或輸出。

與 Raspberry Pi 系列中的其他產(chǎn)品一樣,Raspberry Pi 3 充分簡化了嵌入式開發(fā),初學(xué)者亦能輕松上手,同時仍不失足夠強大,可以滿足經(jīng)驗豐富的開發(fā)人員更復(fù)雜、更強大的處理要求。

開始時,開發(fā)人員只需將開發(fā)板的視頻端口連接到顯示器并將其 USB 端口連接到鍵盤和鼠標(biāo)。對于軟件設(shè)計,開發(fā)人員則有著廣泛的生態(tài)系統(tǒng)基礎(chǔ)支撐,受到 Raspberry Pi Foundation 的基于 Linux 的免費 Raspbian 操作系統(tǒng)支持,且該操作系統(tǒng)可通過該開發(fā)板的微型 SD 接口從存儲卡加載。

增加工業(yè)處理能力

除了具有高性能和易開發(fā)的優(yōu)勢以外,Raspberry Pi 用于擴展其功能的簡化方法也非常適合工業(yè)自動化應(yīng)用的各種要求。需要增加硬件的能力時,開發(fā)人員只需將一塊被稱為 HAT(頂部安裝硬件)的擴展板插到 Raspberry Pi 3 開發(fā)板上即可。與更復(fù)雜的工業(yè)系統(tǒng)一樣,HAT 提供了用于識別 HAT 以及根據(jù)需要自動配置 GPIO 和驅(qū)動程序的標(biāo)準(zhǔn)方法。因此,開發(fā)人員只需插入 Pimoroni PIM213 Automation HAT(圖 1),即可針對工業(yè)應(yīng)用立即將自己的 Raspberry Pi 系統(tǒng)升級。

圖 1:開發(fā)人員可以通過連接專用的擴展板(例如 Pimoroni Automation HAT)來升級用于實現(xiàn)工業(yè)自動化的基礎(chǔ) Raspberry Pi 3 開發(fā)板。(圖片來源:Pimoroni)

專為監(jiān)測和控制自動化系統(tǒng)而設(shè)計的 Pimoroni Automation HAT 組合了多個 I/O 通道,包括模擬和數(shù)字輸入、供電型輸出以及繼電器控制。除了支持 24 伏 (V) 電壓以外,這些 I/O 通道還提供大容量的輸入和輸出緩存。例如,繼電器輸出支持最大 2 安 (A) 的電流,足以驅(qū)動低功耗的 24 伏零件,如 Crouzet 81 546 001 電磁閥。

對于使用 Automation Hat 進行的軟件開發(fā),Pimoroni 提供了一個相關(guān)的 Python 模塊,只需要編寫幾行代碼,就可使用 HAT 的硬件功能。當(dāng)導(dǎo)入到 Python 程序時,Pimoroni 模塊會創(chuàng)建軟件對象,以控制模擬輸入、數(shù)字輸入、數(shù)字輸出、繼電器輸出和 LED 燈,所有這些功能都包含相應(yīng)的低級別讀/寫功能(列表 1)。

class AnalogInput(object):

type = 'Analog Input'

def __init__(self, channel, max_voltage, led):

self._en_auto_lights = True

self.channel = channel

self.value = 0

self.max_voltage = float(max_voltage)

self.light = SNLight(led)

def auto_light(self, value):

self._en_auto_lights = value

return True

def read(self):

"""Return the read voltage of the analog input"""

return round(self.value * self.max_voltage, 2)

def _update(self):

self.value = ads1015.read(self.channel)

def _auto_lights(self):

if self._en_auto_lights:

adc = self.value

self.light.write(max(0.0,min(1.0,adc)))

列表 1:Pimoroni 用于 Automation HAT 的 Python 模塊可通過處理詳細事務(wù)處理,如從板載模數(shù)轉(zhuǎn)換器 (ADC) 讀取讀數(shù),而簡化開發(fā)工作。(圖片來源:Pimoroni)

每個對象都可以識別相應(yīng)的通道和其他相關(guān)數(shù)據(jù)。例如,當(dāng)創(chuàng)建時,模擬輸入對象包含關(guān)聯(lián)引腳的最大電壓(請參見列表 1 中的 init 函數(shù))。為了執(zhí)行模數(shù)轉(zhuǎn)換器 (ADC) 轉(zhuǎn)換,ADC 對象會調(diào)用底層的 ADC 模塊(列表 1 中的 ads1015.read)。隨后,ADC 模塊會執(zhí)行設(shè)置 ADC 和執(zhí)行轉(zhuǎn)換所需的低級別 I2C 事務(wù)處理,然后返回有用格式的值(列表 2)。

class ads1015:

def __init__(self, i2c_bus=None, addr=ADDR):

self._over_voltage = [False] * 4

self.i2c_bus = i2c_bus

if not hasattr(i2c_bus, "write_i2c_block_data") or not hasattr(i2c_bus, "read_i2c_block_data"):

raise TypeError("Object given for i2c_bus must implement write_i2c_block_data and read_i2c_block_data")

self.addr = addr

def read(self, channel=0, programmable_gain=PGA_4_096V, samples_per_second=1600):

# sane defaults

config = 0x0003 | 0x0100

config |= SAMPLES_PER_SECOND_MAP[samples_per_second]

config |= CHANNEL_MAP[channel]

config |= PROGRAMMABLE_GAIN_MAP[programmable_gain]

# set "single shot" mode

config |= 0x8000

# write single conversion flag

self.i2c_bus.write_i2c_block_data(self.addr, REG_CFG, [(config >> 8) & 0xFF, config & 0xFF])

delay = (1.0 / samples_per_second) + 0.0001

time.sleep(delay)

data = self.i2c_bus.read_i2c_block_data(self.addr, REG_CONV)

value = ((data[0] << 4) | (data[1] >> 4))

if value & 0x800:

value -= 1 << 12

value /= 2047.0 # Divide down to percentage of FS

value *= float(programmable_gain)

value /= 3300.0 # Divide by VCC

return value

...

列表 2:用于 ADC 轉(zhuǎn)換的更高級別函數(shù)調(diào)用會調(diào)用一個讀取例程,此例程會執(zhí)行 I2C 總線寫入以開始進行轉(zhuǎn)換,并休眠足夠長的時間以便轉(zhuǎn)換完成,然后執(zhí)行 I2C 總線讀取以收集結(jié)果。(圖片來源:Pimoroni)

但對于開發(fā)人員而言,當(dāng)讀取模擬值時,只需對模擬對象的指定模擬輸入 (.one) 執(zhí)行高級別讀取功能 (.read()):

value = automationhat.analog.one.read()

資源庫允許使用這種簡單模型實現(xiàn)其他的 HAT 功能,因此打開或關(guān)閉繼電器也是一個簡單的調(diào)用:

automationhat.relay.write(1) # 1 = ON, 0 = OFF

靈活的選擇

Pimoroni Automation HAT 提供了小型工業(yè)自動化應(yīng)用所需的基本 IO 功能,但開發(fā)人員可以選擇多種可用的 HAT,以實現(xiàn)工業(yè)自動化等專業(yè)應(yīng)用所需的各種功能。例如,Adafruit 3013 RTC HAT 提供實時時鐘 (RTC) 功能,這并非開發(fā)板本身的標(biāo)準(zhǔn)功能。Raspberry Pi 設(shè)計師希望開發(fā)人員始終將開發(fā)板連接到因特網(wǎng),以便能夠使用標(biāo)準(zhǔn)的網(wǎng)絡(luò)時間協(xié)議 (NTP) 保持時鐘時間。因此,對于因設(shè)計本意或意外與因特網(wǎng)斷開連接的設(shè)計,需要使用外部 RTC,例如 Adafruit RTC HAT。

當(dāng)增加 RTC 等功能時,開發(fā)人員在工業(yè)自動化設(shè)計中無需只使用一個 HAT。開發(fā)人員可以在 Raspberry Pi 開發(fā)板上疊接多個 HAT。盡管大多數(shù) HAT 經(jīng)過專門設(shè)計可進行疊接,但開發(fā)人員可能需要增加疊接針座(例如 Adafruit 的 2223)以完成裝配,或者增加 M2.5 支座以防止 HAT 相互接觸或與基板接觸。

開發(fā)人員可以使用疊接針座和支座輕松疊接 HAT,例如 Adafruit 2348 電機 HAT,以增加很多工業(yè)自動化應(yīng)用所需的電機驅(qū)動器。每個 2348 電機 HAT 都可以驅(qū)動兩個步進電機或四個直流電機。實際上,開發(fā)人員可以疊接多達 32 塊這樣的擴展板,以支持最多 64 個步進電機或 128 個直流電機(圖 2)。

圖 2:開發(fā)人員可以疊接多個 Adafruit 2348 電機 HAT,以便在設(shè)計中支持最多 64 個步進電機或 128 個直流電機。(圖片來源:Adafruit)

與 Pimoroni Automation HAT 一樣,可以使用幾個簡單的 Python 命令對 Adafruit 2348 電機 HAT 進行編程。Adafruit 針對電機 HAT 的采樣軟件甚至具有基本設(shè)計模式,能夠使用 Python 線程模塊并行運行多個電機(列表 3)。

from Adafruit_MotorHAT import Adafruit_MotorHAT, Adafruit_DCMotor, Adafruit_StepperMotor

import threading

# create a default object, no changes to I2C address or frequency

mh = Adafruit_MotorHAT()

# create empty threads (these will hold the stepper 1 and 2 threads)

st1 = threading.Thread()

st2 = threading.Thread()

...

myStepper1 = mh.getStepper(200, 1) # 200 steps/rev, motor port #1

myStepper2 = mh.getStepper(200, 2) # 200 steps/rev, motor port #1

myStepper1.setSpeed(60) # 30 RPM

myStepper2.setSpeed(60) # 30 RPM

stepstyles = [Adafruit_MotorHAT.SINGLE, Adafruit_MotorHAT.DOUBLE, Adafruit_MotorHAT.INTERLEAVE, Adafruit_MotorHAT.MICROSTEP]

def stepper_worker(stepper, numsteps, direction, style):

#print("Steppin!")

stepper.step(numsteps, direction, style)

#print("Done")

while (True):

if not st1.isAlive():

randomdir = random.randint(0, 1)

if (randomdir == 0):

dir = Adafruit_MotorHAT.FORWARD

else:

dir = Adafruit_MotorHAT.BACKWARD

randomsteps = random.randint(10,50)

st1 = threading.Thread(target=stepper_worker, args=(myStepper1, randomsteps, dir, stepstyles[random.randint(0,3)],))

st1.start()

if not st2.isAlive():

randomdir = random.randint(0, 1)

if (randomdir == 0):

dir = Adafruit_MotorHAT.FORWARD

else:

dir = Adafruit_MotorHAT.BACKWARD

randomsteps = random.randint(10,50)

print("%d steps" % randomsteps)

st2 = threading.Thread(target=stepper_worker, args=(myStepper2, randomsteps, dir, stepstyles[random.randint(0,3)],))

st2.start()

列表 3:Adafruit 的電機 HAT Python 模塊包含采樣軟件,例如此代碼片段就展示了如何使用簡單控制命令和 Python 線程模塊來控制一對步進電機。(圖片來源:Adafruit)

對于可用 HAT 中未提供的功能,開發(fā)人員不需要限制自己只使用 HAT 格式。利用 DFRobot DFR0327 Arduino 盾板、Seeed Technology GrovePi+ 入門套件和 MikroElektronika MIKROE-2756 click 盾板,開發(fā)人員能夠分別獲得大量的可用 Arduino 盾板、Grove 器件和 MikroBUS click 板。

使用這些開發(fā)板時,開發(fā)人員可以通過連接 MikroElektronika MIKROE-988 CAN click 板,快速添加標(biāo)準(zhǔn) CAN 接口支持,或通過連接 MikroElektronika MIKROE-1296 4 至 20 mA 電流回路 Click 板,添加 4 至 20 mA 的電流回路。

完成小企業(yè)設(shè)計

即使為基于 Raspberry Pi 的設(shè)計快速配置了所需的擴展功能后,開發(fā)人員通常也需要花費時間構(gòu)建相應(yīng)的用戶界面。而使用 Raspberry Pi 3 之后,開發(fā)人員就可以將設(shè)計連接到 Adafruit 的 IO 云服務(wù),從而為用戶提供自動化流程的圖形化反饋和控制。云服務(wù)允許開發(fā)人員創(chuàng)建簡單的數(shù)據(jù)和流程信息饋送(列表 4),并構(gòu)建儀表板以允許用戶從臺式機、智能手機或其他移動設(shè)備上的任何 Web 瀏覽器監(jiān)視和控制項目(圖 3)。

# Import library and create instance of REST client.

from Adafruit_IO import Client

aio = Client('YOUR ADAFRUIT IO KEY')

# Send the value 100 to a feed called 'Foo'.

aio.send('Foo', 100)

列表 4:開發(fā)人員可以輕松地將數(shù)據(jù)從工業(yè)自動化應(yīng)用傳輸?shù)?Adafruit IO 云服務(wù),進行顯示和控制。(圖片來源:Adafruit)

Raspberry Pi 3擴展板的特性與控制應(yīng)用

圖 3:開發(fā)人員可以顯示來自基于 Raspberry Pi 3 的工業(yè)自動化應(yīng)用的信息,并使用 Adafruit IO 儀表板提供控制。(圖片來源:Adafruit)

簡單的軟件開發(fā)、豐富的擴展板和高性能的 Raspberry Pi 組合提供了一個適合小型工業(yè)自動化應(yīng)用的解決方案。但在某些這樣的應(yīng)用中,與使用 RTC 的配置(例如 Adafruit 3013 RTC HAT)相比,開發(fā)人員可能需要更嚴(yán)格的定時控制。

3013 RTC HAT 基于 Maxim Integrated DS3231 RTC IC,提供了兩個可編程報警功能和一個方波輸出信號。開發(fā)人員可以使用報警功能在指定日期、時、分、秒生成中斷,或者使用方波在 1 赫茲 (Hz) 頻率生成中斷。對于需要以快于 1 Hz 的定期中斷的應(yīng)用,開發(fā)人員需要使用處理器的系統(tǒng)定時器開發(fā)定制軟件功能,或者構(gòu)建能夠以所需的速率生成中斷的定制硬件計數(shù)器。

在需要更快的定時分辨率的應(yīng)用中,同樣重要的要求將變成確定性響應(yīng)延遲。在高速率下,標(biāo)準(zhǔn) Raspbian 操作系統(tǒng)中的響應(yīng)延遲變化可能會影響精度。盡管標(biāo)準(zhǔn)系統(tǒng)可能以微秒級分辨率提供具有足夠確定性的響應(yīng),但開發(fā)人員可能需要借助使用 Linux PREEMPT_RT 補丁的方法來滿足更嚴(yán)格、更具確定性的分辨率要求。

總結(jié)

傳統(tǒng) PLC 提供的能力通常超出小規(guī)模制造業(yè)、加工業(yè)和原型開發(fā)車間的大多數(shù)較小工業(yè)作業(yè)的要求和預(yù)算。對于這些應(yīng)用,操作員面臨的要求通常較低,Raspberry Pi 3 完全可以勝任。

開發(fā)人員可以使用 Raspberry Pi 3 和相應(yīng)的擴展板,快速實施能夠滿足廣泛小企業(yè)作業(yè)要求的專用工業(yè)自動化系統(tǒng)。

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

    關(guān)注

    114

    文章

    17816

    瀏覽量

    194060
  • 監(jiān)視
    +關(guān)注

    關(guān)注

    0

    文章

    73

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    GraspIO Cloudio:一款Raspberry Pi不簡單的擴展板

    GraspIO Cloudio,我們可以這樣來看: 一款配有移動平臺,適用于端對端物聯(lián)網(wǎng)開發(fā)和部署;一款Raspberry Pi 擴展板,為iPhone、iPad和Android 設(shè)備提供拖放式編程
    的頭像 發(fā)表于 08-20 09:56 ?5910次閱讀

    DIY一個樹莓派擴展板

     Arduino的擴展板被稱為Shield,而樹莓派的擴展板則稱作HAT(Hardware Attached on Top),意為附加在樹莓派頂上的硬件板卡。下面就帶著大家從零開始設(shè)計一塊開源的樹莓派擴展板,暫名為
    發(fā)表于 08-04 14:37 ?8358次閱讀

    如何使用Raspberry Pi 3進行快速開發(fā)

    Raspberry Pi 3 使用其四核處理器,并可提供比單核 Pi Zero 多一倍的內(nèi)存。對于需要較小設(shè)計封裝,但又對 Pi Zero
    的頭像 發(fā)表于 02-25 08:10 ?7981次閱讀
    如何使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>3</b>進行快速開發(fā)

    【Embedded Pi申請】基于Raspberry Pi的智能家居遠程控制系統(tǒng)

    地提高其擴展能力以及代碼的可移植能力。故提出了基于Raspberry Pi的智能家居遠程控制系統(tǒng)的申請。項目描述:該項目主要分為3大部分:智
    發(fā)表于 11-24 09:33

    LN香蕉派擴展板使用教程

    /forum.php?LN_Hub_32IO擴展板使用:http://forum.lemaker.org/cn/forum.php?LeMaker、Banana PiRaspberry Pi
    發(fā)表于 08-04 18:01

    Raspberry Pi平臺的擴展板有哪幾種?

    Raspberry Pi平臺的擴展板有哪幾種?它們都有些什么功能?
    發(fā)表于 06-16 07:28

    一個Raspberry Pi擴展板

    描述clumsyMIDI - 樹莓派擴展板一個 Raspberry Pi 擴展板,包含一個 MIDI 接口、DAC 和 OLED 顯示器,只需要通孔焊接技能。這主要用作mt32-
    發(fā)表于 07-29 06:12

    采用Raspberry Pi 3擴展板對工業(yè)控制設(shè)計(附代碼)

    對于很多較小作業(yè)規(guī)模而言,Raspberry Pi 3 平臺提供了一種性能卓越的低成本解決方案。Raspberry Pi
    發(fā)表于 05-04 15:40 ?51次下載
    采用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>3</b>和<b class='flag-5'>擴展板</b>對工業(yè)<b class='flag-5'>控制</b>設(shè)計(附代碼)

    微雪電子2.23寸OLED擴展板介紹

    樹莓派2.23寸OLED擴展板 - 128×32分辯率 支持SPI/I2C 基于Raspberry Pi 40pin GPIO接口,適用于Raspberry
    的頭像 發(fā)表于 11-21 16:54 ?2512次閱讀
    微雪電子2.23寸OLED<b class='flag-5'>擴展板</b>介紹

    微雪電子PoE以太網(wǎng)供電擴展板介紹

    Raspberry Pi PoE HAT 樹莓派3B+以太網(wǎng)供電擴展板 帶隔離開關(guān) 散熱風(fēng)扇 型號 Raspberry
    的頭像 發(fā)表于 12-30 10:21 ?3042次閱讀
    微雪電子PoE以太網(wǎng)供電<b class='flag-5'>擴展板</b>介紹

    微雪電子Raspberry Pi 3 Model擴展板簡介

    Raspberry Pi 3 Model B+ 樹莓派3B+ 多功能擴展板套件 帶傳感器擴展板
    的頭像 發(fā)表于 12-20 11:23 ?2652次閱讀
    微雪電子<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>3</b> Model<b class='flag-5'>擴展板</b>簡介

    dfrobot樹莓派UPS電源擴展板(Zero版)簡介

    DFRobot UPS HAT for Raspberry Pi Zero是一款針對Raspberry Pi ZERO系列的不間斷電源擴展板
    的頭像 發(fā)表于 01-07 09:15 ?3075次閱讀
    dfrobot樹莓派UPS電源<b class='flag-5'>擴展板</b>(Zero版)簡介

    dfrobot樹莓派4B/3B+ IO擴展板簡介

    IO Expansion HAT是一款專為Raspberry Pi 開發(fā)的IO擴展板,擴展板將樹莓派IO口均引出,包含數(shù)字端口、模擬端口、
    的頭像 發(fā)表于 01-07 10:40 ?7536次閱讀
    dfrobot樹莓派4B/<b class='flag-5'>3</b>B+ IO<b class='flag-5'>擴展板</b>簡介

    Raspberry Pi Zero的擴展板BassCrab uHAT

    電子發(fā)燒友網(wǎng)站提供《Raspberry Pi Zero的擴展板BassCrab uHAT.zip》資料免費下載
    發(fā)表于 08-22 15:49 ?2次下載
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Zero的<b class='flag-5'>擴展板</b>BassCrab uHAT

    如何用Raspberry Pi制作動作控制感應(yīng)燈

    本教程將帶你一步步制作一款動作控制感應(yīng)燈。該項目使用的設(shè)備包括:Raspberry Pi Model B,Dexter Industries的GrovePi擴展板,以及超聲波傳感器和繼
    的頭像 發(fā)表于 02-24 17:25 ?1612次閱讀
    如何用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>制作動作<b class='flag-5'>控制</b>感應(yīng)燈