树莓派与Arduino选型指南:打破裸机/系统二分法

1. 二分法的由来:为什么它以前仍然有用

以前听人介绍树莓派和 Arduino,最省事的一句是:树莓派是跑系统的小电脑,Arduino 是跑裸机的小单片机。这句话在七八年前很好用,因为当时两个生态的旗舰产品正好分布在两个极端。但放到现在,照这个思路去选型,十有八九会在项目里翻车。我今天想聊的,就是这个“一个跑系统、一个跑裸机”的说法为什么过期,以及现在到底应该怎么选。

先说明白一件事:我并不是说“裸机”和“操作系统”这两个概念有问题。一个程序有没有操作系统参与调度,在工程上差别非常大。真正的问题是,人们把这两种运行方式分别贴到了两个具体品牌上,然后用品牌标签代替需求分析。树莓派生态里现在有不跑系统也能跑代码的 MCU 板子,Arduino 生态里也出现了能跑 RTOS、甚至接近“带系统”能力的多核开发板。边界被打穿以后,“选树莓派就是选系统、选 Arduino 就是选裸机”这套思路就失效了。

1.1 两类芯片的本质差异

先回到最基本的芯片差异。Arduino 经典的开发板用的是微控制器,也就是 MCU。这类芯片把处理器、内存、Flash 和一堆外设封装在一起,上电之后直接从内部 Flash 取指令执行。你写的程序通常是一个无限循环,CPU 一块一块地处理任务,没有进程概念,也没有任务调度器。这种运行方式被很多人叫做裸机,意思是“程序直接贴着硬件跑,中间没有操作系统隔一层”。

树莓派单板电脑用的则是应用级处理器,通常叫 MPU 或者应用处理器。它的内部结构更复杂,需要先加载引导程序,再把控制权交给操作系统内核。操作系统负责进程调度、内存管理、文件系统和驱动,你的 Python、C 或 Node.js 程序只是运行在这个系统上的一个进程。这个进程随时可能被系统切走,换别的任务执行,所以任务的响应时间是不确定的。

这两个模型的本质差异,在底层是真实且重要的。MCU 适合做响应时间要求高的控制任务,因为时钟中断一来,你可以直接跳进中断服务函数去处理;而带操作系统的设备适合做复杂业务,能同时跑网络服务、数据库和界面,不需要你去手动管理每个任务切换。理解到这一层,就不会单纯地认为“跑系统的就是高级,跑裸机的就是低级”。它们只是各自擅长不同的任务。

1.2 早期产品格局让标签成立

“树莓派跑系统、Arduino 跑裸机”这句话能被广泛接受,是因为早期产品形态实在太分明。树莓派刚出来时就是一台完整的小电脑,有 HDMI 输出、USB 口和网口,跑 Linux,能开桌面、装浏览器。Arduino 入门板则是一个单片机最小系统,没有屏幕、没有文件系统,烧录完程序后拔掉电脑也能独立运行,代码只有一个循环。两者摆在一起,差异显而易见,于是“一个跑系统,一个跑裸机”就成了最容易传达的入门概念。

问题在于,这个解释锁死的是当时的产品格局,而不是技术边界。近些年两个生态都在横向延伸:树莓派推出了集成单片机的产品线,比如 Pico 系列,那上面不跑 Linux,而是用 C/C++ 或 MicroPython 直接操作寄存器;Arduino 也不再局限于 8 位单片机,出现了 Cortex-M 系列、双核系列,甚至支持实时操作系统。也就是说,你现在不能再凭“品牌”推断“运行方式”,得看具体型号和芯片。

2. 边界正在消失:三种打破二分法的现实

2.1 树莓派阵营:MCU产品线不跑操作系统

树莓派 Pico 系列是一个很直观的例子。它用的处理器是双核 MCU,没有操作系统也能运行程序。你写一段 C 代码,直接操作片上寄存器,配置 GPIO、定时器、DMA,就能在几十微秒内响应外部信号。这本质上就是单片机开发,和传统 Ardui no 的“裸机”玩法非常接近。官方还提供了丰富的 SDK 和示例,很多人拿它做键盘、鼠标、传感器采集或者步进电机控制。

如果把 Pico 也和“树莓派跑系统”划等号,那就完全错了。Pico 没有 Linux 可跑,也没有进程调度,它的优势恰恰在于“没有系统”带来的确定性。你可以精确控制脉冲宽度,可以在定时中断里做采样,可以不担心文件系统被写入撑爆。这里透露出的趋势是:树莓派这个社区早就认识到,不是所有场景都需要操作系统,单片机产品线补上了实时控制这一块。

反过来看,树莓派单板电脑也不一定只能跑通用桌面系统。你可以通过内核级实时补丁、进程优先级调整,让某些任务获得更接近实时的响应;也可以把最紧急的任务全部放在外部 MCU,树莓派只做计算和展示。所以“树莓派=操作系统”这个标签本身没有错,但它只是描述了单板电脑系列,不是整个树莓派生态。

2.2 Arduino阵营:从裸机走向RTOS和多核心

Arduino 这个名字有两层含义:一层是硬件开发板,另一层是软件开发框架。当前者不断推新品、后者不断扩大兼容范围时,裸机就不再是唯一的选择。社区里有很多 Arduino 兼容板使用了更强大的 MCU,比如带浮点单元、带 DSP、带多个核的高性能芯片。这些板卡需要更复杂的外设处理,于是实时操作系统(RTOS)开始在 Arduino 生态里普及。

RTOS 和 Linux 这类通用系统不同,它本身很小,也属于“跑系统”,但调度方式更有确定性:实时任务可以指定优先级,系统保证高优先级任务优先执行。Arduino 代码在 RTOS 上仍然可以用类似pinMode、digitalWrite的 API 操作硬件,学习门槛并不高。这让 Arduino 从“裸机循环”迈进了“带实时内核”的阶段,却保留了原有开发体验。

还有一些 Arduino 家族的高性能开发板采用多核设计,一个核跑应用逻辑,另一个核专门处理实时外设和通信。这种结构比传统 8 位单片机复杂得多,已经很难用“裸机”两个字概括。你能说它是裸机吗?它有完整的调度程序;你能说它是通用系统吗?它又不像树莓派那样可以随意装软件。它就是两者之间的中间形态,而这个中间形态恰恰是当前物联网项目最常用到的东西。

2.3 开发框架的跨界让分类失去意义

更底层的一个事实是,Arduino 本质上是一套跨硬件开发框架。你写的代码可以被编译成不同芯片上的机器码,既可能跑在裸机 MCU 上,也可能跑在带某种实时内核的设备上。甚至树莓派单板电脑也能通过额外工具链运行 Arduino 风格的开发流程,把板卡当成一个大号单片机来用。这说明“Arduino”本身并不保证一种运行形态,它只是一个便捷的硬件抽象层。

反过来,树莓派官方大力推广的 C/C++ SDK 和 MicroPython,也模糊了“系统”和“裸机”的分界。你在树莓派单板电脑上写 Python,依赖的是操作系统;但你用底层 SDK 直接映射 GPIO 地址,注册中断回调处理信号,就会更接近裸机编程的思路。实际做项目时,更多地是混合使用:业务逻辑和网络服务放在系统上跑,底层控制函数放到单片机或实时内核上执行。

所以不要再说“选 Arduino 就是裸机、选树莓派就是系统”了。你真正需要思考的,是“哪些任务可以忍受延迟,哪些任务必须确定时间”,而不是“树莓派和 Arduino 哪个听起来更高端”。

3. 从需求倒推选型:别用标签决定方案

3.1 需要什么再选什么:六个关键维度

我习惯把选型拆成六个维度,每一个都会直接影响最终答案是偏向树莓派、偏向 Arduino,还是两者同时用。

算力维度最容易被感知。树莓派单板电脑有完整的内存、强大的 CPU 和图形能力,适合跑 Python、做图像处理、部署小型推理模型。Arduino 类 MCU 的算力资源非常有限,跑个浮点运算都要考虑效率。如果项目核心是传感器采集和控制,算力不值一提;如果要做边缘视觉,树莓派通常更合适。

