1、立项背景和目标
在实验室理化分析(如农业、医药、化工)中,固体颗粒/粉末样品的缩分和等分是必不可少的前处理环节。传统人工分样存在精度低、效率慢、易交叉污染等问题。本项目旨在开发一款高精度的自动化分样设备,通过精确的机械运动与动态称重结合,实现一键式、无人值守的等分/不等分/缩分操作,目标是将分样误差控制在极低范围内,提升实验室标准化作业水平。
2、软件功能与核心功能模块
系统软件分为三大核心模块:
高精度感知模块:负责24位高精度ADC(称重传感器)的数据采集与实时滤波。
运动执行模块:负责震荡下料器(PWM调功)与旋转接样盘(步进电机位置闭环)的精准协同控制。
HMI人机交互模块:基于LCD触摸屏,提供多模式(等分/缩分)参数设置、实时状态监控、故障报警及配方存储功能。
3、业务流程与功能路径
用户通过触摸屏选择分样模式并输入目标重量 -> 系统自动完成容器去皮清零 -> 启动主轴电机将空杯旋转至下料口 -> 开启震荡下料器,根据实时称重数据动态调节下料速率(粗加->细加->点滴) -> 达到目标重量后瞬间停止下料 -> 记录数据并驱动转盘切换至下一个接样杯 -> 循环直至任务完成并蜂鸣提示。
1、整体架构和设计思路
系统采用“分层解耦”的设计架构。底层硬件驱动层(BSP)负责配置时钟、GPIO、I2C/SPI总线及定时器中断;中间件层包含RTOS任务调度(或时间片轮询状态机)及数字滤波算法;应用层负责LVGL界面交互与核心业务逻辑。为保证实时性,称重采集与电机控制放在高优先级中断/任务中,UI刷新和通信放在低优先级中。
2、“我”的负责模块和结果
作为该项目的核心嵌入式开发工程师,我负责了从底层驱动跨越到应用层的全栈开发:
底层驱动开发:独立编写了高精度ADC芯片(如HX711/ADS125x)的SPI/I2C驱动,以及步进电机加减速控制驱动。
核心算法实现:针对下料过程设计了“动态称重预测算法”与分段式PID控制,将最终分样精度误差成功控制在 ±0.2g(注:此处数据请根据你们公司产品实际精度修改)以内。
应用层与UI:对接硬件接口,完成了业务状态机的编写,并开发了稳定流畅的触摸屏交互界面。
结果:该系统代码已稳定运行于公司量产产品中,经受住了实验室高强度的连续运行考验。
3、“我”遇到的难点、坑,和解决方案
难点(动态称重干扰):设备在震荡下料时,机械高频震动会传导至称重传感器,导致ADC采样数据剧烈跳动,无法准确判断是否到达目标重量。
解决方案(软硬结合屏蔽):在硬件端协助优化了传感器的物理减震隔绝;在软件端,我放弃了简单的平均滤波,查阅资料后引入了“滑动窗口+去极值+一阶滞后”的复合数字滤波算法,并在下料临界点采用“停震-静态采样-补偿”的策略,完美解决了震动干扰导致的重量超调问题。
难点(UI阻塞导致控制延时):初期版本中,屏幕刷新时会偶尔导致电机步进脉冲丢失或下料关断不及时。
解决方案:重构了系统的时序架构,将UI渲染与核心控制解耦。利用硬件定时器中断产生严格的电机脉冲,保证了动作的微秒级实时性,彻底消除了界面操作对底层物理执行的干扰。