嵌入式学习笔记-杂七杂八
文章目录
- 连续波光纤耦合激光器
- 工作原理
- 主要特点
- 应用领域
- 设计考虑因素
- 数值孔径(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)形式,即激光的输出功率是稳定和持续的,没有明显的脉冲特征。这种激光器通常用于精密加工、传感、医疗等多个领域,具有高稳定性和良好的光束质量。
工作原理
连续波光纤耦合激光器的基本原理是通过光纤将激光从激光源传输到目标位置。光纤耦合技术使得激光器具有更高的输出效率、光束质量和方向性。其工作过程大致可以分为以下几个步骤:
-
激光源:激光器本身通常是半导体激光器、固体激光器或气体激光器等。激光源通过电流或光源激发介质,使其发射出特定波长的激光。
-
光纤耦合:激光通过耦合系统(例如透镜、反射镜等)导入光纤中。耦合的过程需要确保光纤能够有效地接收到激光源的输出,并将光传输到输出端。
-
光纤传输:光纤作为光的传输通道,传输过程中几乎没有能量损失,因此能够保证激光输出的稳定性。通过光纤,激光可以被精确地传输到需要的位置。
-
输出激光:最终,激光通过光纤输出端口传递到目标区域。由于光纤的特殊结构,激光的输出通常具有较小的光斑和较高的光束质量。
主要特点
-
高稳定性:连续波光纤耦合激光器能够提供稳定的输出功率,适合精密控制和长时间运行。
-
良好的光束质量:光纤传输过程中能够保持较高的光束质量,适合对光束质量有要求的应用。
-
紧凑性:光纤耦合激光器的结构相对紧凑,易于集成进各种设备中。
-
高效率:通过光纤传输,激光损耗较低,系统整体效率较高。
-
较强的抗干扰能力:光纤本身对电磁干扰不敏感,因此能够保证在复杂环境下正常工作。
应用领域
-
精密加工:在材料加工、激光切割、激光焊接等领域,连续波光纤耦合激光器可以提供高精度、高功率的激光输出,广泛应用于金属、陶瓷等材料的加工。
-
激光扫描与传感:在激光扫描、三维成像、激光雷达(LiDAR)等应用中,光纤耦合激光器提供稳定的激光输出,用于高精度测量。
-
医疗领域:在激光治疗、激光手术等医疗领域,连续波激光器被用于组织切割、消融等操作,具有较高的精准性和可控性。
-
通信与研究:在光通信领域,光纤耦合激光器被广泛用于信号传输和实验研究。
设计考虑因素
在设计连续波光纤耦合激光器时,需要考虑以下几个因素:
-
光纤匹配:选择适合的光纤和耦合方式,确保激光器的输出能够有效耦合入光纤。
-
功率控制:设计适当的驱动电路和温控系统,确保激光器输出的功率稳定且可调。
-
热管理:激光器工作时会产生大量热量,良好的热管理系统能够防止激光器过热,确保长时间稳定运行。
-
波长选择:根据应用需求选择适当的激光波长,光纤的传输性能和耦合效率也会随波长的不同而有所变化。
-
光束质量:确保激光器的输出光束具有良好的质量,以适应精密加工或高精度测量的需求。
数值孔径(Numerical Aperture,简称NA)
数值孔径(NA)是描述光学系统,特别是显微镜、光纤等光学设备的光学性能的重要参数。它表征了光学系统能够接收或发射光的能力,即系统的光学聚焦能力与分辨率的关系。
数值孔径的定义
数值孔径是由光学系统的物镜(或光纤的核心)与透镜的光学特性共同决定的,它是一个无单位的数值,定义如下:
N A = n sin θ NA = n \sin \theta NA=nsinθ
其中:
- n n n 是介质的折射率,通常是物镜与物体之间的介质(如空气、水、油等)的折射率。
- θ \theta θ 是物镜半角(或入射光束的最大半角),即光线从物镜的中心轴到边缘所形成的角度。
数值孔径的意义
-
光学系统的聚焦能力:数值孔径越大,光学系统的聚焦能力越强,能够集中更多的光线,形成更小的焦点。因此,NA越大,系统的分辨率通常也会更高。
-
光纤的传输能力:在光纤通信中,NA反映了光纤核心能够接受的光线角度范围。较大的NA表示光纤可以接受更多不同角度的光线,传输效率和带宽也更高。
-
分辨率与物镜性能:数值孔径与分辨率相关。分辨率 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) 是滤波后的图像。
维纳滤波的优势与限制
优势:
- 最小化均方误差:Wiener 滤波通过统计学方法,能够找到最优的滤波器,从而使得去噪效果最好,能最大限度地保留信号。
- 自适应性:Wiener 滤波器能够根据信号和噪声的统计特性自动调整滤波参数,具有较强的自适应性。
- 广泛应用:适用于各种信号和图像去噪任务,特别是对高斯噪声有良好的效果。
限制:
- 需要先验知识:Wiener 滤波需要了解信号和噪声的功率谱密度。若噪声模型不准确,可能导致滤波效果不佳。
- 计算复杂度较高:计算信号和噪声的功率谱密度以及实现频域滤波可能需要较高的计算资源。
- 对非高斯噪声的效果不佳: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窗口
代码说明:
- FFT和频域操作:在代码中,我们将图像转换到频域,通过傅里叶变换计算信号的功率谱和噪声的功率谱。
- Wiener滤波器的实现:Wiener滤波器在频域中通过信号和噪声的功率谱来计算频域滤波函数 H ( f ) H(f) H(f),然后对图像进行滤波。
- 去噪图像显示:处理后的图像通过
imshow
函数显示,便于直观比较。
LM2596S DC-DC降压电源模块是一款非常常见的开关电源降压转换器(Buck Converter),广泛应用于各种电子设备的电源设计中。它可以将较高的输入电压转换为较低的输出电压,且具有高效、稳定的特性。以下是对LM2596S模块的一些详细介绍。
LM2596S DC-DC 降压电源
LM2596S是由Texas Instruments (德州仪器) 提供的一款集成开关调节器芯片。该芯片采用了降压转换方式,即高电压输入经过调节后输出较低电压的过程。LM2596S模块通常集成在一块小型电路板上,具有良好的散热设计和多种输出电压选择,适合嵌入到各种项目中。
LM2596S 的特点:
-
宽输入电压范围:
LM2596S的输入电压范围为 4V到40V。这使得它可以从多种不同的电源(如12V电池、电源适配器等)中获取能量。 -
输出电压可调:
LM2596S的输出电压范围为 1.25V到37V,通过电位器调节输出电压。也有一些模块提供固定输出电压版本(如5V、12V、15V等)。 -
高效率:
LM2596S作为开关电源,具有相对较高的转换效率(通常高于80%),比传统线性电压调节器具有更低的功耗和更少的热量产生。 -
输出电流:
LM2596S可以提供最大 2A 的输出电流,这对于大多数低功耗应用来说足够。 -
内置过热、过载和短路保护:
LM2596S具有过热保护、过电流保护和短路保护功能,在异常情况下可以自动关闭以保护电路。 -
简单的外部组件:
只需要少数几个外部元件,如电感、电容、二极管等,就可以实现高效的电压转换。
LM2596S模块的元器件
- 输入电压 (Vin):供电输入端,通常为12V或更高的电压。
- 电感 (L):用于滤波和能量存储,帮助降低输出电压的噪声。
- 二极管 (D):通常为肖特基二极管,用于防止反向电流。
- 电容 ©:用于平滑输出电压,减少电压波动。
相关文章:

嵌入式学习笔记-杂七杂八
文章目录 连续波光纤耦合激光器工作原理主要特点应用领域设计考虑因素 数值孔径(Numerical Aperture,简称NA)数值孔径的定义数值孔径的意义数值孔径的计算示例数值孔径与光纤 四象限探测器检测目标方法四象限划分检测目标的步骤1. 数据采集2.…...

14-7C++STL的stack容器
(一)stack容器的入栈与出栈 (1)stack容器的简介 stack堆栈容器,“先进后出”的容器,且stack没有迭代器 (2)stack对象的默认构造 stack采用模板类实现,stack对象的默认…...

Vue 3 中的响应式系统:ref 与 reactive 的对比与应用
Vue 3 的响应式系统是其核心特性之一,它允许开发者以声明式的方式构建用户界面。Vue 3 引入了两种主要的响应式 API:ref 和 reactive。本文将详细介绍这两种 API 的用法、区别以及在修改对象属性和修改整个对象时的不同表现,并提供完整的代码…...

物业巡更系统助推社区管理智能化与服务模式创新的研究与应用
内容概要 在现代社区管理中,物业巡更系统扮演着至关重要的角色。首先,我们先来了解一下这个系统的概念与发展背景。物业巡更系统,顾名思义,是一个用来提升物业管理效率与服务质量的智能化工具。随着科技的发展,传统的…...

windows蓝牙驱动开发-生成和发送蓝牙请求块 (BRB)
以下过程概述了配置文件驱动程序生成和发送蓝牙请求块 (BRB) 应遵循的一般流程。 BRB 是描述要执行的蓝牙操作的数据块。 生成和发送 BRB 分配 IRP。 分配BRB,请调用蓝牙驱动程序堆栈导出以供配置文件驱动程序使用的 BthAllocateBrb 函数。;初始化 BRB…...

Linux网络之序列化和反序列化
目录 序列化和反序列化 上期我们学习了基于TCP的socket套接字编程接口,并实现了一个TCP网络小程序,本期我们将在此基础上进一步延伸学习,实现一个网络版简单计算器。 序列化和反序列化 在生活中肯定有这样一个情景。 上图大家肯定不陌生&a…...

linux设置mysql远程连接
首先保证服务器开放了mysql的端口 然后输入 mysql -u root -p 输入密码后即可进入mysql 然后再 use mysql; select user,host from user; update user set host"%" where user"root"; flush privileges; 再执行 select user,host from user; 即可看到变…...

react-native网络调试工具Reactotron保姆级教程
在React Native开发过程中,调试和性能优化是至关重要的环节。今天,就来给大家分享一个非常强大的工具——Reactotron,它就像是一个贴心的助手,能帮助我们更轻松地追踪问题、优化性能。下面就是一份保姆级教程哦! 一、…...

erase() 【删数函数】的使用
**2025 - 01 - 25 - 第 48 篇 【函数的使用】 作者(Author) 文章目录 earse() - 删除函数一. vector中的 erase1 移除单个元素2 移除一段元素 二. map 中的erase1 通过键移除元素2 通过迭代器移除元素 earse() - 删除函数 一. vector中的 erase vector 是一个动态数组&#x…...

性能测试丨内存火焰图 Flame Graphs
内存火焰图的基本原理 内存火焰图是通过分析堆栈跟踪数据生成的一种图形化表现,能够展示应用程序在运行时各个函数的内存占用情况。火焰图的宽度代表了函数占用的内存量,而火焰的高度则显示了函数在调用栈中的层级关系。通过这种可视化方式,…...

AIGC的企业级解决方案架构及成本效益分析
AIGC的企业级解决方案架构及成本效益分析 一,企业级解决方案架构 AIGC(人工智能生成内容)的企业级解决方案架构是一个多层次、多维度的复杂系统,旨在帮助企业实现智能化转型和业务创新。以下是总结的企业级AIGC解决方案架构的主要组成部分: 1. 技术架构 企业级AIGC解决方…...

