1、项目全景与需求分析:分拣机行业背景、项目目标、核心功能需求、技术选型
各位同学,欢迎来到《分拣机嵌入式全栈开发》的第一课。
做嵌入式开发这么多年,我见过太多人一上来就画原理图、写代码。结果呢?做到一半发现芯片选错了,传感器不匹配,通信协议根本跑不通。说白了,这就是典型的「需求没理清,后面全白干」。今天这一章,我们就先把地基打牢。
1.1 分拣机行业背景:为什么我们要学这个?
先聊聊行业。分拣机这东西,你可能在快递中转站、物流仓库里见过。传送带哗哗地跑,包裹唰唰地分到不同出口。嗯,背后就是一套嵌入式系统在控制。
我几年前参与过一个电商仓库的分拣机项目。客户要求每小时分拣 3000 件,误差率低于 0.01%。当时我心想,这要求不低啊。但真正做起来才发现,难点不在硬件,而在「实时性」和「可靠性」的平衡。
分拣机的核心场景无非三个:
- 物流分拣:快递、包裹、电商订单。量大,速度快。
- 工业分拣:零件、电子元器件、食品。精度要求高。
- 医疗分拣:药品、试剂、样本。容错率极低。
你想想看,如果分拣错了,轻则退货重发,重则医疗事故。所以这个行业对嵌入式系统的要求就一个字:稳。
核心洞察: 分拣机的本质是一个「实时决策系统」。传感器采集数据 -> 主控芯片处理 -> 执行器动作。整个闭环必须在毫秒级完成。
1.2 项目目标:我们要交付什么?
我们这个课程的目标,是设计并实现一台「小型智能分拣机」的原型机。注意,是原型机,不是工业级产品。但麻雀虽小,五脏俱全。
具体目标如下:
- 功能完整:能识别不同颜色/形状的物体,并分拣到指定位置。
- 实时响应:从检测到执行,延迟不超过 50ms。
- 可扩展:预留接口,方便以后加装扫码枪、称重模块。
- 成本可控:整机 BOM 成本控制在 500 元以内。
我记得当时做第一个版本时,光电机驱动就烧了三次。后来才发现是电源纹波太大。嗯,这些坑后面都会讲到。
1.3 核心功能需求:分拣机到底要做什么?
功能需求,说白了就是「用户希望机器怎么干活」。我们把它拆成几个模块:
1.3.1 物料识别
这是第一步。物料来了,你得知道它是什么。常见方案有:
- 颜色传感器:识别红、绿、蓝等颜色。便宜,但受环境光影响大。
- 光电传感器:检测有无物体。简单粗暴。
- 摄像头 + 图像识别:高级玩法,能识别形状、二维码。但算力要求高。
我们这次用颜色传感器 + 光电传感器组合。为什么?因为性价比高,而且实时性好。我在项目中遇到过用摄像头做识别,结果 OpenCV 处理一帧要 200ms,根本来不及。后来果断换方案。
1.3.2 传送与分拣执行
识别完了,得把物料送到对应位置。这里涉及:
- 传送带控制:步进电机或直流电机。需要调速和启停控制。
- 分拣机构:推杆、气动喷嘴、或者机械臂。我们选推杆,结构简单。
- 位置检测:限位开关或编码器。确保推杆到位。
你想想看,如果推杆没到位,物料就卡住了。所以执行器的反馈信号非常重要。
1.3.3 人机交互
操作员总得知道机器在干嘛吧?所以需要:
- 显示屏:显示当前分拣数量、故障信息。
- 按键:启动、停止、复位。
- 蜂鸣器/LED:报警提示。
这部分看似简单,但 UI/UX 设计不好,操作员会骂娘的。我见过一个项目,按键布局不合理,工人每天按错几十次。后来重新画了 PCB 才解决。
1.4 技术选型:芯片、传感器、执行器、通信协议
技术选型是重头戏。选对了,后面一路顺风;选错了,天天加班改板子。我个人习惯是先列需求,再选型,不盲目追新。
1.4.1 主控芯片选型
主控芯片是大脑。我们这次的需求是:
- 至少 2 路 PWM(控制电机)
- 至少 4 路 GPIO(传感器、按键)
- 1 路 UART(调试或通信)
- 1 路 I2C 或 SPI(连接显示屏)
- 实时性好,中断响应快
我推荐 STM32F103C8T6。为什么?
- 性价比高:淘宝几块钱一片。
- 生态成熟:HAL 库、CubeMX、各种例程。
- 性能够用:72MHz 主频,足够处理分拣逻辑。
个人建议: 如果你预算充足,也可以考虑 ESP32。自带 WiFi/蓝牙,方便做物联网。但实时性不如 STM32。看项目需求取舍。
1.4.2 传感器选型
传感器是眼睛。我们选:
| 传感器类型 | 型号 | 接口 | 用途 |
|---|---|---|---|
| 颜色传感器 | TCS34725 | I2C | 识别物料颜色 |
| 光电传感器 | E18-D80NK | GPIO | 检测物料有无 |
| 限位开关 | 微动开关 | GPIO | 推杆到位检测 |
TCS34725 这个芯片我用了很多次。它内置了滤光片,抗干扰能力不错。但要注意,它需要校准。我曾经在项目里没做白平衡校准,结果红色和橙色老是分不清。后来加了一步校准流程,问题解决。
1.4.3 执行器选型
执行器是手脚。我们选:
- 传送带电机:28BYJ-48 步进电机 + ULN2003 驱动板。便宜,控制简单。
- 推杆:SG90 舵机。5V 供电,PWM 控制角度。
这里有个坑要注意。SG90 舵机虽然便宜,但扭矩小。如果物料太重,推不动。我建议分拣轻量级物料(<50g)用这个方案。如果物料重,得换金属齿轮舵机或者气动推杆。
1.4.4 通信协议选型
通信协议是神经。我们这次用:
- UART:用于调试和上位机通信。波特率 115200。
- I2C:连接颜色传感器和 OLED 显示屏。
- PWM:控制舵机和步进电机。
为什么不选 SPI?因为 I2C 只需要两根线,省 GPIO。而且 TCS34725 和 OLED 都是 I2C 接口,一根总线搞定。
避坑指南: 我曾经在 I2C 总线上挂了 3 个设备,结果通信老是出错。后来发现是上拉电阻没加。记住,I2C 总线必须加 4.7kΩ 上拉电阻,否则信号不稳定。
1.5 本章小结
好,这一章我们聊了分拣机的行业背景、项目目标、功能需求和技术选型。说白了,就是搞清楚「我们要做什么」和「用什么做」。
下一章,我们会开始画系统框图,然后进入硬件设计。到时候我会手把手教你怎么画原理图、怎么布局 PCB。嗯,那才是真正动手的时候。
记住一句话:需求分析做得越细,后面踩的坑越少。别急着写代码,先把需求吃透。
课后思考: 如果让你选主控芯片,你会选 STM32 还是 ESP32?为什么?欢迎在评论区留言讨论。