# 基于 TM4C123G视觉追踪云台控制系统 **Repository Path**: Gyonng/cardle_head ## Basic Information - **Project Name**: 基于 TM4C123G视觉追踪云台控制系统 - **Description**: 基于 TM4C123G设计的一款视觉追踪云台系统。该系统通过OpenMV进行图像识别,通过自定义通信协议传输数据,并由单片机精准控制云台运动,最终实现对运动小球的自动追踪。 采用PID伺服控制算法(位置式PID)对两个步进电机进行精确闭环控制。通过实时计算目标坐标与屏幕中心的位置偏差,输出精准的PWM脉冲信号,驱动云台平稳、快速地消除偏差,实现精准追踪。 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-09-01 - **Last Updated**: 2026-01-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # *基于TM4C123G与OpenMV的实时目标追踪云台系统* ## 📖 项目概述 本项目是一个高性能的实时视觉伺服控制系统。系统以TI的TM4C123G单片机为核心控制器,通过OpenMV机器视觉模块检测目标(如彩色小球),并采用PID控制算法驱动二自由度云台(由两个步进电机构成),实现对运动目标的自动、平滑、精准追踪。 项目核心亮点在于其高可靠性通信协议与优秀的实时控制性能,成功解决了高速数据流下的丢帧问题与快速移动目标的追踪难题。 ## 🎯 功能特点 * 实时视觉识别: 利用OpenMV进行图像采集与处理,实时识别目标颜色并计算其中心坐标。 * 高可靠通信: 采用DMA + 串口半满中断 + 环形缓冲区三重机制,确保115200波特率、100Hz数据频率下的零丢包通信。 * 精准运动控制: 基于PID控制算法闭环控制步进电机,响应迅速,无超调,追踪平稳。 * 卓越性能指标: 追踪延迟 < 200ms,可稳定追踪速度达 2m/s 的运动目标,稳态误差 < 5 像素 ## 🛠️ 系统架构与硬件组成 硬件清单 部件名称 型号/规格 说明 主控制器 TI TM4C123GH6PM ARM Cortex-M4F内核,主频80MHz,项目核心 视觉模块 OpenMV Cam H7 负责图像识别和目标坐标定位 电机驱动 数字舵机 驱动X轴和Y轴两个步进电机 云台结构 二自由度云台 由两个步进电机组成的PAN-TILT结构 电源模块 12V DC 适配器 为单片机、驱动板和电机供电 ## ⚙️ 软件设计 * 开发环境 IDE: Keil uVision 5 或 Texas Instruments Code Composer Studio (CCS) 编译器: ARMCC 或 TI ARM Clang 库: 使用了TivaWare™ Peripheral Driver Library以加速开发。 * 固件架构 固件采用裸机状态机(State Machine) 框架开发,主要状态包括: STATE\_INIT: 初始化外设(UART, PWM, Timer, DMA)。 STATE\_IDLE: 等待接收数据。 STATE\_PROCESS\_DATA: 解析OpenMV发送的坐标数据包。 STATE\_PID\_CONTROL: 执行PID计算,输出PWM控制电机。 STATE\_ERROR: 处理通信超时等异常情况。 * 核心算法与技术 通信协议 (UART): DMA传输: 用于高效搬运大量串口数据,解放CPU。 半满中断 (Half-Transfer Interrupt): 使用DMA的情况下处理数据接收,从而减少数据丢失的风险。此外,结合空闲中断,可以确保在接收不定长数据帧时也能有效避免丢包。 环形缓冲区 (Ring Buffer): 在中断服务程序(ISR)中将数据存入缓冲区,主循环中取出解析,实现生产-消费者模型,保证数据完整性。 控制算法 (PID):采用位置式PID控制器。 输入: 目标坐标与图像中心点的偏差 (X\_err, Y\_err)。 输出: 控制步进电机速度和方向的PWM脉冲信号。经过精心调参(Kp, Ki, Kd),实现了快速响应与高精度的平衡。 ## 📁 项目文件结构 tm4-balltrace-project/ ├── Hardware/ # 硬件相关文件 ├── openmv\_traceball/ # 与OpenMV追踪小球项目相关的代码 ├── Output/ # 编译输出文件目录(由Keil MDK自动生成,含.o, .axf, .hex等文件) ├── Project/ # IDE工程文件目录(Keil uVision项目文件 \*.uvprojx 等) ├── Source/ # 源代码目录 ├── User/ # 用户应用代码目录 └── README.md # 本项目说明文件 ## 🚀 快速开始 * 硬件准备 按系统连接图组装硬件,为OpenMV、TM4C123G、电机驱动板提供合适的电源。 * 软件编译与烧录 用Keil或CCS打开 Firmware/Project.uvprojx 工程文件。 编译工程,确保无错误。 使用JTAG/SWD调试器(如LM4F232)将固件烧录至TM4C123G单片机。 * 配置OpenMV 使用OpenMV IDE打开 OpenMV\_Script/color\_tracking.py。 调整 color\_thresholds 以匹配你要追踪的目标颜色。 将脚本烧录至OpenMV Cam。 * 运行 给系统上电。 将彩色目标物(如小球)放置在OpenMV摄像头前。 云台应开始自动追踪目标物的运动。 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request 来共同改进这个项目。