2026年3月

情况略复杂...一直在纠结到底要不要去驾校,求大佬帮忙分析一下有没有这个必要性。

背景:
有海外汽车+摩托车驾照,但因为在国外没待够 90 天,在国内没法免试换证。国内目前只有摩托车证,日常够用,但没法合法开汽车。

因为未来 1-2 年内应该还有出国长居的机会,所以现在在纠结两个方案:
1.在国内直接报驾校增驾,找周围的驾校问了一下,差不多要花 3000 元和 1-2 个月时间。
2.过 1-2 年出国呆满 90 天之后回国再换,省钱省时间,但是这一年多在国内就开不了车了。

日常摩托车基本够用,但是还是有痛点:下雨,有大件物品要搬运,以及国内各种禁摩导致略有不便。
还有一点就是虽然有国际驾照了,但是还是手生,导致有时候出国玩虽然能开车但是也不太敢租车。

虽然说报不报是一件很主观的事情,影响因素很多,但是还是想听听大家的看法,感谢感谢。

大家好,我是良许。

虽然我现在是一名嵌入式程序员,但回想起大学和研究生阶段学习机械专业的那些年,机械结构设计和加工的知识依然历历在目。

今天想和大家聊聊这个话题,因为即便是做嵌入式开发,我们也经常需要和硬件工程师、结构工程师打交道,了解一些机械结构设计和加工的基础知识,对我们的工作也是很有帮助的。

1. 机械结构设计的基本概念

1.1 什么是机械结构设计

机械结构设计,简单来说,就是根据产品的功能需求,设计出能够实现这些功能的机械零件和组件,并将它们合理地组装在一起。

这个过程不仅要考虑产品的功能性,还要兼顾制造的可行性、成本控制、使用寿命等多个方面。

记得我刚毕业那会儿,虽然拿到的是机械研发的offer,但实际到公司后被调剂到了电子部门。

即便如此,我在做单片机开发时,经常需要和机械工程师沟通外壳设计、散热结构、安装方式等问题。

那时候我才深刻体会到,机械结构设计绝不是简单地画几个零件图那么简单,它需要综合考虑材料特性、加工工艺、装配关系、使用环境等诸多因素。

1.2 机械结构设计的基本原则

在机械结构设计中,有几个基本原则是必须遵循的。

首先是功能性原则,设计出来的结构必须能够满足产品的功能要求,这是最基本的。

其次是工艺性原则,设计的零件必须能够被加工出来,而且加工成本要在可接受的范围内。

再次是经济性原则,在满足功能的前提下,尽量降低材料成本和加工成本。

最后是可靠性原则,设计的结构要能够在规定的使用条件下稳定工作,具有足够的使用寿命。

举个例子,我在做汽车电子产品开发时,有一次需要设计一个控制器的外壳。

这个外壳不仅要保护内部的电路板,还要考虑散热问题、防水防尘问题、安装固定问题等。

我们最初的设计方案虽然功能上没问题,但结构工程师指出,按照那个设计,模具成本会非常高,而且装配起来也很麻烦。

后来经过多次讨论和优化,我们采用了分体式设计,既降低了模具成本,又方便了装配,这就是综合考虑各种因素的结果。

1.3 常用的设计工具

现代机械结构设计离不开CAD软件的帮助。

常用的三维设计软件包括SolidWorks、UG NX、CATIA、Pro/E等。

这些软件不仅可以进行三维建模,还可以进行装配仿真、运动仿真、有限元分析等,大大提高了设计效率和设计质量。

我在读研究生的时候,主要使用的是SolidWorks,这个软件相对来说比较容易上手,而且功能也很强大。

记得有一次做课程设计,需要设计一个减速器,我用SolidWorks建模后,通过装配仿真发现齿轮的啮合有干涉问题,及时进行了修改,避免了后续加工出来后才发现问题的尴尬。

2. 机械加工的基础知识

2.1 常见的机械加工方法

机械加工的方法有很多种,最常见的包括车削、铣削、钻削、磨削、刨削等。

每种加工方法都有其特点和适用范围。

车削主要用于加工回转体零件,比如轴类、盘类零件。

车床通过旋转工件,用车刀对工件进行切削加工。

铣削则是用旋转的铣刀对工件进行切削,可以加工平面、沟槽、齿轮等各种形状的表面。

钻削主要用于加工孔,通过旋转的钻头在工件上钻出所需的孔。

磨削是一种精密加工方法,可以获得很高的表面质量和尺寸精度。

我记得大学的时候,有一门课叫《金工实习》,我们在车间里亲手操作过这些机床。

那时候用车床车一个小锤子的手柄,虽然只是一个简单的圆柱体,但要把尺寸控制在公差范围内,还是需要一定技巧的。

通过那次实习,我对机械加工有了更直观的认识。

2.2 数控加工技术

随着科技的发展,数控加工技术已经成为现代机械加工的主流。

数控机床通过计算机程序控制刀具的运动轨迹,可以加工出形状复杂、精度要求高的零件。

常见的数控机床包括数控车床、数控铣床、加工中心等。

数控加工的编程通常使用G代码和M代码。

G代码主要用于控制刀具的运动,M代码主要用于控制机床的辅助功能。

虽然我现在做的是嵌入式开发,但数控编程和单片机编程在某些方面还是有相似之处的,都是通过代码来控制设备的动作。

举个简单的例子,如果要在数控铣床上加工一个矩形的轮廓,G代码可能是这样的:

G90 G54 G00 X0 Y0 Z10    ; 快速定位到起始点上方
G01 Z-5 F100              ; 下刀到加工深度
G01 X100 F200             ; 沿X轴正向移动100mm
G01 Y50                   ; 沿Y轴正向移动50mm
G01 X0                    ; 沿X轴负向移动回到起点
G01 Y0                    ; 沿Y轴负向移动回到起点
G00 Z10                   ; 抬刀
M30                       ; 程序结束