实时性维度是区分二者的关键。操作系统的调度、内存管理、网络栈都会带来不确定的延迟,所以树莓派很难在微秒级精确输出 PWM 脉冲或响应外部中断。Arduino 类 MCU 用裸机或 RTOS,可以把任务优先级和响应时间控制得很精准。凡是要求“这个动作必须在固定时间内完成”的地方,优先考虑 MCU。

外设维度要看具体接口。Arduino 类板卡通常带着多个 ADC 输入、硬件定时器、PWM 通道和各类串行接口,可以直接连传感器、电机驱动器和编码器。树莓派单板电脑的 GPIO 数量有限,模拟输入通常要外扩,但它的 HDMI、USB、网口和摄像头接口非常标准化,适合接显示、键盘、存储和网络设备。

功耗维度在原型阶段不显眼,部署后却很容易变成硬约束。Arduino 类的单片机可以用电池供电,长时间待机只需要毫瓦级功率;树莓派单板电脑至少需要几瓦,还要配降压模块和散热。如果你做的是便携设备或野外长期监测,功耗会直接把方案推向 MCU。

开发成本维度要看团队基础。Arduino 的上手门槛低,代码简单,调试路径短,适合快速验证硬件逻辑;树莓派能复用大量开源软件,开发和迭代速度快,但系统环境、依赖库和网络配置都要额外维护。两者没有绝对优劣,只是学习曲线不同。

生命周期维度常被忽略。消费级开发板更新换代很快,某些型号可能几年后停产;而很多 MCU 型号因为用在工业产品上,生命周期非常长。如果项目要部署三年以上,选型时就要考虑后续买不买得到同样芯片、固件能不能长期维护。

3.2 一张决策表:什么时候选树莓派、选Arduino还是两个都要

下面这张表是我在项目评审时常用的简化判断。它不覆盖所有场景,但能帮你在第一轮快速筛掉显然不合理的方案。

需求特征更倾向 Arduino 类 MCU更倾向树莓派类单板电脑
需要复杂界面、网页、远程管理不合适很合适
需要本地 AI、图像处理不合适,除非极小模型合适
需要微秒级精确 IO 响应合适,用裸机或 RTOS需要外部 MCU 辅助
需要大量存储、数据库需要外扩 Flash/SD天然合适
电池供电、体积小、密封安装合适不推荐
快速实现互联网 API 对接要自己写协议栈通常更省事
长时间无人值守运行取决于外围电路需要额外处理断电和 SD 卡寿命

真正复杂的项目往往两个都要。一个常见分工是:树莓派负责网络、界面、日志和复杂计算,Arduino 类 MCU 负责传感器采样、电机控制和紧急保护。两者通过串口、I2C 或网络协议通信,形成一个“大脑加小脑”的组合。这种架构比单用树莓派硬扛实时控制,或者单用单片机硬堆业务功能,都要稳健得多。

4. 实战组合:三种典型的搭配方式

4.1 数据采集节点场景:Arduino负责实时采样,树莓派负责展示

第一个场景是环境监测。比如一个室内实验台要同时采集温湿度、多个气压传感器和门禁状态,数据要汇总到后台看趋势。如果把这些传感器全部接到树莓派 GPIO,系统一旦负载升高,采样周期就会波动;树莓派板载 ADC 精度也有限,普通传感器接上去容易读不准。

更好地做法是让 Arduino 类开发板做前端采集:把传感器挂在它的 I2C 或 SPI 总线上,用定时器中断固定频率采样,解析完数据后排成一行 JSON 或二进制帧,通过 USB 串口发给树莓派。树莓派收到数据后写入数据库,通过网页展示趋势和历史记录。这样做的好处是,采样周期和后台负载完全解耦。更新采集逻辑时只需要改单片机代码,不用重新部署树莓派环境。

这个场景里容易踩坑的是串口通信。单片机发送频率不能超过树莓派接收处理能力,否则缓冲区会溢出;设备断电重连后,树莓派上的串口设备路径可能变化,程序要做动态匹配。还有一个常见问题是电平:传感器模块和树莓派 GPIO 通常都是 3.3V,但某些 Arduino 板是 5V 逻辑电平,信号互联时需要考虑转换,别直接飞线。

4.2 运动控制场景:树莓派做“大脑”,单片机做“小脑”

第二个场景是步进电机或舵机控制。树莓派跑人机交互界面,负责路径规划、远程控制和逻辑判断;执行端用 Arduino 类 MCU 生成脉冲信号。为什么不直接用树莓派 GPIO 点脉冲?因为普通 Linux 系统里的进程调度和中断延迟会造成脉冲间隔不均匀,步进电机容易丢步或产生异常振动。稍微做过几个步进项目的人,都会很重视这个细节。

单片机端用硬件定时器产生固定频率的脉冲串,只接收树莓派发来的高层指令,比如“从当前位置移动到坐标 X”。树莓派把复杂路径拆成一系列小目标点,按自己的节奏发送给单片机。这样实时控制完全不受树莓派负载影响,即使树莓派正在做图像推理,电机仍能按最后收到的指令继续走。运动该有的滞后只取决于通信和执行周期,而不是操作系统的调度不确定性。

这里要注意两边的工作边界。树莓派只发高层指令,不要发每毫秒级别的微步指令,否则通信会成为瓶颈。单片机端要有目标位置校验和异常停机逻辑,比如在串口空闲超过设定时间时自动减速停车。电机驱动电路会产生很大的电流噪声,树莓派和单片机之间的信号线最好加光电隔离,否则电机启停瞬间很容易把逻辑电平打乱。

4.3 边缘识别场景:树莓派做视觉,Arduino做执行

第三个场景是简单的视觉分拣。树莓派接摄像头,运行目标检测模型,计算目标的位置偏移,然后通过串口发送“抓取”或“剔除”信号给 Arduino 控制的执行机构。这个场景看起来简单,背后依然有实时边界问题:如果树莓派直接用 GPIO 推一个电磁铁,模型推理耗时一旦波动,动作时刻就不够精确。

把动作执行放到 Arduino 上,树莓派只负责决策“是否触发”和“在哪个位置触发”。Arduino 收到信号后,以毫秒级精度驱动电磁铁或舵机。你还可以在 Arduino 端加超时保护:如果一秒钟内没有收到新指令,就自动复位到安全位置。这样即使树莓派程序崩溃,执行机构也不会一直夹着工件不放,对现场操作员来说更安全。

搭建时最容易出问题的是两边的波特率不匹配,或者树莓派连接多个串口设备后找错端口。我习惯在单片机端上电时打印启动标志,树莓派端先读取一次握手数据,再进入工作循环。指令协议一定要带帧头、长度和校验,哪怕只是简单的A5 01 55这种格式,也都比直接发裸文本可靠。大部分“偶尔不响应”的问题,最后都出在协议不完整或者电平不稳上。

5. 实操中容易忽略的坑与排查清单

5.1 供电和电平问题

“跑系统”和“跑裸机”的另一个重要差异是供电需求。树莓派单板电脑对电压波动很敏感,劣质电源会造成设备运行中重启、存储卡读写异常。单片机虽然供电要求宽松一些,但如果你直接用板载稳压器驱动电机或者排大量 LED,内部参考电压会被拉偏,ADC 读数就会漂移。稳妥的做法是逻辑供电和执行器供电分开:单片机用一个独立降压模块,执行器单独接电源,两边只在信号层接触。

电平不匹配是最常见的接线错误。同样是 Arduino,3.3V 版本和 5V 版本混用,或者树莓派 3.3V GPIO 直接连接 5V 模块,轻则读不到信号,重则损坏管脚。建议在连接之前把所有设备的工作电压列一张表,再判断要不要加电平转换芯片。特别注意 I2C 总线的上拉电阻,两边各接一组上拉,容易把总线电平拉到中间态,通信时好时坏。

5.2 启动顺序与断电恢复

树莓派从加电到系统可用通常要几十秒,Arduino 上电后几十毫秒就能运行。很多项目把两者接在一起时,默认树莓派是主控,却忘了树莓派还没起来时单片机已经开始工作,可能会误发指令或者提前触发动作。好的做法是让单片机在上电后进入“等待上位机握手”状态,收到有效指令后再进主循环;树莓派端程序启动后再主动发起握手信号。

断电恢复也不只是“重启之后能跑”。树莓派用 SD 卡存储时,频繁断电可能损坏文件系统,所以在部署阶段我会把系统改成只读模式,把日志写到内存盘,配置文件统一放到一个分区。单片机端则要关心配置数据写到 Flash 时被中断的场景,比如用双备份区域或者先写备份再切换,避免掉电后参数丢失。

5.3 通信协议上的防护

把树莓派和 Arduino 放一起,通信是避不开的一环。串口、I2C、SPI、网络各自有坑:串口要处理粘包、字节丢失和波特率误差;I2C 要担心总线锁死和地址冲突;网络方案要处理连接重连。我不建议在两边之间用一堆裸变量互相读写,最好定义一个简单的协议层,哪怕只是“帧头+长度+命令+数据+校验”,也能让问题明显减少。

调试时可以用逻辑分析仪抓波形,不要凭感觉猜。很多“偶尔不响应”的问题,其实都是波特率不匹配或者电平转换芯片的上拉电阻太弱。先在最短路径上用跳线做回环测试,确认通信没问题,再接入外设,能省下大量排查时间。另外,两边的发送频率要有节流机制,单片机端尽量只在数据变化时上报,避免一帧接一帧地淹没串口缓冲区。

6. 我现在的选型习惯

6.1 先划分“慢逻辑”和“快逻辑”

如果让我给最简化的原则,那就是把系统需求拆成慢逻辑和快逻辑。需要频繁和用户交互、跑复杂算法、处理大量数据、维护网页或数据库的,属于慢逻辑,通常放到树莓派这类操作系统设备上。需要精确控制时序、快速响应外部信号、保证动作时间确定性的,属于快逻辑,通常放到 Arduino 这类 MCU 上。两者之间用一条清晰的串口或网络链路做协议对接,而不是强行让一个设备承担所有工作。

这个划分对很多实际项目都适用。温度采集是一秒一次,慢逻辑;电机堵转保护需要在几微秒内反应,快逻辑。视觉识别需要几百毫秒推理,慢逻辑;电磁铁触发需要固定时间,快逻辑。只要把这两类任务分开,选型就不纠结。树莓派负责它擅长的业务计算,Arduino 负责它擅长的实时控制,谁都不用替代谁。

6.2 原型阶段如何快速验证

在原型阶段,我经常直接把树莓派和 Arduino 放在同一块面包板上,先用最简单的串口线连起来,跑通整个数据链路,再考虑以后要不要合并或替换。先用树莓派的 Python 快速验证界面逻辑,同时用 Arduino 验证传感器和电机控制,比一上来就选定最终芯片快很多。等原型稳定后,再把树莓派端的业务逻辑精简进性能足够的处理器,或者把 Arduino 端代码移植到更便宜、更容易大批量获得的芯片上。

有人会觉得这种“两个板子一起用”的方案成本高,但在项目早期,时间成本远比板卡成本重要。树莓派和 Arduino 合起来,能覆盖绝大多数项目的软硬件需求。等你把功能边界摸清楚,你就会知道真正需要的算力、接口数量和实时性是多少,到时再做削减也不迟。

回到标题那句话:一个跑系统、一个跑裸机,本身没有说错,但它只是技术上的简化描述,不是选型方法论。真正决定方案成败的,是搞清楚你的系统需要什么样的实时边界、算力边界和可靠边界。明白这一点之后,树莓派和 Arduino 怎么选,答案自然就出来了。

相关新闻

Linux显示驱动调试工具链:从DRM/KMS到PHY寄存器的全栈诊断

Linux显示驱动调试工具链:从DRM/KMS到PHY寄存器的全栈诊断

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 2:01:14 阅读更多 →
Unity代码热更新实战:ILRuntime集成Addressable的完整方案与避坑指南

