- 博客(125)
- 收藏
- 关注

原创 工业设计开发生命周期
需求收集与分析(Requirements Gathering and Analysis)确定用户需求和外观需求。细化设计,确定外观和机械结构。比较常见的打印方式有FDM 和 光固化。下面是一张某厂家的光固化打印流程。4.
2024-08-14 12:17:59
234

原创 软件开发生命周期(基于ESP-IDF)
软件开发生命周期(Software Development Life Cycle, SDLC)是软件从概念到正式交付和维护的一系列阶段。需求收集与分析(Requirements Gathering and Analysis)确定用户需求和软件需求。根据需求创建软件架构、界面设计和系统设计。编写代码来实现设计阶段定义的软件功能。验证软件是否满足需求并且没有缺陷。包括单元测试、集成测试、系统测试和验收测试。通常在开发环境中进行,由开发者或一小群信任的测试者进行,以发现和修复基本问题。
2024-07-03 16:15:06
659

原创 硬件PCB开发生命周期
2.信号衰减和延迟测试:测试信号在传输过程中的衰减情况以及延迟程度,确保在传输路径上不会出现过多的信号衰减或延迟过大。方法:在一个信号通道中发送测试信号,使用工具监测其他信号通道中的信号,观察和记录其他通道中是否出现了不应该存在的信号。2.纹波和噪声测试:确保输出的电压是稳定的,没有过多的纹波和噪声,保证电源提供的电压是干净、稳定的。3.串扰测试:检测不同信号通道之间的串扰情况,即一个信号通道的变化对其他信号通道的影响,以避免干扰。电源和信号完整性测试:确保电源和信号传输的稳定性和完整性。
2023-11-24 01:10:26
4806
原创 conda入门
macOS/Linux: conda activate myenv (或旧版本可能需要 source activate myenv)
2025-06-07 02:07:46
847
原创 golang入门
访问官方下载页面:https://go.dev/dl/选择适合你操作系统的安装包(Windows/macOS/Linux)。Windows:运行 .msi 安装程序,默认安装到 C:\Go,安装程序会自动添加环境变量。macOS:双击 .pkg 文件按向导安装,或使用 Homebrew:Linux:解压到 /usr/local(需要 root 权限):配置环境变量将以下内容添加到 ~/.bashrc 或 ~/.zshrc(Linux/macOS)或系统环境变量(Windows):执行 sou
2025-06-06 12:18:29
498
原创 事件驱动架构入门
事件驱动架构是一种系统或组件之间通过发送事件和响应事件彼此交互的架构风格。当某个事件发生时,组件A不直接调用组件B,而只是发出一个事件。组件A不知道哪些组件监听并处理这些事件。事件驱动架构可以在进程内和进程间使用。比如,GUI框架中会大量使用事件驱动。
2025-05-30 14:34:21
916
原创 Webhook入门
简单来说,Webhook 是一种“反向 API”或“事件通知回调”机制。它允许一个应用程序(服务 A)在特定事件发生时,自动向另一个应用程序(服务 B)指定的 URL(称为 Webhook URL 或端点)发送 HTTP 请求(通常是 POST 请求),通知服务 B 该事件的发生并传递相关数据。订阅事件:你(服务 B 的开发者或管理员)在服务 A 上注册一个你控制的 Webhook URL,并指定你感兴趣的事件类型(例如,“新订单创建”、“代码提交到仓库”、“支付成功”、“用户注册”等)。
2025-05-30 12:42:02
860
原创 Github Actions工作流入门
GitHub Actions的核心在于它允许你在GitHub仓库中定义自定义的工作流程,这些工作流程由一系列动作(actions)组成,它们可以在特定事件发生时自动触发。事件触发器(Event Triggers):当你指定某些事件(如push、pull_request等),GitHub会监听这些事件并在其发生时启动相应的工作流。运行器(Runners):GitHub提供托管的虚拟机作为运行器,你可以选择不同的操作系统(如Ubuntu、Windows或macOS)。
2025-05-25 10:46:28
518
原创 WSL(Windows Subsystem for Linux)入门
WSL 是 Windows 系统内置的 Linux 兼容层,允许直接在 Windows 中运行 Linux 命令行工具和应用程序,无需虚拟机或双系统。WSL 1:早期版本,通过翻译层兼容 Linux 系统调用,文件系统性能较低,但启动快。WSL 2:基于轻量级虚拟机(Hyper-V),支持完整 Linux 内核,文件系统性能接近原生,推荐使用。
2025-05-08 17:17:24
1323
原创 AXP2101入门
AXP2101 是一款由全志公司开发的单电池 NVDC 电源管理集成电路(PMIC),专为锂离子/锂聚合物单电池应用设计,适用于需要多通道电源输出的设备。
2025-04-24 21:22:58
588
原创 低功耗蓝牙BLE入门
GAP 层的全称为通用访问规范 (Generic Access Profile, GAP),定义了低功耗蓝牙设备之间的连接行为以及设备在连接中所扮演的角色。空闲 (Idle)此时设备无角色,处于就绪状态 (Standby)设备发现 (Device Discovery)广播者 (Advertiser)扫描者 (Scanner)连接发起者 (Initiator)连接 (Connection)外围设备 (Peripheral)中央设备 (Central)
2025-04-24 16:37:52
955
原创 Wi-Fi配网入门(基于ESP-IDF)
Wi-Fi配网组件提供控制 Wi-Fi 配网服务的 API,可以通过 SoftAP 或低功耗蓝牙建立 协议通信 安全会话,接收和配置 Wi-Fi 凭证。
2025-04-24 15:43:23
648
原创 NumPy入门(基于Python3)
NumPy(Numerical Python)是 Python 中用于科学计算的核心库,专注于高效的多维数组(ndarray)操作和数值计算。它提供了高性能的数学函数、线性代数运算、随机数生成等功能,是数据科学、机器学习、图像处理等领域的基石。NumPy 的核心是 ndarray(N-dimensional array),支持高效存储和操作多维数据。NumPy 提供优化的数学函数,支持对整个数组的快速操作(向量化计算)。NumPy 支持灵活的索引方式,可高效提取和修改数组的子集。
2025-04-17 09:48:21
376
原创 Docker compose入门
Docker Compose 是一个用于简化多容器Docker应用管理的工具,特别适合在开发和测试环境中快速定义、编排和运行多个相互关联的容器。以下是它的核心要点:基于YAML文件配置通过 docker-compose.yml 文件定义所有服务(容器)、网络、卷等,避免手动输入复杂的docker run命令。一键启停所有服务使用一条命令(如 docker compose up)即可启动整个应用栈的所有容器,自动处理依赖关系和启动顺序。本地开发友好。
2025-04-16 16:20:06
1188
原创 tabulate库入门(基于Python3)
tabulate 是一个用于在 Python 中生成美观的格式化表格的第三方库。它可以将数据(如列表、字典、Pandas DataFrame 等)转换为多种表格格式(如纯文本、HTML、Markdown 等),适用于命令行工具、日志输出、报告生成等场景。
2025-04-07 13:34:57
340
原创 编程哲学——TCP可靠传输
TCP的可靠传输表现在(1)建立连接时三次握手,四次挥手有点像是这样对话:”我们开始对话吧“”收到“”好的,我收到你收到了“(2)数据传输时ACK应答和超时重传”我们去吃饭吧“……”我们去吃饭吧“……”我们去吃饭吧“”好的“
2025-04-06 20:51:03
244
原创 Python3基础库入门(个人学习用)
事件循环(event loop)是 asyncio 的核心,可以理解为一个无限循环,我们可以把一些函数(通过 async 定义的函数,称为协程)注册到事件循环(event loop)上,Python 的 queue 库(标准库,无需安装)提供了线程安全的队列(FIFO、LIFO、优先级队列)实现,主要用于多线程编程中实现线程间的数据共享和通信。这个fun()是一个coroutine function(有点像是注册的意思),返回的是一个coroutine object,虽然调用了,但是它不会立马运行。
2025-03-29 17:20:56
768
原创 大模型语音生成入门(基于cosyvoice)
下面是一段火山引擎对大模型语音生成的说明。(注意合成 与 生成)传统的语音合成方法只局限在把对应的文本内容合成出来,对于语音的自然度、富文本以及多情感的关注其实比较少。而语音生成大模型在输入和输出方面表现都要更丰富。主要包含三个模块:(1)从富文本、参考语音等输入中去生成语音token这样一个自回归的transformer模型(2)从语音token重构出语音特征的常微分扩散模型Flow Matching(3)从语音特征合成出语音波形的声码器vocoder通常是根据给定的文本 或者 其他的一
2025-03-13 17:57:07
301
原创 logger入门(基于Python3)
在 Python 中,from loguru import logger 是用于导入 Loguru 库 的核心日志记录工具 logger。Loguru 是一个第三方日志库,旨在简化 Python 日志记录(相比标准库 logging 更简洁易用),提供开箱即用的功能,如彩色输出、文件轮转、异常自动捕获等。
2025-03-12 16:09:54
285
1
原创 pydub入门(基于Pyhton3)
pydub 是一个简单易用的 Python 音频处理库,专注于提供高层次的音频操作接口,而 AudioSegment 是它的核心类,用于表示音频片段(如 MP3、WAV、OGG 等格式)。通过 AudioSegment,你可以轻松实现音频文件的加载、切割、合并、格式转换、音量调整等操作。
2025-03-12 01:18:49
532
原创 D类音频功放NS4150B
在设计功放电路时,直接copy了别人的电路,却将喇叭由原来的8Ω1W替换为了4Ω3W。测试时,毫无意外声音没有出来,下面一步步查找原因。电源端加适当的去耦电容可以确保器件的高效率及最佳的 THD+N 性能(Total Harmonic Distortion(THD)是衡量信号失真程度的核心指标,定义为基波信号以外的谐波成分总有效值与基波有效值的百分比。),同时为得到良好的高频瞬态性能,希望电容的 ESR 值要尽量小。一般使用 1uF 的陶瓷电容将 VDD 旁路到地。去耦电容在布局上应尽可能的靠近芯片的 VD
2025-03-08 18:03:13
581
原创 VAD入门(基于Python)
Silero VAD 是 Silero 语音模型系列中的语音活动检测(VAD)工具,基于深度学习实现,相比传统 VAD(如 WebRTC VAD),它在复杂噪声环境下的检测效果更好,且支持更灵活的输入格式。(1)安装(2)依赖Python 3.7+PyTorch 1.10+TorchAudio 0.10+(1) 语音段检测输入音频波形,返回语音段的起止时间(单位:毫秒)。(2) 实时语音检测支持流式音频输入,逐帧判断是否包含语音。(1) 加载模型(2)检测语音段输出示例:(3) 提取语音
2025-03-08 16:28:55
836
原创 专利规避入门
独立权利要求是专利文件中保护范围最宽泛的权利要求,它无需引用其他权利要求,直接定义了发明的核心技术方案。作用:划定专利权的边界,明确他人未经许可不得实施的技术内容。特点:独立权利要求必须包含解决技术问题的全部必要技术特征,且能够独立存在。
2025-03-07 12:46:19
290
原创 Node.js 入门
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,让 JavaScript 可以脱离浏览器在服务端运行。它发布于2009年,彻底改变了 JavaScript 只能做网页特效的刻板印象。事件驱动和非阻塞 I/O 模型轻量高效,适合高并发场景统一前后端开发语言(JavaScript)拥有最大的开源生态系统(npm)
2025-02-18 12:44:24
322
转载 Opus编解码协议入门
Opus是一种开源免费的音频编解码器,支持音乐和语音,具有低延时、带内FEC、DTX、PLC等特点,默认22.5ms延时,非常适用网络实时传输。官网:https://www.opus-codec.org。Opus协议收录于RFC6716,使用SILK和CELT两种编码。Opus在语音app应用很广泛,包括VoIP、视频会议、语音聊天、音乐直播演唱会等。即支持低码率语音,也支持高音质音乐。码率支持从6kb/s到510kb/s;采样率支持从8kHz到48kHz;可变帧长从2.5ms到60ms;
2024-12-15 14:05:22
511
原创 Wi-Fi AP模式入门(基于ESP-IDF)
主要参考资料:Wi-Fi 库: https://docs.espressif.com/projects/esp-idf/zh_CN/v4.4/esp32s3/api-reference/network/esp_wifi.htmlESP-NETIF: https://docs.espressif.com/projects/esp-idf/zh_CN/v4.4/esp32s3/api-reference/network/esp_netif.htmlWi-Fi 初始化 APvoid wifi_init
2024-11-06 01:36:19
351
原创 电子器件入门
电容量的基本单位是法拉(F),但实际使用的电容器电容量通常较小,因此常用毫法(mF)、微法(μF)、纳法(nF)和皮法(pF)等单位。对触摸感应按键而言,PCB 板上的金属感应盘就是电容的一个极板,而周围铺铜或手指构成了另一个极板,PCB材料本身或者PCB板上覆盖的介质就是电容中间的绝缘体,因而构成一个电容器。:电容器实际电容量与标称电容量的偏差称为误差,在允许的偏差范围内称为精度。:指在规定的工作温度范围内,电容器长期可靠工作时能承受的最大直流电压。
2024-10-26 16:18:51
255
原创 Wi-Fi安全性入门(基于ESP-IDF-v4.4)
Wi-Fi 网络中,非 AP 设备使用如信标、探测、(解)身份验证和(断)关联等管理帧,扫描并连接到 AP。不同于数据帧,管理帧在传输时不会加密。由此,攻击者可以利用窃听和数据包注入,在适当时机发送伪造的(解)身份验证或(断)关联管理帧,发起拒绝服务 (DoS) 和中间人攻击等攻击。PMF 通过加密单播管理帧以及为广播管理帧提供完整性检查,来应对上述解身份验证、解关联和鲁棒管理帧等攻击。此外,PMF 还提供了安全关联 (SA) 拆除机制,防止伪造的关联或验证帧使已连接的客户端断开连接。station 和 A
2024-10-19 18:19:17
1334
原创 看门狗(基于ESP-IDF)
中断看门狗定时器 (IWDT)任务看门狗定时器 (TWDT)中断看门狗负责确保 ISR(中断服务程序)不被长时间阻塞,TWDT 负责检测任务长时间运行而不让步的情况。
2024-10-19 15:43:35
318
原创 Unity测试入门(基于ESP-IDF)
ESP-IDF 提供以下方法测试软件。一种是基于目标的测试,该测试使用运行在 esp32 上的中央单元测试应用程序。这些测试使用的是基于 Unity的单元测试框架。通过把测试用例放在组件的 test 子目录,可以将其集成到 ESP-IDF 组件中。本文档主要介绍这种基于目标的测试方法。另一种是基于 Linux 主机的单元测试,其中所有硬件行为都通过 Mock 组件进行模拟。此测试方法目前仍在开发中,暂且只有一小部分ESP-IDF 组件支持 Mock,具体请参考 基于 Linux 主机的单元测试。
2024-10-11 11:58:31
1559
原创 C语言进阶(基于ESP-IDF)
GNU C对C语言标准作了扩展,允许在一个表达式里内嵌语句,允许在表达式内部使用局部变量、for循环和goto跳转语句。这种类型的表达式,我们称为语句表达式。语句表达式的格式如下。({表达式1;表达式2;表达式3})语句表达式最外面使用小括号()括起来,里面一对大括号{}包起来的是代码块,代码块里允许内嵌各种语句。语句的格式可以是一般表达式,也可以是循环、跳转语句。和一般表达式一样,语句表达式也有自己的值。语句表达式的值为内嵌语句中最后一个表达式的值。我们举个例子,使用语句表达式求值。
2024-10-09 22:14:36
1507
原创 图片格式入门
像素图(pixel image)又称位图(bitmap image)、栅格图(raster image)或点阵图。照片就是像素图。像素图是由像素点的网格组成。每个像素(pixel)是一个具有特定颜色和灰度的小方块。像素图具有分辨率的概念。分辨率通常用dpi(dots per inch)表达。像素图的特点如下:矢量图(Vector graphics)使用直线和曲线描述图形和线条,构造组成图形的元素,包括点、线、多边形、圆弧等。矢量文件中的图形元素称为对象。每个对象都是一个自成一体的实体,它具有颜色、形状、轮廓
2024-10-07 16:30:24
585
原创 esp32-camera入门(基于ESP-IDF)
2.相机初始化 并 配置图像传感器二、传输camera 到 lcd 显示可以看到 camera 示例 里对应的代码如下:这部分就是经过封装的 API 调用。先调用 esp_camera_fb_get 获取 camera 拍摄的数据,然后通过 lcd_set_index 设置 lcd 的起始和结束地址。之后将 camera 拍摄到的数据通过 lcd_write_data 来让 lcd 显示出来,最后使用 esp_camera_fb_return 释放 camera 使用的 buffer 来方便后续重复
2024-10-07 14:49:58
2059
3
原创 platformio.ini工程配置文件入门
ini是一个配置文件,它可以设置开发环境,与他人共享代码和配置,并利用声明性方法进行开发。platformio.ini文件可以配置多个平台和体系结构,而不必担心不同的工具链或为每个平台和体系结构构建系统。
2024-10-07 12:28:17
854
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人