这段代码的逻辑和我们写单片机程序控制电机运动是类似的,只不过一个是控制机床的刀具,一个是控制电机的转动。

2.3 加工精度和表面质量

在机械加工中,精度和表面质量是两个非常重要的指标。

加工精度包括尺寸精度、形状精度和位置精度。

尺寸精度是指加工后零件的实际尺寸与设计尺寸的符合程度,形状精度是指加工表面的实际形状与理想形状的符合程度,位置精度是指零件上各表面之间的相互位置关系的准确程度。

表面质量主要指表面粗糙度,它直接影响零件的使用性能。

表面粗糙度通常用Ra值来表示,Ra值越小,表面越光滑。

不同的加工方法能够达到的表面粗糙度是不同的,比如粗车可以达到Ra = 12.5 \mum左右,精车可以达到Ra = 1.6 \mum左右,而磨削可以达到Ra = 0.4 \mum甚至更小。

在实际工作中,我们需要根据零件的使用要求来选择合适的加工方法和加工精度。

并不是精度越高越好,因为精度越高,加工成本也越高。

我在做汽车电子产品开发时,有些外壳零件对精度要求不高,采用注塑成型就可以了,而有些安装孔的位置精度要求很高,就需要在注塑后再进行机械加工。

3. 设计与加工的关系

3.1 面向制造的设计(DFM)

面向制造的设计,英文叫Design for Manufacturing,简称DFM,是一种设计理念,强调在设计阶段就要充分考虑制造的可行性和经济性。

一个好的设计,不仅要满足功能要求,还要便于制造、便于装配、便于检验。

在我的工作经历中,深刻体会到DFM的重要性。

记得有一次,我们设计了一个控制器的PCB板,需要安装在一个金属外壳里。

最初的设计方案是用螺钉固定,但结构工程师指出,按照那个设计,装配时需要同时对准多个螺钉孔,操作起来非常困难,而且容易出现螺钉孔对不准的情况。

后来我们改用卡扣式设计,不仅装配更方便,而且降低了成本,这就是DFM思想的体现。

3.2 公差配合的选择

公差配合是机械设计中一个非常重要的概念。

公差是指零件尺寸允许的变动量,配合是指孔和轴装配时的松紧程度。

根据配合的松紧程度,可以分为间隙配合、过盈配合和过渡配合。

间隙配合是指孔的尺寸总是大于轴的尺寸,装配后孔和轴之间有间隙,可以相对运动。

过盈配合是指轴的尺寸总是大于孔的尺寸,装配后孔和轴之间有过盈量,不能相对运动。

过渡配合介于两者之间,可能有间隙也可能有过盈。

在选择公差配合时,需要根据零件的功能要求和加工能力来综合考虑。

比如,轴承与轴的配合通常采用过渡配合或过盈配合,以保证轴承在轴上不会松动。

而导向销与导向孔的配合通常采用间隙配合,以保证能够顺利插入和拔出。

我在读研究生的时候,做过一个课题是设计一个小型减速器。

在设计齿轮轴与轴承的配合时,我查阅了大量的手册资料,最终选择了phi20H7k6的配合,这是一种常用的过渡配合,既能保证轴承在轴上不松动,又不会因为过盈量太大而难以装配。

3.3 材料的选择

材料的选择对零件的性能和加工工艺都有重要影响。

常用的机械材料包括钢、铸铁、铝合金、铜合金、塑料等。

不同的材料有不同的力学性能、物理性能和化学性能,也有不同的加工性能。

钢是应用最广泛的机械材料,具有强度高、韧性好、可焊接等优点。

根据含碳量的不同,钢可以分为低碳钢、中碳钢和高碳钢。低碳钢塑性好,易于加工,常用于制造冲压件、焊接件等。

中碳钢经过热处理后可以获得较高的强度和硬度,常用于制造轴类、齿轮等零件。

高碳钢硬度高,常用于制造刀具、弹簧等。

铸铁的强度和塑性不如钢,但铸造性能好,减震性能好,常用于制造机床床身、箱体等零件。铝合金密度小,耐腐蚀,常用于制造航空航天零件、汽车零件等。

塑料重量轻,绝缘性好,成型方便,在电子产品的外壳中应用非常广泛。

在我做嵌入式开发的过程中,经常需要选择外壳材料。

对于一些小型的消费电子产品,通常选择ABS塑料或PC塑料,这些材料不仅重量轻,而且可以通过注塑成型大批量生产,成本低。

而对于一些工业级的产品,可能需要选择铝合金或不锈钢,以满足更高的强度要求和环境适应性要求。

4. 典型零件的设计与加工

4.1 轴类零件

轴类零件是机械中最常见的零件之一,主要用于支承回转零件和传递运动和动力。

轴的设计需要考虑强度、刚度、耐磨性等因素。

在结构设计上,轴通常采用阶梯轴的形式,不同直径的轴段用于安装不同的零件,轴肩用于轴向定位。

轴类零件的加工主要采用车削加工。

对于大批量生产的轴,可以采用数控车床或自动车床加工,效率很高。

对于一些精度要求高的轴,在车削后还需要进行磨削加工。

轴上的键槽通常采用铣削加工,螺纹可以采用车削或滚压加工。

在设计轴类零件时,有一些经验规则可以参考。

比如,相邻两个轴段的直径差通常取5mm、10mm、15mm等,这样便于选用标准的轴承和密封件。

轴肩的高度通常取相邻轴段直径差的一半左右,过渡圆角半径取1~2mm,这样既能保证强度,又便于加工。

4.2 箱体类零件

箱体类零件是机械中用于支承和固定其他零件的基础件,比如减速器的箱体、发动机的缸体等。

箱体的设计需要考虑刚度、精度、工艺性等因素。

箱体通常采用铸造成型,然后进行机械加工。

箱体的加工比较复杂,通常需要多道工序。

首先是铸造毛坯,然后进行时效处理以消除内应力。接下来进行粗加工,加工出主要的平面和孔。

然后进行精加工,保证各个面和孔的精度。最后可能还需要进行表面处理,比如喷漆、电镀等。

在箱体的设计中,工艺性是一个非常重要的考虑因素。

比如,箱体通常设计成可以分为上下两部分,这样便于加工内部的孔和表面,也便于装配内部的零件。

箱体上的孔尽量设计在同一平面上,这样可以在一次装夹中完成加工,提高精度和效率。

4.3 齿轮类零件

齿轮是机械传动中最重要的零件之一,用于传递运动和动力。

齿轮的设计需要进行强度计算,包括齿面接触强度和齿根弯曲强度。

齿轮的参数包括模数、齿数、压力角、齿宽等,这些参数的选择需要根据传动要求和加工能力来确定。

齿轮的加工方法有很多种,常用的有滚齿、插齿、铣齿等。

滚齿是用滚刀在滚齿机上加工齿轮,效率高,精度也比较高,是应用最广泛的齿轮加工方法。

插齿是用插齿刀在插齿机上加工齿轮,适合加工内齿轮。

铣齿是用成形铣刀在铣床上加工齿轮,效率较低,但设备简单,适合单件小批量生产。

对于精度要求高的齿轮,在滚齿或插齿后还需要进行磨齿加工。

磨齿可以提高齿轮的精度和表面质量,减小传动噪声,延长使用寿命。

在汽车变速器中,齿轮通常都需要经过磨齿加工。

5. 现代制造技术的发展

5.1 增材制造(3D打印)

增材制造,也就是我们常说的3D打印,是近年来发展迅速的一种制造技术。

与传统的减材制造(通过切削去除材料)不同,增材制造是通过逐层堆积材料来制造零件。

增材制造的优点是可以制造形状非常复杂的零件,而且不需要模具,特别适合单件小批量生产和快速原型制造。

常见的增材制造技术包括熔融沉积成型(FDM)、选择性激光烧结(SLS)、立体光固化成型(SLA)等。FDM是最常见的3D打印技术,通过加热熔化塑料丝材,然后逐层堆积成型。

SLS是用激光烧结粉末材料,可以制造金属零件。

SLA是用紫外激光固化光敏树脂,可以获得很高的表面质量。

我在工作中也接触过3D打印技术。

有一次我们需要设计一个控制器的外壳,为了验证设计方案,我们用3D打印机打印了一个样品。

通过实物样品,我们发现了一些设计上的问题,比如有些地方的壁厚太薄,有些地方的结构不够合理。

及时进行了修改后,才开始制作注塑模具,避免了模具制作完成后才发现问题的风险。

5.2 智能制造

智能制造是制造业的发展方向,它是将信息技术、自动化技术、人工智能技术与制造技术深度融合,实现制造过程的智能化。

智能制造的核心是数字化、网络化、智能化。

在智能制造中,所有的设备都是联网的,可以实时采集和传输数据。

通过对这些数据的分析,可以实现设备的预测性维护,提高设备的利用率。

通过人工智能技术,可以实现生产过程的自动优化,提高产品质量和生产效率。

作为一名嵌入式程序员,我深刻感受到智能制造对嵌入式技术的需求。

在智能工厂中,每一台设备都需要嵌入式系统来控制,需要通过工业以太网或无线网络与上位机通信。

我们开发的嵌入式系统需要能够采集设备的运行数据,执行上位机下发的指令,实现设备的远程监控和控制。

比如,在一台数控机床上,嵌入式系统需要控制各个轴的运动,读取各种传感器的数据,与上位机通信接收加工程序。

这些功能的实现需要用到实时操作系统、通信协议、运动控制算法等技术。

下面是一个简化的示例代码,展示了如何在STM32上实现一个简单的步进电机控制:

#include "stm32f4xx_hal.h"

TIM_HandleTypeDef htim2;

// 初始化定时器用于产生步进脉冲
void StepMotor_Init(void)
{
    __HAL_RCC_TIM2_CLK_ENABLE();
    
    htim2.Instance = TIM2;
    htim2.Init.Prescaler = 84 - 1;  // 84MHz / 84 = 1MHz
    htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
    htim2.Init.Period = 1000 - 1;  // 1MHz / 1000 = 1kHz
    htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
    
    HAL_TIM_Base_Init(&htim2);
    HAL_TIM_Base_Start_IT(&htim2);
}

// 设置电机速度(通过改变定时器周期)
void StepMotor_SetSpeed(uint32_t speed)
{
    // speed单位为Hz,范围100-10000
    if(speed < 100) speed = 100;
    if(speed > 10000) speed = 10000;
    
    uint32_t period = 1000000 / speed - 1;
    __HAL_TIM_SET_AUTORELOAD(&htim2, period);
}

// 定时器中断回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    if(htim->Instance == TIM2)
    {
        // 产生一个步进脉冲
        HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_0);
    }
}

// 主函数
int main(void)
{
    HAL_Init();
    SystemClock_Config();
    
    // 初始化GPIO
    __HAL_RCC_GPIOA_CLK_ENABLE();
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    GPIO_InitStruct.Pin = GPIO_PIN_0;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    
    // 初始化步进电机
    StepMotor_Init();
    
    // 设置初始速度为1000Hz
    StepMotor_SetSpeed(1000);
    
    while(1)
    {
        // 主循环可以处理其他任务
        HAL_Delay(1000);
    }
}

这段代码展示了如何使用STM32的定时器来产生步进脉冲,控制步进电机的运动。

在实际的数控系统中,还需要实现更复杂的功能,比如多轴联动、加减速控制、位置反馈等,但基本原理是类似的。

5.3 精密加工技术

随着科技的发展,对零件精度的要求越来越高,精密加工和超精密加工技术得到了快速发展。

精密加工可以达到微米级的精度,超精密加工可以达到纳米级的精度。

精密加工技术包括精密车削、精密磨削、精密镗削等。

这些加工方法需要使用高精度的机床,严格控制加工条件,比如温度、振动、刀具磨损等。

超精密加工技术包括金刚石车削、超精密磨削、离子束加工等,主要用于光学零件、精密仪器零件等的加工。

在汽车电子领域,虽然大部分零件对精度要求不是特别高,但有些关键零件还是需要精密加工的。

比如,传感器的安装座,如果精度不够,会影响传感器的测量精度,进而影响整个系统的性能。

6. 总结

机械结构设计和加工是一个系统工程,涉及到设计、材料、工艺、设备等多个方面。

虽然我现在从事的是嵌入式开发工作,但机械专业的学习经历让我受益匪浅。

在实际工作中,软件和硬件、电子和机械往往是紧密结合的,了解机械结构设计和加工的知识,可以帮助我们更好地理解产品的整体设计,更好地与其他专业的工程师沟通协作。

对于正在学习机械专业的同学,我的建议是不仅要学好理论知识,还要多动手实践,多参加实习,积累实际经验。

同时,也要关注新技术的发展,比如增材制造、智能制造等,这些都是未来制造业的发展方向。

对于像我一样转行做嵌入式开发的朋友,也不要觉得之前学的机械知识没用了。

在很多应用领域,比如工业控制、机器人、汽车电子等,嵌入式系统都需要与机械系统紧密配合。

有机械背景的嵌入式工程师,在这些领域往往更有优势,因为我们既懂软件,又懂硬件,还懂机械,可以从系统的角度来思考和解决问题。

最后,无论是做机械设计还是做嵌入式开发,持续学习都是非常重要的。

技术在不断发展,我们的知识也需要不断更新。只有保持学习的热情,才能在这个快速变化的时代中保持竞争力。

更多编程学习资源

我一直是小米的用户,一直很好奇 oppo\vivo 这种手机到底是谁再买?
性价比太差了吧,宣传的时候都不敢放 soc 型号,难道不知道手机本质上是一台计算设备吗?
买手机,最主要的是看 cpu 和内存啊,当然还有显示屏。
简单来说,就是挑 soc,什么摄像头在整机中的价值其实不是很高,真的摄影还是需要专业设备。
系统底层都是一样,所谓优化其实都是很有限的。
目前来说,枭龙 8elite 的红米 k90 无疑是最有性价比的产品。

NEO Emacs

大家好,最近我正在推进一个极具野心的项目:Neomacshttps://github.com/eval-exec/neomacs/

Neomacs 的目标是重新思考和现代化 Emacs 的核心架构,在保持 100% Elisp 兼容性的前提下,让 Emacs 拥有现代编辑器的性能和体验。该项目探索用 Rust + GPU 渲染 + 新 VM 架构来重构 Emacs 的关键部分。

项目目标

Neomacs 的主要目标包括:

  • 前后端架构分离
  • 重新设计并实现 Emacs 编辑器相关的 C Core
  • 使用 Rust 重新设计并实现 Elisp VM ( NeoVM )
  • 使用 GPU ( Winit + WGPU )实现前端渲染
  • 提供 真正的 Elisp 多线程支持
  • 目标实现 10x 的 Elisp 性能提升
  • 跨平台支持:Linux macOS Windows Mobile ( Android / iOS ) WebAssembly
  • 提供 极速、流畅的编辑体验,以及更加丰富的视觉效果
  • 100% Elisp 兼容性:目标是让 MELPA 上所有包都能正常运行

当前进展

目前已经完成:

  • 使用 Rust 完全重写 Emacs 的 display engine
  • Linux 和 macOS 上已经可以编译运行
    Rust 前端 + Emacs C 后端 的 Neomacs
  • Elisp VM ( NeoVM ) 正在重新设计与实现中

未来将继续推进 VM 、架构解耦以及性能优化。


Github 仓库 README 里有一些介绍可以看看。

https://github.com/eval-exec/neomacs/

(如果你对 Neomacs 感兴趣, 帮忙点个 Star🌟 , 支持一下 Neomacs )

Make Emacs Great Again!

#opencode #claude code #codex #vibe coding #code #ai #dayflow #dia #browser

最近深度体验了一下 Codex 和 OpenCode,Claude Code 因为消耗 token 太猛就没怎么用。
我用的模型是 GPT Codex 5.3。

OpenCode

听说 OpenCode 和 OpenAI 有合作。

优点

  • 支持的供应商多,适合来回在多个模型之间切换。
  • 开源,不会被软件绑架。
  • 功能多,配置自由度高。
  • 官方文档详细。

缺点

  • 迭代频繁,bug 多。
  • 在某些情况会卡死(估计是内部 skills 之类的处理比较粗糙)。

Codex

优点

  • 目前 Codex 有两倍额度。
  • 便宜,甚至可以白嫖(指模型)。
    • 我记得需要准备美国家宽 IP,绑定美国信用卡,不过我失败了,只能靠万能的小黄鱼,6.88 拿下。

缺点

  • 不适合频繁切换模型,
    • 除非你自己写个脚本,绑定个命令,我是看阮一峰的周报学的。
  • 输出质量一般。

Claude Code

缺点

  • 同样不适合频繁切换模型,
    • 除非你自己写个脚本,绑定个命令,我是看阮一峰的周报学的。
  • 贵(指模型)。
  • token 消耗快(或许不一定算缺点)。
  • 有隐私方面的顾虑。

优点

  • 输出质量高。
  • 终端上的操作体验、提示都比 Codex 强。
  • 有插件市场。

杂谈

有人说

  • Claude Code 生成的代码太完美了,导致一旦 bug 产生就是灾难级的(原来“过于完美”也是问题)。相比之下,在 Codex 生成代码后再查漏补缺,可以减少灾难级 bug 诞生。
  • OpenCode 默认启用的功能多,第一次配置成本高。
  • 额度适中会逼你小步迭代、勤 review,额度太多会导致上下文腐烂、放飞自我。
  • Claude Code 适合推进主线,Codex 适合修 bug、做深度 review,于是就是:Claude Code 写项目,Codex check → fix bug → review。

发现

  • Dayflow :每秒截图一次,自动生成您一天的时间线,内置 AI 可以询问 / 总结(macOS 独占)。
    • 我记得微软推出过差不多的软件,因为隐私原因下架了,后来再推出也没啥反响。总之,有了它以后偶尔也能写一写日记了,虽然里面大部分是 AI 生成的 XD。
      这个软件可以搭配 Codex 或 Claude Code 使用。

感想

  • AI 的出现让我的心态发生了一些变化,我现在能离开手机,但离不开 AI。
  • AI 生成代码的速度太快了,长时间使用 AI 生成代码会削弱编程的“快感”,导致疲劳。
  • 长时间使用 AI 去做生成式的工作,会慢慢关闭自己的大脑。
  • 编程的重心应该放在如何使用 AI 工具、预测 AI 生成的结果、审查 AI 的生成结果。
  • 部分学习不再是线性的,“先用后学”是可行的。
  • 系统性了解 Agent 的演化和未来发展方向是有必要的。
  • vibe coding 想要用好,考验的是对工具能力边界的理解,以及与之协作的能力。


ps. 今天发现 Dia 浏览器的 AI 开始收费了 😢。

今晚突然心血来潮,想把自己常用的开源项目遇到的 BUG 修一下。

项目背景:

TrafficMonitor: https://github.com/zhongyang219/TrafficMonitor

Windows 平台的网速监控悬浮窗软件,C++/MFC 开发。用了挺久了,原作者更新频率较低,积累了不少未修复的 BUG 。

于是开始干活:

  1. 搭建开发环境( VS 2022 + MSBuild )
  2. 定位问题、修复代码
  3. 编译构建、人工测试验证

整个过程花了 2 个多小时,终于把 BUG 解决了。

不得不说,AI 辅助编程真的太香了。从环境配置、代码分析、定位问题到生成修复方案,全程高效推进。
这搁以前,光是熟悉代码库、找 BUG 位置就得花大半天,再加上我本身不会 C++。

自己遇到的 BUG 被解决了的这种感觉,整个人都通畅了。

图像生成可能最新的 banana2 有点用,但是我一般用不上

视频生成现在 seedance 断档领先

编程能力,opus4.6 和 codex 都挺好

文案?这个似乎没有一个客观的参照标准,半斤八两

写文案、发平台内容、准备作业或提交表单时,很多人都会遇到“字数不确定”的问题:担心超出限制,或者内容太短不达标。为了解决这个高频小需求,我用 Vue 3(Nuxt 3) 做了一个文本字符数统计在线工具,打开网页就能直接用。

在线工具网址:https://see-tool.com/text-character-count
工具截图:

这个工具适合普通用户的日常场景:

  • 写公众号、小红书、知乎等平台内容,先看字数是否在要求范围内
  • 准备简历、自我介绍、申请说明时,控制内容长度
  • 学生写作文、读后感、课程作业时快速核对字数
  • 运营同学编辑活动文案、商品描述时避免超限

使用方法很简单:

  1. 把需要统计的文本粘贴到输入框。
  2. 页面会实时显示总字符数、中文字符数、英文字符数、数字和空格数量。
  3. 根据目标平台限制,继续增删内容直到合适。
  4. 完成后一键复制,直接去发布或提交。

我在设计这个工具时,重点做了“即时反馈”和“零学习成本”:你不需要安装软件,也不用登录账号;手机和电脑都能使用。文本统计过程在浏览器本地完成,不需要把内容上传到服务器,隐私更安心。

如果你经常写内容、填表单或做文字整理,这个小工具可以帮你省下反复试错的时间,让字数控制更准确、更轻松。

写文案、发平台内容、准备作业或提交表单时,很多人都会遇到“字数不确定”的问题:担心超出限制,或者内容太短不达标。为了解决这个高频小需求,我用 Vue 3(Nuxt 3) 做了一个文本字符数统计在线工具,打开网页就能直接用。

在线工具网址:https://see-tool.com/text-character-count
工具截图:

这个工具适合普通用户的日常场景:

  • 写公众号、小红书、知乎等平台内容,先看字数是否在要求范围内
  • 准备简历、自我介绍、申请说明时,控制内容长度
  • 学生写作文、读后感、课程作业时快速核对字数
  • 运营同学编辑活动文案、商品描述时避免超限

使用方法很简单:

  1. 把需要统计的文本粘贴到输入框。
  2. 页面会实时显示总字符数、中文字符数、英文字符数、数字和空格数量。
  3. 根据目标平台限制,继续增删内容直到合适。
  4. 完成后一键复制,直接去发布或提交。

我在设计这个工具时,重点做了“即时反馈”和“零学习成本”:你不需要安装软件,也不用登录账号;手机和电脑都能使用。文本统计过程在浏览器本地完成,不需要把内容上传到服务器,隐私更安心。

如果你经常写内容、填表单或做文字整理,这个小工具可以帮你省下反复试错的时间,让字数控制更准确、更轻松。

最近半年,国内各大 AI 平台纷纷推出了 Coding Plan 编程订阅套餐。只要按月付费,就能在 Claude Code、Cursor、Cline 等主流编程工具里直接用国产大模型,不用再按 token 算钱了。
但问题来了——智谱 GLM、MiniMax、Kimi、火山引擎方舟、阿里云百炼,5 家平台各有各的定价和玩法,套餐名字也五花八门,选起来真的头大。
我花了点时间把这几家的套餐信息整理到了一个对比网站上:codingplan.org,方便大家一目了然地做选择。

简单说几个结论

入门体验的话,MiniMax Starter 只要 ¥29/月,是目前最便宜的月付方案。如果想更低成本试水,火山引擎和阿里云百炼都有首月特惠,最低 ¥7.9 就能用一个月。
模型丰富度方面,火山引擎方舟支持 6 款模型自由切换(豆包、DeepSeek、Kimi、GLM 都有),还有 Auto 模式自动调度,适合想多试几个模型的同学。
智谱 GLM 的亮点是免费送 MCP 工具(视觉理解、联网搜索、网页读取),GLM-5 在 SWE-bench Verified 上也排进了第一梯队。
追求推理速度的话,MiniMax 极速版能跑到 100+ TPS,体感非常快。
Kimi 的 Code Plan 除了编程额度,还附带 Kimi 会员权益(AI 建站、AI 文档等),适合 Kimi 生态的深度用户。

各平台入门价一览

平台入门价首月特惠核心模型链接
智谱 GLM¥49/月GLM-5, GLM-4.7, GLM-4.6https://codingplan.org/plans/zhipu
MiniMax¥29/月M2.5, M2.5-highspeedhttps://codingplan.org/plans/minimax
Kimi¥49/月Kimi K2.5https://codingplan.org/plans/kimi
火山引擎方舟¥40/月¥8.91豆包 · DeepSeek · Kimi · GLM 等https://codingplan.org/plans/volcengine
阿里云百炼¥40/月¥7.9千问系列 + GLM + Kimihttps://codingplan.org/plans/aliyun

更详细的套餐档位、用量限制、支持工具列表,可以到 codingplan.org 查看完整对比。

几点提醒

编程工具里一次提问通常会触发多次模型调用(5-30 次),所以实际可用次数比你想的要少,别被数字迷惑。
大部分平台用的是滚动 5 小时窗口限额,额度会自动恢复,不用等固定时间重置。
建议从低档套餐开始试,大部分平台不支持退款。
如果你也在纠结选哪家,去 codingplan.org 看看,应该能帮你省不少比较的时间。有信息过期或者遗漏的地方,也欢迎评论反馈。

花了几天时间搭建了一套高度可定制化的 AI 信息推送系统——AI Daily

  • 不想错过重要信息? 它可以及时推送,比如重大模型发布
  • 想要定时汇总?它可以设定定时任务
  • 信息渠道太少了?可以随意按照自己的喜好增加信息源
  • 想要手机端通知?它支持 webhook 推送(目前已加入飞书和 Discord 的支持)

这是我自己的飞书截图:

3.4 夜里(即时推送):

ai-daily-03-04-notify

3.4 晨报:

ai-daily-push-03-04

如果你对这个项目感兴趣,欢迎 Star

本来不想发这种帖子,但这次用 ZenMux 的经历,确实把我恶心到了。(文笔不好,自己写完用 gpt 整理了一下)

最早是在 X 上看到很多 ZenMux 的推广,再加上他们当时在推免费试用 Claude Code ,我就去试了下。我只开了一个 chat ,写了一个 prompt ,用的是 opus 。结果一次长回复还没传完,5 小时额度就直接没了。

当时我就觉得可能免费额度低,但想着现在支持订阅制的第三方 AI 平台本来就不多,还是硬着头皮订了个 Pro 试试看。

结果刚付完钱,我就发现自己的 Pro plan 周额度直接没了 10%。

对,刚订阅,先扣 10%。这体验真的很魔幻。我第一反应是系统出 bug 了,于是去找客服,然后发现根本没有正常意义上的客服,只能发邮件到 support 。问题是邮件发出去以后,两天没人回。

后来我又去官方 Discord 问,先在反馈区发,还是没人理。又过了一天,我直接去私聊群里那个会回答问题的官方人员,对方才说“帮你确认一下”。然后就是经典流程:你问一句,对面相隔几个小时,甚至第二天才回一句,根本没法正常沟通。注意,这还是在私聊的情况下。

再后来,我在 opencode 里又遇到一个 bug ,已经影响正常使用了,只能继续追着问。Discord 那边还是拖着,我又去加了他们官方微信群。进群以后发现也差不多:官方群看起来挺热闹,但官方基本不处理售后,回复慢,而且会选择性回复问题。大多数时候只是大家自己讨论,你真有问题,只能不停 at 、私聊、碰运气。

最后总算确认:是 ZenMux 平台自己的 bug 。

到这里我已经没什么耐心了。产品有 bug ,售后没人管,沟通效率低得离谱,我就提出退款。结果对方说可以退,但要先扣掉“实际 cost”。问题是那时候我账上的 cost 已经快 20 刀了,基本等于订阅费本身,等于也没什么可退的。

更离谱的是,后来我回头查免费试用时那次 opus 请求,发现它实际 cost 才 0.8 刀,但却占了我 10% 的周额度。

这事我怎么想都不合理。更关键的是,在我当时遇到问题、去追问的时候,他们对额度计算的说法基本就是黑箱。用户能看到 cost ,也能看到百分比占用,但到底一次请求的 cost 是怎么映射成周额度占用的,官方不肯给出明确、可验证的计算方式。

后面我才慢慢看明白,大概率是这样:

免费计划本来只有 5 flow / 5 小时,我那时把免费额度跑满了,于是它在 free plan 里显示占用了 10% 周额度;但我一旦订阅了 20 刀的 Pro plan ,这个 10% 占用居然直接继承到了 Pro plan 里。问题就在于,Pro plan 的周额度更高,free plan 的那 10% 一带过来,就等于那区区 5 flow 被按放大后的占比直接算进了付费套餐。

说白了就是:免费试用的占用,被原样带进了付费订阅。

这不是 bug 是什么?

但官方负责人的态度非常统一:系统不会错,后台记录就是对的,不能给你具体计算方法;中间有动态调整,但怎么调整不能告诉你。你觉得不合理也没意义,因为“系统一定是对的”。

这种回应最恶心的地方不只是黑箱,而是那种理直气壮的黑箱:
我不解释,我也不给数据,你质疑也没用,反正系统不会错。

而且在沟通过程里,对方还会故意曲解你的意思,不正面回答你提出的数据和逻辑,只重复几句“系统没问题”“不想争论”。后来群里因为这些问题争起来了,我再次提出 0.8 刀却占 10% 周额度的事,对方还是那套说辞。最后我 at 了他们团队里大部分人,希望至少有人能站出来把账说清楚,结果又冒出来一个“负责人”,说什么大家理念不同,不再解释,让我不要再浪费公共资源。

我说我是消费者,连知情权都没有吗?

然后,我就被第一个负责人直接踢出群了。

整个过程下来,我对 ZenMux 的结论很简单。

第一,它的额度体系非常黑箱。你能看到 cost ,但额度占用怎么算,官方不愿透明解释;而且我遇到问题那会儿,公开文档里也没有把这套换算规则讲明白,后面才慢慢补。
第二,它的售后几乎等于没有。邮件不回,Discord 慢回,微信群选择性回复,出了问题你只能自己追着跑。
第三,它的产品完成度很低。除了订阅,很多基础操作都做不了,连用户信息都没法好好改,支付方式也不能解绑;有用户想换支付方式,官方给出的建议居然是“先取消订阅,再重新订阅”。
第四,它的使用体验远没有宣传里那么美好。订阅第一周,额度就被暗地里大幅下调。按我自己当时记录对比,原本 20 刀 plan 给到的实际价值更高,后面很快就缩水了,而且没有明确说明。
第五,它那个 5 小时额度也很离谱。后面 5 小时窗口能用的东西非常少,opus 稍微跑个任务,一次就可能直接打满,甚至回复都传不完。这已经不是“性价比一般”,是根本没法正常用(以我 20 刀 plan 的计划)。
第六,平台本身还有参数映射这类问题。我在 opencode 里把 codex 的 thinking level 设成 high ,结果平台报错却说我设成了 minimal ,后来确认并修好了,说明问题确实在 ZenMux 这边。那这就引出一个更可怕的问题:这次是报错了我才发现,如果它没报错,只是悄悄给我映射错了呢?别的模型、别的参数,谁知道还有没有类似问题没人发现?

说到底,我不是不能接受平台早期有 bug ,也不是不能接受额度会调整。
我不能接受的是:产品不成熟,售后没人管,规则不透明,出了问题还一副“系统永远正确,用户没资格追问”的态度。

如果你只是想随便试试,可能还能忍。
但如果你真打算长期订阅、当生产力工具用,那我建议你谨慎一点。

至少我这次踩下来,感受到的不是“开发者友好”,而是:
先把钱收了,至于你后面遇到什么问题、额度怎么算、售后有没有人管,那都看缘分。

当时现场交警看了视频后认定对方负全责。但他不服,就去了交警大队申请复核。第一次复核结果还是判他全责,他仍然不服;第二次复核时,最开始交警也还是判他全责,但他提出说是我们双方同时变道才导致碰撞。

他的主要观点是:在碰撞前后我的车有压线的情况。后来交警又调取了道路监控,不过在两车发生碰撞的瞬间,我的车刚好被一辆公交车挡住了,所以监控没有完整拍到那一刻。

下面是相关视频:视频开始时前面的车是我的车,这段是对方前车行车记录仪拍到的画面。

https://www.bilibili.com/video/BV1m5PqzGECq/

怎么在SegmentFault上传一篇Markdown博客

打开SegmentFault后,点击撰写,写文章,或者直接打开链接
[写文章]https://segmentfault.com/write?freshman=1)

  1. 设置标题,如Markdown基本格式语法
  2. 输入文章内容
  3. 选择文章类型,比如原创或转载
  4. 添加Tag标签,如markdown,github
  5. 选择对应的个人分类,如Markdown
  6. 选择发布到
  7. 点击发布

查看已发布的文章

已发布的文章可以查看
文章

创建博客

输入博客名称和网址
并填写简介

其他

  • SegmentFault对markdown的支持好像不是非常完整,比如pre标签,在SegmentFault不能正确展示
  • SegmentFault有可能集中于高质量的文章。
  • 创建标签可能需要一定的等级,新手暂时不能创建标签

tag

  • SegmentFault
  • 博客

基于 YOLOv8 的面向文档智能处理的表格区域检测系统 [目标检测完整源码]

一、技术背景:表格检测为何成为文档智能化的关键环节?

在政务档案、金融报表、医疗记录、学术论文等典型文档中,表格承载着高度结构化且信息密集的数据。然而,对于计算机而言,表格并非天然可解析对象,其行列结构、边框形式、排版风格差异极大,这使得自动识别难度远高于普通文本区域。

在实际工程中,表格检测往往是以下任务的前置步骤:

  • OCR 前的版面结构分析
  • 表格内容结构化与数据库入库
  • 文档自动审核与信息抽取
  • 智能档案与知识管理系统

传统基于图像规则的方法(如边缘检测、连通域分析)在扫描件模糊、背景复杂或无明显边框的情况下稳定性较差。因此,引入深度学习目标检测模型成为更具可行性的技术路径。

基于此,本文介绍一套以 YOLOv8 为核心的文档表格检测系统,并结合 PyQt5 构建完整的可视化应用,实现从模型训练到实际使用的闭环。
在这里插入图片描述

源码下载与效果演示

哔哩哔哩视频下方观看:
https://www.bilibili.com/video/BV1WM8qzqEJe/

在这里插入图片描述

包含:

📦完整项目源码

📦 预训练模型权重

🗂️ 数据集地址(含标注脚本

二、系统整体设计思路

本系统在设计之初,重点考虑三个工程目标:

  1. 检测精度可靠:适应多类型文档与复杂排版
  2. 部署使用便捷:支持非算法人员直接操作
  3. 具备扩展能力:可衔接 OCR、结构解析等后续模块

基于上述目标,系统整体架构可划分为四个核心模块:

  • 数据与标注模块:统一 YOLO 数据格式,支持快速扩展
  • 模型训练模块:基于 YOLOv8 Detection 分支进行优化训练
  • 推理与接口模块:封装模型推理逻辑,支持多输入源
  • 图形化交互模块:通过 PyQt5 提供完整桌面端操作界面

这种模块化设计,使系统既适合作为研究验证平台,也能够直接服务于实际业务场景。


在这里插入图片描述
在这里插入图片描述

三、表格检测数据集构建与类别设计

3.1 检测目标定义

在本系统中,检测目标聚焦于文档图像中的表格区域。不同于表格结构识别(行、列、单元格级别),该阶段的核心目标是:

准确定位表格在整张文档中的空间位置

这一步的准确性,直接决定后续 OCR 与结构解析的效果。

3.2 数据组织与标注规范

数据集采用 YOLO 标准格式进行组织,图像与标签一一对应,所有标注均以归一化坐标形式存储,保证模型对不同分辨率文档的适应能力。

通过引入多样化文档来源(扫描件、电子文档截图、拍照文档等),模型在训练阶段即可学习到不同表格形态下的视觉特征,从而提升泛化性能。


在这里插入图片描述

四、YOLOv8 在文档表格检测中的优势分析

相较于早期目标检测模型,YOLOv8 在文档类任务中具备明显优势:

  • Anchor-Free 机制
    避免复杂先验框设计,更适合表格尺寸差异大的场景。
  • 端到端训练流程
    模型结构简洁,训练与推理逻辑清晰,便于工程维护。
  • 轻量化模型配置
    在保证精度的同时,推理速度快,适合批量文档处理。

在实际训练过程中,模型能够有效区分表格与正文文本、图片区域,即使在边框模糊或背景干扰较多的情况下,依然能保持较高的检测置信度。


在这里插入图片描述

五、模型训练与性能评估策略

5.1 训练流程概述

模型训练主要包括以下步骤:

  1. 数据加载与随机增强
  2. 特征提取与多尺度检测
  3. 分类与定位损失联合优化
  4. 自动保存最优权重模型

整个过程可通过 YOLOv8 官方训练接口完成,训练日志与结果图表自动生成,便于分析模型收敛情况。

5.2 评估指标说明

模型性能主要从以下几个维度进行评估:

  • mAP@0.5:整体检测精度
  • Precision / Recall:误检与漏检分析
  • 混淆矩阵:类别区分能力验证

在文档处理场景中,稳定性与一致性往往比极限精度更重要,因此评估过程中也会重点关注不同文档类型下的检测表现。


在这里插入图片描述

六、PyQt5 可视化应用的工程实现

6.1 引入图形界面的必要性

在实际业务中,文档处理系统的使用者往往并非算法工程师。命令行方式虽然灵活,但学习成本较高。基于此,本项目通过 PyQt5 构建桌面端应用,实现以下目标:

  • 降低系统使用门槛
  • 提供直观的检测结果展示
  • 方便教学、演示与部署

6.2 核心功能模块

图形界面集成了完整的检测流程,包括:

  • 单张文档图像检测
  • 文件夹批量处理
  • 视频与实时摄像头检测
  • 模型权重灵活切换
  • 检测结果自动保存与导出

通过可视化操作,用户无需关心底层模型细节,即可完成表格区域检测任务。


在这里插入图片描述

七、典型应用场景与扩展方向

该系统可广泛应用于以下领域:

  • 财务报表与票据自动处理
  • 医疗与保险文档数字化
  • 学术文献与档案管理
  • 智能 OCR 系统前处理模块

在此基础上,系统还可进一步扩展:

  • 表格结构识别(行、列、单元格)
  • OCR 文本识别与语义解析
  • 与数据库或业务系统对接

从工程角度看,该方案具备良好的可扩展性与长期应用价值。


八、总结

本文围绕文档图像中的表格检测任务,介绍了一套基于 YOLOv8 的完整工程化解决方案。从数据集构建、模型训练到 PyQt5 可视化部署,系统性展示了深度学习目标检测在文档智能处理领域的实际落地路径。

实践结果表明,YOLOv8 在表格区域检测任务中具备良好的精度与鲁棒性,而图形化界面的引入显著提升了系统的可用性与推广价值。该方案不仅可作为文档表格检测的独立工具,也可作为更大规模文档智能处理系统中的核心模块,为文档数字化与自动化处理提供坚实的技术基础。

本文围绕文档图像中表格区域自动检测这一实际工程需求,系统介绍了一套基于 YOLOv8 的表格检测与应用落地方案。从数据集构建、模型训练与评估,到多输入源推理及 PyQt5 图形化界面集成,完整展示了文档视觉任务从算法到产品化的实现路径。实践表明,YOLOv8 在复杂文档版式与多样表格形态下具备良好的检测精度与稳定性,而可视化界面的引入显著降低了系统使用与部署门槛。该方案可作为 OCR 与文档结构化处理的前置模块,为金融、医疗、政务等场景中的文档智能化应用提供可靠的技术支撑。

搭载 M1 、M1 Pro 、M1 Max 、M1 Ultra 、M2 和 M3 芯片的 Mac 机型搭配 Studio Display XDR 使用时,刷新率最高达 60Hz 。上述 Mac 机型均可为 Studio Display XDR 的其他所有功能提供支持。