自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1115)
  • 资源 (25)
  • 收藏
  • 关注

原创 vitis高层次综合HLS入门教程

HLS即High level Synthesis,高层次综合,简单来说就是用C++写硬件代本文介绍了使用Vitis HLS进行高层次综合(HLS)开发的基本流程。主要内容包括:1)创建HLS项目并设置器件型号;2)编写C++硬件代码示例;3)综合过程及结果分析;4)插入指令优化设计;5)导出RTL及常见错误解决方案;6)在Vivado中验证IP核功能。通过一个简单的LED控制示例,展示了从C++代码到硬件实现的完整开发流程,包含时序控制、接口协议设置等关键技术点,为FPGA开发者提供了HLS入门的实用参考。

2025-08-25 10:54:11 456

原创 如何读Vivdao中的电路图

本文以跑马灯为例,展示了Verilog HDL代码与硬件电路图的对应关系。通过分析两段触发电路(计数器递增和LED移位控制)对应的电路图,解释了加法器、比较器、多路选择器等逻辑器件的功能。文章还通过修改代码(将比较条件统一为等号),展示了不同实现方式对电路图的影响。最后指出在电路图中无法直接看出LED移位操作的具体效果,需要通过代码分析才能理解其工作原理。

2025-08-25 09:00:00 518

原创 Vivado BRAM IP核详解

BRAM(Block RAM)是FPGA中的存储资源,可通过Vivado的Block Memory Generator(BMG)IP核配置。BMG支持独立模式和控制器模式,提供单端口、双端口和伪双端口RAM/ROM类型。配置选项包括内存类型(RAM/ROM)、时钟模式、ECC纠错、写使能、算法优化等。端口设置涵盖数据宽度、深度、操作模式(写优先/读优先/不变)以及复位选项。此外,支持.coe文件初始化存储空间,并针对仿真提供多种模型选项。BRAM配置需考虑位宽与深度的乘积不超过器件资源限制。

2025-08-22 09:26:04 1092

原创 tcl语言列表详解

本文介绍了TCL中列表的基本操作:创建列表可通过花括号、list函数或split分割字符串;使用lindex、lset、lrange进行索引和修改;lappend、linsert、lreplace实现列表更改;join和concat用于列表拼接;循环处理可用for或更简洁的foreach;lsearch和lsort提供搜索排序功能。重点说明了各函数对原列表的影响及参数传递方式(是否使用$符号),并展示了常见列表操作的语法示例。

2025-08-21 09:33:18 718

原创 Verilog实现除法器

本文介绍了基于移位相减法的硬件除法器设计原理。算法通过查找除数最高有效位,采用逐位比较的方式实现高效除法运算。核心步骤包括:1)通过循环查找除数x的最高位;2)通过移位相减法计算商,每次比较当前余数与除数x的大小来决定商位并更新余数。Verilog实现中,使用组合逻辑查找最高位,并通过状态机控制计算流程。该设计将传统连续减法的时间复杂度从指数级降低到对数级,显著提升了硬件除法运算效率。关键信号包括启动(start)、计算完成(calcDone)等状态标志,以及余数(rem)等中间变量。

2025-08-21 08:19:34 1380

原创 Quartus II用tcl脚本管理项目

本文介绍了在Quartus中使用TCL脚本进行FPGA引脚分配和项目管理的方法。主要内容包括:1)通过TCL脚本实现引脚约束设置,包括全局属性定义和实例级管脚分配;2)导出工程为TCL文件的方法,以及如何通过TCL脚本重建工程;3)项目管理TCL脚本的组成结构,包含芯片系列、型号等关键参数设置。TCL脚本在Quartus中可有效简化重复性操作,提高工程管理效率,特别适用于引脚分配等繁琐任务。

2025-08-19 10:20:13 653

原创 tcl脚本初步教程

Tcl脚本语言在硬件编程中广泛应用,支持Quartus和Vivado等工具。其语法简洁,通过$符号访问变量,提供基本运算符、分支(if/switch)和循环结构(for/while)。函数使用proc定义,支持默认参数和可变参数。Tcl还包含数组操作和内置函数,适合工程控制和自动化任务。

2025-08-19 08:45:03 824

原创 UartPS串口收发函数详解

本文介绍了Xilinx PS端UART串口通信的三种实现方式:单字节收发、数组收发和结构体收发。单字节收发使用XUartPs_SendByte和XUartPs_RecvByte函数实现简单回传功能;数组收发采用XUartPs_Send和XUartPs_Recv函数,需配合初始化配置;结构体收发通过取消字节对齐实现协议通信,以除法运算为例展示了结构体与数组的转换应用。三种方式分别适用于不同场景,为UART通信提供了灵活的实现方案。

2025-08-18 11:11:31 490

原创 开源Verilog仿真和波形模拟工具iVerilog初步教程

本文介绍了使用Icarus Verilog工具进行Verilog代码仿真测试的完整流程。首先说明了硬件编程中仿真检查的重要性,推荐使用开源工具Icarus Verilog(包含iverilog、vvp和gtkwave三个组件)。然后以LED控制模块为例,展示了测试代码和仿真代码的编写方法,重点说明了仿真代码中iverilog特有的波形生成语法。最后详细讲解了从编译到查看波形的操作步骤:使用iverilog编译生成可执行文件,通过vvp生成波形文件,最后用gtkwave可视化波形结果。整个过程为Verilog

2025-08-18 08:27:45 820

原创 Vivado GPIO详解

本文介绍了AXI GPIO接口的硬件配置与软件编程方法。硬件部分说明了GPIO核的信号接口功能,包括输入/输出信号、三态控制及各项参数设置(如位宽、默认值、中断使能等)。软件部分重点讲解了xgpio.h提供的GPIO操作函数,包括初始化(XGpio_Initialize)、方向设置(XGpio_SetDataDirection)、数据读写(XGpio_DiscreteWrite/Read)等,并详细说明了各函数的参数用法。该接口支持双通道配置,但中断功能存在一定限制,仅支持上升沿或高电平触发。

2025-08-14 08:21:56 1125 2

原创 封装LCD屏幕显示RGB图片的IP核

本文介绍了正点原子7020开发板实现RGB数据显示到LCD屏幕的步骤。首先创建工程目录并编写rgb2lcd.v模块,该模块负责将RGB格式数据转换为LCD信号输出,同时支持LCD ID读取功能。接着详细说明了在Vivado中创建自定义IP核的流程,包括设置IP属性、指定存储路径和配置兼容性。最后讲解了如何为IP核添加LCD接口,通过创建接口定义文件并配置端口映射,完成包括lcd_rgb在内的多个接口设置。

2025-08-13 09:03:58 846

原创 FreeRTOS创建多线程详解

摘要: xTaskCreate是FreeRTOS中创建线程的核心函数,通过指定任务函数、名称、堆栈大小等参数实现多任务管理。其参数包括任务函数指针、任务名(最长10字符)、堆栈大小(以字为单位)、优先级(0到configMAX_PRIORITIES-1)及任务句柄。任务堆栈用于保存函数运行状态,可通过全局变量传递返回值。FreeRTOS默认采用抢占式调度(configUSE_PREEMPTION=1),高优先级任务可抢占低优先级任务资源。任务结束时需调用vTaskDelete删除任务,vTaskStartS

2025-08-13 08:57:24 561

原创 Xilinx IP核 VDMA详解

摘要: AXI VDMA是Xilinx提供的视频数据搬运IP核,支持PS端存储器与AXI4-Stream外设间的数据传输。其引脚分为MM2S(读通道)和S2MM(写通道),通过AXI-Lite接口配置寄存器。基础设置包括地址宽度、帧缓存等参数,用于带宽匹配和图像缓存。高级选项支持四种Genlock锁相模式(Master/Slave/Dynamic Master/Dynamic Slave),实现多通道间的帧同步控制。典型应用中,S2MM连接视频输入,MM2S连接视频输出。

2025-08-12 09:23:49 709

原创 VS Code用Waveform Render画波形图

Waveform Render是一款将JSON格式文件转换为波形图的工具,其在线版本为Wavedrom编辑器。通过定义signal列表中的波形字典,可以创建多行波形,其中name表示信号名,wave决定波形走向(使用p、n、.、0、1等字符表示不同波形状态),data为特殊波形命名。工具还支持相位调制(phase)、周期设置(period)和波形嵌套组织功能。示例展示了如何创建包含时钟信号、数据信号和测试信号的复杂波形图,并演示了分层组织波形的能力。

2025-08-12 08:45:00 537

原创 OV5640 相机开发流程

本文介绍了基于Xilinx Zynq平台使用Vitis开发工具实现OV5640摄像头图像采集与显示的系统配置过程。详细说明了硬件平台搭建步骤,包括Zynq处理系统配置(UART、DDR3、HP接口等)、VDMA控制器设置(双通道配置)、视频时序控制器以及AXI-Stream视频转换模块的连接。文章还提供了自定义IP核(rgb2lcd)的集成方法、系统时钟配置(33.333MHz)和完整的引脚约束文件,特别针对双目OV5640摄像头中的单目使用场景进行了优化配置。

2025-08-11 09:45:39 973

原创 Vivado自定义IP核学习笔记

本文介绍了在Vivado中创建和封装自定义IP核(breath_led_ip)的完整流程。主要内容包括:1)通过Vivado的IP管理工具创建新的AXI4外设IP核;2)实现呼吸灯功能模块(breath_led.v),包含时钟分频、亮度调节等控制逻辑;3)将功能模块集成到AXI接口IP核中,通过寄存器映射实现参数配置;4)完成IP核的封装设置,包括兼容性配置、参数可视化和文件组管理。该过程演示了从功能设计到IP封装的完整开发流程,为FPGA设计中的IP复用提供了实践参考。

2025-08-11 09:37:17 795

原创 FATFS快速读写文件

本文介绍了FatFs文件系统中的字符串读写函数。f_gets用于从文件读取字符串,遇到换行符或缓冲区满时停止;f_putc和f_puts分别用于写入单个字符和字符串;f_printf支持格式化输出,类似标准库printf。这些函数在_USE_STRFUNC为1或2时可用,其中_USE_STRFUNC=2时还提供换行符转换功能。文中详细说明了各函数的参数、返回值和使用条件,并提供了格式化输出的示例和常用格式说明符。这些函数为文件系统的字符串操作提供了便捷接口。

2025-08-08 09:56:15 393

原创 FATFS文件读写

FATFS是一个轻量级开源文件系统模块,适用于嵌入式设备存储管理。核心操作包括:f_mount注册工作区,f_open/f_close打开关闭文件,f_read/f_write读写数据,f_lseek移动文件指针。所有函数返回FR_OK(0)表示成功,否则返回错误代码。文件操作需遵循标准流程:先挂载工作区,再打开文件进行读写,最后关闭文件。相比标准C库,FATFS更注重嵌入式场景下的资源效率和错误处理,支持多种文件打开模式,并提供详细的错误返回值以帮助调试。

2025-08-08 09:33:19 688

原创 Vitis2025入门教程

本文详细介绍了Vitis 2025版本的工程创建流程。首先在Vivado中创建RTL工程,配置ZYNQ处理系统的UART、DDR等参数并导出硬件描述文件。随后在Vitis中新建平台组件,导入xsa文件后创建"Hello World"示例项目。重点说明了Vitis 2025与旧版的界面差异,包括项目创建路径、平台组件配置等新特性,并提供了完整的编译运行和调试方法。文中配有关键配置界面的截图,特别标注了ZYNQ-7020开发板的具体参数设置,为开发者顺利过渡到新版本提供实用指导。

2025-08-07 08:58:07 1103

原创 FPGA实战:用PL端串口发送Hello world

本文介绍了基于FPGA的UART串口发送模块实现,重点测试开发板向上位机发送"hello world"的功能。文章首先概述了UART协议的基本结构,包括起始位、数据位、校验位和停止位。随后详细讲解了Verilog代码实现:1)串口发送模块通过两个计数器控制波特率和数据位发送;2)波形生成模块处理字符串顺序并产生发送信号;3)顶层模块整合两个子模块。最后给出了开发板的引脚配置,包括50MHz系统时钟、低电平复位键和UART发送端口。该设计实现了FPGA通过USB转UART接口向上位机发送反

2025-08-07 08:38:30 1029

原创 FPGA学习的必经之路:跑马灯

本教程详细介绍了使用Vivado开发工具实现FPGA跑马灯效果的全过程。以正点原子领航者开发板为例,通过Verilog编程控制PL端LED灯交替闪烁。文章包含工程创建、模块定义、代码编写(含系统时钟计数和复位控制逻辑)、I/O引脚分配以及最终实现步骤。核心代码利用计数器实现0.5秒间隔的LED状态切换,通过系统时钟和复位信号触发控制。完成综合、实现、生成比特流后,最终在硬件上成功实现两个LED灯的交替闪烁效果。

2025-08-06 09:00:00 839

原创 Vivado初步教程实战:点亮LED灯,步骤清晰,必能跟下来

本文介绍了使用Xilinx Vivado工具进行FPGA开发的完整流程。以正点原子领航者开发板(ZYNQ-7020核心板)为例,详细说明了从工程创建到下载验证的每个步骤:1)创建新工程并设置参数;2)定义LED控制模块;3)进行RTL分析和引脚分配;4)完成综合、实现及比特流生成;5)通过JTAG下载验证功能。整个过程采用文字描述替代截图,简化了流程说明,特别适合初学者快速掌握Vivado开发的基本操作。最终实现按键控制LED灯的简单功能,验证了开发流程的正确性。

2025-08-06 08:30:00 781

原创 Verilog中的timescale指令详解

本文介绍了Verilog中的timescale指令,用于定义仿真时间单位和精度。该指令格式为timescale time_unit/time_precision,其中时间精度不能大于时间单位。文中通过示例说明不同模块的timescale设置会影响时延值的计算方式,仿真时所有模块会采用最小时延精度进行统一换算。同时指出并行子模块间的timescale互不影响,且时间精度设置会影响仿真效率,建议在满足需求情况下尽量设置较大的时间精度以减少仿真时间。

2025-08-05 08:45:00 443

原创 Verilog操作符详解

