嵌入式學習筆記-雜七雜八

文章目錄

    • 連續波光纖耦合激光器
      • 工作原理
      • 主要特點
      • 應用領域
      • 設計考慮因素
    • 數值孔徑(Numerical Aperture,簡稱NA)
      • 數值孔徑的定義
      • 數值孔徑的意義
      • 數值孔徑的計算示例
      • 數值孔徑與光纖
    • 四象限探測器檢測目標方法
      • 四象限劃分
      • 檢測目標的步驟
        • 1. 數據采集
        • 2. 坐標轉換
        • 3. 四象限判斷
        • 4. 目標位置識別
        • 5. 目標跟蹤與響應
        • 代碼示例(基于傳感器數據)
    • Wiener 濾波
      • 維納濾波的基本原理
        • 1. 目標函數:最小化均方誤差(MSE)
        • 2. 頻域表示
      • 圖像去噪
      • 維納濾波的優勢與限制
      • 優勢:
      • 限制:
      • Wiener 濾波的實現
      • 代碼說明:
    • LM2596S DC-DC 降壓電源
      • LM2596S 的特點:
      • LM2596S模塊的元器件

連續波光纖耦合激光器

連續波光纖耦合激光器(CW Fiber-coupled Laser)是一種利用光纖傳輸激光輸出的激光器。其特點是輸出的激光為連續波(Continuous Wave,CW)形式,即激光的輸出功率是穩定和持續的,沒有明顯的脈沖特征。這種激光器通常用于精密加工、傳感、醫療等多個領域,具有高穩定性和良好的光束質量。

工作原理

連續波光纖耦合激光器的基本原理是通過光纖將激光從激光源傳輸到目標位置。光纖耦合技術使得激光器具有更高的輸出效率、光束質量和方向性。其工作過程大致可以分為以下幾個步驟:

  1. 激光源:激光器本身通常是半導體激光器、固體激光器或氣體激光器等。激光源通過電流或光源激發介質,使其發射出特定波長的激光。

  2. 光纖耦合:激光通過耦合系統(例如透鏡、反射鏡等)導入光纖中。耦合的過程需要確保光纖能夠有效地接收到激光源的輸出,并將光傳輸到輸出端。

  3. 光纖傳輸:光纖作為光的傳輸通道,傳輸過程中幾乎沒有能量損失,因此能夠保證激光輸出的穩定性。通過光纖,激光可以被精確地傳輸到需要的位置。

  4. 輸出激光:最終,激光通過光纖輸出端口傳遞到目標區域。由于光纖的特殊結構,激光的輸出通常具有較小的光斑和較高的光束質量。

主要特點

  1. 高穩定性:連續波光纖耦合激光器能夠提供穩定的輸出功率,適合精密控制和長時間運行。

  2. 良好的光束質量:光纖傳輸過程中能夠保持較高的光束質量,適合對光束質量有要求的應用。

  3. 緊湊性:光纖耦合激光器的結構相對緊湊,易于集成進各種設備中。

  4. 高效率:通過光纖傳輸,激光損耗較低,系統整體效率較高。

  5. 較強的抗干擾能力:光纖本身對電磁干擾不敏感,因此能夠保證在復雜環境下正常工作。

應用領域

  1. 精密加工:在材料加工、激光切割、激光焊接等領域,連續波光纖耦合激光器可以提供高精度、高功率的激光輸出,廣泛應用于金屬、陶瓷等材料的加工。

  2. 激光掃描與傳感:在激光掃描、三維成像、激光雷達(LiDAR)等應用中,光纖耦合激光器提供穩定的激光輸出,用于高精度測量。

  3. 醫療領域:在激光治療、激光手術等醫療領域,連續波激光器被用于組織切割、消融等操作,具有較高的精準性和可控性。

  4. 通信與研究:在光通信領域,光纖耦合激光器被廣泛用于信號傳輸和實驗研究。

設計考慮因素

在設計連續波光纖耦合激光器時,需要考慮以下幾個因素:

  1. 光纖匹配:選擇適合的光纖和耦合方式,確保激光器的輸出能夠有效耦合入光纖。

  2. 功率控制:設計適當的驅動電路和溫控系統,確保激光器輸出的功率穩定且可調。

  3. 熱管理:激光器工作時會產生大量熱量,良好的熱管理系統能夠防止激光器過熱,確保長時間穩定運行。

  4. 波長選擇:根據應用需求選擇適當的激光波長,光纖的傳輸性能和耦合效率也會隨波長的不同而有所變化。

  5. 光束質量:確保激光器的輸出光束具有良好的質量,以適應精密加工或高精度測量的需求。

數值孔徑(Numerical Aperture,簡稱NA)

數值孔徑(NA)是描述光學系統,特別是顯微鏡、光纖等光學設備的光學性能的重要參數。它表征了光學系統能夠接收或發射光的能力,即系統的光學聚焦能力與分辨率的關系。

數值孔徑的定義

數值孔徑是由光學系統的物鏡(或光纖的核心)與透鏡的光學特性共同決定的,它是一個無單位的數值,定義如下:

N A = n sin ? θ NA = n \sin \theta NA=nsinθ

其中:

  • n n n 是介質的折射率,通常是物鏡與物體之間的介質(如空氣、水、油等)的折射率。
  • θ \theta θ 是物鏡半角(或入射光束的最大半角),即光線從物鏡的中心軸到邊緣所形成的角度。

數值孔徑的意義

  1. 光學系統的聚焦能力:數值孔徑越大,光學系統的聚焦能力越強,能夠集中更多的光線,形成更小的焦點。因此,NA越大,系統的分辨率通常也會更高。

  2. 光纖的傳輸能力:在光纖通信中,NA反映了光纖核心能夠接受的光線角度范圍。較大的NA表示光纖可以接受更多不同角度的光線,傳輸效率和帶寬也更高。

  3. 分辨率與物鏡性能:數值孔徑與分辨率相關。分辨率 R R R 與NA之間的關系為:

    R = λ 2 × N A R = \frac{\lambda}{2 \times NA} R=2×NAλ?

    其中, λ \lambda λ 是使用的光的波長。可以看到,數值孔徑越大,分辨率越高。

數值孔徑的計算示例

假設我們有一個在空氣中工作的物鏡,折射率 n = 1.0 n = 1.0 n=1.0,入射角度為 3 0 ° 30^\circ 30°,那么數值孔徑NA為:

N A = 1.0 × sin ? ( 3 0 ° ) = 1.0 × 0.5 = 0.5 NA = 1.0 \times \sin(30^\circ) = 1.0 \times 0.5 = 0.5 NA=1.0×sin(30°)=1.0×0.5=0.5

若這個系統使用的是水作為介質,其折射率通常為 n = 1.33 n = 1.33 n=1.33,那么:

N A = 1.33 × sin ? ( 3 0 ° ) = 1.33 × 0.5 = 0.665 NA = 1.33 \times \sin(30^\circ) = 1.33 \times 0.5 = 0.665 NA=1.33×sin(30°)=1.33×0.5=0.665

可以看出,水介質下的數值孔徑比空氣中的數值孔徑更大,表明水介質下的物鏡能夠聚焦更多的光線,從而提供更高的分辨率。

數值孔徑與光纖

在光纖中,數值孔徑的作用是決定光纖的接受角度(或模式)的能力。光纖的NA越大,可以接收到更多不同方向的光線,從而能夠支持更多的傳播模式,這對于多模光纖尤其重要。

對于光纖,數值孔徑也由其核心和包層的折射率差異決定,通常使用如下公式計算:

N A = n 1 2 ? n 2 2 NA = \sqrt{n_1^2 - n_2^2} NA=n12??n22? ?

其中:

  • n 1 n_1 n1? 是光纖核心的折射率。
  • n 2 n_2 n2? 是光纖包層的折射率。

四象限探測器檢測目標方法

四象限探測器(Quadrant Detector),又是一個唬人的名詞,本質上就是看物體運動到從哪個象限到哪個象限,判斷是哪個方向。

四象限探測器通過將檢測區域劃分為四個象限(上下左右四個部分),根據目標的分布位置來判斷目標是否存在以及其大致位置。

四象限劃分

我們通常將平面坐標系的原點 ( 0 , 0 ) (0, 0) (0,0) 放置在檢測區域的中心,基于此將區域劃分為四個象限,分別為:

  • 第一象限:右上, x > 0 , y > 0 x > 0, y > 0 x>0,y>0
  • 第二象限:左上, x < 0 , y > 0 x < 0, y > 0 x<0,y>0
  • 第三象限:左下, x < 0 , y < 0 x < 0, y < 0 x<0,y<0
  • 第四象限:右下, x > 0 , y < 0 x > 0, y < 0 x>0,y<0

