https://www.mouser.com/applications/no-code-low-code-hardware-prototyping-analog-devices/
?
引言
Analog Devices?AD-SWIOT1L-SL(圖1和圖2)是一個(gè)開(kāi)發(fā)平臺(tái),旨在幫助工程師為可聯(lián)網(wǎng)的智能安全設(shè)備開(kāi)發(fā)原型。該套件非常適合在工業(yè)現(xiàn)場(chǎng)環(huán)境中使用,具有原型開(kāi)發(fā)工作所需的一切,包括硬件本身、外殼、電纜和軟件等。
圖1:Analog Devices的AD-SWIOT1L-SL是用于開(kāi)發(fā)聯(lián)網(wǎng)工業(yè)應(yīng)用的強(qiáng)大平臺(tái)。(圖源:貿(mào)澤電子)
圖2:AD-SWIOT1L-SL的框圖(圖源:Analog Devices)
?
AD-SWIOT1L-SL通過(guò)單對(duì)以太網(wǎng) (SPE) 連接到網(wǎng)絡(luò),使用單根雙絞線傳輸數(shù)據(jù),因此非常適合空間有限的工業(yè)環(huán)境。該套件包括一個(gè)10BASE-T1L至USB轉(zhuǎn)接板,可將AD-SWIOT1L-SL連接到計(jì)算機(jī)進(jìn)行開(kāi)發(fā)。
AD-SWIOT1L-SL平臺(tái)兼容用于配置設(shè)備和可視化數(shù)據(jù)的Analog Devices Scopy軟件工具集。Scopy是一款強(qiáng)大的多功能軟件應(yīng)用程序,用于搭配各種Analog Devices硬件平臺(tái)工作。它主要用于實(shí)驗(yàn)室的信號(hào)分析、數(shù)據(jù)可視化和調(diào)試。Scopy提供圖形用戶界面 (GUI),使用戶能夠與示波器、信號(hào)發(fā)生器和邏輯分析儀等硬件設(shè)備進(jìn)行交互,從而簡(jiǎn)化信號(hào)的捕獲與分析過(guò)程。它還可以將JavaScript代碼上傳到被測(cè)設(shè)備,以便對(duì)GPIO引腳進(jìn)行基本編程,我們將在演示項(xiàng)目中使用這種方法。
Scopy具有幾個(gè)重要特性:
GUI:Scopy的GUI使用戶可以輕松控制和可視化來(lái)自AD-SWIOT1L-SL的數(shù)據(jù)。直觀的設(shè)計(jì)方便用戶快速設(shè)置和執(zhí)行測(cè)量、查看波形以及分析信號(hào)。
軟件定義示波器:Scopy使AD-SWIOT1L-SL可以充當(dāng)雙通道示波器,具有觸發(fā)、時(shí)基調(diào)整和各種顯示模式等功能。
數(shù)字I/O:該軟件可控制和監(jiān)視AD-SWIOT1L-SL的數(shù)字輸入與輸出引腳,因此可用于數(shù)字信號(hào)分析和邏輯測(cè)試。
靈活性和定制化:該軟件支持腳本編寫(xiě)和自動(dòng)化,允許用戶創(chuàng)建自定義測(cè)量設(shè)置并自動(dòng)執(zhí)行重復(fù)性任務(wù)。對(duì)于需要進(jìn)行復(fù)雜分析的高級(jí)用戶來(lái)說(shuō),此項(xiàng)功能非常有用。
跨平臺(tái)兼容性:Scopy支持多種操作系統(tǒng),包括Windows、macOS和Linux,確保不同計(jì)算環(huán)境的用戶都能使用。
Scopy與AD-SWIOT1L-SL平臺(tái)的組合為過(guò)程控制和工業(yè)自動(dòng)化解決方案的原型開(kāi)發(fā)提供了強(qiáng)大而靈活的工具集。而且,這些工具還為學(xué)生、教育工作者以及業(yè)余愛(ài)好者提供了極好的教學(xué)和實(shí)驗(yàn)素材。
在本項(xiàng)目中,我們將使用AD-SWIOT1L-SL開(kāi)發(fā)板、兩個(gè)非接觸式水傳感器和一個(gè)水泵來(lái)保持水箱的適當(dāng)水位。當(dāng)下方傳感器檢測(cè)不到水(即水箱處于低水位狀態(tài))時(shí),水泵將觸發(fā)并向水箱內(nèi)注水,直到上方傳感器檢測(cè)到水(即水箱處于高水位狀態(tài))。
物料清單和工具
截至發(fā)布之日,總BOM(表1)成本約為450美元(不含運(yùn)費(fèi)和稅費(fèi))。
?
表1.?物料清單
貿(mào)澤元器件編號(hào) | 元器件說(shuō)明 | 數(shù)量 |
584-AD-SWIOT1L-SL | Analog Devices AD-SWIOT1L-SL開(kāi)發(fā)平臺(tái) | 1 |
209-AKM45US24 | XP Power 24V直流電源,2A 輸出 | 1 |
426-SEN0204 | DF Robot非接觸式水傳感器 | 2 |
485-3191 | Adafruit功率繼電器FeatherWing | 1 |
?
要完成本項(xiàng)目,您還需要訪問(wèn)項(xiàng)目的GitHub存儲(chǔ)庫(kù)。
除BOM中的物料外,還需要以下工具:
水箱(必備)
水泵,24V直流,最大電流2A(必備)
熱膠等粘合劑
小型十字和一字螺絲刀
剪線鉗/剝線鉗
剪刀
熱縮管
小尖嘴鉗
數(shù)字萬(wàn)用表
高速互聯(lián)網(wǎng)連接,Windows 10 PC或更新版本的電腦(必備)
?
硬件準(zhǔn)備
Analog Devices AD-SWIOT1L-SL開(kāi)發(fā)平臺(tái)采用MAX32650低功耗Arm??Cortex?-M4微控制器,具有128MB外部RAM和8MB外部閃存。安全功能由MAXQ1065安全協(xié)處理器提供支持。此開(kāi)發(fā)板還集成了AD74413R四通道、軟件可配置的輸入和輸出,以及MAX14906四通道工業(yè)數(shù)字輸出/數(shù)字輸入 IC,可在四個(gè)通道上多路復(fù)用多個(gè)模擬和數(shù)字功能。這些通道可通過(guò)軟件獨(dú)立配置,以用于:
電流輸出或輸入
電壓輸出或輸入
數(shù)字輸出或輸入
對(duì)于需要大電流能力的應(yīng)用,系統(tǒng)可由外部24V電源供電,任何配置為數(shù)字輸出的通道均可輸出高達(dá)1.2A的電流。
板載ADIN1110 MAC/PHY提供一個(gè)10 Mbps單對(duì)10BASE-T1L以太網(wǎng)接口,可實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)采集和設(shè)備配置。該接口還可通過(guò)單對(duì)以太網(wǎng)供電 (SPoE) 技術(shù)以及LTC9111受電設(shè)備 (PD) 控制器為系統(tǒng)供電。這樣即可通過(guò)同一根電纜為系統(tǒng)同時(shí)提供電力和數(shù)據(jù),從而顯著簡(jiǎn)化布線基礎(chǔ)設(shè)施并降低成本。
現(xiàn)在,我們先為四個(gè)AD74413R通道中的每個(gè)通道分配所需的功能。我們將把其中一個(gè)配置為電壓輸出,為兩個(gè)傳感器提供5V電源和GND連接(表2)。
?
表2.?AD74413R引腳分配
AD74413R通道 | 用途 |
1 | 電壓輸出 (5V) |
2 | 數(shù)字輸入(下方水傳感器) |
3 | 數(shù)字輸入(上方水傳感器) |
4 | 繼電器控制 |
?
連接水傳感器
在這個(gè)項(xiàng)目中,我們使用兩個(gè)非接觸式水傳感器來(lái)檢測(cè)水箱的低水位和高水位。非接觸式傳感器在改造現(xiàn)有基礎(chǔ)設(shè)施時(shí)非常有用,因?yàn)樗鼈兡苡梅瞧茐男苑绞桨惭b。這也方便了傳感器的維護(hù)和修理。
這種非接觸式傳感器通過(guò)測(cè)量液體接近時(shí)電容的變化來(lái)檢測(cè)水。當(dāng)水接近時(shí),其電容會(huì)影響傳感器的基線電容。控制器芯片會(huì)將這種變化轉(zhuǎn)換為電信號(hào)。如果變化超過(guò)閾值,則表明水已到達(dá)傳感器位置。輸出將被發(fā)送到高電平,同時(shí)還將觸發(fā)內(nèi)置的LED指示燈。
使用以下步驟為水傳感器接線(圖3):
將AD74413R通道2連接到水傳感器的VIN引腳(棕色線)。
將AD74413R通道2的GND引腳連接到水傳感器的GND引腳(藍(lán)色線)。
將水傳感器的OUT引腳(黃色線)連接到AD74413R的通道2數(shù)字輸入引腳。
根據(jù)檢測(cè)到水時(shí)需要常開(kāi) (NO) 還是常閉 (NC) 輸出,連接模式選擇引腳。對(duì)于常開(kāi)操作,請(qǐng)將黑線斷開(kāi)。對(duì)于常閉操作,請(qǐng)將黑線連接至GND引腳。我們將使用常開(kāi)輸出,因此將黑線斷開(kāi)。
對(duì)第二個(gè)水位傳感器重復(fù)步驟1到4。唯一的區(qū)別是在步驟2和3中將第二個(gè)傳感器連接到通道3。
圖3:項(xiàng)目的線路圖。(圖源:Green Shoe Garage)
?
連接水泵
水泵需要外部24V直流電源,因此我們必須使用繼電器控制板來(lái)激活它。水泵將從AD-SWIOT1L-SL開(kāi)發(fā)板上的一個(gè)數(shù)字引腳接收指令和控制信號(hào)。我們將把AD74413R的通道4指定為數(shù)字輸出,并將其連接到繼電器控制板的控制引腳輸入端。
使用以下步驟為繼電器連線:
將通道4的數(shù)字引腳連接至繼電器控制板的控制輸入端。
將通道4的GND引腳連接至繼電器控制板的GND引腳。
將24V直流電源的正極連接至繼電器控制板的NO(常開(kāi))端子。
將水泵的正極連接至繼電器控制板的COM端子。
將水泵的負(fù)極連接至24V直流電源的負(fù)極。
軟件開(kāi)發(fā)
本項(xiàng)目將使用Scopy和Microsoft Visual Studio Code,它們都適用于Windows、macOS和Linux。但在本文中,我們將使用Windows。
要為項(xiàng)目創(chuàng)建JavaScript文件,可以使用純文本編輯器或Visual Studio Code。
注意:截至本文撰寫(xiě)之時(shí),Scopy的初級(jí)版本與AD-SWIOT1L-SL開(kāi)發(fā)套件不兼容。因此,您需要下載Scopy AD-SWIOT1L-SL插件。
Scopy設(shè)置
下載并安裝Scopy后,啟動(dòng)該應(yīng)用程序。
由于AD-SWIOT1L-SL開(kāi)發(fā)板沒(méi)有板載USB,因此需要通過(guò)10BASE-T1L至USB轉(zhuǎn)接板將其連接到主機(jī)。使用隨附的橙色電纜連接轉(zhuǎn)接板和AD-SWIOT1L-SL開(kāi)發(fā)板(圖4)。然后,使用micro-USB電纜將轉(zhuǎn)接板連接到主機(jī)。
圖4:使用轉(zhuǎn)接板將AD-SWIOT1L-SL連接到主機(jī)進(jìn)行編程。(圖源:Analog Devices)
如果應(yīng)用程序沒(méi)有自動(dòng)檢測(cè)到AD-SWIOT1L-SL,請(qǐng)?jiān)赨RI字段中輸入IP地址169.254.97.40,然后單擊Verify(圖5)。如果成功檢測(cè)到開(kāi)發(fā)板,它就會(huì)列在應(yīng)用程序的頂部。然后單擊Connect啟動(dòng)設(shè)置窗口(圖6)。
圖5:如果應(yīng)用程序沒(méi)有自動(dòng)檢測(cè)到AD-SWIOT1L-SL,請(qǐng)?jiān)赨RI字段中輸入IP地址169.254.97.40,然后單擊Verify。(圖源:Green Shoe Garage)
圖6:添加AD-SWIOT1L-SL開(kāi)發(fā)板并在Scopy中配置功能非常簡(jiǎn)單。(圖源:Green Shoe Garage)
重要函數(shù)與變量
本節(jié)介紹了幾個(gè)重要函數(shù)與變量,并提供了我們將加載到Scopy中的自定義代碼。
?
launcher.reset()
此函數(shù)初始化硬件,并讓AD-SWIOT1L-SL做好運(yùn)行腳本的準(zhǔn)備。
?
dio.running
此變量可按如下方式啟用或禁用I/O通道:
將此變量設(shè)置為T(mén)RUE表示啟用I/O。
將此變量設(shè)置為FALSE表示禁用I/O。
?
dio.dir[X]
將此變量設(shè)置為T(mén)RUE時(shí),I/O通道被設(shè)置為OUTPUT。
將此變量設(shè)置為FALSE時(shí),I/O通道被設(shè)置為INPUT。
?
dio.out[X]
將此變量設(shè)置為T(mén)RUE時(shí),I/O通道輸出被設(shè)置為HIGH。
將此變量設(shè)置為FALSE時(shí),I/O通道輸出被設(shè)置為L(zhǎng)OW。
?
osc.channels[X].enabled
將此變量設(shè)置為T(mén)RUE時(shí),示波器通道輸出被設(shè)置為HIGH。
將此變量設(shè)置為FALSE時(shí), 示波器通道輸出被設(shè)置為L(zhǎng)OW。
?
osc.channels[0].volts_per_div = 1
用于設(shè)置示波器垂直軸的變量,以每格伏特為單位。
?
var ppX = osc.channels[0].peak_to_peak
函數(shù)peak_to_peak()可捕捉所輪詢(xún)通道的瞬時(shí)峰峰電壓值。
?
function check_tank()
此函數(shù)包含運(yùn)行水泵系統(tǒng)所需的自定義代碼。它檢查上下傳感器的狀態(tài),并向繼電器控制板發(fā)送相應(yīng)的控制信號(hào)。
function check_tank(){
??? var lower_sensor_status = dio.out[1]
??? var upper_sensor_status = dio.out[2]
?
??? if (lower_sensor_status == 0) {?? // lower sensor detects NO water
??????? dio.out[3] = true???????????? // Turn pump ON
??? }
?
??? if (upper_sensor_status == 1) {?? // upper sensor detects water
??????? dio.out[3] = false??????????? // Turn pump OFF
??? }
?
??? msleep(1000)
??? dio.running = false
}
?
function set_oscilloscope()
此函數(shù)初始化Scopy的軟件定義示波器。子函數(shù)模仿物理示波器界面上所需的控制功能。
function set_oscilloscope(){
? ?
? ? /* Enable Oscilloscope Channel 1 ?*/
? ? osc.channels[0].enabled = true
? ? osc.channels[1].enabled = true
? ? osc.channels[2].enabled = true
? ? osc.channels[3].enabled = true
? ?
? ? /* Set Volts/Div to 1V/div */
? ? osc.channels[0].volts_per_div = 1
? ? osc.channels[1].volts_per_div = 1
? ? osc.channels[2].volts_per_div = 1
? ? osc.channels[3].volts_per_div = 1
? ?
? ? /* Set Time Base to 1 ms */
? ? osc.time_base = 0.001
? ?
? ? /* Set Time Position to 0s */
? ? osc.time_position = 0
? ?
? ? /* Run Oscilloscope */
? ? osc.running = true
}
?
function main()
這是系統(tǒng)初始化后運(yùn)行的主循環(huán)??稍诖颂砑悠渌雍瘮?shù),以擴(kuò)展系統(tǒng)功能。
function main(){
??? set_dio()
??? check_tank()
??? msleep(1000)
??? set_oscilloscope()
? ? msleep(1000)
? ? var pp1 = osc.channels[0].peak_to_peak
? ? var pp2 = osc.channels[0].peak_to_peak
? ? var pp3 = osc.channels[0].peak_to_peak
? ? var pp4 = osc.channels[0].peak_to_peak
? ? printToConsole(pp1)
??? printToConsole(pp2)
??? printToConsole(pp3)
??? printToConsole(pp4)
}
固件上傳、最后的組裝和故障排除
現(xiàn)在您已了解固件的結(jié)構(gòu)和功能,請(qǐng)使用Scopy的調(diào)試器工具上傳腳本。
要在Scopy中打開(kāi)調(diào)試器,首先必須確保它在Instrument菜單中可見(jiàn):
關(guān)閉Scopy應(yīng)用程序。
導(dǎo)航至C:\Users\
打開(kāi)Scopy ini文件。
將啟動(dòng)器組中的debugger屬性從false更改為true(圖7)。
關(guān)閉文件并重新打開(kāi)Scopy。
圖7:必須通過(guò)配置Scopy應(yīng)用程序安裝文件夾中的.ini文件來(lái)啟用調(diào)試模式。(圖源:Analog Devices)
重新啟動(dòng)Scopy后,按照Scopy Scripting Guide中的說(shuō)明加載腳本(圖8)。
圖8:可通過(guò)調(diào)試器菜單向開(kāi)發(fā)板添加腳本。(圖源:Analog Devices)
裝配
將上下傳感器安裝到要監(jiān)控的水箱上。確保傳感器牢固地安裝在水箱外表面,并盡可能平整。
將水源連接至水泵。
將軟管連接到水泵出口,然后將開(kāi)口端放入水箱。
確保電子設(shè)備和電源與水源和水箱保持安全距離。
故障排除
如果您發(fā)現(xiàn)自己的項(xiàng)目出現(xiàn)問(wèn)題,可以參考我們?cè)陂_(kāi)發(fā)過(guò)程中發(fā)現(xiàn)的一些故障排除技巧:
確保繼電器控制板的接線方式與軟件反映出來(lái)的一致。也就是說(shuō),根據(jù)繼電器是以NO還是NC方式使用,軟件會(huì)在通道4的控制輸出中反映出來(lái)(高電平有效還是低電平有效)。
確保電源能夠提供泵運(yùn)行所需的電流。檢查泵和電源數(shù)據(jù)手冊(cè)中的規(guī)格,以確保兼容性。
使用Scopy信號(hào)范圍功能查看I/O通道對(duì)輸入變化的反應(yīng)。
如果水位傳感器沒(méi)有因液體存在而觸發(fā),請(qǐng)斷開(kāi)傳感器電源,打開(kāi)傳感器外殼,使用螺絲刀調(diào)節(jié)靈敏度,然后重新連接電源。
確保傳感器與AD-SWIOT1L-SL開(kāi)發(fā)板之間的所有連接牢固且接線正確。仔細(xì)檢查圖2中的接線圖。
聽(tīng)一聽(tīng)機(jī)械繼電器開(kāi)關(guān)時(shí)是否有咔嗒聲。如果聽(tīng)不到,繼電器可能沒(méi)有接收到信號(hào),或者已經(jīng)損壞。
確保所有組件(AD-SWIOT1L-SL開(kāi)發(fā)板、繼電器板、水泵和電源)共用一個(gè)接地端,以避免形成接地環(huán)路并確保正常運(yùn)行。
暫時(shí)將水泵直接連至24伏電源,確保其正常運(yùn)行。這樣可以幫助確定是水泵的問(wèn)題還是繼電器控制電路的問(wèn)題。
結(jié)語(yǔ)
Analog Devices AD-SWIOT1L-SL是一款功能強(qiáng)大的開(kāi)發(fā)套件,用于為智能、安全的工業(yè)設(shè)備開(kāi)發(fā)原型,而這些設(shè)備可以連接到支持10Base T1L技術(shù)的網(wǎng)絡(luò)。
附帶的Scopy軟件讓用戶可以通過(guò)GUI與硬件設(shè)備進(jìn)行交互,無(wú)需復(fù)雜的編程。這讓沒(méi)有編程經(jīng)驗(yàn)或編程經(jīng)驗(yàn)有限的人更容易開(kāi)發(fā)功能原型。Scopy腳本環(huán)境提供了簡(jiǎn)單的預(yù)寫(xiě)代碼塊和可視化工具來(lái)簡(jiǎn)化開(kāi)發(fā),不需要用戶大量編碼。這種環(huán)境可以開(kāi)發(fā)出比免編碼更加復(fù)雜的應(yīng)用,并且減少了對(duì)豐富編碼專(zhuān)業(yè)知識(shí)的要求。Analog Devices的AD-SWIOT1L-SL和Scopy工具帶來(lái)的免編碼/少編碼開(kāi)發(fā)優(yōu)勢(shì)包括:
更快的開(kāi)發(fā)速度:無(wú)需大量編碼,可以更快地開(kāi)發(fā)應(yīng)用程序。
提高可用性:這些平臺(tái)使非技術(shù)用戶能夠創(chuàng)建解決方案,而無(wú)需依賴(lài)專(zhuān)業(yè)程序員。
降低成本:減少對(duì)專(zhuān)業(yè)開(kāi)發(fā)人員的需求可以降低開(kāi)發(fā)成本。
?
評(píng)論
查看更多