Linux 入门 常用指令 详细版
欢迎来到指令小仓库!! 宝剑锋从磨砺出,梅花香自苦寒来 什么是指令? 指令和可执行程序都是可以被执行的-->指令就是可执行程序。 指令一定是在系统的每一个位置存在的。 1.ls指令 语法: ls [选项][目…...

【R语言】流程控制
R语言中,常用的流程控制函数有:repeat、while、for、if…else、switch。 1、repeat循环 repeat函数经常与 break 语句或 next 语句一起使用。 repeat ({x <- sample(c(1:7),1)message("x ", x, ",你好吗?")if (x …...

猿人学第一题 js混淆源码乱码
首先检查刷新网络可知,m参数被加密,这是一个ajax请求 那么我们直接去定位该路径 定位成功 观察堆栈之后可以分析出来这应该是一个混淆,我们放到解码平台去还原一下 window["url"] "/api/match/1";request function…...

计算机组成原理(2)王道学习笔记
数据的表示和运算 提问:1.数据如何在计算机中表示? 2.运算器如何实现数据的算术、逻辑运算? 十进制计数法 古印度人发明了阿拉伯数字:0,1,2,3,4,5,6&#…...

【AI日记】25.01.26
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 AI kaggle 比赛:Forecasting Sticker Sales 读书 书名:自由宪章 律己 AI:6 小时作息:00:30-8:30短视频:大于 1 小时读书和写作&a…...

三. Redis 基本指令(Redis 快速入门-03)
三. Redis 基本指令(Redis 快速入门-03) 文章目录 三. Redis 基本指令(Redis 快速入门-03)1. Redis 基础操作:2. 对 key(键)操作:3. 对 DB(数据库)操作4. 最后: Reids 指定大全(指令文档): https://www.redis.net.cn/order/ Redis…...

设计模式的艺术-代理模式
结构性模式的名称、定义、学习难度和使用频率如下表所示: 1.如何理解代理模式 代理模式(Proxy Pattern):给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式是一种对象结构型模式。 代理模式类型较多…...

C#新语法
目录 顶级语句(C#9.0) using 全局using指令(C#10.0) using资源管理问题 using声明(C#8.0) using声明陷阱 错误写法 正确写法 文件范围的命名空间声明(C#10.0) 可空引用类型…...

微信小程序压缩图片
由于wx.compressImage(Object object) iOS 仅支持压缩 JPG 格式图片。所以我们需要做一下特殊的处理: 1.获取文件,判断文件是否大于设定的大小 2.如果大于则使用canvas进行绘制,并生成新的图片路径 3.上传图片 async chooseImage() {let …...

通义灵码插件保姆级教学-IDEA(安装及使用)
一、JetBrains IDEA 中安装指南 官方下载指南:通义灵码安装教程-阿里云 步骤 1:准备工作 操作系统:Windows 7 及以上、macOS、Linux; 下载并安装兼容的 JetBrains IDEs 2020.3 及以上版本,通义灵码与以下 IDE 兼容&…...

windows下本地部署安装hadoop+scala+spark-【不需要虚拟机】
注意版本依赖【本实验版本如下】 Hadoop 3.1.1 spark 2.3.2 scala 2.11 1.依赖环境 1.1 java 安装java并配置环境变量【如果未安装搜索其他教程】 环境验证如下: C:\Users\wangning>java -version java version "1.8.0_261" Java(TM) SE Runti…...

倍频增量式编码器--角度插值法输出A,B(Aangular Interpolation)
问题是: 最大速度,周期刻度,最小细分刻度,可以计算得到: 结论: 按照最高速度采样;数字A,B输出间隔时间:按照计算角度 插入细分角度运算算时间(最快速度)&a…...

LSM对于特殊数据的优化手段
好的,我现在需要帮助用户理解如何针对不同的特殊工作负载优化LSM树结构。用户提到了四种情况:时态数据、小数据、半排序数据和追加为主的数据。我需要分别解释每种情况下的优化方法,并参考用户提供的LHAM的例子,可能还有其他例子。…...

83,【7】BUUCTF WEB [MRCTF2020]你传你[特殊字符]呢
进入靶场 图片上这个人和另一道题上的人长得好像 54,【4】BUUCTF WEB GYCTF2020Ezsqli-CSDN博客 让我们上传文件 桌面有啥传啥 /var/www/html/upload/344434f245b7ac3a4fae0a6342d1f94a/123.php.jpg 成功后我就去用蚁剑连了,连不上 看了别的wp知需要…...

Go语言入门指南(二): 数据类型
文章创作不易,麻烦大家点赞关注转发一键三连。 在上一篇文章,我们已经完成了开发环境的搭建,成功创建了第一个“Hello, World”程序,并且对变量的声明和初始化有了初步的认识。在这篇文章中,我们将主要介绍Go语言的数据…...

2025.1.26机器学习笔记:C-RNN-GAN文献阅读
2025.1.26周报 文献阅读题目信息摘要Abstract创新点网络架构实验结论缺点以及后续展望 总结 文献阅读 题目信息 题目: C-RNN-GAN: Continuous recurrent neural networks with adversarial training会议期刊: NIPS作者: Olof Mogren发表时间…...

FAST-DDS and ROS2 RQT connect
reference: FAST-DDS与ROS2通信_ros2 收fastdds的数据-CSDN博客 software version: repositories: foonathan_memory_vendor: type: git url: https://github.com/eProsima/foonathan_memory_vendor.git version: v1.1.0 fastcdr: …...

GESP2024年3月认证C++六级( 第三部分编程题(2)好斗的牛)
参考程序(暴力枚举) #include <iostream> #include <vector> #include <algorithm> using namespace std; int N; vector<int> a, b; int ans 1e9; int main() {cin >> N;a.resize(N);b.resize(N);for (int i 0; i &l…...

记一次STM32编译生成BIN文件过大的问题(基于STM32CubeIDE)
文章目录 问题描述解决方法更多拓展 问题描述 最近在一个项目中使用了 STM32H743 单片机(基于 STM32CubeIDE GCC 开发),它的内存分为了 DTCMRAM RAM_D1 RAM_D2 …等很多部分。其中 DTCM 的速度是比通常的内存要快的,缺点是不支持…...