chhttty
汽车软件工程师,diy爱好者
展开
-
直流减速电机控制实验:Simulink应用层开发(3)
本文对前文建模的子系统进行单元测试,验证各个模块的功能。接着生成代码,为后续集成做准备。原创 2025-04-08 20:54:47 · 38 阅读 · 0 评论 -
直流减速电机控制实验:Simulink应用层开发(2)
本文主要根据《直流减速电机控制实验:Simulink应用层开发(2)》中所拆解的需求以及实施方案,进行Simulink模型搭建。原创 2025-03-26 22:13:35 · 99 阅读 · 0 评论 -
直流减速电机控制实验:Simulink应用层开发(1)
本章主要提出应用层软件需求以及拆解分析需求,下一篇博文会根据本文分析的结论进行建模和单元测试。原创 2025-03-17 21:39:50 · 106 阅读 · 0 评论 -
直流减速电机控制实验:CubeMX配置底层软件
本文通过STM32CubeMX配置了STM32的时钟、GPIO输入、PWM输出、串口输出,并手写代码验证了这些配置的正确性。后续集成Simulink代码的过程中,会以本文中的GPIO、PWM相关的函数为基础。原创 2025-03-11 21:01:37 · 72 阅读 · 0 评论 -
机甲大师机器人控制(七):购买清单
本文详细介绍博主在DIY机甲大师机器人的过程中所购买的零件和工具。文章目录1 概述2 BOM表3 详细说明3.1 铝合金弯折底盘3.2 直流减速电机3.3 麦克纳姆轮&TT联轴器3.4 18650电池3.5 18650电池盒3.6 继电器模块3.7 舵机云台3.8 单片机&手柄&接收器3.9 水弹枪套装3.10 导线3.11 M3螺丝螺母4 其他1 概述本文简单列出了博主制作机甲大师机器人所购买的零件,同时给出了购买链接。希望给感兴趣的博友们一些参考,以便选购适合自己的零件。原创 2020-12-12 17:01:20 · 2969 阅读 · 0 评论 -
机甲大师机器人控制(六):集成测试
本文是机甲大师机器人控制的系列博客之一。在软件单元测试阶段完成后,进行集成测试。本文内容与功能分析阶段相对应。文章目录1 开发阶段2 代码集成2.1 生成代码1 开发阶段集成测试阶段是开发的最终阶段,会逐个验证功能分析阶段中提出的每一条功能需求。集成测试阶段会暴露出前几个步骤中带来的问题,因此会反复地回到前面的阶段去修改。集成测试阶段分两步走。首先是代码集成过程,会将软件单元测试阶段初步验证过的模型生成代码,放到STM32工程中和其他的手写代码、寄存器配置代码一起编译成可执行文件。然后是实物测试原创 2020-11-13 19:45:22 · 3043 阅读 · 5 评论 -
机甲大师机器人控制(五):软件单元测试
本文是机甲大师机器人控制的系列博客之一。在软件单元阶段完成后,进行软件单元测试。本文内容与软件架构设计阶段相对应。文章目录1 开发阶段2 模型单元测试2.1 电机控制子系统测试2.2 舵机控制子系统测试2.3 水弹枪控制子系统测试2.4 按键锁定子系统测试1 开发阶段软件单元测试阶段在软件单元阶段之后,对控制算法和硬件接口函数进行测试。一方面,对软件架构设计阶段中的4个功能子系统一一进行模型单元测试;另一方面,在STM32工程中对软件架构设计阶段中的输入输出接口进行硬件接口测试。由于博主能力有限,原创 2020-11-13 19:44:00 · 2838 阅读 · 3 评论 -
机甲大师机器人控制(四):软件单元
本文是机甲大师机器人控制的系列博客之一。在软件架构设计的基础上,本文设计每个模块中的控制算法。文章目录1 开发阶段2 软件单元设计2.1 按键锁定模块2.2 电机控制模块2.2.1 摇杆信号解析1 开发阶段软件单元阶段在软件架构设计阶段之后,同时会参照功能分析阶段中的策略,在Simulink模型的子系统中搭建控制模型。另外说明一下,由于博主不是专业做控制策略的工程师,所以简化了该阶段的建模过程。在汽车软件开发中,闭环控制、滤波、诊断等技术都非常重要,但是都没有在这个DIY项目中体现出来。如果有做控原创 2020-11-13 19:43:11 · 3456 阅读 · 0 评论 -
机甲大师机器人控制(三):软件架构设计
本文是机甲大师机器人控制的系列博客之一。在功能分析的基础上,本文设计软件的架构。文章目录1 开发阶段2 软件架构设计2.1 顶层子系统2.1.1 子系统模型2.1.2 输入接口2.2 电机控制子系统2.2.1 子系统模型2.2.2 输入接口2.2.3 输出接口2.3 舵机控制子系统2.3.1 子系统模型2.3.2 输入接口2.3.3 输出接口1 开发阶段软件架构设计阶段在功能分析阶段之后,会按照功能分析中的每一条来设计架构和输入输出接口。在软件架构设计阶段,会在Simulink模型中搭建输入输出端口和原创 2020-11-13 19:42:14 · 4989 阅读 · 0 评论 -
机甲大师机器人控制(二):功能分析
本文是机甲大师机器人控制的系列博客之一。本文介绍了博主在开发控制策略的前期对其进行的功能分析并熟悉一些基本原理。文章目录1 开发阶段2 硬件资源2.1 PS2手柄2.2 金属底板2.3 直流减速电机2.4 麦克纳姆轮2.5 舵机云台2.6 发射器与继电器2.7 STM32电机驱动板3 功能分析3.1 按键锁定3.2 底盘平面运动3.2.1 基本运动3.2.2 合成运动3.2.3 速度调节3.3 舵机云台二自由度运动;3.4 发射器控制1 开发阶段功能分析属于开发早期阶段,在设计具体的软件架构之前,确定原创 2020-11-13 19:41:16 · 5285 阅读 · 0 评论 -
机甲大师机器人控制(一):概念与流程
本文通过基于模型的设计方法,搭建机甲大师小车的运动控制算法,并在实物上进行验证。文章目录1 机甲大师机器人1 机甲大师机器人博主第一次接触机甲大师机器人,是在网购的时候首页推荐的一款大疆教育机器人RoboMaster S1。博主当时就被视频里炫酷的外形深深吸引了。根据介绍,该款机器人具有非常强大的功能。通过特殊构造的麦克纳姆轮可以使机器人实现全向运动;可以通过手柄或者手机操控机器人;通过水弹枪瞄准目标并发射水单;通过摄像头实现行人跟踪、目标检测等机器视觉相关功能;无奈该产品价格非常昂原创 2020-11-13 19:39:13 · 7078 阅读 · 0 评论 -
软件集成:Simulink与Arduino联合开发
本文首先通过一个简单的Simulink模型生成代码,然后将代码copy到一个Arduino路径中去编译软件。最后将软件下载到Arduino Uno中,通过串口输出Simulink计算的结果。阅读本文需要有一定的Arduino IDE开发调试经验和Simulink代码生成经验。关于Simulink代码生成可以参考博主的专栏《Simulink代码生成》。部分内容参照上一篇博客《集成与验证:Simulink与STM32联合开发》,本文就不再赘述。文章目录1 问题引入2 集成方案3 建模与编程过程3.1 Sim原创 2020-08-30 11:05:16 · 4291 阅读 · 0 评论 -
软件集成:Simulink与STM32联合开发
本文首先通过一个简单的Simulink模型生成代码,然后将代码copy到一个STM32工程中去编译软件。最后将软件下载到STM32F407中,通过串口输出Simulink计算的结果。阅读本文需要有一定的STM32开发调试经验和Simulink代码生成经验。关于Simulink代码生成可以参考博主的专栏《Simulink代码生成》。文章目录1 问题引入2 集成方案3 建模与编程过程3.1 Simulink模型搭建3.2 代码生成配置3.3 STM32工程搭建3.4 STM32的main.c文件修改3.4.原创 2020-08-23 14:03:56 · 15444 阅读 · 29 评论 -
直流减速电机控制实验:实验介绍
首先会配置GPIO输入,用于检测按键是否被按下,接着会配置两个引脚用于PWM输出到L298N,与《LED灯闪烁实验》不同,本文将定时器中断配置为10ms,减少CPU开销。另外,配置一个串口,用于输出调试的信息。ST-LINK V2是STM32开发生态系统中常用的硬件调试接口,能够连接微控制器与开发环境,实现程序的下载、调试和分析。本实验结合Matlab/Simulink工具链和STM工具链,实现通过STM32开发板控制直流减速电机的正反转。直流减速电机是本文实验的被控对象,本文会控制电机正转、反转、停转。原创 2025-03-03 21:16:33 · 84 阅读 · 0 评论 -
LED灯闪烁实验:实验介绍
每个章节都会单独进行验证工作,例如Simulink开发的应用层软件,会在Simulink-TestHarness中进行仿真,通过Scope示波器模块输出0-1交替的结果。CubeIDE集成双方的代码后,会烧写到开发板中验证是否按照定义的时间进行闪烁。ST-LINK V2是STM32开发生态系统中常用的硬件调试接口,能够连接微控制器与开发环境,实现程序的下载、调试和分析。STM32F103C8T6最小系统板是基于STM32F103C8T6微控制器的开发板,本实验会涉及使用板载的连接PC13引脚的LED灯。原创 2025-02-16 11:01:32 · 150 阅读 · 0 评论 -
LED灯闪烁实验:CubeMX配置底层软件
本文通过STM32CubeMX配置了STM32的时钟及GPIO,并手写代码验证了系统定时器中断和GPIO配置的正确性。后续集成Simulink代码的过程中,会以本文为基础。原创 2025-02-16 11:28:23 · 917 阅读 · 0 评论 -
LED灯闪烁实验:Simulink应用层开发
模型可以不依赖于硬件单独仿真,因此可以与底层软件解耦;将验证的过程直接在模型完成,可以避免一些bug带到后面的阶段;模型封装了很多常用模块(例如上文的方波生成器),可以避免重复造轮子;原创 2025-02-19 21:08:03 · 191 阅读 · 0 评论 -
LED灯闪烁实验:代码集成
LED灯闪烁实验已经全部完成,在该实验中使用了较多的工具链,涉及底层软件、建模、软件编译等。首先,通过STM32CubeMX工具进行STM32底层软件配置,可以大大减少手写代码的工作量。另外由于做了可视化,也降低了STM32的上手难度,提升效率。利用Simulink建模,可以在PC环境下验证应用层算法的正确性而不依赖于具体控制器,实现应用层算法和底层软件、控制器硬件的解耦。另外,图形化的建模方式也更加有利于开发者思考与分析,大量的封装库文件也可以降低开发的工作量。原创 2025-02-24 21:07:33 · 72 阅读 · 0 评论 -
BLDC控制实验:方波、霍尔、开环、调速、正反转
本文记录博主学习BLDC控制软件的过程。文章目录1 概述2 底层代码生成3 接口及配置代码4 应用层模型及代码生成4.1 换向请求模块4.2 换向等待状态机4.3 六步换相模块4.4 代码生成及调用5 总结1 概述本文是博主学习BLDC控制的第三次实验。在上一篇博客《BLDC控制实验:方波、霍尔、开环、调速、正转》的基础上,实现按键控制电机正反转的功能,更改的地方主要在于应用层模型中:在电机状态机中加入反转等待的状态;在六步换相模块中根据正反转判断导通的开关;在之前博客中已经实现的功能,本文原创 2021-08-10 20:11:45 · 4246 阅读 · 0 评论 -
BLDC控制实验:方波、霍尔、开环、调速、正转
本文记录博主学习BLDC控制软件的过程。文章目录1 概述2 底层代码生成2.1 电位器输入配置2.2 TIM3定时器配置3 接口及配置代码3.1 ADC转换接口函数3.2 TIM3计数接口函数4 应用层模型及代码生成4.1 PWM请求计算模块4.2 转速计算模块4.3 代码生成及调用5 打印运行信息6 总结1 概述本文是博主进一步学习BLDC控制的实验。在上一篇博客《BLDC控制实验:方波、霍尔、开环、定速、正转》的基础上,加入了调速的功能,包括以下两方面:通过旋转电位器,调整BLDC转速大小;原创 2021-08-04 16:25:35 · 4991 阅读 · 0 评论 -
BLDC控制实验:方波、霍尔、开环、定速、正转
本文记录博主学习BLDC控制软件的过程。文章目录1 概述2 软件架构及工具链2.1 软件架构2.2 工具链3 底层代码生成3.1 时钟配置3.2 按键输入配置1 概述本文是博主第一次做BLDC控制实验,目的仅仅是写代码让BLDC转起来,而暂时不考虑其他复杂的需求。控制的方法是比较简单的六步换相法。利用电机内部的霍尔传感器,通过参考电机厂家给出的二二导通换相表,生成方波来控制电机。第一次实验为了简化需求,只考虑开环、定速、正转的情况:开环:不考虑速度反馈,直接给PWM让电机转起来;定速:不考虑速原创 2021-07-20 21:50:43 · 11254 阅读 · 0 评论