寻迹小车 FollowMe―― 之四:电机驱动软件设计 写于: 星期一 31 七月 @ 09:07:15 |
![]() 寻迹小车 FollowMe ―― 之四:电机驱动软件设计 作者:Hanker
因为在硬件设计中,将电机驱动和逻辑控制分成了两个独立的模块,所以在软件设计时也将分别设计。 6.1 电机驱动模块软件设计根据前面的硬件设计,电机驱动模块可以独立成为一个智能的功率驱动器使用,在硬件的设计中考虑了可以支持多种控制信号。但在目前的项目中,拟使用串口控制方式,以下的软件设计是基于这个前提的。 6.1.1 软件要实现的功能
在上述功能中,真正影响驱动器性能的是第二项(驱动特性)和第四项(控制策略)。虽然通常认为控制策略最重要,在自动控制中所着笔墨最多,但是在我们这个项目中,因为电机特性不是十分理想,驱动又是通过软件完成的,这两部分组成的执行机构如果没有良好的特性,那有再好的控制算法、策略也无法实现良好的电机驱动。 6.1.2 概要设计 根据要实现的功能,软件分为以下几个部分:
电机驱动实际上构成了一个典型的自动控制系统:
这样设计使得系统的灵活性增强,同时便于学习者掌握控制的实质,领会其中的奥妙。 软件总体框架采用消息驱动方式,根据消息作相应的处理,消息多数由中断产生,如:接收到串口数据、码盘光电采样中断等,对于没有中断源的信号,由系统的时基产生的中断定时查询、处理。 电机驱动所需的PWM信号在中断服务程序中完成,因为需要比较准确的脉冲宽度和周期。 虽然硬件设计上考虑了许多扩充功能,但是在目前的寻迹小车项目中不是都需要,所以在此对于脉冲输入只处理一个主速度检测脉冲,主方向、跟踪测速脉冲、方向等功能留到有具体需求时再做考虑。 无线模块的控制也是留作日后有需求时再作考虑。 测速用码盘用CAD 软件绘制后打印在纸上,然后用双面胶贴在轮毂上,使用反射式光电采样器采样。我所设计码盘如下:
程序的流程如下: 多个子程序流程图 主流程图
6.1.3.1 命令接收及解析 在硬件设计上虽然考虑了多种控制的可能,那是为了日后这个硬件可以满足不同的需要,而目前的设计使用串口控制。 考虑到这个小车要使用两个驱动电机,所有在串口的连接上采用并接方式,即将两个电机驱动器的接收端RXD、发送端TXD并联,RXD并联没有问题,而TXD端并联必须将口特性置为标准51口(有内部弱上拉电阻的准双向口),以保证口输出的正常,同时通过协议保证不同时发送。 并接后的串口相当于一个设备,接受逻辑控制部分的命令。 基于这样的设计,通讯协议设计如下: 其中: 帧长 ―― 命令字 + 数据区的长度 命令字 ――
数据区 ――
校验和 ―― 从命令字开始到数据区结束所有字节的算术和的反码,取低字节。 上述数据中,PWM值,速度值、PWM频率、PID系数等定义如下: PWM值 ―― 2字节有符号数,正对应正转,负对应反转,数值为占空比的百分数,取值范围:- 1000 ―― +1000, 对应 0.1% ~ 100%;1001为电机“惰行”,1002为“刹车”; 转动持续脉冲数 ―― 2字节无符号数,0 表示连续转动; 转速值 ―― 2字节有符号数,正对应正转,负对应反转,单位为:0.1转/每分钟;取值范围:- 10000~ +10000,10001为电机“惰行”,10002为“刹车”; PWM频率 ―― 2字节整数,单位Hz,取值范围:200 |
共1条
1/1 1 跳转至页
寻迹小车 FollowMe―― 之四:电机驱动软件设计

只看楼主 1楼
关键词: 寻迹 小车 FollowMe 之四 电机 驱动 软
共1条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
【S32K146】S32DS watchdog 配置使用被打赏20分 | |
【Zephyr】使用 IAR 调试 Zephyr 镜像被打赏20分 | |
【Zephyr】MCXN947 Zephyr 开发入门适配shell被打赏20分 | |
【我要开发板】6.联合MATLAB记录数据被打赏50分 | |
【瑞萨RA2E1开发板】:使用ADC功能实现位移传感器采集方案被打赏20分 | |
【nRF7002DK】基于sht30的温湿度计被打赏20分 | |
【nRF7002DK】日志打印被打赏20分 | |
【换取手持示波器】RGB屏幕移植ARM-2D库被打赏35分 | |
【分享开发笔记,赚取电动螺丝刀】分享一下如何解决瑞萨RA2E1使用printf编译报错问题被打赏27分 | |
rtthread硬件加密-5hash加密分析被打赏10分 |