本文介绍了Verilog中表达式和操作符的使用方法。表达式由操作符和操作数构成,支持算术、关系、逻辑、按位等多种运算。文章详细讲解了9类操作符的语法规则和运算特性,包括算术运算符、关系运算符、逻辑运算符等,并特别说明了操作数类型、位宽处理以及X/Z值的特殊处理方式。通过多个代码示例展示了移位操作、拼接操作和条件表达式的具体应用,帮助读者理解Verilog中表达式运算的关键概念和使用技巧。

2025-08-05 08:30:00 673

原创 Verilog数据类型详解

本文摘要: Verilog HDL基础知识概述,重点介绍数值表示、数据类型和存储结构。数值输入支持四种进制和科学计数法,包含0、1、x、z四种逻辑值。数据类型分为线网(wire)和寄存器(reg),其中wire表示物理连线,reg作为存储单元。文章详细介绍了向量定义、位选择和拼接操作,以及整数、实数、时间等特殊数据类型的使用方法。同时阐述了数组和存储器的声明与赋值规则,包括多维数组的访问方式。此外,还介绍了常量的parameter声明和字符串的特殊处理方式。这些基础知识为Verilog硬件描述语言的应用提供

2025-08-04 09:00:00 683

原创 Modelsim入门教程

本文介绍了使用ModelSim进行Verilog项目开发的基本流程。首先讲解了新建项目、创建Verilog文件和测试文件的方法。接着演示了代码编辑步骤,包括调整缩进设置、编写简单的比较器模块和测试模块。然后详细说明了编译过程,展示了如何通过编译检查代码正确性。最后重点介绍了仿真操作,包括添加波形、设置仿真参数和运行仿真,验证了比较器模块的功能逻辑与预期一致。整个过程涵盖了从项目创建到功能验证的完整开发流程,适合初学者快速掌握ModelSim的基本使用方法。

2025-08-04 08:30:00 519

原创 根据Zenike多项式绘制光场的强度分布

泽尼克多项式可用于描述光学波前相位差,但人眼无法直接感知相位信息。本文通过模拟Zernike多项式(如Z7)对应的光强分布,展示像差的可视化效果。采用Python实现仿真过程:首先建立80×80mm传感器模型,设置15mm出瞳直径和632.8nm波长;然后构建包含Z7像差的复振幅分布;最后通过傅里叶变换获得焦平面光强图,呈现典型的y向慧差图案。该模拟方法通过fftshift和fft2函数实现,能有效展示光学系统中常见的像差现象,为理解Zernike多项式在实际应用中的表现提供了直观参考。

2025-07-24 08:53:28 498

原创 Vimba相机二次开发教程,基于Python

本文介绍了Vimba Python模块的安装和使用方法。安装需通过Vimba软件安装路径下的setup.py文件进行。使用示例展示了如何获取连接的相机、捕获图像帧,并将Frame对象转换为numpy数组或OpenCV图像格式。文章还演示了如何获取相机的工作参数,如设备温度、曝光时间和帧率,这些参数与Vimba软件中的All选项卡对应,采用大驼峰命名方式访问。文中提供了完整的代码示例,包括图像显示和参数获取的实际操作过程。

2025-07-24 08:28:54 782

原创 tkinter中的spinBox样式详解

Python Tkinter中的Spinbox组件是一个支持数字增减和列表选择的输入控件。本文演示了Spinbox的基本用法,包括设置数字范围(from_, to, increment参数)和列表选项(values参数)。同时介绍了Spinbox丰富的样式设置选项,如背景色、前景色、箭头样式、边框样式等,可以自定义控件外观。示例代码展示了如何创建基础Spinbox和设置不同样式参数,帮助开发者快速掌握该组件的使用方法。

2025-07-22 10:03:06 550

原创 根据梯度场重建曲面及其Python实现

本文提出了一种基于离散梯度场重建曲面z=f(x,y)的数值方法。通过矩阵积分和边界条件处理,将梯度场(Fx,Fy)转化为曲面函数。算法分为三步:梯度积分、求解边界项、矩阵重建,并给出了Python实现。测试结果表明,该方法能有效重建原始曲面,标准差在0.02-0.06之间。该方法适用于离散化矩阵表示的梯度场,通过矩阵运算求解边界条件项,最终实现对曲面的数值重建。

2025-07-21 10:32:45 695

原创 Autohotkey v2 入门教程

本文介绍了AutoHotkey(AHK)的基本使用,包括热键设置、热字串和按键重映射。主要内容有:1)安装AHK后创建简单脚本,通过Win+空格打开指定网址;2)热键的基本语法和常见修饰符说明;3)针对特定程序(如记事本)定制热键的方法;4)使用热字串实现文本自动替换;5)实战应用:在cmd中为Python导入语句设置快捷输入。通过几个具体示例,展示了AHK在自动化操作和提升效率方面的实用功能。

2025-07-21 08:15:55 1040

原创 用Autohotkey v2 获取窗口中控件的文本

本文介绍了使用AutoHotKey(AHK)获取软件控件数据的方法,适用于无法保存实时数据的软件。首先通过Window Spy工具定位目标窗口,使用#HotIf和WinActive语法锁定窗口。然后利用WinGetControls获取窗口内所有控件列表,并通过文件操作函数FileOpen将控件信息保存为文本。最后通过ControlGetText提取控件中的文本内容。该方法能有效解决无法导出数据的软件监控需求,尤其在WinForm程序中效果显著,实现了对窗口控件内容的完整获取流程。

2025-07-17 10:37:47 591

原创 WPF中ListView控件详解

摘要 ListView是WPF中功能强大的列表控件,支持数据绑定和自定义显示。通过ItemsSource属性可以快速绑定数据源,默认显示对象的ToString()结果。使用GridView可以实现表格布局,通过GridViewColumn定义列名和绑定属性,使数据整齐排列。ListView既支持简单列表也支持复杂的表格视图,是ListBox的升级版,能够灵活展示和编辑数据内容。

2025-07-15 11:17:54 694

原创 WPF中的ListBox详解

摘要:WPF中的ListBox控件可以包含多个ListBoxItem或其他控件,支持自动滚动条和样式定制。ListBoxItem可自定义外观(如颜色、图片)和内容(如嵌入复杂控件)。ListBox支持项目选中事件(SelectionChanged)和双击事件(MouseDoubleClick),并可通过代码动态添加/删除项目(Items.Add/Remove)。该控件既能作为简单选项列表,也能通过内容定制实现复杂交互界面。

2025-07-15 09:31:34 884

原创 simscape中刚性变换rigid transform详解

本文研究了多体动力学仿真中的Rigid Transform模块,通过底座和长杆模型演示了坐标变换规律。重点分析了平移和旋转变换:平移变换包括笛卡尔坐标、单轴和柱坐标三种方式,演示了物体间的相对位置变化;旋转变换包含六种方法,以单轴旋转为例,揭示了变换顺序对最终位置的影响。实验表明,平移和旋转的先后顺序不同会导致物体空间位置的显著差异,为理解复杂空间变换提供了直观参考。

2025-07-14 11:29:12 802

原创 simscape中坐标系和坐标变换Frames and Transforms

摘要:Simscape Multibody中的框架与变换模块提供了四种坐标系工具:世界坐标系(固定基准)、刚性变换(实现坐标转换,含6种旋转和3种平移方案)、参考坐标系(辅助定位)和变换传感器(测量坐标系间的相对运动参数)。刚性变换支持矩阵/四元数等多种转换方式,而变换传感器可输出旋转/平移等6类物理量。这些工具协同解决了多体系统中坐标系转换与运动测量的核心问题。(149字)

2025-07-14 10:39:31 773

原创 用Simulink创建一个撸管

本文是Matlab Simulink中Simscape Multibody模块的学习笔记,重点介绍了如何构建一个多体动力学模型。通过官方教程示例,作者逐步创建了四个刚性体(A、B、C、D),详细说明了坐标系变换设置和各部件的参数配置。其中,Body D被重点描述,包括其圆柱体尺寸、密度等参数设置,以及端口定义和子系统封装过程。完成后的模型可以模拟一个可运动的机械结构("可撸动的管子")。文章提供了完整的建模步骤和参数表,省略了教程中的PD控制器部分,专注于多体系统的基础构建方法。

2025-07-10 09:00:00 1391

原创 simscape中的关节(joints)介绍

本文介绍了Simscape Multibody中的多种关节类型,包括焊接、旋转、滑动、丝杠等16种关节,详细说明了每种关节的自由度(平移和旋转)和典型应用场景。通过立方体和长杆的连接实验,展示了六自由度关节、万向节和恒速关节的实际运动差异。文章还简要提及了杆件封装时的坐标变换注意事项,但由于视角限制,部分关节的运动特性可能无法完全显现。这些关节模型适用于机械臂、传动系统、精密平台等多种工程场景的仿真需求。

2025-07-10 08:46:59 1363

原创 万向节死锁公式推导

欧拉角的万向节死锁是指在特定旋转角度下自由度丢失的现象。当采用x→y→z旋转次序时,若中间旋转角β=90°,旋转矩阵中α和γ会简并成一个参数θ=γ-α,导致两个自由度合并为一个。此时旋转轴被限制在x=-z平面内,方向由k1=-k3和k2=(sinθ)/(1-cosθ)k3决定。这种现象使得系统丢失一个旋转自由度,影响控制精度,是欧拉角表示法的重要缺陷。

2025-07-09 08:56:48 645

原创 三种波前恢复模型:Hudgin, Friend, Southwell

