# Longmen **Repository Path**: NoscerBesual/longmen ## Basic Information - **Project Name**: Longmen - **Description**: 电磁循迹,双电感,后轮单电机,前轮舵机,四轮 - **Primary Language**: C - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-26 - **Last Updated**: 2026-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 龙门智能车控制系统 ## 项目简介 本项目是基于STM32F1xx微控制器开发的智能车控制系统,主要用于实现循迹智能车的控制算法。该系统集成了PID控制算法、ADC采样模块、PWM电机驱动以及串口调试功能,能够实现精准的路径跟踪与速度控制。 ## 硬件平台 - **主控芯片**: STM32F1xx 系列 - **传感器**: 两路红外对管(用于循迹检测) - **电机**: 直流减速电机 - **驱动**: PWM驱动模式 ## 功能特性 ### 核心控制 - **PID控制算法**: 采用增量式PID控制器,实现精确的路径跟踪 - `kp`: 比例系数 - `kd`: 微分系数 - **速度控制**: 多档位速度调节(高速、中速、加速过程) - **转向控制**: PWM转向舵机控制 ### 信号采集 - **ADC采样**: 两路模拟量输入(左右赛道传感器) - **DMA传输**: 高效的ADC数据采集 - **数字滤波**: 多级滑动平均滤波算法 ### 保护机制 - **磁场检测**: 磁铁检测功能 - **超时停止**: 长时间无信号自动停车 - **启动延时**: 防误触启动保护 ## 系统参数 | 参数 | 说明 | 典型值 | |------|------|--------| | Steer_PWM_Center | 转向中值 | 1500 | | Steer_PWM_Limit_Left | 左转极限 | 1000 | | Steer_PWM_Limit_Right | 右转极限 | 2000 | | Speed_High | 高速档位 | 100 | | Stop_Delay | 停止延时 | 500ms | ## 模块说明 ### Application 应用层 - `Ctrl.c/h`: 主控制逻辑,包含状态机与控制算法 ### Core 核心层 - `adc.c`: ADC初始化与采样 - `dma.c`: DMA初始化 - `gpio.c`: GPIO配置与外部中断 - `tim.c`: 定时器与PWM配置 - `usart.c`: 串口通信 ## 使用说明 ### 硬件连接 1. 左右循迹传感器分别接至ADC通道 2. 电机PWM信号接至定时器输出 3. 串口用于调试信息输出 ### 配置修改 修改 `Core/Src/main.c` 中的参数以适应不同赛道: - 转向PWM中值与限位 - PID参数 (kp, kd) - 速度参数 ## 技术栈 - STM32 HAL库 - C语言 - PID控制算法 - DMA数据传输 ## 项目结构 ``` ├── Application/ │ ├── Ctrl.c # 主控制逻辑 │ └── Ctrl.h ├── Core/ │ ├── Inc/ # 头文件 │ └── Src/ # 源文件 │ ├── adc.c # ADC模块 │ ├── dma.c # DMA模块 │ ├── gpio.c # GPIO模块 │ ├── tim.c # 定时器模块 │ ├── usart.c # 串口模块 │ └── main.c # 主程序 └── Drivers/ # 驱动库 ``` ## 注意事项 1. 确保供电电压稳定(建议5V-6V) 2. 循迹传感器需要调整至合适高度 3. 使用串口查看实时调试信息 ## 许可证 本项目仅供学习和交流使用。