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

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

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

3天內不再提示

如何使用Python和ADALM2000創建示波器

星星科技指導員 ? 來源:ADI ? 作者:Arnie Mae Baes and Ch ? 2022-12-14 16:07 ? 次閱讀

作者:Arnie Mae BaesandChristian Garcia

虛擬電子實驗室是基于軟件的儀器的集合。它是一個作為軟件應用程序實現的模擬電子實驗室環境,它允許用戶執行大量電子實驗。擁有一個物理的、功能齊全的實驗室可能既昂貴又難以管理。想象一下,擁有可以放在口袋里的電子實驗室的能力;可能性是無窮無盡的!

本文旨在演示用戶如何使用ADALM2000開發自己的虛擬實驗室儀器。本文將使用Python編程語言,因為它的簡單性,也因為它是開源的。通過Python和ADALM2000的結合,可以開發多種虛擬實驗室儀器,如示波器信號發生器、數字萬用表等。但是,本文將只關注一種儀器 - 示波器。這是一個很好的儀器,因為它是我們在實際電子實驗室中使用的最基本的儀器之一。

介紹

儀器儀表行業正在穩步、快速地向虛擬化邁進。基于軟件的儀器托管在PC上,PC使用盡可能少的專用硬件將其連接到必須測量/控制的設備。該硬件通常包括用于直接數字化信號或控制獨立儀器的插件板。

虛擬 儀器 以 靈活 性、 模 塊 化 和 可 移植 性 而 谼 出 了 廣 贛。ADI公司為客戶提供電子模塊,幾乎可以滿足所有用例的需求,包括本用例。該模塊的一個很好的例子是ADALM2000。

ADALM2000使工程師或開發人員能夠根據其特定需求創建自己的虛擬電子實驗室。通過libm2k庫,用戶可以開發使用C++C#或Python控制ADALM2000的軟件應用程序。有關ADALM2000和libm2k的更詳細討論將在后面的章節中討論。

什么是示波器?

示波器是電子工程的重要組成部分,因為它們為常見和復雜電路的信號分析帶來了價值。除此之外,如今的示波器還具有計算機連接功能,因此示波器中捕獲的信號可以數字存儲以供以后分析。

示波器用于可視化 模擬或數字波形。前面板控制 — 放大器觸發、掃描 定時和顯示 - 用于調整顯示以更好地可視化信號。

它向我們展示了信號輸入在一定時間內的行為,這對于分析常見電路至關重要。它還有助于驗證 這些電路。這是示波器不可或缺的主要原因 任何電子實驗室設備的一部分。除此之外,我們還可以改進 通過允許工程師定制其電子電路來分析某些電子電路 非常自有的示波器,以滿足他們的需求。

什么是ADALM2000?

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

開始

安裝 Python 和 PyCharm

Python 是一種功能強大且易于學習的開源編程語言。Python可以從Python官方網站下載。如果不確定要使用哪個版本,請選擇 Python 3.7。

Python可以在沒有集成開發環境(IDE)的情況下使用,但為了使下載庫和調試變得無憂無慮,可以使用PyCharm。PyCharm是一個IDE,為開發人員提供了幾個基本工具,使其成為用于Python開發的最受歡迎的IDE。在JetBrains 官方網站上下載最新版本的 PyCharm 社區。

庫的安裝

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

Libm2k

要使用 Python 與 ADALM2000 接口,您需要安裝 libm2k 庫。這是一個C++庫,具有適用于Python,C#,MATLABLabVIEW的可用綁定,并具有以下功能:??

模擬輸入用于示波器或電壓表。我們將重點關注這一點。

模擬輸出用于信號發生器。

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

電源用于恒壓發生器。

數字萬用表適用于數字萬用表。

有關此庫的詳細信息可以在libm2k wiki頁面上找到。

安裝 libm2k

安裝此庫的一種方法是執行以下步驟:

轉到發布頁面。

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

運行可執行文件。確保在以下情況下選擇安裝 libm2k Python 綁定“設置”窗口會提示您選擇其他任務。

完成安裝。Libm2k 將安裝在默認環境中 的蟒蛇。

Matplotlib

要創建示波器顯示,您需要使用 matplotlib 庫。這 庫很流行,易于使用,用于在 Python 中自定義和顯示可視化。有關此庫的詳細信息可以在matplotlib 網站上找到。

數字派

