精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

虛擬電子實驗室:如何使用Python編程語言和ADALM2000創建示波器

星星科技指導員 ? 來源:ADI ? 作者:Arnie Mae Baes 和 Ch ? 2023-06-15 14:56 ? 次閱讀

Arnie Mae BaesChristian Garcia

虛擬電子實驗室是一系列基于軟件的儀器。這是作為軟件應用實現的仿真電子實驗室環境,用戶可以在該環境中開展大量電子實驗。功能齊全的物理實驗室可能造價昂貴且難以管理。想象一下,如果能夠構建一個可放入口袋的電子實驗室;將帶來無限可能!

本文旨在演示用戶如何使用ADALM2000開發自己的虛擬實驗室儀器。本文將使用Python這種簡單的開源編程語言。將Python與ADALM2000相結合,可以開發多個虛擬實驗室儀器,如示波器、信號發生器、數字萬用表等。但本文將重點討論一種儀器——示波器。從該儀器入手是個不錯的選擇,這是我們在實際電子實驗室中常用的基本儀器之一。

簡介

儀器儀表行業正穩定迅速地朝著虛擬化方向發展?;谲浖膬x器托管在PC上,PC使用盡可能少的專業硬件將其連接到必須測量/控制的設備。該硬件通常包括用于直接將信號數字化或控制獨立儀器的接插板。

虛擬儀器儀表因其靈活性、模塊化和可移植性而聞名。ADI公司為客戶提供適合幾乎所有用例的電子模塊,其中ADALM2000就是一個很好的例子。

通過ADALM2000,工程師或開發人員可根據具體需求創建自己的虛擬電子實驗室。通過libm2k庫,用戶可以使用C++、C#或Python開發用于控制ADALM2000的軟件應用。后面部分將詳細討論ADALM2000和libm2k。

什么是示波器?

示波器可用于常見電路和復雜電路的信號分析,因而是電子工程的重要組成部分。除此之外,如今的示波器能夠與計算機連接,因此在示波器中捕獲的信號能夠以數字形式存儲,供日后分析。

示波器用于直觀呈現模擬或數字波形的電壓和時間特性。前面板控件(放大器觸發、掃描時間和顯示屏)用于調整顯示內容,以更好地直觀呈現信號。

示波器向我們展示信號輸入在特定時間段內的行為,這對于分析常見電路至關重要。此外,它有助于驗證這些電路的功能。這也是示波器成為不可或缺的電子實驗設備的主要原因。此外,我們允許工程師定制自己的示波器來滿足需求,從而可以改進特定電子電路的分析。

ADALM2000是什么?

ADALM2000是主動學習模塊,具有數字示波器、函數發生器、邏輯分析儀、電壓表、頻譜和數字總線分析儀,以及兩個可編程的電源。對于基礎用戶或學生,可以將Scopy與ADALM2000連接。對于應用開發人員,可使用libm2k庫開發應用接口。對于固件開發人員,還可以選擇開發能夠直接在ADALM2000上運行的定制軟件或HDL。

開始使用

安裝Python和PyCharm

Python是功能強大、簡單易學的開源編程語言。Python可從 official Python 官方網站下載。如果您不確定要使用哪個版本,請選擇Python 3.7。

安裝庫

Python庫包含可用于特定應用的方法或函數。在本文中,我們將使用libm2k、matplotlib和NumPy。

Libm2k

若要使用Python與ADALM2000交互,您需要安裝libm2k庫。這是C++庫,帶有可用于Python、C#、MATLAB?和LabVIEW?的綁定,具備以下功能:

AnalogIn 用于示波器或電壓表。我們將重點介紹該功能。

AnalogOut 用于信號發生器。

Digital 用于邏輯分析儀或模式發生器。

PowerSupply 用于恒壓發電機。

DMM 用于數字萬用表。

安裝Libm2k

安裝該庫的一種方法是按照以下步驟操作:

轉到 發布頁面。

下載該庫的最新可執行版本。示例:Libm2k-0.4.0-Windows-Setup.exe

運行可執行文件。當“設置”窗口提示您選擇其他任務時,請務必選擇安裝libm2k Python綁定。

wKgZomSKttWAXE7iAACsKSVwguk036.png

安裝結束。Libm2k將安裝在Python的默認環境中。

Matplotlib

若要創建示波器顯示,您需要使用matplotlib庫。該庫備受歡迎且易于使用,用于在Python中定制和顯示可視化內容。

NumPy

簡單的示波器仍將需要大量數學計算。NumPy庫可以為復雜的計算提供簡單的函數。

安裝Matplotlib和NumPy

若要安裝matplotlib和NumPy,請在PyCharm中按照以下步驟操作:

轉到“文件”>“設置”>“項目解釋器”。

點擊“設置”窗口右側的+圖標。

