自动生成注释插件 - VScode
前言本文推荐一种在用vscode编写代码时自动化生成标准化注释格式的方法。
插件名字:Doxygen Documentation Generator
插件使用说明:
https://github.com/cschlosser/doxdocgen
使用说明
在 vscode 扩展商城中搜索 Doxygen Documentation Generator
打开vscode settings.json(快捷键CTRL+P, 输入: > setings, 选择: 打开用户设置 ), 对插件进行配置
在代码首行或者函数前面输入 /** 后,按下 Enter即可自动生成注释
setting.json 配置模板1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 // /**回车后最多向下多少行去找函数声明"doxdocgen.generic.linesToGet": 10, // 作者名和邮箱 "doxdo ...
5V 转 400V 升压电路 (boost + 倍压电路)
前言最近了解到盖革管计数器原理,从它的驱动电路中看到了一个比较有意思的升压电路,boost + 倍压电路,将低压升至高压很有意思,顺便把资料记录下来,方便以后查看。
盖革管中的升压电路大多使用555定时器去实现, 如果有MCU输出PWM,可直接使用MCU进行控制,盖革管驱动电路如下图所示:
这里主要讲解如何使用 PWM 驱动boost + 倍压电路,将低压升至高压,电路结构如下:
基本原理:
前面是boost升压电路,通过PWM驱动三极管开关闭合,进行升压操作
后面二极管和电容构成倍压电路,再次升压
boost 电路升压电路这里不多做介绍,网上有很详细的理论介绍。需要注意的是PWM驱动信号,会导致以下问题:
PWM频率会影响电感啸叫,如果有刺耳的声音可以尝试改变PWM频率
boost升压电路的输出电压有三个影响因素:PMW频率、PWM占空比、三极管基极限流电阻、PWM占空比输出精度(PWM计数精度越高越好)
倍压电路在电路设计过程中,当后级需要的电压比前级高出数倍而所需要的电流并不是很大时,就可以使用倍压整流电路。倍压整流:可以将较低的交流电压,用耐压较高的整流二极管和电 ...
VScode tasks.json 自定义任务
前言在 Visual Studio Code(VSCode)中,tasks.json 文件是用来定义和配置任务(Tasks)的。任务指的是在开发过程中需要自动化执行的一系列操作,例如编译代码、运行测试、打包项目等。通过配置 tasks.json,你可以简化这些操作,使其可以一键执行,提高效率。
vscode 能利用task的地方就是快捷键功能, tasks.json 可以配合 Task Buttons 扩展功能,在vscode下方自定义快捷按钮,实现快捷操作,比如自动化命令
定义和管理各种任务,包括编译、测试、打包、部署等。这样可以避免在不同项目中重复编写类似的命令行脚本,提高代码复用性和组织性。
快捷执行:通过键盘快捷键(如Ctl+Shi+B)或任务面板快速选择并运行bui1d任务,无需切换到命令提示符或终端手动输入命令,提升了工作效率,
交互体验:任务执行时,VSCode会自动打开输出面板显示任务执行过程和结果,便于实时监控和调试。此外,用户可以轻松地终止任务、重新运行任务、切换不同的任务配置等。
与VSCode生态集成:任务可以与VSCode的其他功能紧密结合,如调试 ...
硬件开发需求参考文档
前言高质量的产品需求文档,是硬件产品成功的关键,是硬件产品由概念阶段进入设计阶段的第一个重要文档,其作用是将客户需求转化成开发团队能够理解的产品功能、性能、指标和参数,将前期市场调研和需求洞察所发现的市场机会进行锁定,落地到具体的产品定义。
下面是我整理的需求文档,可以直接下载
https://github.com/user-attachments/files/15796986/default.xlsx
功能需求很清晰,很详细
以前的客户有设计需求的时候,一般都是说一下要设计一个什么样的东西,要有哪几个功能,其他的都是模模糊糊,不清不楚的,让我们自己去理解,自己去猜测。
基本都是理解不了,都是花很多时间精力去和客户沟通,沟通,再沟通,才勉强全面理解客户的需求。
参考器件,方便选型
给我们提供了一关键器件的图片,让我们参考,大大方便我们选型,节省我们的时间。
PCB布局提供参考草图
虽然没有具体的PCB板框图纸,但是也给我们提供了一个PCB布局草图,很清晰地标出哪些连接器、开关、指示灯应该放在哪个位置,免得我们自由发挥,不能满足客户的需求。
PCB布局提供参考草图客户明确任务完成目标 ...
无线串流、投屏
前言主要讲解 Sunshine + Moonlight 串流方案
使用场景
局域网内可以实现无线投屏,延迟非常低
如果配合虚拟显示器使用,可以将手机或者平板当电脑幅屏使用,工具:parsec-vdd (github)
如果配合内网穿透工具使用,可以实现远程投屏, 例如:皎月连
Sunshine 介绍 (服务器)Sunshine 是 Moonlight 的自托管游戏流主机。提供低延迟、云游戏服务器功能,支持 AMD、Intel 和 Nvidia GPU 进行硬件编码。还提供软件编码。您可以从各种设备上的任何 Moonlight 客户端连接到 Sunshine。提供了一个 Web UI,允许从您最喜欢的 Web 浏览器进行配置和客户端配对。从本地服务器或任何移动设备进行配对。
https://github.com/LizardByte/Sunshine
Moonlight 介绍 (客户端)Moonlight 可让您在几乎任何设备上玩 PC 游戏,无论您是在另一个房间还是距离游戏设备数英里远。
Moonlight 安装在需要显示的设备上,连接主机IP信息即可
https://mo ...
图片解码库
QOI (速度很快的图片格式,编解码速度都很快)
QOI 很快。它将图像无损压缩为与 PNG 类似的大小,同时编码速度提高 20 到 50 倍,解码速度提高 3 到 4 倍。
QOI 很简单。参考编码器/解码器可容纳大约 300 行 C 语言。文件格式规范是单页 PDF。
https://qoiformat.org/
QOA (用于快速、有损压缩的相当不错的音频格式)
QOA 很快。它的音频解码速度比 Ogg-Vorbis 快 3 倍,同时提供比 ADPCM 更好的质量和压缩(44khz 立体声为 278 kbits/s)。
QOA 很简单。参考编码器/解码器可容纳大约 400 行 C 语言。文件格式规范是单页 PDF。
https://qoaformat.org/
视频语音文字识别转换 (视频翻译和配音工具)
https://github.com/TutuBinary/pyvideotrans
一个视频翻译配音工具,可将一种语言的视频翻译为指定语言的视频,自动生成和添加该语言的字幕和配音。
主要用途和使用方式####
【翻译视频并配音】根据需要设置各个选项,自由配置组合,实现翻译和配音、自动加减速、合并等
【识别字幕不翻译】选择视频文件,选择视频源语言,则从视频【语音中识别出文字】并自动导出字幕文件到目标文件夹
【提取字幕并翻译】选择视频文件,选择视频源语言,设置想翻译到的目标语言,则从【视频语音中识别出文字】并翻译为目标语言,然后导出双语字幕文件到目标文件夹
【字幕和视频合并】选择视频,然后将已有的字幕文件拖拽到右侧字幕区,将源语言和目标语言都设为字幕所用语言、然后选择配音类型和角色,开始执行
【为字幕创建配音】将本地的字幕文件拖拽到右侧字幕编辑器,然后选择目标语言、配音类型和角色,将生成配音后的音频文件到目标文件夹
【音视频识别文字】将视频或音频拖拽到识别窗口,将识别出文字并导出为srt字幕格式
【将文字合成语音】将一段文字或者字幕,使用指定的配音角色生成配音
【从视频分离音频】将 ...
OCR离线文字识别库
完全开源免费的文字识别库
离线文字识别软件
https://github.com/TutuBinary/Umi-OCR
离线文字识别库 PaddleOCR-json (兼容性不好,性能高)
https://github.com/TutuBinary/PaddleOCR-jsonhttps://github.com/PaddlePaddle/PaddleOCR/tree/release/2.6 (原库)
离线文字识别库 RapidOCR-json (兼容性好,性能中等)
https://github.com/TutuBinary/RapidOCR-jsonhttps://github.com/TutuBinary/RapidOcrOnnx (原库)
数模转换DAC R-2R电阻梯网络 阶梯电阻
前言DAC(Digital to Analog Converter)是将数字信号变换为模拟信号的器件,在数字电路中得到广泛应用。数字电路中使用数字信号处理数据,可以使电路获得更高的抗干扰能力,同时数据处理方法也更加灵活,但在信号的输入和输出端,反馈信号与被控对象控制量仍然可能是模拟信号,模拟输入量可以通过ADC(Analog to Digital Converter)变换为数字信号,在信号输出端使用DAC将数字信号还原为模拟信号。
数字信号转换为模拟信号通常有两种方式
使用集成式DAC芯片 (成本高, 精度高)
使用 R-2R梯形网络 (成本低, 架构简单, 精度也比较低)
R-2R 电阻梯网络示意图
R-2R电阻梯网络直接将并行数字符号/字转换为模拟电压。每个数字输入(b0、b1 等)都会将其自己的加权贡献添加到模拟输出中。该网络具有一些独特且有趣的属性。
轻松扩展至任何所需的位数
仅使用两个电阻值,可轻松准确地制造和集成
无论位数多少,输出阻抗都等于 R,从而简化滤波和进一步的模拟信号处理电路设计
如何分析 R-2R 网络?分析 R-2R 网络会让您回想起在本科 ...
RGB888 转 RGB565 抖动补偿
RGB565 和 RGB888是两种不同的颜色表示方式,在计算机图形学和显示领域中被广泛使用。RGB565使用16位数据表示一种颜色,每个颜色通道(红色、绿色、蓝色)使用5位、6位和5位的数字分别表示,而RGB888则使用24位数据表示一种颜色,每个颜色通道都使用8位数字。相互转换时,需要对颜色值进行折算和补偿,以确保转换后的颜色与原始颜色尽可能接近。
RGB888 -> RGB5651.取RGB888中第一个字节的高5位作为转换后的RGB565的第二个字节的高5位
2.取RGB888中第二个字节的高3位作为转换后的RGB565第二个字节的低3位
3.取RGB888中第二个字节的第4--6位,作为转换后的RGB565第一个字节的高3位
4.取RGB888中第二个字节的第三个字节的高5位作为转换后的RGB565第一个字节的低5位
可以看出24位色转换为16位色时, 低位会被舍弃, 相应的精度也会丢失
原始的 24bit 图片
没有抖动的 16bit 图片 (有阶梯状条纹, 色彩不连续)
抖动后的 16bit 图片
参考资料:
https://stackove ...