加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 1. gpio節(jié)點(diǎn)
    • 2. gpio_in節(jié)點(diǎn)
    • 3. gpio_out節(jié)點(diǎn)
    • 4. led節(jié)點(diǎn)
    • 5. button節(jié)點(diǎn)
    • 6. adc節(jié)點(diǎn)
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

【EsDA 應(yīng)用】常用IO設(shè)備節(jié)點(diǎn)詳解

2023/09/14
2391
閱讀需 17 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

本文介紹如何通過(guò)EsDA開(kāi)發(fā)套件,快速熟悉常用IO設(shè)備節(jié)點(diǎn)及其使用方法,大大縮短了用戶對(duì)EsDA的學(xué)習(xí)開(kāi)發(fā)周期。

本文選用EPC6450-AWI開(kāi)發(fā)板,以及圖形化設(shè)計(jì)工具AWFlow Designer進(jìn)行測(cè)試講解,對(duì)常用IO設(shè)備節(jié)點(diǎn)和使用方法進(jìn)行詳細(xì)說(shuō)明。

前期了解

對(duì)AWFlow工具以及AWFlow理論并不了解的,可以點(diǎn)擊AWFlow文檔進(jìn)行學(xué)習(xí):https://awtk.zlg.cn/pro/docs/AWFlow/

對(duì)AWFlow有一定的了解但是對(duì)EsDA和相關(guān)節(jié)點(diǎn)的綜合應(yīng)用并不了解的,可以點(diǎn)擊Z站的EsDA專欄進(jìn)行學(xué)習(xí):https://z.zlg.cn/specialInfo?id=134

常用節(jié)點(diǎn)簡(jiǎn)介

本文將對(duì)gpio引腳電平操作的gpio節(jié)點(diǎn),gpio_in節(jié)點(diǎn),gpio_out節(jié)點(diǎn)三個(gè)節(jié)點(diǎn),對(duì)led燈操作的led節(jié)點(diǎn),對(duì)按鍵操作的button節(jié)點(diǎn),對(duì)adc通道采集的adc節(jié)點(diǎn)進(jìn)行詳細(xì)描述。

1. gpio節(jié)點(diǎn)

1.1 查看幫助文檔

在搜索框中輸入gpio關(guān)鍵字即可檢索出gpio節(jié)點(diǎn),點(diǎn)擊gpio節(jié)點(diǎn)即可看到右邊彈出gpio節(jié)點(diǎn)的幫助文檔界面,里面包含節(jié)點(diǎn)的簡(jiǎn)介以及屬性,輸入和輸出的相關(guān)參數(shù)介紹。用戶可以在此操作下找尋相關(guān)節(jié)點(diǎn)的幫助文檔去了解節(jié)點(diǎn)的相關(guān)參數(shù)。

此節(jié)點(diǎn)將屬性值“GPIO序號(hào)”配置為GPIO輸入模式。因該節(jié)點(diǎn)為filter類型節(jié)點(diǎn),所以有1輸入1輸出,當(dāng)本節(jié)點(diǎn)輸入值msg.payload不為0時(shí),則讀取屬性值“GPIO序號(hào)”的電平值作為輸出;若輸入值msg.payload為0則不將讀取到的引腳電平值進(jìn)行輸出傳遞,此時(shí)無(wú)輸出。1.2 屬性

    名稱:可用于索引查找本節(jié)點(diǎn);顯示名稱:用于畫(huà)布上顯示的名稱,僅做顯示;GPIO序號(hào):對(duì)需要操作的GPIO引腳序號(hào)進(jìn)行選定,此引腳序號(hào)與目標(biāo)板的絲印一一對(duì)應(yīng);模式:設(shè)置GPIO序號(hào)引腳的輸入模式,float是浮空輸入,pull up是輸入上拉,pull down是輸入下拉。

1.3 輸入

msg.payload :不為0則表示讀取屬性值“GPIO序號(hào)”的電平值,為0則不將讀取到的電平值進(jìn)行輸出傳遞給下一個(gè)節(jié)點(diǎn)。

所有節(jié)點(diǎn)的輸入?yún)?shù)都是由上級(jí)節(jié)點(diǎn)的輸出提供的,且通常為msg對(duì)象攜帶的對(duì)應(yīng)屬性參數(shù)。

1.4 輸出

msg.payload:輸出的數(shù)據(jù),需要注意的是只有當(dāng)輸入的msg.payload不為0時(shí)才有輸出,0表示讀取屬性值“GPIO序號(hào)”的電平值為低電平,1表示讀取到的是高電平。

1.5 加載demo示例

在相關(guān)節(jié)點(diǎn)的幫助文檔旁邊有一個(gè)示例,點(diǎn)擊后則可以看到對(duì)應(yīng)的節(jié)點(diǎn)demo示例,選中查看的demo示例,并加載到項(xiàng)目中即可查看。

1.6 自定義demo1.6.1 繪制流圖添加timer,fscript,gpio,fscript節(jié)點(diǎn)到畫(huà)布中并連線如下圖。

1.6.2 節(jié)點(diǎn)配置timer節(jié)點(diǎn)周期性的觸發(fā)fscript節(jié)點(diǎn),需要更改周期性的時(shí)長(zhǎng)可雙擊timer節(jié)點(diǎn),修改屬性值“定時(shí)周期”即可。而fscript節(jié)點(diǎn)作為gpio的上級(jí)節(jié)點(diǎn),那么傳遞的則是gpio的輸入值,在此希望能周期性的讀取電平值,所以msg.payload的值不為0即可,gpio的上級(jí)節(jié)點(diǎn)fscript的內(nèi)容:

msg.payload = 666

雙擊gpio節(jié)點(diǎn),選擇目標(biāo)板對(duì)應(yīng)絲印的GPIO序號(hào),在此選擇的模式是浮空輸入如下圖。

gpio節(jié)點(diǎn)的消費(fèi)者fscript節(jié)點(diǎn)作為輸出,直接打印gpio節(jié)點(diǎn)的輸出值顯示電平值即可,gpio節(jié)點(diǎn)的消費(fèi)者fscript節(jié)點(diǎn)內(nèi)容如下:

print("read gpio level value is "+msg.payload)

關(guān)于timer,fscript節(jié)點(diǎn)的介紹可參考AWFlow節(jié)點(diǎn)使用手冊(cè):
https://awtk.zlg.cn/pro/docs/AWFlow/1.6.3 下載驗(yàn)證

將此流圖下載到目標(biāo)板后,連接調(diào)試串口后,打開(kāi)串口助手,改變UTX5的電平值可得到如下顯示:

2. gpio_in節(jié)點(diǎn)

將GPIO配置為輸入模式,并輪詢讀取電平狀態(tài)且將其作為輸出值。與gpio節(jié)點(diǎn)功能類似,都是配置為輸入模式且可以將讀取到的電平值作為輸出,只不過(guò)gpio_in是不間斷循環(huán)的輸出?,并且gpio節(jié)點(diǎn)還加了一個(gè)是否開(kāi)啟讀電平的輸入。

2.1 屬性

名稱:可用于索引查找本節(jié)點(diǎn);

顯示名稱:用于畫(huà)布上顯示的名稱,僅做顯示;

GPIO序號(hào):對(duì)需要操作的GPIO引腳序號(hào)進(jìn)行選定,此引腳序號(hào)與目標(biāo)板的絲印一一對(duì)應(yīng);

模式:設(shè)置GPIO序號(hào)引腳的輸入模式,float是浮空輸入,pull up是輸入上拉,pull down是輸入下拉;

輪詢:是否開(kāi)啟以設(shè)定值去輪詢的讀取GPIO序號(hào)的電平狀態(tài),off則關(guān)閉用設(shè)定值去輪詢讀取電平狀態(tài)而使用默認(rèn)的50ms去輪詢讀取,on則以設(shè)定值去輪詢讀取電平狀態(tài)值;

輪詢間隔(ms):以設(shè)定值去輪詢讀取電平狀態(tài),設(shè)置生效的前提是輪詢需為on。

2.2 輸出

    • msg.payload:屬性值“GPIO序號(hào)”的電平狀態(tài)值,0為低電平,1為高電平;

msg.topic:固定輸出gpio_in字符串。

pump類型節(jié)點(diǎn)無(wú)輸入,相關(guān)類型節(jié)點(diǎn)介紹可查看AWFlow節(jié)點(diǎn)開(kāi)發(fā)指南進(jìn)行更多的了解。

2.3 使用方法

2.3.1 繪制流圖

添加timer,fscript,log節(jié)點(diǎn)到畫(huà)布中并連接如下圖所示:

2.3.2 節(jié)點(diǎn)配置雙擊gpio_in節(jié)點(diǎn),選擇目標(biāo)板對(duì)應(yīng)絲印的GPIO序號(hào),在此選擇的模式是浮空輸入,開(kāi)啟以設(shè)定值2000ms去輪詢讀取gpio電平狀態(tài)值如下圖所示。

gpio_in節(jié)點(diǎn)的消費(fèi)者節(jié)點(diǎn)fscript是對(duì)gpio_in的輸出參數(shù)進(jìn)行輸出顯示,內(nèi)容如下:

msg.payload = "read gpio status is " + msg.payload + "n" + "msg.topic:"+msg.topic

用log節(jié)點(diǎn)對(duì)上一級(jí)節(jié)點(diǎn)的msg.payload輸出到調(diào)試窗口進(jìn)行顯示。

2.3.3 下載驗(yàn)證

將此流圖以下載運(yùn)行的模式下載到目標(biāo)板后,可在AWFlow Designer的調(diào)試窗口查看到如下信息:

3. gpio_out節(jié)點(diǎn)

配置為GPIO輸出,將輸入的msg.payload的值設(shè)置為GPIO的電平值。

3.1 屬性

名稱:可用于索引查找本節(jié)點(diǎn);

顯示名稱:用于畫(huà)布上顯示的名稱,僅做顯示;

GPIO序號(hào):對(duì)需要操作的GPIO引腳序號(hào)進(jìn)行選定,此引腳序號(hào)與目標(biāo)板的絲印一一對(duì)應(yīng);

模式:設(shè)置GPIO輸出模式,push pull為推挽輸出模式,open drain為開(kāi)漏輸出模式;

GPIO初始狀態(tài):設(shè)置GPIO初始輸出的狀態(tài)值,0為低電平,1為高電平。

3.2 輸入

msg.payload:設(shè)置屬性GPIO序號(hào)的輸出電平值,0為低電平,1為高電平,2為電平翻轉(zhuǎn)。

sink類型節(jié)點(diǎn)無(wú)輸出。

3.3 使用方法

3.3.1 繪制流圖添加timer,fscript,gpio_out節(jié)點(diǎn)到畫(huà)布中,并連線如下圖所示。

3.3.2 節(jié)點(diǎn)配置timer節(jié)點(diǎn)周期性定時(shí)觸發(fā)fscript節(jié)點(diǎn),這里的timer的屬性定時(shí)周期值配置為3000ms,而fscript節(jié)點(diǎn)作為gpio_out節(jié)點(diǎn)的上一級(jí)節(jié)點(diǎn),主要內(nèi)容是設(shè)置gpio_out的輸入?yún)?shù),內(nèi)容如下:

if(((msg.payload/1000)%2)==0) {    msg.payload = 0    print("low leveln")}else {    msg.payload = 1    print("high leveln")}

雙擊gpio_out節(jié)點(diǎn),選擇目標(biāo)板對(duì)應(yīng)絲印的GPIO序號(hào),在此選擇的模式是推挽輸出。

3.3.3 下載驗(yàn)證

下載流圖到目標(biāo)板后,可以用萬(wàn)用表去查詢GPIO序號(hào)對(duì)應(yīng)的引腳電平值可知,電平是周期性的翻轉(zhuǎn)。

4. led節(jié)點(diǎn)

該節(jié)點(diǎn)主要有兩種模式,一種是設(shè)置led燈的狀態(tài),一種是設(shè)置快閃燈。

4.1 屬性

名稱:可用于索引查找本節(jié)點(diǎn);

顯示名稱:用于畫(huà)布上顯示的名稱,僅做顯示;

led設(shè)備名稱:Led設(shè)備名稱,可根據(jù)不同的目標(biāo)板對(duì)應(yīng)絲印進(jìn)行設(shè)備選擇;

初始狀態(tài):對(duì)選中的led的設(shè)備設(shè)置初始狀態(tài)值,0為led燈的初始狀態(tài)為滅,1為led燈的初始狀態(tài)為亮。

4.2 輸入

    • msg.device_name:led設(shè)備名稱,將與屬性值“l(fā)ed設(shè)備名稱”進(jìn)行對(duì)比,若不同則該節(jié)點(diǎn)功能無(wú)效;msg.payload:模式一,設(shè)置led的狀態(tài)值。0為關(guān)閉led燈,1為開(kāi)啟led燈,2為翻轉(zhuǎn)led燈;msg.timer:模式二,快閃燈。該輸入?yún)?shù)為設(shè)置定時(shí)閃爍的時(shí)間,單位ms,若為0則關(guān)閉快閃,大于0則設(shè)置閃爍間隔時(shí)間;

msg.fast_blink:模式二,快閃燈。設(shè)置定時(shí)快閃的次數(shù),在定時(shí)閃爍周期中的快閃次數(shù),輸入?yún)?shù)msg.timer與msg.fast_blink需同步設(shè)置才能生效。

sink類型節(jié)點(diǎn)無(wú)輸出。

4.3 設(shè)置燈狀態(tài)示例

4.3.1 繪制流圖

添加timer,fscript,led節(jié)點(diǎn)到畫(huà)布中并連線如下圖所示:

4.3.2 節(jié)點(diǎn)配置

timer節(jié)點(diǎn)周期性的去設(shè)置led燈的狀態(tài)值,fscript節(jié)點(diǎn)作為led的上一級(jí)節(jié)點(diǎn),其內(nèi)容主要是對(duì)led設(shè)備狀態(tài)的設(shè)置:

msg.payload = 2

雙擊led節(jié)點(diǎn),在屬性“l(fā)ed設(shè)備名稱”的下拉框中選擇對(duì)應(yīng)絲印的LED設(shè)備如下:

4.3.3 下載驗(yàn)證下載流圖后可看到RUN燈周期性的3s翻轉(zhuǎn)一次。

4.4 快閃燈示例

4.4.1 繪制流圖

添加gpio_in,fscript,led節(jié)點(diǎn)到畫(huà)布,并連線如下圖所示:

4.4.2 節(jié)點(diǎn)配置

雙擊gpio_in節(jié)點(diǎn),本節(jié)點(diǎn)主要作用就是運(yùn)行流圖后只觸發(fā)一次fscript節(jié)點(diǎn),所以要開(kāi)啟定時(shí)輪詢,且輪詢間隔需設(shè)置盡量大一點(diǎn)如下圖所示:

fscript節(jié)點(diǎn)作為led的上一級(jí)節(jié)點(diǎn),主要內(nèi)容是led相關(guān)的輸入?yún)?shù),內(nèi)容如下:

if(msg.payload == 0) {    msg.timer = 2000    msg.device_name = "/dev/led_run"    msg.fast_blink = 2    print("fast ledn")}

雙擊led節(jié)點(diǎn),在屬性“l(fā)ed設(shè)備名稱”的下拉框中選擇對(duì)應(yīng)絲印的LED設(shè)備如下:

4.4.3 下載驗(yàn)證

下載流圖到目標(biāo)板后,對(duì)gpio_in節(jié)點(diǎn)配置的引腳進(jìn)行電平置低,5s內(nèi)切換到高電平后即可看到led燈2s閃爍2次的實(shí)驗(yàn)現(xiàn)象。

5. button節(jié)點(diǎn)

5.1 屬性

    名稱:可用于索引查找本節(jié)點(diǎn);顯示名稱:用于畫(huà)布上顯示的名稱,僅做顯示;對(duì)應(yīng)的GPIO編號(hào):對(duì)需要操作的GPIO引腳序號(hào)進(jìn)行選定,此引腳序號(hào)與目標(biāo)板的絲印一一對(duì)應(yīng);觸發(fā)條件:按鈕按下時(shí)的觸發(fā)條件,fall表示按鈕按下的觸發(fā)條件為GPIO下降沿觸發(fā),up表示按鈕按下的觸發(fā)條件為GPIO上升沿觸發(fā)。

5.2 輸出msg.payload :按鈕按下?tīng)顟B(tài)輸出為on,松開(kāi)狀態(tài)輸出為off,在初始化完成以及按鈕狀態(tài)發(fā)生改變的時(shí)候會(huì)輸出當(dāng)前的狀態(tài)。

pump類型節(jié)點(diǎn)沒(méi)有輸入。

5.3 使用方法

5.3.1 繪制流圖

添加button,fscript,led節(jié)點(diǎn)到畫(huà)布中并連線如下圖所示:

5.3.2 節(jié)點(diǎn)配置

雙擊button節(jié)點(diǎn),對(duì)需要操作的引腳進(jìn)行選擇如下:

fscript節(jié)點(diǎn)作為button的消費(fèi)者節(jié)點(diǎn),內(nèi)容是button的相關(guān)輸出參數(shù):

if(msg.payload == "on"){ ? ?msg.payload = 1}else if(msg.payload == "off") { ? ?msg.payload = 0}

雙擊led節(jié)點(diǎn),選擇閃燈的led設(shè)備。

5.3.3 下載驗(yàn)證

下載流圖后,對(duì)button配置的按鈕進(jìn)行按下和松開(kāi)的操作可以看到相應(yīng)led燈的效果。

6. adc節(jié)點(diǎn)

6.1 屬性

    名稱:可用于索引查找本節(jié)點(diǎn);顯示名稱:用于畫(huà)布上顯示的名稱,僅做顯示;通道號(hào):進(jìn)行采樣的ADC通道號(hào),可根據(jù)不同的目標(biāo)板對(duì)應(yīng)絲印進(jìn)行設(shè)備選擇;采集次數(shù):ADC 通道對(duì)ADC值的采集次數(shù);采樣率:ADC通道號(hào)采樣率(每秒ADC的采樣次數(shù))。

6.2 輸出

    • msg.payload:通道采樣的最終電壓值(mv);msg.vref:基準(zhǔn)電壓;msg.bits:ADC通道位數(shù);

msg.rate:ADC通道采樣率。

pump類型節(jié)點(diǎn)沒(méi)有輸入。

6.3 使用方法

6.3.1 繪制流圖

添加adc,fscript,log節(jié)點(diǎn)到畫(huà)布中并連線。

6.3.2 節(jié)點(diǎn)配置

雙擊adc選擇對(duì)應(yīng)絲印的ADC設(shè)備如下:

fscript節(jié)點(diǎn)作為adc的消費(fèi)者節(jié)點(diǎn),其內(nèi)容主要是adc的相關(guān)輸出參數(shù):

msg.payload = "adc value is "+msg.payload

log節(jié)點(diǎn)對(duì)上一級(jí)fscript節(jié)點(diǎn)進(jìn)行輸出顯示。6.3.3 下載流圖

下載流圖后,對(duì)adc配置的通道號(hào)進(jìn)行不同電壓值的采樣結(jié)果如下:

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
KSZ8863MLL 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP48

ECAD模型

下載ECAD模型
$4.59 查看
TLE9271QXV33XUMA1 1 Infineon Technologies AG Interface Circuit, PQCC48, VQFN-48
暫無(wú)數(shù)據(jù) 查看
SN65HVD233D 1 Texas Instruments 3.3 V CAN Transceiver with Standby Mode, Loopback 8-SOIC -40 to 125

ECAD模型

下載ECAD模型
$3.93 查看
致遠(yuǎn)電子

致遠(yuǎn)電子

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬(wàn)元,國(guó)家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開(kāi)發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬(wàn)元,國(guó)家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開(kāi)發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