將出現“可用軟件包”窗口。在搜索框中,搜索matplotlib和NumPy。

指定要安裝的版本(選擇最新版本)。

點擊安裝軟件包按鈕。

wKgZomSKtsaAEL2jAAEnzBIoQ_k539.png

圖3. 在PyCharm中安裝庫包。

硬件設置

在開始編碼前,我們先設置硬件組件。需要使用以下硬件組件:

信號源(或信號發生器,如適用)

ADALM2000

探頭和限幅器

如果信號發生器可用,請按照圖4中顯示的配置,使用探頭和/或限幅器將ADALM2000設備連接到通道1和通道2。

wKgZomSKteOAOV8KAAB04b-U0fM802.jpg

圖4. 使用信號發生器和ADALM2000的實際設置。

信號發生器 ADALM2000
Ch1 正極引線 (+) 1+
Ch1 地 1–
Ch2 正極引線 (+) 2+
Ch2 地 2–

對于其他可用的信號源,您也可以遵循相同配置。最后,通過USB端口將ADALM2000設備連接到PC。

簡單的虛擬示波器

在這一部分,我們將逐個代碼塊介紹程序。我們還將討論代碼的作用,并說明以這些方式編寫代碼的原因。我們將在隨后的部分中演示其他示例,在這些示例中,我們會修改基礎代碼,以添加更多功能,從而滿足開發人員用例要求。

首先,導入將用于開發虛擬示波器的三個庫(libm2k、matplotlib和NumPy)。

wKgaomSKteWABl-xAADQttinbhc812.jpg

統一資源標識符(URI)是連接到PC的每個ADALM2000的唯一標識符。該代碼塊確保ADALM2000連接到PC。如果沒有ADALM2000設備插入PC,代碼將自動退出。

wKgZomSKteeAU_QOAAHsSkSj1hQ620.jpg

通過檢測到的URI連接到ADALM2000?!?strong>uri[0]”是在連接了多個設備的情況下檢測到的第一個ADALM2000設備的URI。

wKgaomSKtemAX8w2AAD9XmjfEK4082.jpg

ADCDAC運行校準。這是確保我們將獲得準確測量的重要步驟。

wKgZomSKteqAIkesAAEPJ7xa8dM296.jpg

設置采樣速率和時長。可用采樣速率有1 kHz、10 kHz、100 kHz、1 MHz、10 MHz和100 MHz。采樣速率是在1秒內獲得樣本的次數,時長是獲得這些樣本的持續采樣時間。例如,如果將采樣速率設為1000,時長設為3,那么每秒將獲得1000個樣本,并持續采樣3秒。因此,共有3000個樣本。

wKgZomSKteyAdUlPAAFVXooxoSE657.jpg

啟用并將通道1設置為示波器的模擬輸入。

wKgaomSKte6AUdIsAAJMXT40ED0226.jpg

Linspace 用于創建等間距的樣本陣列。我們將使用該NumPy函數創建時間x軸數據陣列。該函數的第一和第二個參數分別表示陣列的起始和結束值。最后一個參數是希望在起始和結束值范圍內生成的樣本數。

在該示例中,起始值是0,結束值是設置的時長,也就是3。對于樣本數,將durationsample_rate相乘,即可獲得所需的總樣本數,也就是3000個樣本。這3000個樣本將均勻放置在0和3之間。該數組將存儲在time_x中。

data_y存儲我們使用ADALM2000設備收集的波形樣本。通道1的樣本存儲在data_y[0]中,通道2的樣本存儲在data_y[1]中。為了顯示精確的波形頻率,必須使用與time_x相同的樣本數量。

wKgZomSKtfCAC_MLAAFAyWiJl0M942.jpg

創建我們將處理的圖形。plt.subplots函數將返回圖形對象(存儲在fig中)和軸對象(存儲在ax中),這些對象將用于自定義整個圖形。

我們可以添加網格線,作為波形的參考坐標。添加軸標簽和y限制,以添加有關圖形的更多細節。

wKgaomSKtfGAOWUoAAGKp0cENOk859.jpg

顯示圖形。

wKgZomSKtfKAOpkgAABwLQW2Pv0265.jpg

在代碼末尾銷毀上下文。

wKgZomSKtfSAIYWEAACVFTijVHw000.jpg

運行代碼,將會看到類似圖5的圖形。

wKgaomSKtfaAIWxiAAB3QgkWe1I586.jpg

圖5. 單通道正弦波輸出;一個信號發生器輸出:10 Hz,2 V p-p。

雙通道虛擬示波器

在這一部分,我們將使用上一部分中的代碼,并添加更多代碼塊,以創建雙通道虛擬示波器。

若要添加另一個通道,請復制ocsi.enableChannelocsi.setRange行代碼,并將第一個參數從libm2k.ANALOG_IN_CHANNEL_1更改為libm2k.ANALOG_IN_CHANNEL_2

wKgaomSKtfeAc6TUAANrJ131bRI685.jpg

在創建圖形時,為通道2添加另一個圖形。通道2的數據在data_y[1]陣列中。我們也可以自定義兩個圖形的顏色,以便輕松區分二者。在該示例中,通道1使用淺珊瑚色,通道2使用鋼藍色。

wKgZomSKtfmAd1MHAAI5xA-TN2E913.jpg

運行代碼,應該會得到類似圖6的結果。

wKgaomSKtfqAXpZ-AACGlno5z9M115.jpg

圖6. 雙通道正弦波輸出。通道1信號發生器輸出:10 Hz,2 V p-p;通道2信號發生器輸出:5 Hz,3 V p-p。

虛擬示波器的其他功能

在這一部分,我們將為虛擬示波器添加其他功能,以提升交互性。Matplotlib提供我們可以使用的多個小部件。在該示例中,我們將使用文本標簽和滑塊小部件。我們還將繼續使用上一部分中的代碼。

為matplotlib滑塊添加另一次導入。

wKgZomSKtfyAaDaAAAEZQSSEUz0280.jpg

將時間和數據陣列轉換為NumPy陣列。在下一個代碼塊進行的計算中,將使用這些陣列。

wKgaomSKtf6AcE_DAAJ-txMQsVk063.jpg

獲取所有波形數據后,提取這些波形的特性將不在話下。在以下代碼塊中,我們從獲取的兩個通道的數據中提取了Vpp、Vave和Vrms。要計算Vpp,將data_y numpy陣列中找到的最大值和最小值的絕對值相加。要計算Vave,只需用Vpp除以pi。要計算Vrms,用Vpp除以2乘以√2。

wKgZomSKtgCAXm9fAAIgoLhWUA0554.jpg

該代碼塊與前面部分類似。唯一的區別是,我們為圖形使用NumPy陣列,而不是使用原始陣列。我們還根據圖形創建了波形對象。稍后我們將使用這些對象。

wKgaomSKtgGADIJCAAKEHJvx0Lg415.jpg

為了在圖形中顯示計算的Vpp、Vave和Vrms,我們將利用matplotlib庫中的文本標簽小部件。創建字符串標簽label_ch1label_ch2,然后連接這兩個字符串,以創建最終標簽fin_label。我們將使用plt.text創建文本標簽。第一和第二個參數(0.2, 3)是文本的x和y位置。第三個參數是要顯示的字符串。第四和第五個參數分別是文本和框的樣式。

wKgZomSKtgOAIfu_AALZU79rPY8426.jpg

接下來,我們創建偏移滑塊。該滑塊用于調整波形的參考電平。將主圖形向左調整,為滑塊留出空間。plt.axes定義滑塊的尺寸、位置和表面顏色。Slider函數用于為偏移滑塊創建具有特定特性的對象。

wKgaomSKtgWAKW_4AAJzVWo3Jqo548.jpg

創建update_offset函數,并將其注冊到offset_slider對象。每次更改滑塊的值時,該函數都會向波形添加偏移量。

wKgZomSKtgeATmOdAAKCTjd9uCo282.jpg

運行代碼,將會看到類似圖7的圖形。

wKgZomSKtgiAatKeAACbziOAvEQ812.jpg

圖7. 帶偏移滑塊的默認雙通道正弦波輸出。

嘗試使用滑塊調整偏移量。將會看到波形實時上下移動。

wKgZomSKtgqAHjwXAACY2hy0y3g673.jpg

圖8. 調整偏移量滑塊(向左滑動),用于調整兩個通道輸出的偏移量。

總結

本文解釋了擁有虛擬電子實驗室的重要性和便利性。文中還演示了如何使用ADALM2000和Python開發虛擬示波器。討論了軟件要求和硬件設置,并提供了3個示例。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 示波器
    +關注

    關注

    113

    文章

    6091

    瀏覽量

    183366
  • 信號發生器
    +關注

    關注

    28

    文章

    1398

    瀏覽量

    108374
  • python
    +關注

    關注

    53

    文章

    4752

    瀏覽量

    84061
