这是一个基于多平台实现的、开源的自动化物流分拣系统。项目旨在探索和展示在不同算力、不同成本的硬件上,如何部署AI视觉能力,并与物联网终端(ESP32-S3、STM32U5)进行联动,构建一个云、管、边、端一体化的完整解决方案。
无论您是想在高性能PC上快速验证算法,还是希望在低成本的嵌入式设备(如树莓派、T113-S3)上实现边缘部署,本项目都能为您提供对应的参考实现。
本系统的核心思想是将 AI决策中心 与 物理执行单元 分离,并通过网络进行连接,赋予系统极大的灵活性和可扩展性。
-
AI决策中心 (可选PC/树莓派/T113-S3):
- 角色:视觉处理和总指挥。
- 技术:通过
OpenCV
调用摄像头,利用PaddleOCR
进行文字识别。 - 通信:当识别到预设关键字时,通过 HTTP GET 请求将指令发送给ESP32-S3主控。
-
实时控制与执行单元 (ESP32-S3 & STM32U5):
- 角色:负责实时任务处理、硬件驱动和物理执行。
- 技术:基于
FreeRTOS
,通过多任务、队列、事件组等机制高效、稳定地管理多个电机和传感器。 - 通信:
- 接收来自决策中心的 HTTP 指令。
- (可选) 通过 TCP 连接到“巴法云”,接收小程序下发的关键字更新指令。
- 通过 TCP 连接到搬运小车,发送取货指令。
-
云端与远程配置 (可选):
- 角色:远程配置中心。
- 技术:使用“巴法云”物联网平台。
- 核心:用户可在微信小程序中修改分拣口对应的目标关键字,云平台会将更新推送给在线的边缘设备。
数据流示意图:
+------------------------+ HTTP (关键字) +--------------+ TCP (取货指令) +--------------+
| AI决策中心 | ---------------------> | ESP32-S3 主控 | ---------------------> | STM32U5 小车 |
| (PC/RPi/T113-S3) | +--------------+ +---------------+
+------------------------+ ^
^ | TCP (更新关键字)
| 视频流 |
| +-------------------------+
+-----------+ | 巴法云 / 微信小程序 |
| 摄像头 | +-------------------------+
+-----------+
- 跨平台实现:提供了从高性能PC到低成本嵌入式Linux的多种AI端实现,满足不同场景和成本需求。
- 真正的多任务嵌入式系统:基于FreeRTOS,将网络通信、电机控制、状态管理分解到不同任务中,互不阻塞,响应迅速。
- 健壮的状态机设计:每个分拣口都有独立的状态机,确保了复杂逻辑的稳定运行。
- 云边协同:支持通过云端动态更新边缘设备的AI模型行为,是现代AIoT应用的典型范例。
- 模块化与解耦:AI识别模块与硬件控制模块完全分离,您甚至可以将它们部署在不同的物理位置,只要网络可达即可。
类别 | 器件名称 | 数量 | 备注 |
---|---|---|---|
AI决策中心 | PC / 树莓派4B / T113-S3开发板 | 1 | (三选一或多选) |
实时主控 | ESP32-S3 开发板 | 1 | 建议使用带有 PSRAM 的版本 |
搬运小车 | STM32U5 开发板 + ESP8266 | 1 | |
电机与驱动 | 传送带直流电机 + TB6612FNG | 1 | |
舵机 | MG90S 或 SG90 舵机 | 6 | 3个分拣,3个卸货 |
传感器 | 红外对射/反射传感器 | 3 | |
视觉 | USB 摄像头 | 1 | |
其他 | 杜邦线、面包板、独立电源模块等 | 若干 |
本项目目前提供以下几种AI决策中心的实现,您可以根据您的需求和硬件条件,选择一个开始。
版本 | 平台/语言 | 状态 | 描述 |
---|---|---|---|
PC端Python版 | PC / Python |
✅ 稳定可用 | 功能最全,性能最强。使用PySide6构建图形界面,支持GPU加速,适合快速开发和算法验证。 |
树莓派C++版 | Raspberry Pi / C++ |
✅ 稳定可用 | 专为树莓派优化的边缘部署版本。性能高,资源占用低,可独立运行。 |
T113-S3版 | Allwinner T113-S3 / C++ |
🚧 计划中 | 探索在更具性价比的嵌入式Linux芯片上部署的极限可能。 |
ESP32-S3主控固件 | ESP32-S3 / Arduino(C++) |
✅ 稳定可用 | 负责所有硬件驱动和实时任务的核心固件。 |
STM32U5小车固件 | STM32U5 / C/C++ |
✅ 稳定可用 | 搬运小车的主控与通信固件。 |
请点击上方表格中的链接,进入对应版本的目录,查看其专属的 README.md
文件,获取详细的部署和运行指南。
- 完成并上传搬运小车(STM32+ESP8266)的初始固件和说明。
- 绘制详细的系统电路连接图 (Fritzing 或其他工具)。
- 为T113-S3版本进行适配和性能测试。
- 优化PC端GUI,增加对多个摄像头的支持和ROI(感兴趣区域)设置功能。
本项目采用 MIT License 开源许可证。
spiiling、findfive、Oi-liangzai