通過這種劃分,探測器可以分別檢測目標是否處于某個象限,并根據這些信息來判斷目標的方位和移動方向。

檢測目標的步驟

1. 數據采集

首先,通過傳感器(如紅外傳感器、激光雷達、相機等)采集目標的位置信息。這些傳感器可以通過測量與目標之間的距離、角度或者其他相關特征來獲取目標的位置數據。

  • 如果使用圖像處理方法,可以通過攝像頭獲取目標的圖像信息。
  • 如果使用激光雷達,可以通過點云數據或反射信號獲得目標在空間中的坐標。
2. 坐標轉換

將目標的坐標數據轉換為平面坐標系中的 x , y x, y x,y 坐標。對于激光雷達或其他傳感器采集的數據,可能需要根據傳感器的角度和距離計算出目標的實際位置。

例如,假設有一個距離 d d d 和角度 θ \theta θ,則可以通過極坐標轉直角坐標來得到目標的 x , y x, y x,y 坐標:

x = d ? cos ? ( θ ) x = d \cdot \cos(\theta) x=d?cos(θ)
y = d ? sin ? ( θ ) y = d \cdot \sin(\theta) y=d?sin(θ)

3. 四象限判斷

根據得到的 x , y x, y x,y 坐標,判斷目標所在的象限:

  • 第一象限 x > 0 , y > 0 x > 0, y > 0 x>0,y>0
  • 第二象限 x < 0 , y > 0 x < 0, y > 0 x<0,y>0
  • 第三象限 x < 0 , y < 0 x < 0, y < 0 x<0,y<0
  • 第四象限 x > 0 , y < 0 x > 0, y < 0 x>0,y<0

如果目標的坐標滿足某個象限的條件,說明目標位于該象限內。

4. 目標位置識別

通過四象限的劃分,可以判斷目標的相對位置。如果目標穿越某一象限的邊界,探測器可以進一步識別目標的移動方向。

例如,若目標從第一象限移動到第二象限,則說明目標向左移動。如果目標從第一象限進入第四象限,則說明目標向下移動。

5. 目標跟蹤與響應

若探測器用于實時跟蹤目標,可以通過連續采集和計算目標的位置變化來持續判斷其位置和方向,進行相應的操作。對于一些自動化系統,可以根據目標所在的象限來做出相應的決策,如改變機器人方向、觸發某些操作等。

代碼示例(基于傳感器數據)

假設我們已經獲取了目標的 x x x y y y 坐標,以下是一個簡單的C語言代碼示例來判斷目標是否位于四象限中的某一象限:

#include <stdio.h>// 判斷目標所在的象限
void detectQuadrant(float x, float y) {if (x > 0 && y > 0) {printf("目標在第一象限\n");} else if (x < 0 && y > 0) {printf("目標在第二象限\n");} else if (x < 0 && y < 0) {printf("目標在第三象限\n");} else if (x > 0 && y < 0) {printf("目標在第四象限\n");} else if (x == 0 && y != 0) {printf("目標在Y軸上\n");} else if (y == 0 && x != 0) {printf("目標在X軸上\n");} else {printf("目標在原點\n");}
}int main() {float x, y;// 輸入目標坐標printf("請輸入目標的X坐標:");scanf("%f", &x);printf("請輸入目標的Y坐標:");scanf("%f", &y);// 判斷目標所在的象限detectQuadrant(x, y);return 0;
}

Wiener 濾波

Wiener 濾波(維納濾波)是一種基于統計學的濾波方法,廣泛應用于信號處理和圖像處理等領域,旨在通過最小化均方誤差(MSE)來估計信號或圖像中的噪聲并進行去噪處理。Wiener 濾波器的核心思想是根據信號和噪聲的統計特性,構建一個最佳的濾波器,從而達到降噪的目的。

維納濾波的基本原理

Wiener 濾波的目標是通過某種方式估計原始信號 x ( n ) x(n) x(n)(或圖像中的清晰圖像)并消除其中的噪聲。給定噪聲信號 y ( n ) y(n) y(n),維納濾波的目標是根據已知的信號與噪聲的統計特性,構建一個最優的濾波器 H ( f ) H(f) H(f),使得輸出信號 z ( n ) z(n) z(n) 盡可能接近原始信號 x ( n ) x(n) x(n),并且最小化輸出信號與原始信號之間的均方誤差。