收藏 人收藏

    評論

    相關推薦

    如何使用PythonADALM2000創建虛擬示波器

    一個功能齊全的物理實驗室造價不菲,其中的各式實驗儀器常常價格昂貴,而且管理復雜。試想如果能夠構建一個可放入口袋、隨時便攜的虛擬電子實驗室,那么將為未來帶來無限的可能。
    發表于 09-12 13:14 ?789次閱讀
    如何使用<b class='flag-5'>Python</b>和<b class='flag-5'>ADALM2000</b><b class='flag-5'>創建</b><b class='flag-5'>虛擬</b><b class='flag-5'>示波器</b>

    使用Python編程語言和ADALM2000創建虛擬示波器

    一個功能齊全的物理實驗室造價不菲,其中的各式實驗儀器常常價格昂貴,而且管理復雜。試想如果能夠構建一個可放入口袋、隨時便攜的虛擬電子實驗室,那么將為未來帶來無限的可能。
    的頭像 發表于 09-15 08:53 ?1369次閱讀
    使用<b class='flag-5'>Python</b><b class='flag-5'>編程</b><b class='flag-5'>語言和</b><b class='flag-5'>ADALM2000</b><b class='flag-5'>創建</b><b class='flag-5'>虛擬</b><b class='flag-5'>示波器</b>

    虛擬電子實驗室目錄下x 怎么找

    本人剛出道的菜鳥,從解壓包里 文件夾 到安裝 文件夾甚至C盤都沒找的 。 求高手指點怎么才能找到虛擬電子實驗室漢化 目錄下x 怎么找 。目錄下X:\Program Files\National Instruments\Circuit Des截圖給我謝了 !詳細點、 、
    發表于 05-14 09:41

    虛擬電子實驗室漢化問題,急急急!?。?!

    本人剛出道的菜鳥,從解壓包里 文件夾 到安裝 文件夾甚至C盤都沒找的 。 求高手指點怎么才能找到虛擬電子實驗室漢化 目錄下x 怎么找 。目錄下X:\Program Files\National Instruments\Circuit Des截圖給我謝了 !詳細點、 、
    發表于 05-14 09:45

    虛擬電子實驗室最新版

    虛擬電子實驗室最新版,加漢化破解,由于文件太大采用分卷壓縮,下載請全部下載,一起解壓,后安裝[hide] 虛擬電子實驗室.part5119G網盤下載地址:http://d.119g.c
    發表于 10-20 10:02

    電子實驗室建設需求

    歡迎大家提供一些電子實驗室建議的建議,比如硬件設備、軟件、元器件和常用工具的需求。有清單更好。多謝!
    發表于 02-28 21:00

    如何建設電子實驗室

    歡迎大家提供一些電子實驗室建設的建議,比如硬件設備、軟件、元器件和常用工具的需求。有清單更好。多謝!實驗室能夠完成電子設備的維修、設計和加工制作一些測量控制設備。
    發表于 02-28 21:03

    基于LabVIEW和Matlab虛擬實驗室的實現

    【摘要】 對Matlab和LabVIEW的混合編程進行了探討,主要研究SIT軟件包和動態鏈接庫(DLL)兩種技術,并在此基礎上以單相半波電路實驗為例詳細介紹了構建虛擬電力電子實驗室的方
    發表于 12-19 22:56

    Seeed ADALM2000-M2K 示波器

    `ADALM2000 (M2K)示波器是一個經濟實惠的 USB 供電數據采集模塊。ADALM2000內置采樣速率可達 100MSPS 的12位模-數和數-模轉換器,是一個高性能掌上實驗室
    發表于 11-16 08:37

    虛擬電子實驗室的設計與應用

    本文主要介紹了虛擬電子實驗室的組成,提出了虛擬電子實驗室的設計方案,設計了虛擬電子實驗室的硬件系
    發表于 08-29 09:45 ?27次下載

    高溫電子實驗室--實驗設備簡介

    高溫電子實驗室--實驗設備簡介
    發表于 11-14 01:04 ?26次下載

    ADALM2000概述

    ADALM2000概述
    發表于 03-23 18:13 ?14次下載
    <b class='flag-5'>ADALM2000</b>概述

    如何使用PythonADALM2000創建示波器

    本文旨在演示用戶如何使用ADALM2000開發自己的虛擬實驗室儀器。本文將使用Python編程語言
    的頭像 發表于 12-14 16:07 ?1404次閱讀
    如何使用<b class='flag-5'>Python</b>和<b class='flag-5'>ADALM2000</b><b class='flag-5'>創建</b><b class='flag-5'>示波器</b>

    ADALM2000實驗:可調外部觸發電路

    實驗活動的目標是研究一種將模擬信號連接到ADALM2000模塊的數字式外部觸發信號輸入的電路。
    的頭像 發表于 07-10 09:32 ?631次閱讀
    <b class='flag-5'>ADALM2000</b><b class='flag-5'>實驗</b>:可調外部觸發電路

    如何使用Python編程語言和ADALM2000創建虛擬示波器

    本文旨在演示用戶如何使用ADI ADALM2000和簡單的開源編程語言Python開發所需的虛擬實驗室
    的頭像 發表于 07-13 16:39 ?896次閱讀
    如何使用<b class='flag-5'>Python</b><b class='flag-5'>編程</b><b class='flag-5'>語言和</b><b class='flag-5'>ADALM2000</b><b class='flag-5'>創建</b><b class='flag-5'>虛擬</b><b class='flag-5'>示波器</b>