摘要:本文介绍了三种波前斜率差分模型(Hudgin、Friend、Southwell)及其矩阵表示。通过微透镜阵列测量质心偏移计算波前斜率,推导了斜率与相位的关系。Hudgin模型假设子光束斜率相同,Friend模型将数据置于区域中央,Southwell模型则需对斜率取平均。最后给出了三种模型的矩阵形式和波前恢复表达式,其中涉及不同差分微元处理方式。这些方法为波前相位重构提供了理论基础。

2025-07-09 08:41:03 680

Python(Tkinter+matplotlib)实现光斑处理系统源代码

Python实现光斑处理系统源代码 通过将matplotlib嵌入到tkinter中,实现一个简单的光斑处理系统,除了matplotlib自带的功能按键之外,额外添加8个按钮,拟实现如下功能 1. 打开 打开一张新的光斑图片 2. 原图 显示当前的光斑图片 3. 切割 对当前光斑图片进行切割,以得到目标 4. 分布 显示当前光斑的分布情况 5. 拟合 对分布情况进行函数拟合,一般是高斯拟合y = a exp ⁡ ( − ( x − b ) 2 / c 2 ) ) 6. 批量 批量处理 7. 设置 一些全局性设置 8. 帮助 显示帮助文件 具体实现结果,可参考博客地址:https://tinycool.blog.csdn.net/article/details/135862828

2024-11-14

windows批处理数值计算实战

windows批处理数值计算实战,共提供8种功能: 1 2的n次方 2 二进制转换 3 最大公约数和最小公倍数 4 打印乘法表 5 打印幻方 6 查找勾股数 7 查找水仙花数 8 生成随机数 相关讲解的博客地址:https://tinycool.blog.csdn.net/article/details/132468913

2024-04-02

PyGame俄罗斯方块源代码

俄罗斯方块的逻辑很简单,就是几个方块组合在一起,然后下落,当其碰到四周的墙壁后便无法移动。若某行被方块所填满,那么就删除这一行,然后此行上面的所有方块下降一行。 为了将这个逻辑代码化,可以用布尔矩阵来表示具体的方块类型,比如长条形方块可用如下矩阵表示。里面包含两个矩阵,分别是横条和竖条,在实际实用中,通过按键可以旋转其状态。原理十分简单,但想要写出一个可以玩的游戏,却还需要注意一些细节问题。比如俄罗斯方块在碰到墙壁时的行为;旋转方块的方法。 博客地址:https://tinycool.blog.csdn.net/article/details/134902678

2023-12-09

go语言包管理测试代码

每个Go语言程序,都以package xxx开头,即申明本文件定义的所有函数、结构体,均从属于xxx包。当项目文件较多时,这种管理方式是所有编程语言的必然选择。相应地,通过import来调用包也是情理之中了,但低版本的Go语言很坑,并不支持import相对路径,故而本文对导入包的介绍,只在1.18以上的Go语言版本中有效。 博文地址:https://tinycool.blog.csdn.net/article/details/133766128

2023-10-11

C语言实现计算器源代码,支持四则混合运算以及三角函数

用纯C语言实现一个计算器,总共有三组源代码,循序渐进 1. 只支持加法和乘法的计算器 2. calc(丑陋的小程序)支持四则混合运算 3. 最终版,支持四则混合运算,以及一些自定义函数,比如绝对值 可执行文件a.exe是calc编译而成,用的是gcc编译器。 博客地址:https://tinycool.blog.csdn.net/article/details/111595416 部分运行结果 abs(3*5-4^2) abs(3*5-4^2)=1.000000 25-7+6*(4-5) 25-7+6*(4-5)=12.000000 sin(3.14) sin(3.14)=0.001593 sin(1.57)+cos(1.57) sin(1.57)+cos(1.57)=1.000796

2023-09-26

Python打造动态绘图系统

500行代码!非常适合新手入门的Python项目。 从0开始,基于tkinter和matplotlib,实现一个可以绘制动态三维图的绘图系统。支持图像风格定制,支持极坐标和三维坐标映射。 在readme文档中,记录了整个开发过程中的代码变化,保证基础薄弱的同学也能从头开始,按部就班地实现这个三维绘图软件。只要能够按照文档中所提示的那样,一步一个脚印地开发,那么可以在30个小时之内,从Python新手变成Python老手。 对应专栏地址:https://tinycool.blog.csdn.net/category_12435124.html 在专栏博客中,不仅记录了代码变化,而且对项目开发的每个阶段,均提供了完整的代码示例,更加适合学习。

2023-09-14

Python文件整理工具

我们的目的是做一个文件整理工具,前面两个输入框,用于输入源路径和目标就,下面的图片、视频、音乐表示在目标路径中创建的文件夹,后面的文件后缀,表示将这类文件移动到对应的文件夹中,加减号可以新增或删除文件夹。 两个文件分别是对话框按钮组件和文件整理组件的实现过程,文件整理组件中还定义了文件映射组件。在文件映射组件中,folder和ex分别是左右两个组件对应的可变文本,为了便于更新和调用,类中设计了两组、四对便携方法getFolder, setFolder和getEx和setEx。由于Folder中的内容就是文件夹本身,所以设置和读取方法仅仅是StringVar的二次封装,而ex中的内容则不然,需要对文本进行分割,并且实现字符串到列表的转换。 mvFile和setDst是组件的核心功能,分别用于设置目标路径并移动。之所以为目标文件夹设置安排了一个独立方法,是因为目标文件夹不一定存在,可能涉及到递归创建的过程。

2023-09-07

Tkinter+WordCloud做一个词云生成工具

Tkinter+WordCloud做一个词云生成工具。 需要安装模块wordcloud和jieba。 对应博客链接:https://tinycool.blog.csdn.net/article/details/132470515 自从做了热榜的词云之后,就越来越觉得词云的表达力真的很强,所以合计是不是可以为WordCloud做一个界面,来更加直观地操作。 既然以WordCloud为核心,那么界面的组件自然要和WordCloud的参数意义绑定,每个参数在界面中都对应一个提示组件,比如Lable,和一个输入组件,比如Entry。此外,这些参数都是可设的,那么在对应一个组件的同时,也应该对应一个StringVar。

2023-08-24

Blender绘制足球烯C60

通过简单的5个步骤,用Blender从头开始画一个足球烯C60 博客地址:https://tinycool.blog.csdn.net/article/details/131999824

2023-07-29

C语言实现二叉搜索树,可插入、删除搜索节点

C语言实现二叉搜索树,可插入、删除搜索节点,代码量只有100多行,注释详实,对萌新十分友好 博客地址:https://tinycool.blog.csdn.net/article/details/131423285

2023-06-27

WPF实战,实现一个txt阅读器,支持提取目录

博客地址: https://tinycool.blog.csdn.net/article/details/130967149 https://tinycool.blog.csdn.net/article/details/130969157 https://tinycool.blog.csdn.net/article/details/130977704

2023-06-01

用C#写的串口UDP转换工具

串口是设备和上位机通信的常用接口,UDP则是网络通信常用的通信协议。本代码实现的是通过将串口设备上传的指令,用UDP发送出去,或者将UDP传来的指令转发给串口设备,这个功能在工业领域非常常用。 开发过程写成了博客:https://tinycool.blog.csdn.net/article/details/129858681

2023-04-21

C# WinForm对话框示例程序

C# WinForm对话框示例程序,包括 - `MessageBox` 信息框 - `OpenFileDialog` 文件选择对话框 - `SaveFileDialog` 文件保存对话框 - `FolderBrowserDialog` 文件夹选择对话框 - `ColorDialog` 颜色对话框 - `FontDialog` 字体对话框 - `PrintDialog` 打印设置对话框 博客地址:https://tinycool.blog.csdn.net/article/details/130287086

2023-04-21

C#串口通信测试软件源代码

C#串口通信测试,内容简单,适合初学者 博客地址:https://tinycool.blog.csdn.net/article/details/129637911

2023-03-27

winform在窗口中拖动按钮

最简单的在窗口中拖动按钮的方法 博客地址:https://tinycool.blog.csdn.net/article/details/128832455

2023-02-01

Fourier级数和Taylor级数对原函数的逼近动画

通过Python+matplotlib,针对方波、三角波、锯齿波以及三角函数、指数函数,绘制了傅里叶级数和泰勒级数对原函数的逼近过程。 博客地址:https://tinycool.blog.csdn.net/article/details/120572487

2023-01-28

爱心源码-通过Python画一颗跳动的心

通过Python绘制一颗跳动的心 对应博客:用Python画一个跳动的心 博客地址:https://tinycool.blog.csdn.net/article/details/124855801

2022-12-11

纯Python实现遗传算法

GA的核心概念是种群,种群的关键是染色体,随着自然选择,染色体通过不断地复制、交叉、突变,完成一代又一代的进化,最终得到最优的结果。 具体编程时,染色体可用字符串或者二进制进行编码;自然选择,就是适应度函数;进化就是迭代。所以技术上的关键点,就是复制、交叉、突变等过程的函数实现。 博客:纯Python实现遗传算法 地址:https://tinycool.blog.csdn.net/article/details/128121243

2022-12-02

我的第一个WinForm程序,基础控件的使用

WinForm是一门非常经济实惠的技术,就是说,可以在短时间内学会,并迅速借此进行项目开发。尽管在很多方面不够现代,做出来的东西又Low又丑,但绝大多数的应用场景也不需要高端大气上档次。或许正是因为这种特点,WinForm在工控领域用得非常多,毕竟可以迅速实现某个小功能。 博客:WinForm,可能是Windows上手最快的图形框架了 地址:https://tinycool.blog.csdn.net/article/details/127932333

2022-11-24

鸡群算法之Python实现

通过Python实现鸡群算法,包括鸡类和鸡群类,提供了判据函数的接口。 博客【Python实现鸡群算法】 地址 https://tinycool.blog.csdn.net/article/details/127942327

2022-11-20

C#面向对象初步 源代码

C#面向对象学习的最短路径 博客【抽丝剥茧,C#面向对象快速上手】的源代码 地址:https://tinycool.blog.csdn.net/article/details/127911420

2022-11-17

超分辨网络SRCNN的Pytorch实现用到的T91数据集 搬运自网络,所以不需要积分

博客地址: 超分辨网络SRCNN的Pytorch实现 https://tinycool.blog.csdn.net/article/details/124581407#comments_23475484

2022-09-30

OpenGL 着色器初步,颜色变化的三角形

OpenGL 着色器初步,颜色变化的三角形 博客地址:https://tinycool.blog.csdn.net/article/details/124840050

2022-05-18

electron爬虫:定制CSDN App

electron爬虫:定制CSDN App 博客地址:https://tinycool.blog.csdn.net/article/details/124655279

2022-05-08

PCL环境配置以及测试案例,显示斯坦福兔子

PCL环境配置以及测试案例,显示斯坦福兔子 博客:PCL1.12安装+VS2019环境配置+测试程序:斯坦福兔子 博客地址:https://tinycool.blog.csdn.net/article/details/124599871

2022-05-05

electron做一个丐版浏览器,只有输入网址显示网页的功能,适合学习

electron做一个丐版浏览器,只有输入网址显示网页的功能,适合学习 博客:用electron做一个浏览器 博客地址:https://tinycool.blog.csdn.net/article/details/124565497

2022-05-04

Python动态绘图,包括椭圆、双曲线、抛物线、摆线、心形线等常见曲线的生成。

Python动态绘图,包括椭圆、双曲线、抛物线、摆线、心形线等常见曲线的生成。 博客:Python高级动态绘图系统:复杂曲线的轨迹演示 博客地址:https://tinycool.blog.csdn.net/article/details/124532129

2022-05-02

QT布局:实现动态布局

QT实现动态布局 博客:QT实现动态布局 地址:https://tinycool.blog.csdn.net/article/details/124525866

2022-05-01

从零开始,用electron做一个倒计时工具

从零开始,用electron做一个倒计时工具 博客:用electron做个五一倒计时 博客地址:https://tinycool.blog.csdn.net/article/details/124510990

2022-04-30

QT异步命令行,通过信号和槽进行响应

对应博客:QT异步命令行:信号和槽在QProcess中的应用 博文地址:https://blog.csdn.net/m0_37816922/article/details/124465039

2022-04-28

【C#】WPF 3D 选中并挪动几何体

通过快捷键新建几何体,通过鼠标选中并拖动几何体。 博客地址:https://tinycool.blog.csdn.net/article/details/124443939 博客标题:【C#】做一个超级乞丐版的我的世界(WPF 3D 选中并挪动几何体)

2022-04-27

Python动态绘制圆锥曲线,并封装成类

基于Python中的animation,封装成圆锥曲线的绘制类,根据圆锥曲线的参数方程,来快速绘制圆锥曲线的生成过程。 博客地址:https://tinycool.blog.csdn.net/article/details/124419074

2022-04-26

【QT】通过QProcess实现一个命令行

通过QT中的QProcess实现一个命令行,粗略版本 博客地址:https://tinycool.blog.csdn.net/article/details/124397664

2022-04-25

C++ QT调用外部程序(QProcess)

QT通过QProcess调用外部程序 博客地址:https://tinycool.blog.csdn.net/article/details/124359078

2022-04-23

WPF 3D 光线颜色(给地球点颜色看看)

WPF 3D 光线颜色调节 博客地址:https://tinycool.blog.csdn.net/article/details/124356858

2022-04-23

QT文件读写实战代码C++

QT文件读写实战的源代码 博客地址:https://tinycool.blog.csdn.net/article/details/124336122

2022-04-22

QT多线程实战源代码(QThread)

QT多线程实战源码,用到线程间通信等内容。 博客地址:https://tinycool.blog.csdn.net/article/details/124298084

2022-04-20

用C#搓一个地球(WPF 3D)

基于WPF的三维地球制作,用到三角面拼接、贴图、光效以及timer使之转动。 博客地址:https://tinycool.blog.csdn.net/article/details/124281244

2022-04-20

二次元老婆们的画廊WPF3D@VisualStudio

通过WPF的3D功能,制作一个照片墙 里面包含工程所需的所有文件 博客地址https://tinycool.blog.csdn.net/article/details/124235174

2022-04-17

WPF3D+鼠标控制相机视角+封装成类

WPF3D+鼠标控制相机视角+封装成类 博文地址:https://tinycool.blog.csdn.net/article/details/124196840

2022-04-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除