1. 目標函數:最小化均方誤差(MSE)

Wiener 濾波的核心是最小化均方誤差(MSE),即:

J = E [ ( x ( n ) ? z ( n ) ) 2 ] J = E[(x(n) - z(n))^2] J=E[(x(n)?z(n))2]

其中, x ( n ) x(n) x(n) 是原始信號, z ( n ) z(n) z(n) 是濾波后的信號, E [ ? ] E[\cdot] E[?] 表示期望值操作。Wiener 濾波器的目標是選擇一個濾波器 H ( f ) H(f) H(f),使得該誤差最小化。

2. 頻域表示

在頻域中,Wiener 濾波器的理想形式為:

H ( f ) = S x ( f ) S x ( f ) + S n ( f ) H(f) = \frac{S_x(f)}{S_x(f) + S_n(f)} H(f)=Sx?(f)+Sn?(f)Sx?(f)?

其中, S x ( f ) S_x(f) Sx?(f) 是原始信號的功率譜密度, S n ( f ) S_n(f) Sn?(f) 是噪聲的功率譜密度。該公式的含義是,Wiener 濾波器的增益在信號強時較大,在噪聲較強時較小,從而能夠有效抑制噪聲。

圖像去噪

在圖像處理中,Wiener 濾波常用于去除圖像中的高斯噪聲。假設原始圖像 f ( x , y ) f(x, y) f(x,y) 和噪聲圖像 g ( x , y ) g(x, y) g(x,y) 之間的關系如下:

g ( x , y ) = f ( x , y ) + n ( x , y ) g(x, y) = f(x, y) + n(x, y) g(x,y)=f(x,y)+n(x,y)

其中, n ( x , y ) n(x, y) n(x,y) 是添加到圖像中的噪聲。Wiener 濾波器通過以下公式對圖像進行去噪:

f ^ ( x , y ) = ∑ u , v h ( u , v ) g ( x ? u , y ? v ) \hat{f}(x, y) = \sum_{u, v} h(u, v) g(x-u, y-v) f^?(x,y)=u,v?h(u,v)g(x?u,y?v)

其中, h ( u , v ) h(u, v) h(u,v) 是 Wiener 濾波器核函數, f ^ ( x , y ) \hat{f}(x, y) f^?(x,y) 是濾波后的圖像。

維納濾波的優勢與限制

優勢:

  1. 最小化均方誤差:Wiener 濾波通過統計學方法,能夠找到最優的濾波器,從而使得去噪效果最好,能最大限度地保留信號。
  2. 自適應性:Wiener 濾波器能夠根據信號和噪聲的統計特性自動調整濾波參數,具有較強的自適應性。
  3. 廣泛應用:適用于各種信號和圖像去噪任務,特別是對高斯噪聲有良好的效果。

限制:

  1. 需要先驗知識:Wiener 濾波需要了解信號和噪聲的功率譜密度。若噪聲模型不準確,可能導致濾波效果不佳。
  2. 計算復雜度較高:計算信號和噪聲的功率譜密度以及實現頻域濾波可能需要較高的計算資源。
  3. 對非高斯噪聲的效果不佳:Wiener 濾波主要適用于高斯噪聲,對于其他類型的噪聲(如椒鹽噪聲),效果可能不如預期。

Wiener 濾波的實現

以下是一個基于Python的Wiener濾波實現代碼示例,用于圖像去噪:

