feat: 更新README文档,增加项目简介、目录结构及功能概述
This commit is contained in:
231
README.md
231
README.md
@@ -1,64 +1,209 @@
|
||||
# 嵌入式调试开发指南
|
||||
|
||||
## 项目简介
|
||||
|
||||
本项目旨在实现基于 STM32F103 的嵌入式开发,支持通过 TCP/IP 协议进行数据传输。以下内容将详细介绍如何配置和使用相关功能。
|
||||
# 物流小车嵌入式控制系统(STM32F103,TCP/IP)
|
||||
# Logistics AGV Embedded System (STM32F103, TCP/IP)
|
||||
|
||||
---
|
||||
|
||||
## 环境准备
|
||||
## 📖 项目简介 | Project Overview
|
||||
|
||||
### 硬件需求
|
||||
本项目为基于 STM32F103 的物流小车(AGV)嵌入式控制系统,支持 TCP/IP 局域网通信、RFID 站点识别、红外循迹、超声避障、电机闭环控制等功能。适用于智能仓储、自动运输等场景。
|
||||
|
||||
- STM32F103 开发板
|
||||
- USB 转串口模块
|
||||
- 连接线
|
||||
|
||||
### 软件需求
|
||||
|
||||
- 串口调试工具(如 XCOM 或 SecureCRT)
|
||||
- TCP 测试软件
|
||||
This project is an embedded control system for a logistics AGV based on STM32F103, supporting TCP/IP LAN communication, RFID station recognition, IR line tracking, ultrasonic obstacle avoidance, and closed-loop motor control. Suitable for smart warehouse and auto-transport scenarios.
|
||||
|
||||
---
|
||||
|
||||
## 配置步骤
|
||||
## 📦 目录结构 | Directory Structure
|
||||
|
||||
### 1. 串口配置
|
||||
|
||||
1. 选择实际的串口号(如 COM4)。
|
||||
2. 设置波特率为 `115200`。
|
||||
|
||||
### 2. AT 指令操作
|
||||
|
||||
#### 配置 Wi-Fi
|
||||
|
||||
```bash
|
||||
AT+CWMODE=1 # 设置工作模式为 STA
|
||||
AT+CWJAP="ssid","password" # 配置 Wi-Fi
|
||||
```
|
||||
├── Core/ # 主代码(BSP、驱动、协议、控制任务等)
|
||||
│ ├── Bsp/ # 板级支持包(电机、PID、循迹、RFID、超声、串口等)
|
||||
│ ├── Inc/ # 头文件
|
||||
│ └── Src/ # CubeMX自动生成及主循环
|
||||
├── Drivers/ # HAL库、CMSIS等外部驱动
|
||||
├── Middlewares/ # 第三方中间件(如FreeRTOS)
|
||||
├── build/ # 构建输出
|
||||
├── cmake/ # CMake工具链与脚本
|
||||
├── 物流小车/ # 机械结构、上位机、3D模型、调试工具
|
||||
│ ├── 3D/ # 机械3D模型(SolidWorks/STEP)
|
||||
│ ├── esp_12f/ # ESP-12F相关工具
|
||||
│ └── web/ # 上位机/调试脚本
|
||||
├── CMakeLists.txt # CMake主构建脚本
|
||||
├── f103_car.ioc # CubeMX工程文件
|
||||
└── README.md # 项目说明文档
|
||||
```
|
||||
|
||||
#### 连接服务器
|
||||
---
|
||||
|
||||
```bash
|
||||
AT+CIPSTART="TCP","192.168.1.101",3456 # 连接服务器,IP 为电脑的 IP,端口为 3456
|
||||
AT+SAVETRANSLINK=1,"192.168.1.101",3456,"TCP" # 保存连接信息,开机后自动连接
|
||||
AT+CIPMODE=1 # 设置为透传模式
|
||||
AT+CIPSEND # 发送数据
|
||||
HELLOWORLD # 示例数据
|
||||
```
|
||||
## 🛠️ 硬件与软件需求 | Hardware & Software Requirements
|
||||
|
||||
#### 退出透传模式
|
||||
### 硬件 | Hardware
|
||||
- STM32F103ZET6 开发板
|
||||
- ESP-12F WiFi模块(TCP透传)
|
||||
- AT8236-MS 电机驱动板 + 4路直流电机
|
||||
- 霍尔测速传感器 ×4
|
||||
- 红外循迹模块 ×4
|
||||
- 超声波测距模块(HC-SR04)
|
||||
- RC522 RFID读卡器
|
||||
- 3.3V/5V 电源、线缆、机械底盘
|
||||
|
||||
进入自动透传模式后,如需重新配置(如更换 IP),需退出透传模式:
|
||||
|
||||
1. 在串口助手中发送 `+++`。
|
||||
2. 注意:
|
||||
- 不要勾选“发送新行”。
|
||||
- 发送 `+++` 后,停顿 1 秒以上不要发送任何数据。
|
||||
3. 模块返回 `OK` 后,即可重新进入命令模式。
|
||||
### 软件 | Software
|
||||
- Keil/STM32CubeIDE/GCC + CMake
|
||||
- FreeRTOS
|
||||
- 串口调试助手(XCOM/SecureCRT)
|
||||
- TCP调试工具(NetAssist等)
|
||||
- SolidWorks/STEP查看器(3D结构)
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ 编译与烧录 | Build & Flash
|
||||
|
||||
1. 安装依赖(HAL库、FreeRTOS、CMake等)
|
||||
2. 用 STM32CubeMX 生成代码(f103_car.ioc)
|
||||
3. CMake 构建:
|
||||
```sh
|
||||
mkdir build && cd build
|
||||
cmake .. -G "Ninja"
|
||||
ninja
|
||||
```
|
||||
4. 用 JLink/ST-Link 烧录 .elf/.bin 到开发板
|
||||
5. ESP-12F 配置为 TCP Server,波特率115200,透传模式
|
||||
|
||||
---
|
||||
|
||||
## 🚗 功能总览 | Features
|
||||
|
||||
- TCP/IP 通信协议,支持上位机远程控制与状态监控
|
||||
- RFID 站点识别与到站锁存
|
||||
- 红外循迹(4路/5路,带去抖与方向判定)
|
||||
- 超声波避障(自动停车/恢复)
|
||||
- 电机PWM闭环控制(PID,支持死区补偿)
|
||||
- 任务调度与消息队列(FreeRTOS)
|
||||
- 详细日志输出(EasyLogger)
|
||||
|
||||
---
|
||||
|
||||
## 📡 通信协议 | Communication Protocol
|
||||
|
||||
### 指令帧结构 | Frame Structure
|
||||
|
||||
```
|
||||
LOGI:<PAYLOAD>:<CS>#
|
||||
```
|
||||
- LOGI: 固定帧头
|
||||
- <PAYLOAD>: 有效载荷(如 ST:RUN、GS:001)
|
||||
- <CS>: 2字节十六进制校验和(从'L'累加到最后一个冒号前)
|
||||
- #: 帧尾
|
||||
|
||||
### 下行指令(上位机→小车)| Downlink (PC→Car)
|
||||
|
||||
| 功能 | 指令格式 | 示例 | 说明 |
|
||||
|------|----------|------|------|
|
||||
| 设置站点 | LOGI:GS:NNN:CS# | LOGI:GS:001:CA# | NNN为3位站点号 |
|
||||
| 启动运行 | LOGI:ST:RUN:CS# | LOGI:ST:RUN:3B# | 启动自动循迹 |
|
||||
| 停止运行 | LOGI:ST:STOP:CS# | LOGI:ST:STOP:8C# | 急停/暂停 |
|
||||
| 设置速度 | LOGI:SP:VVV:CS# | LOGI:SP:050:D7# | VVV为000-100 |
|
||||
|
||||
### 上行遥测(小车→上位机)| Uplink (Car→PC)
|
||||
|
||||
- 周期状态:
|
||||
`LOGI:STAT:SP:050,STA:001,RUN:1,DIS:12.5,TRK:0010,RPM:25:25:25:25:CS#`
|
||||
- 指令反馈:
|
||||
`LOGI:FB:GS:1:A5#`(1=成功,0=失败)
|
||||
|
||||
### 校验和算法 | Checksum
|
||||
|
||||
所有字符ASCII累加,取低8位,转2位十六进制。
|
||||
|
||||
```python
|
||||
def calculate_cs(data_str):
|
||||
return sum(data_str.encode('ascii')) & 0xFF
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧩 主要模块说明 | Main Modules
|
||||
|
||||
### 1. 电机与PID | Motor & PID
|
||||
- 4路PWM控制,AT8236-MS驱动,支持正反转与刹车
|
||||
- PID参数可调,支持死区补偿,闭环速度控制
|
||||
|
||||
### 2. 霍尔测速 | Hall Speed
|
||||
- 外部中断计数,定时计算RPM,支持实时测速
|
||||
|
||||
### 3. 红外循迹 | IR Tracking
|
||||
- 4路/5路红外,带去抖与方向判定,支持丢线/十字/偏移等状态
|
||||
|
||||
### 4. 超声波避障 | Ultrasonic
|
||||
- HC-SR04,DWT微秒级测距,自动停车/恢复
|
||||
|
||||
### 5. RFID站点 | RFID Station
|
||||
- RC522,UID白名单匹配,支持多站点扩展,到站自动锁存
|
||||
|
||||
### 6. 串口与TCP | UART & TCP
|
||||
- UART1+DMA,ESP-12F透传TCP,空闲中断帧接收
|
||||
|
||||
### 7. 协议栈 | Protocol
|
||||
- 指令解析、校验、消息队列、状态上报、反馈应答
|
||||
|
||||
---
|
||||
|
||||
## 🚦 典型使用流程 | Typical Workflow
|
||||
|
||||
1. 上电,ESP-12F配置为TCP Server,波特率115200,透传模式
|
||||
2. 上位机通过TCP工具连接小车IP/端口
|
||||
3. 发送 `LOGI:GS:001:XX#` 设置目标站点
|
||||
4. 发送 `LOGI:ST:RUN:XX#` 启动小车
|
||||
5. 小车自动循迹,遇障碍自动停车,RFID到站自动锁存
|
||||
6. 上位机周期接收状态帧,随时可发 `STOP`/`SP:xxx` 控制
|
||||
|
||||
---
|
||||
|
||||
## 🖥️ 上位机开发建议 | PC/Host Development
|
||||
|
||||
- 推荐用 Python/C#/LabVIEW 等实现 TCP 客户端,直接发送/解析 ASCII 指令
|
||||
- 校验和算法见上,协议字段可扩展
|
||||
- 参考 `Core/Bsp/up_readme.md` 获取协议范例
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ 调试与常见问题 | Debug & FAQ
|
||||
|
||||
### 1. 无法连接TCP
|
||||
- 检查IP/端口/波特率/透传配置
|
||||
- 确认ESP-12F与主控串口连接正常
|
||||
|
||||
### 2. 指令无响应/校验失败
|
||||
- 检查指令格式与校验和
|
||||
- 查看串口/网络日志
|
||||
|
||||
### 3. RFID/循迹/测速异常
|
||||
- 检查硬件连线、电源、模块初始化
|
||||
- 查看日志与状态上报帧
|
||||
|
||||
### 4. CubeMX生成代码被覆盖
|
||||
- 用户代码请写在 `USER CODE BEGIN ... END` 区域
|
||||
- 驱动/业务任务建议放在 `Core/Bsp/`,主循环仅调用接口
|
||||
|
||||
---
|
||||
|
||||
## 🤝 贡献与联系方式 | Contributing & Contact
|
||||
|
||||
- 欢迎提交PR、Issue,或邮件联系作者
|
||||
- Author: Beihong Wang
|
||||
- Email: [your_email@example.com]
|
||||
- 日期/Date: 2026-04-16
|
||||
|
||||
---
|
||||
|
||||
## 📝 附录 | Appendix
|
||||
|
||||
- 详细协议范例、上位机代码、硬件原理图、3D模型等请见 `Core/Bsp/up_readme.md`、`物流小车/3D/`、`物流小车/web/`
|
||||
- 关键代码均含中文注释,便于二次开发与维护
|
||||
|
||||
---
|
||||
|
||||
> 本文档中英双语,便于团队协作与国际交流。后续如有更新请及时同步。
|
||||
|
||||
## 测试与验证
|
||||
|
||||
### 1. 启动服务器
|
||||
|
||||
Reference in New Issue
Block a user