Made with KiCad(141):我把流体模拟,做成了一张名片 “ 看到下面的视频演示,是不是有一种强烈的复刻冲动?”
Made with KiCad 系列将支持新的展示方式。直接将以下链接复制到浏览器中(或点击“阅读原文”):https://www.eda.cn/ecadViewer/viewerPage/?xmlId=37a22392-c647-4040-83e8-1eab63a2f587&fileZip=%2Fdata%2Fdesign%2Fdemo%2F37a22392-c647-4040-83e8-1eab63a2f587.zip即可动态查看设计的原理图、PCB、3D 及 BOM,查询设计中器件、走线、焊盘的属性详情。还可以在原理图中与AI小助手互动,帮您更高效地学习设计细节:


概览仓库包含 flip-card 项目的所有相关文件。这是一个可以运行流体隐式粒子(FLIP)模拟的名片项目。
PCB 设计文件位于 “kicad-pcb” 文件夹中。
flip-card 项目的灵感来源于 mitxela 的流体模拟吊坠项目:https://mitxela.com/projects/fluid-pendant
流体模拟的逻辑包含在一个独立的 crate (代码包) 中,位于 “fluid_sim_crate” 文件夹内。这部分是基于 Matthias Müller (https://github.com/matthias-research) 的工作,以及他在其 YouTube 频道 “Ten Minute Physics” 上的精彩演示。
项目中一个比较难实现的功能是可充电电池。我从 cnlohr 的 tiny touch lcd 项目https://github.com/cnlohr/ch32v003_3digit_lcd_usb/中找到了一个板边 USB-C 接口的设计方案。
“sim_display” 文件夹中也提供了一个 WASM 模拟器,我用它来调试模拟中出现的问题。
在 rp2350 芯片上运行的流体模拟实现代码位于 “flip-card_firmware” 文件夹中。

Rust 实现的二维流体仿真库fluid_sim_crate 文件夹中的代码实现了一种名为 FLIP (Fluid Implicit Particle) 的混合流体仿真算法。FLIP 算法结合了两种主要的流体仿真方法:
欧拉方法(Eulerian Method): 在一个固定的网格(Grid)上描述流体的属性,如速度、压力等。这在处理压力和不可压缩性时非常高效。
拉格朗日方法(Lagrangian Method): 通过追踪大量粒子(Particles)来描述流体的运动。这能非常有效地处理对流(advection)项,防止数值耗散,并能自然地追踪流体的表面。
FLIP 算法的核心思想是:用粒子来携带速度等信息并进行对流,然后将粒子的信息传递到网格上,在网格上求解压力和强制不可压缩性,最后再将网格上更新后的速度信息传递回粒子。这种结合方式取长补短,既能获得清晰的流体表面,又能高效地求解压力。
代码被封装在 FluidSimulation 模块中,主要包含了 FlipFluid 结构体(算法核心)和 Scene 结构体(用于管理和控制仿真)。
原理图 & PCB





LicenseMIT仓库 & 下载
可以在Github中获取开源仓库:
https://github.com/Nicholas-L-Johnson/flip-card
Baidu 下载:

注意:如果想第一时间收到 KiCad 内容推送,请点击下方的名片,按关注,再设为星标。
常用合集汇总:
全部0条评论
快来发表一下你的评论吧 !