一個簡單的示波器仍然需要大量的數學計算。這 NumPy庫可以通過為復雜的計算提供簡單的函數來提供幫助。 有關此庫的詳細信息可以在NumPy網站上找到。

安裝 Matplotlib 和 NumPy

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

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

單擊位于設置窗口右側的 + 圖標。

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

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

單擊安裝包按鈕。

pYYBAGOZhEuAERY_AAD2jhIQ0mw434.jpg?h=270&hash=A505A06B2DE7C70D2CFDA3D8798E4501&imgver=1

圖3.在 PyCharm 中安裝庫包。

硬件設置

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

信號源(或信號發生器,如果有)

ADALM2000

探頭和剪刀

如果信號發生器可用,請將ADALM2000器件連接到通道1,然后 帶有探頭和/或快波器的通道 2,使用圖 4 所示的配置。

信號發生器 ADALM2000
通道 1 正極線 (+) 1+
通道 1 接地 1–
通道 2 正極線 (+) 2+
通道 2 接地 2–

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

簡單虛擬示波器

在本節中,我們將逐個塊介紹程序塊。我們還將討論代碼的作用以及編寫它們的原因。我們將在后續部分中演示其他示例,在這些示例中,我們將修改此基本代碼,以表明我們可以添加更多功能以最適合開發人員的用例。

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

pYYBAGOZhFCAS_HJAAAfXx6O3fA720.jpg?la=en&imgver=1

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

poYBAGOZhFGAV6wUAABdawkRFfo062.jpg?la=en&imgver=1

使用檢測到的URI連接到ADALM2000。uri[0]與 檢測到第一個ADALM2000器件的URI(以防有多個器件) 設備已連接。

pYYBAGOZhFSAXHDtAAApRqzQ2LE664.jpg?la=en&imgver=1

運行 ADCDAC 的校準。這是確保我們將 獲得準確的測量結果。

poYBAGOZhFaAdtQ_AAAu84pKLnk604.jpg?la=en&imgver=1

設置采樣率和持續時間。可用的采樣率為 1 kHz、10 kHz、 100 kHz、1 MHz、10 MHz 和 100 MHz。采樣率是我們 在 1 秒內獲取樣本,持續時間是我們獲得這些樣本的時間。為 例如,如果我們將采樣率設置為 1000,持續時間設置為 3,我們將得到 每秒 1000 個樣本,持續 3 秒。這使得總共 3000 個樣本。

pYYBAGOZhFiAFEZMAAA5Xh6N-3o762.jpg?la=en&imgver=1

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

poYBAGOZhFqAOuomAAB_b2yx6cU804.jpg?la=en&imgver=1

Linspace用于創建均勻分布的樣本數組。我們將使用這個 用于創建時間 x 軸數據數組的 NumPy 函數。此函數的第一個和第二個參數分別指示數組的開始值和結束值。 最后一個參數是我們想要在其中生成的樣本數 開始值和結束值。

在此示例中,起始值為 0,結束值為設置的持續時間,即 為 3。對于樣本數量,我們將持續時間sample_rate相乘得到 我們需要的總樣本,即 3000 個樣本。這 3000 個樣本將 均勻地放置在 0 和 3 之間。此數組將存儲在time_x中。

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

pYYBAGOZhFuAe70AAAA8Pe-71Mo305.jpg?la=en&imgver=1

創建我們將要操縱的圖形。plt.subplots函數將返回 圖形對象(存儲在圖中)和軸對象(存儲在AX中),它們將是 用于自定義整個情節。

我們可以添加網格作為波形的指南。添加軸標簽 和 y 限制以添加有關繪圖的更多詳細信息。

poYBAGOZhF2AW_GyAABOH1O7r5E318.jpg?la=en&imgver=1

顯示圖表。

poYBAGOZhF-AZVV_AAAHEGrDQcg660.jpg?la=en&imgver=1

銷毀代碼末尾的上下文。

pYYBAGOZhGGAI5HmAAARkb2_oCs010.jpg?la=en&imgver=1

運行代碼,并期望看到類似于圖 5 的圖。

poYBAGOZhGSATi1dAAD7hdCQ6bY621.jpg?h=270&hash=CD7ECE772CDE4D65A4C01690A58E74C9&imgver=1

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

2通道虛擬示波器

在本節中,我們將使用上一節中的代碼并添加更多 代碼塊使其成為 2 通道虛擬示波器。

要添加另一個通道,請復制ocsi.enableChannelocsi.setRange行,并從libm2k 更改第一個參數。ANALOG_IN_CHANNEL_1libm2k。ANALOG_IN_CHANNEL_2

poYBAGOZhGaAJYlyAADJU4YD3ws138.jpg?la=en&imgver=1

在創建圖形時,為通道 2 添加另一個圖。通道 2 的數據位于 數組data_y[1]。我們還可以自定義兩個圖的顏色,以輕松區分它們。在此示例中,我們對通道 1 使用了淺珊瑚 和鋼藍色用于通道 2。

poYBAGOZhGiABExNAAB3tFfi320852.jpg?la=en&imgver=1

運行代碼,您應該看到類似于圖 6 的結果。

pYYBAGOZhGyAcLKdAAEfZCTm4bg853.jpg?h=270&hash=9C96EBF31D4ED049FEF478A4E470C8AC&imgver=1

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

虛擬示波器的附加功能

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

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

pYYBAGOZhG6AZjSyAAAwrhEMyyI578.jpg?la=en&imgver=1

將時間和數據數組轉換為 NumPy 數組。這些將用于 我們將在下一個代碼塊上進行計算。

poYBAGOZhHKAJwP0AACJehcEiqU345.jpg?la=en&imgver=1

由于我們獲取了所有波形數據,是什么阻止我們提取 這些波形的性質是什么?在下面的代碼塊中,我們提取了 VPP/ 5大道和 V有效值從兩個通道的獲取數據中。計算 VPP, 我們添加了在 data_y numpy 數組。計算 V 的步驟大道,我們只需要除以 VPP到圓周率。自 V 的計算有效值,我們需要除以 VPP到 2 乘以 2 的平方根。

poYBAGOZhHSAS_OHAAB57ROvEWY498.jpg?la=en&imgver=1

此代碼塊與前面的部分類似。唯一的區別是 我們使用 NumPy 數組作為繪圖,而不是使用原始數組。我們 還從繪圖創建了波形對象。我們稍后將使用這些對象。

pYYBAGOZhHiAVHJmAACLjh3BR2k673.jpg?la=en&imgver=1

顯示計算的 VPP/ <>大道和 V有效值在圖中,我們將利用文本 來自 Matplotlib 庫的標簽小部件。創建字符串標簽、label_ch1label_ch2,然后連接這兩個字符串以創建最終標簽fin_label。我們將使用plt.text來創建文本標簽。第一個和第二個 參數(0.2, 3)是文本的 x 和 y 位置。第三個參數是 要顯示的字符串。第四和第五個參數是文本樣式和 框,分別。

poYBAGOZhHyAUFurAAChLeNEzE8917.jpg?la=en&imgver=1

接下來,讓我們創建偏移滑塊。此滑塊的目的是調整 波形的參考電平。將主圖調整到左側以提供空間 滑塊。plt.軸定義 滑 塊。滑塊功能用于為偏移滑塊創建對象 特定屬性。

pYYBAGOZhICAcD20AACC3qGwtaA778.jpg?la=en&imgver=1

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

poYBAGOZhIGAWzqqAACH_aGxMek662.jpg?la=en&imgver=1

運行代碼,并期望看到類似于圖 7 的圖形。

pYYBAGOZhIOAJdDpAAFF0RPEgmM812.jpg?h=270&hash=8DFF710150440D4F92E510690143B09C&imgver=1

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

嘗試使用滑塊調整偏移量。您將看到波形向上移動 或實時關閉。

poYBAGOZhIiAF_JQAAFJ5pYCLhM084.jpg?h=270&hash=163D8E7B5F6A23DDCEEA02685CB5BFEA&imgver=1

圖8.調整偏移滑塊(左側滑塊)以調整兩個通道輸出的偏移。

總結

本文解釋了擁有虛擬電子實驗室的重要性和便利性。它還演示了如何使用 ADALM2000和Python。軟件要求和硬件設置 在介紹三個例子之前進行了討論。

審核編輯:郭婷

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

    關注

    143

    文章

    13428

    瀏覽量

    212147
  • 示波器
    +關注

    關注

    113

    文章

    6091

    瀏覽量

    183366
  • 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>

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

    一個功能齊全的物理實驗室造價不菲,其中的各式實驗儀器常常價格昂貴,而且管理復雜。試想如果能夠構建一個可放入口袋、隨時便攜的虛擬電子實驗室,那么將為未來帶來無限的可能。虛擬電子實驗室,是通過一系列基于軟件的應用來實現的仿真電子儀器所組成的模擬實驗室環境,用戶可以在該環境中開展大量電子實驗。
    的頭像 發表于 09-15 08:53 ?1369次閱讀
    使用<b class='flag-5'>Python</b>編程語言和<b class='flag-5'>ADALM2000</b><b class='flag-5'>創建</b>虛擬<b class='flag-5'>示波器</b>

    學子專區—ADALM2000實驗:BJT差分對

    本次實驗旨在研究一個使用NPN晶體管的簡單差分放大器。首先,我們需要做一些關于硬件限制問題的說明。ADALM2000系統中的波形發生器具有高輸出帶寬,該高帶寬代來了寬帶噪聲。
    發表于 12-14 10:47 ?2652次閱讀
    學子專區—<b class='flag-5'>ADALM2000</b>實驗:BJT差分對

    ADALM2000 schematic中輸入電路AD8066前面的并聯RC是干什么的呢?

    近買了ADALM2000,在原理圖里面看到了ADC輸入電路部分,有個并聯的RC。沒理解它的作用呢。 仿真對比看,好像加了電容之后,頻率范圍更大了,這怎么理解呢(綠色曲線是有并聯電容,藍色無)。 因為我們最近也在用AD7689做采集,前面也有一個緩沖放大器,想著是否也加一個并聯的RC。
    發表于 09-09 07:11

    Seeed ADALM2000-M2K 示波器

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

    齊納二極管穩壓器ADALM2000應用示例

    齊納二極管穩壓器ADALM2000應用示例
    發表于 06-17 08:53

    學子專區—ADALM2000實驗:MOS差分對

    衰減器和濾波器。材料ADALM2000主動學習模塊無焊面包板跳線兩個10 kΩ電阻一個15 kΩ電阻(將10 kΩ和4.7 kΩ電阻串聯)兩個小信號NMOS晶體管(CD4007或ZVN2110A)  說明
    發表于 12-31 08:00

    ADALM2000概述

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

    學子專區—ADALM2000實驗:跨阻放大器輸入級

    ADALM2000(ADI公司)相連的電路及連接如圖1所示。NPN晶體管Q1和Q2以及PNP晶體管Q3和Q4應從VBE匹配最佳的可用器件中選擇。
    發表于 02-28 17:42 ?1560次閱讀
    學子專區—<b class='flag-5'>ADALM2000</b>實驗:跨阻放大器輸入級

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

    本文旨在演示用戶如何使用ADALM2000開發自己的虛擬實驗室儀器。本文將使用Python這種簡單的開源編程語言。將PythonADALM2000相結合,可以開發多個虛擬實驗室儀器,
    的頭像 發表于 06-15 14:56 ?1046次閱讀
    虛擬電子實驗室:如何使用<b class='flag-5'>Python</b>編程語言和<b class='flag-5'>ADALM2000</b><b class='flag-5'>創建</b><b class='flag-5'>示波器</b>

    ADALM2000實驗:CMOS邏輯電路、D型鎖存器

    本實驗活動的目標是進一步強化上一個實驗活動“ADALM2000實驗:使用CD4007陣列構建CMOS邏輯功能”中探討的CMOS邏輯基本原理,并獲取更多使用復雜CMOS門級電路的經驗。具體而言,您將了解如何使用CMOS傳輸門和CMOS反相器來構建D型觸發器或鎖存器。
    的頭像 發表于 07-10 09:55 ?607次閱讀
    <b class='flag-5'>ADALM2000</b>實驗:CMOS邏輯電路、D型鎖存器

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

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

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

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

    【官網直購】ADALM2000 高級主動學習模塊ADI 官網現貨發售!

    ADALM2000 主動學習模塊是一種經濟實惠的USB供電軟件定義儀器,內置以100 MSPS速率運行的12位ADC和DAC,可將高性能實驗室設備的功能以手掌大小器件實現,使電氣工程學生和愛好者能夠
    的頭像 發表于 08-04 18:15 ?547次閱讀
    【官網直購】<b class='flag-5'>ADALM2000</b> 高級主動學習模塊ADI 官網現貨發售!

    ADI 高級主動學習模塊ADALM2000 官網現貨發售,需要的同學快沖!

    ADALM2000 主動學習模塊是一種經濟實惠的 USB 供電軟件定義儀器,內置以 100 MSPS 速率運行的 12 位 ADC 和 DAC,可將高性能實驗室設備的功能以手掌大小器件實現,使
    的頭像 發表于 08-16 07:40 ?687次閱讀