当前位置: 首页 > article >正文

在Adafruit Fruit Jam微控制器上移植运行经典游戏DOOM的完整指南

1. 项目概述当经典FPS遇上迷你计算机作为一名在嵌入式系统和复古计算领域折腾了十多年的老玩家我始终对“它能不能跑DOOM”这个梗抱有极大的热情。这不仅仅是一句玩笑更是对硬件性能和软件移植能力的终极试金石。最近Adafruit推出的Fruit Jam——这块基于RP2350RP2040的双核升级版的迷你计算机板卡成功通过了这项测试。将1993年发布的划时代第一人称射击游戏《DOOM》移植到这块比信用卡还小的板子上并让它流畅运行这本身就是一件极具魅力的事情。这个项目完美地诠释了嵌入式开发的乐趣在资源极其有限的微控制器上通过精巧的底层驱动适配、内存管理和性能优化让一个原本为IBM PC兼容机设计的复杂程序重获新生。对于开发者而言这是一个理解硬件抽象层HAL、实时系统以及图形渲染管线的绝佳案例对于复古游戏爱好者和硬件极客来说这则是一个能亲手搭建、并即刻获得成就感的有趣玩具。整个移植工作的核心在于利用RP2040/RP2350的双核ARM Cortex-M0处理器、丰富的PIO可编程IO状态机以及足够的RAM来模拟x86环境并处理DOOM引擎的逻辑与渲染任务。接下来我将带你从硬件准备、固件刷写到实际游玩和问题排查完整地走一遍在Adafruit Fruit Jam上运行DOOM的全过程。无论你是想复现这个经典项目还是借此深入了解RP2040生态的软硬件协同这篇文章都会提供详实的步骤和背后的原理分析。2. 硬件准备与核心组件解析在开始刷写固件之前我们需要准备好所有必要的硬件。这份清单不仅仅是购物车理解每个组件的作用能帮助你在出现问题时快速定位。2.1 核心硬件Adafruit Fruit Jam深度看Fruit Jam是本次项目的心脏。它本质上是一台高度集成化的迷你计算机核心是Raspberry Pi RP2350微控制器。你可以把它理解为RP2040的“Pro Max”版本依然是双核Cortex-M0但主频更高内存更大并集成了USB Host/Device控制器、QSPI闪存等外设。对于运行DOOM这类应用两个关键资源至关重要内存RAMDOOM引擎在初始化后需要将游戏资源WAD文件中的纹理、地图数据、声音样本等加载到内存中。RP2350充足的RAM是游戏能流畅运行而不频繁访问外部闪存的基础。如果内存不足你会遭遇严重的卡顿或直接无法加载。PIO可编程输入输出状态机这是RP2040系列的王牌功能。在本次移植中PIO很可能被用于实现高效的视频输出时序控制如生成HDMI所需的像素时钟和同步信号从而将CPU从繁重的底层IO时序管理中解放出来专注于游戏逻辑计算。注意请确保你拿到的是Fruit Jam而不是其他基于RP2040的板卡如Pico。固件是针对Fruit Jam的特定外设如音频编解码器、USB Host端口布局进行编译的直接混用可能导致功能异常或根本无法启动。2.2 外设全家桶构建完整的游戏站DOOM是一个需要交互和视听反馈的体验因此我们需要为其配上“五官”。显示设备你需要一个支持HDMI输入的显示器或电视。项目输出分辨率是320x400这是一个非常规的复古分辨率但绝大多数现代HDMI显示器都能很好地兼容和缩放。我实测从7寸便携屏到27寸的4K显示器都能正常显示。关键在于那根HDMI线建议使用Adafruit推荐的超薄短线或你手头质量可靠的短线长距离线缆可能因信号衰减导致显示不稳定。输入设备三选一或组合USB键盘鼠标这是最原汁原味的DOOM操控方式。键盘负责移动WASD和互动空格鼠标负责瞄准和射击。确保是标准的HID设备即插即用型的最好。USB游戏手柄对于追求客厅沙发体验的玩家一个类SNES布局的USB手柄是完美选择。手柄的映射已经集成在固件中提供了符合直觉的控制方案。重要限制Fruit Jam仅提供两个USB Host端口。这意味着你最多同时连接两个USB设备。常见的组合是“键盘鼠标”或“手柄键盘”。无法同时使用鼠标和手柄。音频输出Fruit Jam板载了一个音频编解码器芯片提供了两个输出选项3.5mm耳机接口连接耳机或外部有源音箱获得私密或高质量的音频体验。微型椭圆形扬声器触点板子正面有两个裸露的焊盘你可以焊接上随板附赠的无源微型扬声器。这是一种极具“极客感”的出声方式音量不大但别有趣味。音频自动检测固件会在启动时检测扬声器是否连接。如果连接了扬声器音频信号会从扬声器输出如果插入耳机则会自动切换到耳机输出并静音扬声器。这个设计很贴心。供电使用一根可靠的USB-C to USB-A数据线连接一个5V/2A或更高规格的电源适配器到Fruit Jam的USB-C电源口。虽然USB口也能供电但为了系统稳定尤其是当连接了多个USB外设时建议使用独立的电源适配器。2.3 软件准备获取正确的“游戏卡带”这个项目的软件以UF2文件格式分发。UF2是Microsft为微控制器开发的USB大容量存储设备刷写格式其最大优点是像拷贝文件一样简单。你需要从项目的GitHub Release页面下载两个特定的UF2文件doom1-whx-for-fruitjam.uf2这是主游戏固件包含了移植的DOOM引擎以及《DOOM》共享版第一章节的WAD数据。这个文件体积较大因为它内嵌了游戏资源。doom_tiny_usb.uf2这是一个精简的USB主机栈固件。它的作用是初始化和管理Fruit Jam上的USB端口让键盘、鼠标、手柄能够被正确识别。实操心得务必从官方指定的GitHub Release下载不要从其他来源获取或尝试使用为其他板卡编译的DOOM UF2文件。不同板卡的引脚定义、时钟配置和外设地址可能完全不同错误的固件会导致硬件不工作甚至损坏。3. 固件刷写与系统启动全流程有了硬件和软件接下来就是让Fruit Jam“吃下”DOOM的过程。这个过程看似简单但每一步都有其原理和需要注意的细节。3.1 进入Bootloader模式RP2040/RP2350芯片内置了一个通过USB管理的启动引导程序Bootloader。我们的目标就是让板子以USB存储设备通常名为RPI-RP2的形式出现在电脑上。标准操作步骤使用USB-C数据线将Fruit Jam连接到你的电脑。找到板载按钮Fruit Jam上有两个按钮。一个是RESET复位另一个是BOOT或BOOTSEL引导选择。通常BOOT按钮会用特殊颜色或标识注明。执行组合键按住BOOT按钮不松开然后短暂地按一下RESET按钮接着继续按住BOOT按钮大约1-2秒再松开。检查结果如果操作成功你的电脑文件管理器里会出现一个新的可移动磁盘名称类似RPI-RP2。这就意味着板子已经进入了UF2刷写模式。排查技巧如果磁盘没有出现首先检查USB线是否既能传输数据又能充电有些线仅能充电。尝试换一个USB口或另一条线。确保按按钮的顺序和时长正确是先长按BOOT再点按RESET而不是同时按下。驱动问题Windows极少情况下Windows可能无法自动识别该磁盘。你可以尝试打开“设备管理器”查看“通用串行总线控制器”或“磁盘驱动器”中是否有带感叹号的未知设备。通常让其自动联网搜索驱动即可解决。3.2 刷写UF2固件进入Bootloader模式后刷写过程就像在U盘间拷贝文件一样简单但顺序至关重要。必须遵循的刷写顺序首先刷写游戏主固件将之前下载的doom1-whx-for-fruitjam.uf2文件直接拖拽或复制到RPI-RP2磁盘的根目录下。一旦你开始复制板载的LED可能会开始闪烁表示正在写入。复制完成后磁盘会自动从电脑上弹出消失板子会进行第一次重启。等待并再次进入Bootloader第一次重启后你需要重复3.1的步骤再次让Fruit Jam进入Bootloader模式按住BOOT点按RESET。此时RPI-RP2磁盘会再次出现。接着刷写USB固件将第二个文件doom_tiny_usb.uf2拖拽或复制到再次出现的RPI-RP2磁盘根目录。复制完成后磁盘会再次自动弹出并重启。为什么是这个顺序这个顺序是开发者设计好的。首先刷入的主固件包含了游戏核心和基础框架但可能使用了一个功能完整的USB栈占用资源较多。第二次刷入的doom_tiny_usb.uf2实际上是一个“运行时”Runtime固件它会在系统启动时被加载并替换掉主固件中默认的USB驱动换成一个为DOOM优化过的、更节省资源的精简版USB主机驱动。这种“分阶段刷写”是RP2040生态中管理复杂外设驱动的一种巧妙方法。3.3 连接外设与首次启动在第二次重启之前请完成所有外设的连接将HDMI线连接至Fruit Jam和你的显示器。将USB键盘和鼠标或游戏手柄插入Fruit Jam的两个USB-A主机端口。连接音频设备要么插入耳机要么将微型扬声器焊接/连接到板子正面的音频焊盘上。最后使用5V电源适配器通过USB-C口给Fruit Jam上电或者如果之前通过电脑USB供电则确保连接正常。如果一切顺利你将看到显示器上出现DOOM经典的启动画面并听到那标志性的低沉轰鸣声。恭喜你移植成功了4. 游戏操控、音频设置与存档管理成功进入游戏只是开始如何顺畅地游玩并管理进度是接下来的重点。4.1 控制方案详解与适配固件支持多种输入方式但不支持设备热插拔。务必在通电启动前连接好所有输入设备。1. 键盘鼠标经典PC模式这是最精确的控制方式。默认键位与原始DOOM和大多数现代FPS游戏类似移动W前、A左平移、S后、D右平移。按住Shift方向键可以奔跑。转向除了用鼠标控制视角键盘的Q和E键也可以用于左右转向这在没有鼠标的早期版本中很常用。互动与射击空格键用于开门、使用物品鼠标左键开火。武器切换数字键1-7。或者用[和]键循环切换。2. USB游戏手柄客厅模式手柄映射经过了优化适合在大屏幕上游玩方向键D-Pad上/下控制前进后退左/右控制左右转向。肩键L1/R1分别控制左平移和右平移。这是手柄实现“平移”Strafe的关键对于躲避敌人攻击至关重要。功能键X键通常位于下方开火A或Y键互动/使用B键奔跑。选择/开始键循环切换武器。3. Fruit Jam板载按钮特殊功能在游戏启动时看到DOOM标题画面之前按住板子上的按钮可以调整音频按住按钮3启动禁用游戏背景音乐BGM只保留音效。按住按钮2启动禁用所有音频既无音乐也无音效。这个功能在你想安静游戏或测试时很有用。4.2 音频系统调整与优化由于RP2350需要同时处理游戏逻辑、图形渲染和音频合成CPU资源非常紧张。因此音频子系统是调整的重点。启动音量过高问题这是一个已知的、有意为之的设计。为了防止玩家在插入耳机时因音量过低而误以为音频故障初始音量设置得较高。你的第一个操作应该是进入游戏后按ESC键调出菜单选择Options-Sound Options然后调低Sound Volume和Music Volume的音量滑块。音频失真Bug第四关末尾这是当前固件一个比较严重的已知问题。在游戏第四关接近结束时音频输出可能会发生严重失真变成刺耳的噪音。解决方案是在进入第四关后定期通过游戏菜单保存进度Save Game。一旦出现音频失真立即重启Fruit Jam然后重新加载存档即可。根据社区分析这可能是由于特定关卡的音乐数据或音频缓冲区管理在长时间运行后出现了溢出错误。4.3 游戏存档的“正确”使用姿势存档功能是正常的但伴随一个关键的副作用Bug必须谨慎处理。存档操作流程游戏中按ESC进入菜单选择Save Game选择一个存档位保存。存档后USB输入设备键盘、鼠标、手柄会立即失效这是当前版本的一个固件级Bug。表现就是你无法再移动、开枪或操作菜单。此时不要惊慌也不要强行拔插USB设备。唯一正确的做法是直接按下Fruit Jam板上的RESET按钮或者断电重启。重启后游戏会重新开始。在标题画面选择Start然后进入菜单选择Load Game读取你刚才的存档即可继续游戏。背后的原因推测这个Bug很可能与doom_tiny_usb.uf2这个精简USB驱动有关。在游戏执行存档操作可能是进行了一次文件系统写操作时触发了USB主机控制器的某个异常状态或中断冲突导致USB栈挂起。重启则是对硬件和驱动状态的完全重置。重要提示鉴于这个Bug建议养成“频繁存档随时准备重启”的习惯。尤其是在挑战一个困难的房间或Boss前先存个档即使输入失灵了重启后也能立刻回到刚才的状态。5. 已知问题深度排查与优化建议任何移植项目都不可能完美尤其是将一个30年前的PC游戏搬到微控制器上。了解这些问题不仅能帮你规避麻烦也能更深入地理解嵌入式系统的局限性。5.1 显示与图形相关问题问题现象可能原因与解释应对策略状态栏底部生命值、弹药栏闪烁这是最普遍的图形瑕疵。原因是RP2350的CPU和GPUPIO模拟资源在渲染主3D视图和状态栏时存在资源竞争。主视图渲染优先级更高导致状态栏的更新帧率不稳定。这是正常现象非硬件故障。持续游玩一段时间后由于缓存和调度趋于稳定闪烁感会减轻。目前没有软件设置可以完全消除。通关数据统计界面不显示在完成一个关卡后原本应该显示杀敌数、耗时等数据的屏幕是黑屏或花屏。这也是渲染Bug。看到黑屏时直接按一下空格键或鼠标左键即可跳过该界面进入下一关。HDMI显示器显示“不支持”或黑屏1. HDMI线缆接触不良或故障。2. 显示器不兼容320x400这种低分辨率模式。3. 固件刷写不完整或错误。1. 更换HDMI线确保插紧。2. 尝试在显示器的OSD菜单中手动调整“输入信号”或“自动识别”模式。大多数现代显示器能兼容。3. 严格按照顺序重新刷写两个UF2文件。5.2 输入与操控相关问题问题现象可能原因与解释应对策略USB设备完全无反应1. 设备在启动后连接不支持热插拔。2. 使用了非标准或需要额外驱动的USB设备如某些游戏鼠标。3. 存档后触发了USB失效Bug。4.doom_tiny_usb.uf2文件刷写失败。1.务必在通电前连接设备。2. 更换为最普通的USB键盘和鼠标进行测试。3. 按RESET键重启。4. 重新进入Bootloader模式再次刷写doom_tiny_usb.uf2。手柄部分按键不响应手柄的映射是固定的可能不支持某些多功能手柄的所有按键。确认你使用的是标准的类SNES布局USB手柄。尝试使用键盘鼠标组合确认是否是游戏本身的问题。键盘键位无法修改此移植版不支持自定义键位。键位是硬编码在游戏引擎中的。适应默认键位。这是为了节省存储空间和简化配置逻辑所做的妥协。5.3 系统稳定性与性能优化帧率感受官方标称30-35 FPS这在第一人称射击游戏中属于基本可玩的范畴。实际体验中在敌人数量多的复杂场景帧率会下降。这是RP2350双核M0性能的客观上限。不要期待有PC上60帧的流畅度这种“勉强跑起来”的感觉正是复古硬件移植的魅力之一。发热问题RP2350在全速运行DOOM时会产生一定热量。Fruit Jam板设计有散热焊盘。如果感觉芯片区域较热属于正常现象。确保板子放置在通风处不要覆盖。电源稳定性如果出现随机重启或显示异常首先怀疑电源。请使用额定电流≥2A的5V电源适配器避免使用电脑USB口或劣质充电头供电尤其是在连接了多个USB外设时。6. 项目延伸思考与进阶玩法当你成功运行并通关了共享版的第一章节后可能会想还能做什么这里有一些进阶的方向。1. 尝试其他WAD文件高级操作有风险共享版doom1.wad只是开始。理论上你可以替换UF2文件中的WAD数据来运行《DOOM》的完整版Registered Version甚至其他基于DOOM引擎的模组如《The Ultimate DOOM》、《Final DOOM》或一些经典Mod。但这需要拥有合法的WAD文件。使用十六进制编辑器或自定义编译脚本将新的WAD数据替换到固件中并重新生成UF2文件。这涉及到逆向工程和重新编译需要对RP2040的存储布局和DOOM引擎有一定了解操作不当会导致游戏无法启动。2. 学习与修改源码这个项目是开源的。你可以去GitHub上找到RP2040-DOOM的源代码以及针对Fruit Jam的适配分支。通过阅读代码你可以了解如何将一个DOS时代的图形应用程序移植到无操作系统的裸机环境。学习RP2040 PIO用于视频生成的编程技巧。尝试修改代码比如调整分辨率会极大影响性能、修改键位、或者尝试修复音频失真Bug。3. 作为嵌入式系统教学案例对于学习者而言这个项目是一个丰富的宝藏实时系统看双核M0如何分配任务一核处理游戏逻辑和输入另一核协助渲染和音频。外设驱动研究USB Host、I2S音频、HDMI通过PIO的底层驱动实现。性能优化学习在256KB RAM和百兆赫兹主频的约束下如何通过裁剪、压缩和算法优化来运行一个“大型”软件。在Fruit Jam上运行DOOM远不止是“为了好玩”。它像一座桥梁连接了计算机历史的辉煌过去与嵌入式开发的灵动当下。每一次成功的启动都是对硬件极限的一次探索也是对经典代码生命力的一次致敬。这个过程里遇到的每一个问题和解法都是实实在在的嵌入式开发经验。

相关文章:

在Adafruit Fruit Jam微控制器上移植运行经典游戏DOOM的完整指南

1. 项目概述:当经典FPS遇上迷你计算机作为一名在嵌入式系统和复古计算领域折腾了十多年的老玩家,我始终对“它能不能跑DOOM?”这个梗抱有极大的热情。这不仅仅是一句玩笑,更是对硬件性能和软件移植能力的终极试金石。最近&#xf…...

顶伯 + 微软 TTS,3 分钟生成专业级解说配音

🎯 顶伯 微软 TTS,3 分钟生成专业级解说配音告别繁琐录音,用顶伯文字转语音工具快速打造高品质配音。✨ 一、为什么选择顶伯与微软 TTS 的组合?在视频制作、课程讲解或产品演示中,配音质量直接影响观众体验。 顶伯文字…...

支持 SSML 标签,让配音精准控制语调与重音

🎯 支持 SSML 标签,让配音精准控制语调与重音在文字转语音(TTS)应用中,机械感的读音往往缺乏情感。 顶伯文字转语音工具全面支持 SSML(语音合成标记语言) 标签,让您通过简单标记精准…...

G-Helper终极教程:华硕笔记本轻量级性能控制神器

G-Helper终极教程:华硕笔记本轻量级性能控制神器 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertb…...

2026年十大最佳地区搜索排名优化工具:权威榜单赋能企业高效增长

本文全面梳理了2026年十大主流地区搜索排名优化工具的核心功能与应用价值,旨在为本地企业提供客观、实用的选型参考。通过对各工具地域关键词布局、多平台同步能力及实时数据监控等关键模块的解析,结合具体参数指标与套餐定价,系统呈现不同场…...

Ubuntu中ping命令安装与网络诊断全攻略

1. 项目概述:一个看似简单却暗藏玄机的问题“如何在Ubuntu中安装ping”,这个标题乍一看,可能会让很多老手会心一笑,甚至觉得有些“小白”。但恰恰是这个看似基础到不能再基础的问题,却是我在多年运维和开发工作中&…...

py每日spider案例之某website之xin东方选课搜索接口(难度一般 扣取代码即可)

加密位置: 逆向接口参数: 逆向接口: const g = globalThis; g.window = g; g.self = g; g.location = {<...

【实用小程序】超轻量级文件上传下载中心 (File Download Server)

站内源码及jar包下载 一、项目概述 文件下载中心一个基于 Java 内置 HTTP 服务器(com.sun.net.httpserver)构建的轻量级文件管理服务。它零第三方依赖,单 JAR 包即可运行,适合在内网环境或临时场景中快速搭建文件共享站点。 你的团队需要临时共享一批日志文件或交付物,…...

5大核心模块彻底解决Windows更新故障:Reset-Windows-Update-Tool专业修复指南

5大核心模块彻底解决Windows更新故障&#xff1a;Reset-Windows-Update-Tool专业修复指南 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update…...

突破性开源Switch模拟器Ryujinx:零基础实现PC端任天堂游戏全兼容

突破性开源Switch模拟器Ryujinx&#xff1a;零基础实现PC端任天堂游戏全兼容 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想在电脑上体验《塞尔达传说&#xff1a;旷野之息》的冒险…...

golang如何实现分布式幂等方案_golang分布式幂等方案实现教程.txt

...

【PCL中Ptr释放问题 aligned_free 的2种解决方法】

PCL中Ptr释放问题 aligned_free解决方法1解决方法2解决方法1 添加avx指令&#xff0c;参考这篇博客https://blog.csdn.net/qq_60609496/article/details/123900817 解决方法2 我按照方法1尝试添加了avx或者sse等&#xff0c;都不行&#xff0c;我是要做一个静态库的时候链接…...

显存又爆了?移动云弹性KV缓存:让你告别“显存焦虑”

上下文越长&#xff0c;显存越吃紧对话轮次越多&#xff0c;延迟越明显并发量一高&#xff0c;服务就卡顿……随着AI大模型向超长上下文、高并发、多轮交互深度演进&#xff0c;AI推理所需缓存的内容呈指数级增长。显存容量的需求爆炸与显存采购的高昂成本&#xff0c;使得超长…...

基于STM32单片机人体健康检测血糖检测监测无线蓝牙APP设计S312

本系统由STM32F103C8T6单片机核心板、OLED屏、无线模块、血糖模拟检测、蜂鸣器报警、电源电路、按键电路组成。【1】液晶显示&#xff1a;OLED液晶显示心率值、心率上下限、血氧值、血氧阈值、血压值、血压阈值、血糖值、血糖上下限值以及心率血氧是否在采集测算中、当前数据是…...

用1.44寸ST7735 TFT屏DIY一个桌面天气站(附STM32/Arduino完整项目代码)

用1.44寸ST7735 TFT屏打造智能桌面天气站&#xff08;STM32/Arduino全流程实战&#xff09; 在创客圈里&#xff0c;能够实时显示天气信息的桌面小设备一直备受青睐。本文将带你从零开始&#xff0c;利用常见的1.44寸ST7735 TFT屏幕&#xff0c;构建一个功能完善的智能天气站。…...

【深度解析】Qwen 3.6 vs Gemma 4:本地大模型时代,如何选对“日常开发模型”

摘要&#xff1a; 开源权重模型正在快速逼近闭源模型能力边界。本文结合 Qwen 3.6 与 Gemma 4 的实际案例&#xff0c;从架构、上下文、显存、基准测试到落地场景&#xff0c;拆解本地大模型选型逻辑&#xff0c;并给出可直接运行的 Python 调用示例。 背景介绍 近两年&#xf…...

编写程序统计婚恋交友消费,相处长处度数据,分析理性婚恋模式,减少年轻人恋爱高频无谓消费。

构建一个婚恋交友消费与相处时长统计分析、理性婚恋模式识别的商务智能示例项目&#xff0c;去营销化、中立化&#xff0c;仅用于学习与工程实践参考。一、实际应用场景描述在当代年轻人的婚恋与社交生活中&#xff0c;存在一种普遍现象&#xff1a;- 约会高度依赖“消费型场景…...

【作品集】OpenClaw-AgentOps企业级多智能体贵金属交易分析平台

项目名称&#xff1a;OpenClaw-AgentOps 企业级多智能体贵金属交易分析平台 展示方式&#xff1a;保留原有项目架构图&#xff0c;同时加入系统真实页面切片&#xff0c;用“设计图 实物图”的方式完整展示项目。1. 项目一句话介绍OpenClaw-AgentOps 是一个面向贵金属交易研究…...

探索Mod Assistant:Beat Saber模组管理工具的高效解决方案

探索Mod Assistant&#xff1a;Beat Saber模组管理工具的高效解决方案 【免费下载链接】ModAssistant Simple Beat Saber Mod Installer 项目地址: https://gitcode.com/gh_mirrors/mo/ModAssistant Beat Saber模组管理工具Mod Assistant是一款专为PC版Beat Saber设计的…...

自学 Vibe Coding 这三个网站就够了!

背景 我之前想学 Vibe Coding&#xff0c;刷到各种"AI 编程神器"、"零基础用 AI 写代码"的文章&#xff0c;看得心潮澎湃。 结果一上手就懵了&#xff1a;装了插件、开了 AI、对着编辑器发呆&#xff0c;不知道下一步干嘛。 网上搜教程&#xff0c;要么…...

Node.js后端服务快速集成Taotoken,为应用注入大模型能力

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Node.js后端服务快速集成Taotoken&#xff0c;为应用注入大模型能力 为Node.js后端服务添加大模型能力&#xff0c;可以显著提升应…...

到底如何?大跨度“玻璃肋”幕墙,安全吗?

到底如何?大跨度“玻璃肋”幕墙,安全吗? 1 概述 自玻璃诞生之日起,这种无色透明的物质便与建筑结下了不解之缘。随着“苹果店”的火热,通透、纯净的全玻结构系统使玻璃的材料特性发挥到了极致。当我们乐见于越来越大的玻璃幅面、越来越高的幕墙跨度时,全玻结构所具有的…...

从零构建嵌入式菜单库(一):原型探索——从一段单函数代码开始

从零构建嵌入式菜单库&#xff08;一&#xff09;&#xff1a;原型探索——从一段单函数代码开始 系列定位&#xff1a;这是一套编写教程——我们将一起从零构建一个基于 U8g2 的嵌入式菜单库&#xff0c;分析每一步的设计决策、收益与代价。 最终产物&#xff1a;u8g2_menu&am…...

电气设备、工业炉行业企业官网模板资源整理

做工业类企业网站的开发和设计时&#xff0c;很多人都会遇到一个痛点&#xff1a;行业适配的官网模板太少&#xff0c;要么风格老旧&#xff0c;要么和电气设备、工业炉这类硬核行业的调性不符&#xff0c;从零开发又耗时耗力。 今天就结合自己的建站经验&#xff0c;给大家整…...

【197期】视频一键转图文笔记

这期分享一个自己一直在用的视频转图文笔记工具&#xff0c;把视频文件和对应的字幕文件拖进去&#xff0c;一键就能生成详细的图文笔记。目前自媒体平台上的文章基本都靠这个流程来出&#xff0c;不用另外再写一遍&#xff0c;效率高了很多。使用方式很简单&#xff0c;把视频…...

FPGA微振动视频欧拉放大测量【附程序】

✨ 长期致力于微振动测量、欧拉视频放大、频率估计、Gabor、FPGA研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;改进线性欧拉视频放大算法的FPGA流水…...

Motrix WebExtension:浏览器下载加速的终极解决方案

Motrix WebExtension&#xff1a;浏览器下载加速的终极解决方案 【免费下载链接】motrix-webextension A browser extension for the Motrix Download Manager and its forks 项目地址: https://gitcode.com/gh_mirrors/mo/motrix-webextension 在当今数字时代&#xff…...

扩展卡尔曼滤波锂电池SOC估算【附代码】

✨ 长期致力于锂离子电池、SOC估算、锂离子电池建模、EKF算法研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;二阶RC等效电路建模与温度自适应参数修正…...

基于ChatGPT与飞书开放平台构建企业级智能聊天机器人实践指南

1. 项目概述&#xff1a;当ChatGPT遇上飞书&#xff0c;打造你的专属智能工作伙伴 最近在折腾一个挺有意思的项目&#xff0c;叫“chatgpt-for-chatbot-feishu”。简单来说&#xff0c;这就是一个桥梁&#xff0c;一个能让OpenAI的ChatGPT模型&#xff0c;直接接入到飞书&…...

面向科学计算Agent的Harness数值稳定性校验

面向科学计算Agent的Harness数值稳定性校验关键词&#xff1a;科学计算Agent、Harness框架、数值稳定性校验、数值误差溯源、Agent-数值系统交互、可复现科学、边界条件自动化测试摘要&#xff1a;随着大语言模型&#xff08;LLM&#xff09;与多模态AI的崛起&#xff0c;科学计…...