import numpy as np
import cv2
from scipy.signal import convolve2ddef wiener_filter(img, noise_var, signal_var):"""實現Wiener濾波器用于圖像去噪:param img: 輸入的噪聲圖像:param noise_var: 噪聲的方差:param signal_var: 信號的方差:return: 去噪后的圖像"""# 獲取圖像的大小rows, cols = img.shape  # 獲取圖像的行數和列數# 對輸入圖像進行二維快速傅里葉變換(FFT)fft_img = np.fft.fft2(img)  # 將圖像轉換到頻域fft_img_conj = np.conj(fft_img)  # 計算圖像的共軛復數(對于頻域濾波,通常使用共軛)# 計算信號的功率譜密度(Power Spectral Density,PSD)signal_psd = np.abs(fft_img) ** 2 / (rows * cols)  # 圖像的功率譜(幅度的平方),并歸一化到單位面積# 計算噪聲的功率譜密度,噪聲功率譜假設是一個常數noise_psd = noise_var * np.ones_like(signal_psd)  # 噪聲的功率譜密度,假設噪聲方差為常數# 計算Wiener濾波器的頻域傳遞函數H(f)H = signal_psd / (signal_psd + noise_psd)  # Wiener濾波器的增益函數,利用信號和噪聲的功率譜計算# 應用Wiener濾波器(在頻域上)wiener_filtered = np.fft.ifft2(fft_img_conj * H)  # 在頻域內進行濾波,進行反傅里葉變換得到去噪后的圖像# 返回濾波后的圖像的絕對值(因為fft的結果可能是復數)return np.abs(wiener_filtered)# 讀取含噪聲的圖像
noisy_image = cv2.imread('noisy_image.png', cv2.IMREAD_GRAYSCALE)  # 讀取灰度圖像# 假設信號和噪聲的方差
noise_variance = 0.1  # 假設噪聲的方差為0.1
signal_variance = 0.9  # 假設信號的方差為0.9# 使用Wiener濾波進行去噪
denoised_image = wiener_filter(noisy_image, noise_variance, signal_variance)  # 對噪聲圖像進行去噪# 顯示原始圖像和去噪后的圖像
cv2.imshow('Original', noisy_image)  # 顯示原始噪聲圖像
cv2.imshow('Denoised', denoised_image)  # 顯示去噪后的圖像
cv2.waitKey(0)  # 等待用戶按鍵
cv2.destroyAllWindows()  # 關閉所有OpenCV窗口

代碼說明:

  1. FFT和頻域操作:在代碼中,我們將圖像轉換到頻域,通過傅里葉變換計算信號的功率譜和噪聲的功率譜。
  2. Wiener濾波器的實現:Wiener濾波器在頻域中通過信號和噪聲的功率譜來計算頻域濾波函數 H ( f ) H(f) H(f),然后對圖像進行濾波。
  3. 去噪圖像顯示:處理后的圖像通過imshow函數顯示,便于直觀比較。
    LM2596S DC-DC降壓電源模塊是一款非常常見的開關電源降壓轉換器(Buck Converter),廣泛應用于各種電子設備的電源設計中。它可以將較高的輸入電壓轉換為較低的輸出電壓,且具有高效、穩定的特性。以下是對LM2596S模塊的一些詳細介紹。

LM2596S DC-DC 降壓電源

LM2596S是由Texas Instruments (德州儀器) 提供的一款集成開關調節器芯片。該芯片采用了降壓轉換方式,即高電壓輸入經過調節后輸出較低電壓的過程。LM2596S模塊通常集成在一塊小型電路板上,具有良好的散熱設計和多種輸出電壓選擇,適合嵌入到各種項目中。

LM2596S 的特點:

  1. 寬輸入電壓范圍
    LM2596S的輸入電壓范圍為 4V到40V。這使得它可以從多種不同的電源(如12V電池、電源適配器等)中獲取能量。

  2. 輸出電壓可調
    LM2596S的輸出電壓范圍為 1.25V到37V,通過電位器調節輸出電壓。也有一些模塊提供固定輸出電壓版本(如5V、12V、15V等)。

  3. 高效率
    LM2596S作為開關電源,具有相對較高的轉換效率(通常高于80%),比傳統線性電壓調節器具有更低的功耗和更少的熱量產生。

  4. 輸出電流
    LM2596S可以提供最大 2A 的輸出電流,這對于大多數低功耗應用來說足夠。

  5. 內置過熱、過載和短路保護
    LM2596S具有過熱保護、過電流保護和短路保護功能,在異常情況下可以自動關閉以保護電路。

  6. 簡單的外部組件
    只需要少數幾個外部元件,如電感、電容、二極管等,就可以實現高效的電壓轉換。

LM2596S模塊的元器件

  • 輸入電壓 (Vin):供電輸入端,通常為12V或更高的電壓。
  • 電感 (L):用于濾波和能量存儲,幫助降低輸出電壓的噪聲。
  • 二極管 (D):通常為肖特基二極管,用于防止反向電流。
  • 電容 ?:用于平滑輸出電壓,減少電壓波動。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67165.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67165.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67165.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java Web-Cookie與Session

