# Smart-Car-Window-Controller **Repository Path**: asd-ada/Smart-Car-Window-Controller ## Basic Information - **Project Name**: Smart-Car-Window-Controller - **Description**: 基于STM32和FreeRTOS的智能车窗控制系统,具备多模式控制、红外防夹、雨水感应与PID调速功能。含完整固件、硬件设计、文档及演示。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-01-16 - **Last Updated**: 2026-01-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 📖 项目简介 本项目实现了一个具备**多模式控制、主动安全防护与智能决策**的汽车车窗控制器。它不仅是一个功能完整的嵌入式系统,更记录了一次真实的“开发-迭代-解决问题”的完整工程历程。 - **核心功能**:支持**手动、蓝牙、语音**三种控制模式,具备**红外防夹、雨水自动关窗、步进电机PID调速**等核心特性。 - **上位机软件**:已开发配套的 **PySide6 上位机软件**,可通过串口**实时监控车窗状态、传感器数据,并进行控制**,构成完整的“硬件+软件”解决方案。 - **独特价值**:项目包含了**两个硬件版本**: - **`V1 稳定版`**:经过充分测试,所有功能稳定可靠,可直接复现。 - **`V2 探索版`**:硬件升级方案,集成了CAN总线,但存在未解决的驱动挑战,**开源供硬件爱好者研究与攻克**。 - **专业实践**:软件层面完整实现了基于FreeRTOS的多任务调度、自定义通信协议,并通过**串口模拟CAN数据流**展示了车辆网络的数据交互标准。 --- ## 🗺️ 项目导航与快速开始 如果你是第一次接触本项目,请按以下顺序阅读: ### 1. 对于只想了解或快速复现的开发者 👉 **直接进入 [固件_Firmware](./固件_Firmware) 目录** 这里包含了**一切稳定、可工作的**硬件设计、固件源码和说明文档。你可以基于此快速搭建一个功能完整的智能车窗控制器。 ### 2. 对于希望深入研究或挑战硬件的开发者 - **探索硬件升级**:查看 [硬件_Hardware/V2_开发板](./硬件_Hardware/V2_开发板) 了解V2版的优化设计与未解决的挑战。 - **理解通信协议**:阅读 [通信协议详解](./通信协议详解.md) 了解系统内外的数据格式。 - **回顾开发全貌**:阅读 [智能车窗控制器项目介绍](./智能车窗控制器项目介绍.md) 与 [开发日志与反思](./开发日志与反思.md) 了解项目从构思到上线的完整思考与决策过程。 ### 3. 对于GUI开发与监控软件感兴趣的开发者 👉 **查看 [工具_Tools/PySide6上位机](./工具_Tools/PySide6上位机) 目录** 本目录包含了基于**PySide6 (Qt for Python)** 开发的跨平台上位机软件。它提供了: - **双串口管理**:同时连接调试串口与车窗监控专用串口。 - **数据可视化**:实时显示四路车窗开度(自定义玻璃效果控件)、传感器状态、控制模式。 - **协议解析**:自动解析10字节车窗状态协议帧,进行CRC校验。 - **数据记录**:查看报警与通信日志。 该软件是学习**工业控制GUI开发**、**串口通信**、**多线程**和**数据可视化**的优秀实例。其详细的学习路径与模块化代码可在关联的 [PySide6-Learning](https://gitee.com/你的用户名/PySide6-Learning) 仓库中找到。 ### 4. 编译与烧录 (V1稳定版) 1. **环境**:安装 Keil MDK-ARM (或 STM32CubeIDE) 及 STM32对应芯片支持包。 2. **打开工程**:进入 [固件_Firmware/V1_主控制器](./固件_Firmware/V1_主控制器),打开 `.uvprojx` 或 `.ioc` 工程文件。 3. **编译**:根据你的开发板型号,可能需在 `main.h` 中调整少量引脚宏定义,随后编译。 4. **烧录与测试**:使用ST-Link等工具烧录固件,并按照目录内的详细文档连接硬件进行测试。 --- ## 🧩 系统架构与技术细节 ### 软件架构 系统采用 **FreeRTOS** 进行任务调度,实现了模块化与高内聚低耦合的设计。 ```mermaid graph TD A[按键/蓝牙/语音输入] --> B(控制决策任务); C[ADC传感器数据] --> B; B --> D{安全逻辑判断}; D -- 正常 --> E[电机控制任务]; D -- 防夹/雨水 --> F[紧急停止/关窗]; E --> G[PID调速 与 GPIO驱动]; B --> H[状态打包任务]; H --> I[UART输出状态数据帧]; I --> J[PySide6 上位机]; J --> K[数据可视化与用户控制]; ``` ### 硬件组成 | 功能模块 | 核心器件/方案 | 关键说明 | |:--------- |:--------------------------------------- |:---------------------------- | | **主控制器** | STM32F103C8T6 (V1) / STM32F103RCT6 (V2) | 基于ARM Cortex-M3内核,运行FreeRTOS | | **车窗执行器** | 28BYJ-48 步进电机 × 4 | 配合ULN2003驱动板,模拟四门车窗升降 | | **防夹传感器** | 槽型光电开关/红外对管 × 4 | 实时检测升降过程中的障碍物 | | **雨水传感器** | 雨水/凝露检测模块 | 检测到雨水时触发自动关窗逻辑 | | **人机交互** | 按键、HC-05蓝牙、语音识别模块 | 提供手动、远程、语音三种控制通道 | | **车辆网络** | UART转CAN模块 (V2) / 串口模拟 (V1) | 将车窗状态封装为标准数据帧上报 | --- ## 📄 开源协议与致谢 本项目采用 **MIT 开源许可证**,详情请见 [LICENSE](./LICENSE) 文件。 欢迎任何形式的交流、学习与二次开发。如果你在使用中遇到问题,或有了新的改进,欢迎提交 Issue 或 Pull Request。 --- **关联项目与学习资源** - **[PySide6 学习与实战仓库](https://gitee.com/你的用户名/PySide6-Learning)**:本项目上位机软件的完整开发教程与模块化代码。 - **[智能设备振动分析仪项目规划](./智能设备振动分析仪项目规划.md)**:基于本项目的技术积累,规划中的下一个进阶项目。