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