會話跟蹤技術 會話跟蹤技術是一種在 Web 應用程序中跟蹤用戶會話狀態的機制&#xff0c;它允許服務器在多個請求之間識別和關聯屬于同一用戶的請求&#xff0c;以便在整個會話過程中保持用戶相關的信息。以下是幾種常見的會話跟蹤技術&#xff1a; Cookie 概念&#xff1a;Cook…

Spring Boot - 數據庫集成04 - 集成Redis

Spring boot集成Redis 文章目錄 Spring boot集成Redis一&#xff1a;redis基本集成1&#xff1a;RedisTemplate Jedis1.1&#xff1a;RedisTemplate1.2&#xff1a;實現案例1.2.1&#xff1a;依賴引入和屬性配置1.2.2&#xff1a;redisConfig配置1.2.3&#xff1a;基礎使用 2&…

STM32使用VScode開發

文章目錄 Makefile形式創建項目新建stm項目下載stm32cubemx新建項目IED makefile保存到本地arm gcc是編譯的工具鏈G++配置編譯Cmake +vscode +MSYS2方式bilibiliMSYS2 統一環境配置mingw32-make -> makewindows環境變量Cmake CmakeListnijia 編譯輸出elfCMAKE_GENERATOR查詢…

Oracle 12c 中的 CDB和PDB的啟動和關閉

一、簡介 Oracle 12c引入了多租戶架構&#xff0c;允許一個容器數據庫&#xff08;Container Database, CDB&#xff09;托管多個獨立的可插拔數據庫&#xff08;Pluggable Database, PDB&#xff09;。本文檔旨在詳細描述如何啟動和關閉CDB及PDB。 二、容器數據庫 (CDB) 2.1…

網絡仿真工具Core環境搭建

目錄 安裝依賴包 源碼下載 Core安裝 FAQ 下載源碼TLS出錯誤 問題 解決方案 找不到dbus-launch 問題 解決方案 安裝依賴包 調用以下命令安裝依賴包 apt-get install -y ca-certificates git sudo wget tzdata libpcap-dev libpcre3-dev \ libprotobuf-dev libxml2-de…

FPGA實現任意角度視頻旋轉(二)視頻90度/270度無裁剪旋轉

本文主要介紹如何基于FPGA實現視頻的90度/270度無裁剪旋轉&#xff0c;旋轉效果示意圖如下&#xff1a; 為了實時對比旋轉效果&#xff0c;采用分屏顯示進行處理&#xff0c;左邊代表旋轉前的視頻在屏幕中的位置&#xff0c;右邊代表旋轉后的視頻在屏幕中的位置。 分屏顯示的…

JavaEE:多線程進階

JavaEE&#xff1a;多線程進階 一、對比不同鎖策略之間的應用場景及其區別1. 悲觀鎖 和 樂觀鎖1.1 定義和原理1.2 應用場景1.3 示例代碼 2. 重量級鎖 和 輕量級鎖2.1 定義和原理2.2 應用場景2.3 示例代碼 3. 掛起等待鎖 和 自旋鎖3.1 定義和原理3.2 應用場景3.3 示例代碼 4. 幾…

董事會辦公管理系統的需求設計和實現

該作者的原創文章目錄&#xff1a; 生產制造執行MES系統的需求設計和實現 企業后勤管理系統的需求設計和實現 行政辦公管理系統的需求設計和實現 人力資源管理HR系統的需求設計和實現 企業財務管理系統的需求設計和實現 董事會辦公管理系統的需求設計和實現 公司組織架構…

pytest自動化測試 - pytest夾具的基本概念

<< 返回目錄 1 pytest自動化測試 - pytest夾具的基本概念 夾具可以為測試用例提供資源(測試數據)、執行預置條件、執行后置條件&#xff0c;夾具可以是函數、類或模塊&#xff0c;使用pytest.fixture裝飾器進行標記。 1.1 夾具的作用范圍 夾具的作用范圍&#xff1a; …

esp32-C3 實現DHT11(溫濕度)

安裝DHT傳感器庫&#xff1a; 在Arduino IDE中&#xff0c;進入項目 > 加載庫 > 管理庫。搜索DHT sensor library并安裝。 編寫代碼 定義引腳和傳感器類型初始化傳感器判斷傳感器是否正常讀取數據 源碼 #include <DHT.h> #include <DHT_U.h>// 定義DHT傳感器…

java構建工具之Gradle

自定義任務 任務定義方式&#xff0c;總體分為兩大類:一種是通過 Project 中的task()方法,另一種是通過tasks 對象的 create 或者register 方法。 //任務名稱,閉包都作為參數println "taskA..." task(A,{ }) //閉包作為最后一個參數可以直接從括號中拿出來println …

【Pytest】生成html報告中,中文亂碼問題解決方案

import pytestif __name__ "__main__":# 只運行 tests 目錄下的測試用例&#xff0c;并生成 HTML 報告pytest.main([-v, -s, --htmlreport.html, tests])可以以上方式生成&#xff0c;也可以在pytest.ini中設置 [pytest] addopts --htmlreport.html --self-contai…

MyBatis最佳實踐:提升數據庫交互效率的秘密武器

第一章&#xff1a;框架的概述&#xff1a; MyBatis 框架的概述&#xff1a; MyBatis 是一個優秀的基于 Java 的持久框架&#xff0c;內部對 JDBC 做了封裝&#xff0c;使開發者只需要關注 SQL 語句&#xff0c;而不關注 JDBC 的代碼&#xff0c;使開發變得更加的簡單MyBatis 通…

《Java程序設計》課程考核試卷

一、單項選擇題&#xff08;本大題共10個小題&#xff0c;每小題2分&#xff0c;共20分&#xff09; 1.下列用來編譯Java源文件為字節碼文件的工具是&#xff08; &#xff09;。 A.java B.javadoc C.jar D.javac 2…

【25考研】人大計算機考研復試該怎么準備?有哪些注意事項?

人大畢竟是老牌985&#xff0c;復試難度不會太低&#xff01;建議同學認真復習&#xff01;沒有機試還是輕松一些的&#xff01; 一、復試內容 由公告可見&#xff0c;復試包含筆試及面試&#xff0c;沒有機試&#xff01; 二、參考書目 官方無給出參考書目&#xff0c;可參照…

vue3中Teleport的用法以及使用場景

1. 基本概念 Teleport 是 Vue3 提供的一個內置組件&#xff0c;它可以將組件的內容傳送到 DOM 樹的任何位置&#xff0c;而不受組件層級的限制。這在處理模態框、通知、彈出菜單等需要突破組件層級限制的場景中特別有用。 1.1 基本語法 <template><teleport to&quo…

使用openwrt搭建ipsec隧道

背景&#xff1a;最近同事遇到了個ipsec問題&#xff0c;做的ipsec特性&#xff0c;ftp下載ipv6性能只有100kb, 正面定位該問題也蠻久了&#xff0c;項目沒有用openwrt, 不過用了開源組件strongswan, 加密算法這些也是內核自帶的&#xff0c;想著開源的不太可能有問題&#xff…

基于AnolisOS 8.6安裝GmSSL 3.1.1及easy_gmssl庫測試國密算法

測試環境 Virtual Box&#xff0c;AnolisOS-8.6-x86_64-minimal.iso&#xff0c;4 vCPU, 8G RAM, 60 vDisk。最小化安裝。需聯網。 系統環境 關閉防火墻 systemctl stop firewalld systemctl disable firewalld systemctl status firewalld selinux關閉 cat /etc/selinux/co…

HTML從入門到精通:鏈接與圖像標簽全解析

系列文章目錄 01-從零開始學 HTML&#xff1a;構建網頁的基本框架與技巧 02-HTML常見文本標簽解析&#xff1a;從基礎到進階的全面指南 03-HTML從入門到精通&#xff1a;鏈接與圖像標簽全解析 文章目錄 系列文章目錄前言一、鏈接與圖像標簽&#xff08;HTML 標簽基礎&#xff…

[STM32 - 野火] - - - 固件庫學習筆記 - - -十一.電源管理系統

一、電源管理系統簡介 電源管理系統是STM32硬件設計和系統運行的基礎&#xff0c;它不僅為芯片本身提供穩定的電源&#xff0c;還通過多種電源管理功能優化功耗、延長電池壽命&#xff0c;并確保系統的可靠性和穩定性。 二、電源監控器 作用&#xff1a;保證STM32芯片工作在…