littlebot
Published on 2025-04-16 / 0 Visits
0

【源码】基于C++编程语言的步进电机锁止系统

项目简介

本项目是基于C++的步进电机锁止系统固件。借助步进电机及其驱动、霍尔编码器和连接的开关,构建了具备容错能力和强大状态监控功能的状态机。系统能在非计划事件(如失步)发生时尝试恢复,还可通过控制两个集成横杆的LED环来可视化当前状态。项目包含base(具备基本功能)和legacy_compatibility(支持旧中央系统)两个重要分支。

项目的主要特性和功能

  1. 步进电机控制:可设定步进电机的极性、旋转方向、加速度、最大速度和目标位置等参数,使电机按设定旋转。
  2. 状态监控与恢复:实时监控步进电机运行状态,失步等非计划事件发生时自动尝试恢复。
  3. LED状态可视化:控制两个各有42个LED的LED环,以不同显示效果直观展示开门、关门、故障等门锁状态。
  4. 错误处理:针对失步、霍尔编码器故障、步进驱动器故障等不同错误,给出警告或致命错误提示并提供解决建议。
  5. 依赖注入架构:固件采用依赖注入设计,避免全局变量和“externs”声明,便于理解对象依赖关系和进行单元测试。
  6. RTOS任务管理:将RTOS任务集成到各功能类,实现模拟量转换、霍尔编码器数据处理、LED控制、电机控制、设置管理、状态机管理和开关输入处理等功能。

安装使用步骤

编译和烧录

编译项目并将二进制文件烧录到微控制器的具体过程,可参考 compile_flash.md

具体操作

  1. 安装:通过复制或下载项目的Git仓库获取代码。
  2. 配置:依据项目需求,配置STM32微控制器的硬件连接和相关参数。
  3. 编译:使用GCC等适当编译器编译项目代码,生成可执行文件。
  4. 部署:将生成的可执行文件部署到STM32微控制器。
  5. 运行:在微控制器上运行程序,通过调试器或串行通信工具观察步进电机控制效果。

注意事项

  • 需根据项目需求和硬件平台,调整代码中的硬件连接和参数配置。
  • 使用互斥锁时,要正确管理锁的生命周期,防止死锁或资源泄露。
  • 多任务环境中,利用事件标志组或互斥锁进行任务间的同步和通信。
  • 使用FreeRTOS任务管理功能时,注意任务优先级和调度策略,确保系统实时性和稳定性。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】