大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

这篇具有很好参考价值的文章主要介绍了大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.首先,我们先了解一下大疆开发板A型的资料,官方有提供

官网:RoboMaster 机甲大师赛

芯片型号STM32F427IIH6

2.了解M3508直流无刷电机的资料,官网有提供

 大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

 3.于是我找到了C620电调的资料,官网有提供

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

 4.好了,现在控制芯片和控制方式都清楚了,接下来按照说明手册接好线后就可以开始配置STM32CubeMX

1)新建new project,选择开发板A型的芯片

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

2)打开外部高速时钟

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

这是我的时钟树配置

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

3)我选择用can总线指令控制,所以根据开发版A型原理图打开相应的接口

其中can1为电调专用接口,can2为DJI OnboardSDK和Robomaster UWB定位系统用

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

 我这里选择can1,并在原理图中找到引脚,在STM32CubeMX中打开

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

 打开接收中断

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

按照C620手册要求CAN的通信速率的1Mbps配置

71.42857142857143ns∗(10 +3+1) = 1000ns = 1us=1mbps

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

 大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

4)为了兼容大疆的驱动文件,把can1和can2的参数配置成一样

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

 5)开启24V电源

开发板A型24V输出电源默认关闭,只有12V可用,由M3508电机使用手册可知,电机的额定电压是24V

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

 根据开发板A型原理图找到控制24V输出电源的引脚

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

在STM32CubeMX中配置

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

6) 常规配置及生成代码

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

注意生成路径不要有中文 

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

5. 配置工程文件(keil5MDK)

1)移植大疆给的CAN驱动库文件

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

2) 在工程中手动添加移植文件的路径

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

 3)把移植文件添加到工程,并编译一下看看有没有出错

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

 6.调用函数驱动M3508

1)包含驱动的头文件

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

#include "bsp_can.h"
#include "CAN_receive.h"

 2)初始化CAN总线的屏蔽滤波器并开启24V输出电源

 大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

	can_filter_init();
	
	HAL_GPIO_WritePin(GPIOH, GPIO_PIN_2, GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOH, GPIO_PIN_3, GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOH, GPIO_PIN_4, GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOH, GPIO_PIN_5, GPIO_PIN_SET);
	
	HAL_Delay(10);

3)调用函数

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

CAN_cmd_chassis(int16_t motor1, int16_t motor2, int16_t motor3, int16_t motor4);
HAL_Delay(10);

 要注意的是输入电流值不得超过规定范围

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

 最后编译工程烧录到开发板,电机就能动啦!刚开始建议固定好电机,调的速度不要太高!注意安全!

7.PID控制

1)移植官方PID文件

2)把移植文件添加到工程

2)包含头文件 ,并编译一下看看有没有出错 

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

#include "pid.h"

3)声明PID数据结构体,电机数据指针和目标速度变量及PID的三个参数

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

pid_type_def motor_pid;	//声明PID数据结构体
const motor_measure_t *motor_data;//声明电机结构体指针
int set_speed = 0;//目标速度
const fp32 PID[3]={P,I,D};

这里PID需要自行调参,文章最后有推荐调参工具

4)初始化PID和对应电机的数据指针

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

PID_init(&motor_pid,PID_POSITION,PID,16000,2000);//结构体,计算模式,参数,最大输出,最大积分输出
motor_data = get_chassis_motor_measure_point(0); //获取电机数据指针编号范围(0~3)

 5)使用PID公式并将计算出的电流发送至CAN总线

大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

PID_calc(&motor_pid,motor_data->speed_rpm,set_speed);//结构体,实际速度,设定速度
CAN_cmd_chassis(motor_pid.out,motor_pid.out,motor_pid.out,motor_pid.out);//PID输出
HAL_Delay(2);

8.调参工具

1)STM32CubeMonitor

2)STMStudio

下载官网:STMicroelectronics: Our technology starts with you - STMicroelectronics


如果对你有帮助,谢谢你的点赞支持!文章来源地址https://www.toymoban.com/news/detail-406595.html

到了这里,关于大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 直流无刷电机及Matlab/Simulink驱动仿真

    系列文章将更新直流无刷电机的工作原理、仿真控制以及应用STM32开发板与驱动板完成对直流无刷电机的实际控制。 直流无刷电机(Brushless Direct Current Motor,BLDC)没有了直流有刷电机的电刷及换向器等结构,线圈绕组不参与旋转而是作为定子,永磁体作为转子,通过控制线圈

    2024年02月05日
    浏览(86)
  • 【电机应用控制】——直流无刷电机&驱动原理&有感闭环控制&无感闭环控制

    ​ 目录 前言 一、概述 二、驱动原理 ​编辑 三、(有感)速度闭环控制 四、无感控制(无位置传感器) 四、(无感)速度闭环控制 总结 声明:学习笔记来自正点原子B站教程,仅供学习交流!! 简介:         直流无刷电机(BLDC)是指无电刷和换向器的电机,又称无

    2024年02月16日
    浏览(41)
  • 【STM32】BLDC驱动&控制开发笔记 | 08_无刷直流电机BLDC参数辨识_极对数,相电阻,相电感,交轴直轴电感,反电动势常数,磁链常数

    本文主要想为后续电机控制的仿真和实验多测试出一些电气参数(以参数辨识的离线辨识为主)。目前包括:极对数;相电阻;相电感;交轴直轴电感;反电动势常数;磁链常数 的测量内容。 因为笔者水平有限,本文以资源整理为主,有的部分我也主要是看别人的博客学习

    2024年02月06日
    浏览(39)
  • 【2022项目复盘】无位置传感器的无刷直流电机驱动设计

    无位置传感器的无刷直流电机驱动设计是我的本科毕业论文课题,主要还是去查阅资料,学习相关知识,然后自己设计驱动,努力复现一下。 无刷直流电机是从有刷直流电机的应用基础上发展而来的,它的英文是Brushless DC Motor。一般的,有刷直流电机的定子上装有固定的磁极

    2023年04月18日
    浏览(43)
  • 无刷直流电机矢量控制(四):基于滑模观测器的无传感器控制

            在越来越多的应用场景中,无刷直流电机开始采用无位置传感器的控制方式。无刷直流电机运行于中高转速时,可以利用反电势信号估算转子位置,具体实现的方法不止一种,应用较多的是滑模观测器法。         本文整理了该方法的基本原理,介绍了在MAT

    2023年04月09日
    浏览(61)
  • 【零基础玩转BLDC系列】基于霍尔传感器的无刷直流电机控制原理

    无刷直流电机(Brushless Direct Current Motor, 简称BLDC)采用电子开关电路来代替直流电机的机械换向器或电刷进行换向,提高了控制系统的可靠,性能上相较一般的传统直流电机有很大优势。无刷直流电机是永磁同步电机的一种,并不是真正的直流电机,其实质是直流电源输入,

    2024年02月02日
    浏览(40)
  • 9-基于STM32无刷直流电机控制器的设计仿真与实现(原理图+源码+仿真工程+论文+PPT+参考英文文献)

    包含此题目毕业设计全套资料: 原理图工程文件 原理图截图 仿真模型工程文件 仿真截图 低重复率文档(22642字) 英文文献及翻译 资料链接 1.基于单片机实现无刷直流电机控制器的设计,完成系统芯片选型; 2.确定无刷直流电机控制器的总体设计方案; 3.给出系统的硬件设计

    2024年02月07日
    浏览(55)
  • 大疆开发板A型基于HAL库使用RoboMaster 遥控器(DT7&DR16)及Debug在线调试

    资料官网: RoboMaster 机甲大师赛 1)新建new project,选择开发板A型芯片型号  2)打开外部高速时钟 下面是我的时钟树配置  3) 配置USART1通信接口  选择Asynchronous(异步通信)方式,并检查对应IO口是否与原理图对应 根据DBUS参数,配置参数设置 配置DMA (直接存储器访问)

    2024年02月07日
    浏览(40)
  • 直流无刷电机

    2024年02月15日
    浏览(36)
  • 直流无刷电机【一】从零开始上手

    这学期正好学完了两学期的电机学,加上个人一直对四轴无人机的无刷电机与电调感兴趣,同时也比较喜欢几个月前看见的foc控制的电机旋钮那个开源项目,于是自己做了一套无刷电机驱动板(算是真正的从0开始),淘宝买了个十几块的不知名云台无刷电机就开始瞎折腾了。

    2024年02月02日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包