Skip to content

Repository files navigation

Back Car V2.0.0 - 智能后车控制系统

基于Infineon TC26B微控制器的智能后车控制系统,支持图像处理、PID控制、数据存储等功能。

项目概述

本项目是一个嵌入式智能车控制系统,主要用于后车的自动跟随、避障、图像识别等功能。系统采用模块化设计,包含多种控制算法和传感器接口。

硬件平台

  • 主控芯片: Infineon TC26B
  • 摄像头: MT9V03X
  • 陀螺仪: IMU660RA
  • 存储器: W25N04 NAND Flash
  • 显示屏: IPS200 LCD
  • 编码器: 增量式编码器
  • 通信: UART无线通信

code/ 目录文件详细说明

系统初始化与配置

All_Init.c/h

系统初始化模块

  • 功能: 负责整个系统的硬件初始化和设备配置
  • 主要特性:
    • 外设初始化(LCD、ADC、PWM、编码器等)
    • PID控制器初始化
    • LADRC控制器初始化
    • 电压检测和低电压保护
    • IMU和摄像头初始化
    • 参数加载和电机控制初始化
  • 关键变量:
    • FOC_PWM: 电机PWM控制值
    • Send_state: 数据发送状态标志

图像处理模块

image_deal.c/h

图像处理与目标识别

  • 功能: 摄像头图像采集、处理和目标跟踪
  • 主要特性:
    • 图像二值化处理
    • 连通域检测算法
    • 目标点提取和跟踪
    • 误差计算(用于路径跟踪)
    • 自适应亮度检测
  • 数据结构:
    • Connected_area: 连通域信息结构体
    • point: 目标点坐标结构体

image_storage.c/h

图像存储与数据管理

  • 功能: 图像压缩存储、数据回放和分析
  • 主要特性:
    • 图像压缩算法(30x80分辨率)
    • 二值化图像存储
    • 参数数据存储
    • 视频回放功能
    • Flash存储管理
  • 存储类型:
    • 原始图像、二值化图像
    • 目标点坐标、PID参数
    • 速度数据、加速度目标值

exposure_adjust.c/h

曝光调整模块

  • 功能: 摄像头曝光时间动态调整
  • 主要特性:
    • 曝光时间Flash存储
    • 手动曝光调整界面
    • 曝光参数持久化保存

控制算法模块

PID.c/h

PID控制器

  • 功能: 经典PID控制算法实现
  • 控制器类型:
    • 位置式PID控制
    • 增量式PID控制
    • IMU专用PID控制
    • 速度环PID控制
  • 参数: KP、KI、KD、积分限幅、输出限幅

ladrc.c/h

线性自抗扰控制器(LADRC)

  • 功能: 先进的自抗扰控制算法
  • 主要特性:
    • 扩张状态观测器(ESO)
    • 扰动估计与补偿
    • 差速控制功能
    • 参数复制功能
  • 核心参数: 控制器带宽(wc)、观测器带宽(w0)、控制增益(b)

smc.c/h

滑模控制器(SMC)

  • 功能: 滑模变结构控制算法
  • 主要特性:
    • 滑模面设计
    • 抖振抑制
    • 鲁棒性控制
  • 参数: k1、k2、lambda、输出限幅

kalman_filter.c/h

卡尔曼滤波器

  • 功能: 定点数卡尔曼滤波算法
  • 主要特性:
    • Q10定点格式实现
    • 浮点接口封装
    • 噪声估计与状态预测
  • 应用: 传感器数据融合、状态估计

参数管理模块

parameter_flash.c/h

参数Flash存储系统

  • 功能: 系统参数的永久存储和管理
  • 主要特性:
    • 最多64个参数存储
    • 参数配置结构化管理
    • 默认值和范围限制
    • 参数恢复功能
  • 存储内容: PID参数、LADRC参数、速度限制等

parameter_scheme.c/h

参数方案管理

  • 功能: 多套参数方案的切换和管理
  • 主要特性:
    • 多种驾驶模式参数
    • 快速参数切换
    • 方案备份和恢复

用户界面模块

menu.c/h

菜单系统

  • 功能: LCD菜单界面管理
  • 主要特性:
    • 多级菜单结构
    • 按键导航
    • 实时参数显示和调整
    • 菜单项动态更新

menu_list.c/h

菜单项定义

  • 功能: 具体菜单项的定义和实现
  • 包含功能:
    • 参数调整菜单
    • 系统设置菜单
    • 调试信息显示

key.c/h

按键处理

  • 功能: 物理按键扫描和事件处理
  • 支持按键: Button_1~4 (4个独立按键)
  • 特性: 按键防抖、事件标志

传感器与通信模块

pico_gy.c/h

PICO上位机通信

  • 功能: 与上位机的图像和数据通信
  • 主要特性:
    • 图像数据传输
    • 实时数据显示
    • 二值化图像传输
    • 调试线条和点显示
  • 支持格式: 原始图像、压缩图像、JPEG图像

pico_link_ii.c/h

PICO Link II通信协议

  • 功能: PICO通信协议的底层实现
  • 主要特性:
    • 数据包封装
    • 通信协议解析
    • 数据传输管理

infrared_nec.c/h

NEC红外遥控

  • 功能: NEC协议红外遥控接收
  • 主要特性:
    • NEC解码算法
    • 红外信号接收
    • 遥控指令解析
  • 应用: 遥控器控制、参数调整

存储设备模块

w25n04.c/h

W25N04 NAND Flash驱动

  • 功能: 外部NAND Flash存储器驱动
  • 主要特性:
    • SPI通信接口
    • DMA数据传输
    • 块擦除和页编程
    • 坏块管理
  • 容量: 4Gbit (512MB)
  • 应用: 图像存储、数据记录

数据处理模块

Show_Data.c/h

数据显示

  • 功能: 实时数据显示和监控
  • 显示内容:
    • 传感器数据
    • 控制器输出
    • 系统状态信息

PTS_Deal.c/h

PTS数据处理

  • 功能: 特定数据格式的处理
  • 应用: 数据格式转换、协议处理

clip.c/h

数据裁剪

  • 功能: 数值范围限制和裁剪
  • 应用: 控制量限幅、数据预处理

定时器模块

PIT_Demo.c/h

定时器演示

  • 功能: 系统定时器的配置和使用示例
  • 应用: 定时任务、周期性控制

编译和使用

开发环境

  • IDE: AURIX Development Studio 或 Eclipse
  • 编译器: TASKING Tricore Compiler
  • 调试器: AURIX Debugger

编译步骤

  1. 导入项目到IDE
  2. 配置编译器路径
  3. 编译生成hex文件
  4. 通过调试器下载到目标板

参数配置

  1. 通过LCD菜单调整PID参数
  2. 使用按键切换控制模式
  3. 通过上位机监控实时数据

系统架构

系统初始化 -> 硬件配置 -> 参数加载
     ↓
图像采集 -> 图像处理 -> 目标识别
     ↓
误差计算 -> 控制算法 -> 执行输出
     ↓
数据存储 <- 状态监控 <- 用户交互

主要特性

  • 多种控制算法: PID、LADRC、SMC、卡尔曼滤波
  • 完整的图像处理链: 采集→处理→识别→跟踪
  • 数据存储回放: 支持图像和参数数据的存储回放
  • 用户友好界面: LCD菜单系统,支持实时参数调整
  • 通信功能: 上位机通信、红外遥控
  • 参数管理: Flash参数存储,支持多套方案

版本信息

  • 版本: V2.0.0
  • 最后更新: 2024年
  • 作者: [鸣]

许可证

请参考项目根目录下的许可证文件。


本README文档详细介绍了Back Car V2.0.0项目中code/目录下每个文件的具体功能和作用,便于开发者理解和维护代码。

About

No description, website, or topics provided.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages