# BeihangMechatronicsTutorialBoard **Repository Path**: MasterRobMark/beihang-mechatronics-tutorial-board ## Basic Information - **Project Name**: BeihangMechatronicsTutorialBoard - **Description**: 北航机械学院机电一体化课程教学开发板与例程,基于STM32F407芯片 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 40 - **Forks**: 0 - **Created**: 2023-03-14 - **Last Updated**: 2025-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # README 北航校徽 (希望大家可以点一下右上角的Star⭐(doge)) 本仓库为北京航空航天大学机电课程开发板硬件及示例程序仓库。`Hardware`文件夹中提供了PCB源文件、原理图以及用户手册。`Firmware_Example`文件夹中提供了示例程序。示例程序与相应教程将在课程进行过程中动态更新。 希望这个仓库可以成为同学们学习和应用stm32的有力工具,给同学们在未来的科研与工程实践中一点灵感与启发。 **“纸上得来终觉浅,绝知此事要躬行。”** ## 01_Hello_Tutorial_Board 开发板需接上LCD屏幕,烧录之后,LCD屏将会绘制北航校徽 希望大家操作: 1. 将STM32CubeMX的`.ioc`文件移动到你的空源码文件夹中 2. 使用STM32CubeMX配置好工程生成设置,并生成Keil-MDK工程 3. 在Keil工程中加入`\01_Hello_Tutorial_Board\MDK-ARM\LowLayer`文件夹中的LCD屏幕硬件驱动文件以及`\01_Hello_Tutorial_Board\MDK-ARM\App`文件夹中的北航校徽RGB值文件,并添加相应的头文件路径 4. 编译并烧录程序,看到实验结果 希望大家掌握: 1. STM32的开发环境(STM32CubeMX + Keil-MDK) 2. STM32CubeMX基础操作 3. Keil-MDK基础操作 课程视频链接:[北航机电一体化实验课_01_开发平台介绍_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1Fg4y1M7bF/) ## 02_Key_Input_LED_Control 学习STM32读取按键开关信号,控制LED亮灭,从而实现通过按键控制LED 希望大家操作: 1. 配置STM32的时钟树 2. 通过轮询GPIO电平的方式检测按键信息,通过GPIO输出控制LED 3. 配置STM32的中断系统 4. 通过GPIO的外部中断捕获按键信号,通过GPIO输出控制LED 5. 通过定时中断扫描按键信息、控制LED闪烁频率 希望大家掌握: 1. STM32的时钟树 2. GPIO结构以及输入输出方式 3. STM32中断机制、中断向量表和中断原理与过程、HAL库对中断的封装形式 4. STM32定时器结构及定时中断、HAL库对定时器的封装 5. HAL库的函数接口定位方法 6. 理解轮询和中断的编程思路 7. 初识STM32裸机通过定时中断实现多线程的方法 ## 03_BDC_Motor_Control_PID 学习使用STM32读取AB相增量式编码器,以及使用PID控制器完成直流有刷电机的速度、位置的闭环控制 希望大家操作: 1. 配置STM32定时器的编码器硬件解码功能,通过STM32获取编码器信息 2. 通过编码器数据计算电机的位置、速度。注意解决:定时器的计数器溢出、低速时的速度离散 3. 使用开环控制直流有刷电机(设置电压),观察其速度变化 4. 进行直流有刷电机的PID速度闭环控制 5. 进行直流有刷电机的位置、速度环级联控制 希望大家掌握: 1. STM32定时器的编码器模式使用 2. 闭环控制与开环控制的差别 3. PID闭环速度控制器结构 4. 位置、速度级联控制结构 5. PID参数对控制效果的影响以及调参方法 ## 4_Switch ​ 实现了微动开关的相关逻辑和步进电机的控制 ## 5_DistanceSensor ​ 实现了超声波传感器的读取 ## 6_XY ​ 实现了XY平台的插补运动功能 ## 7_Template ​ 学生模板,内部已经将所有的外设配置好,**除非真的知道自己正在做什么,否则不要轻易改动外设相关配置**,内部集成了舵机、LCD、步进电机、按键、LED灯等各个模块的库,学生直接调用即可。 ​ 2022.11.14 TOFIX:串口输出UsartPrintf函数有时候会打印0或者1的问题 ## 8_LVGL ​ 本工程和机电课程内容没有任何关系,纯属作者个人爱好。 ​ 将LVGL移植到了STM32上,基于LVGL+GUI Guider在STM32上实现了一个常见的加载提示控件。 ## 9_LVGL_Demo ​ 本工程和机电课程内容没有任何关系,纯属作者个人爱好。 ​ 基于LVGL+GUI Guider在STM32上实现了一个移动狗头图片的小游戏,以开发板上的按键矩阵作为输入实现了按钮点击以及图片移动等效果。 ## 10_LVGL_Demo_2 ​ 本工程和机电课程内容没有任何关系,纯属作者个人爱好。 ​ 基于LVGL+GUI Guider在STM32上实现了加咖啡的动画效果。 ## 致谢 ​ 感谢**陈沁舒**师兄对本项目代码的贡献,感谢**北航机器人所服务机器人实验室**为本项目提供的资源,感谢**北航机械工程及自动化学院**为本项目提供的资金支持。