Unity代码热更新实战:ILRuntime集成Addressable的完整方案与避坑指南

做Unity客户端这些年,只要是做手游的,基本绕不开热更新这个话题。资源热更还好说,AssetBundle或者Addressable都能解决,真正麻烦的是代码热更。以前用Lua,好是好,但团队要养Lua程序员,C#的代码也…

2026/10/20 2:00:13 阅读更多 →
MapReduce核心原理解析:从分而治之到Shuffle与优化实践

MapReduce核心原理解析:从分而治之到Shuffle与优化实践

1. 为什么先要有MapReduce:单机跑不动的那一刻我最早接触MapReduce是在某培训机构的课程笔记里(也就是标题里这个"学习历程"系列),前几章还在讲HDFS,讲数据怎么分块存储、怎么备份。当时我的感觉是&#xff…

2026/10/20 2:00:13 阅读更多 →

最新新闻

博途1500PLC字符串包含判断:FOR+MID滑动窗口实现详解

博途1500PLC字符串包含判断:FOR+MID滑动窗口实现详解

用博途1500PLC判断源字符串中是否含有子字符串,这个需求听起来简单,我第一次在现场做的时候也以为一条指令就完事了。那是条包装线的扫码工位,读码器通过Profinet把条码送进PLC,我需要在ABC240315001XYZ这样的字符串里判断有没有2…

2026/10/20 2:37:36 阅读更多 →
大模型Token计费全解析:从分词原理到成本优化实战

大模型Token计费全解析:从分词原理到成本优化实战

记得我刚接触大模型开发那会儿,最让我头疼的还真不是提示词怎么写,而是后台账单上的那一串token数字。明明感觉没聊几句,钱就悄悄没了,看计费详情时又一头雾水。后来自己跑接口做应用,才彻底搞明白Token到底是什么&…

2026/10/20 2:37:36 阅读更多 →
剪纸主题网页制作指南:HTML+CSS+JavaScript实现传统美学与交互设计

剪纸主题网页制作指南:HTML+CSS+JavaScript实现传统美学与交互设计

前两天有个同学跑过来问我,说期末作业想做“Web剪纸”主题的网页,不知道怎么把剪纸这种传统手艺和网页制作结合起来。我当时一听就觉得这个选题选得挺聪明的——剪纸是最有辨识度的中国民间视觉符号之一,红色、镂空、对称,任何一个…

2026/10/20 2:37:36 阅读更多 →
Ubuntu循环登录自救指南:从tty命令行到图形会话修复全流程

Ubuntu循环登录自救指南:从tty命令行到图形会话修复全流程

1. 循环登录的典型症状与背后机制1.1 症状什么样,怎么判断是不是它作为常年折腾桌面Linux的人,Ubuntu循环登录这五个字几乎每年都要见上几次。它不是某个品牌的独家问题,也不是Ubuntu 22.04才有的新毛病。我经手的案例里,从18.04到…

2026/10/20 2:37:36 阅读更多 →
文科生AI提效指南:从认知到实操的工作流全拆解

文科生AI提效指南:从认知到实操的工作流全拆解

“文科生的逆袭时代”,这句话这两年我听得太多了。每次和文科背景的同行、朋友聊起来,大家的核心焦虑其实特别一致:AI这么猛,是不是要把我们这些靠笔杆子、靠理解力、靠沟通吃饭的人给替代了?但我在实际接触和带团队的…

2026/10/20 2:37:36 阅读更多 →
Godot 2D游戏开发第5期:打通场景切换、敌人AI与UI音效的可玩闭环

Godot 2D游戏开发第5期:打通场景切换、敌人AI与UI音效的可玩闭环

做2D游戏做到第五期,最容易遇上的状态就是:玩家已经能跑能跳了,但游戏还不像游戏。前四期我们一路把角色动画、基础TileMap关卡、金币收集勉强拼了出来,可一旦想打通从"进入关卡"到"死亡重来"再到"结算展…

2026/10/20 2:36:35 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →