机器人关节国产MCU AT32F403 DRV8313磁编码BLDC FOC直流无刷电机说明

电子说

1.3w人已加入

描述

背景说明

最近调试一款机器人产品,用到了之前的伺服电机FOC控制,实现了几个电机串联,用来实现机器人手臂控制,现在做机器人的很多,觉得这套方案可以帮助更多的人,快速搭建控制系统,实现关节手臂的控制,以及路径规划,而不用被串联、调参、电机驱动所束缚。所以把这套方案单独拿出来,希望可以帮助大家。

因为我这边努力实现***全覆盖(很难,坑太多了),所以就把原来STM32上跑的程序全部移植在国产的MCU AT32F403当中,一看这个名称大家也都明白,这个芯片跟STM32也是有渊源的。电源芯片我也用了国产的芯片,说实话,吃了不少亏,但想想帮着***厂家尽一份微薄之力,也就释然了。宝贝淘宝店里面有上,也希望更多的开发者都支持***!开发不易也希望大家多多支持笔者!
mcu

在用户调试过程中,笔者会指导和提供开发者级别的技术支持,如果改动工作不大,笔者会尽量满足用户的需求,并在线解决调参软件以及代码调试中遇到的各种各样的坑!这一点绝对屏蔽网上各种恶意剽窃。所以价格高些,用户多了也支持不过来,请大家理解,觉得贵的请绕道,提前谢了!

网上电机FOC控制有很多文章视频,包括一些开发板。但是讲解的也都不太好理解,程序分支也是比较多,最不能容忍的是动不动烧板子。所以我就来个简洁明了,直接就是这款AT32F403+DRV8313实现多轴直流无刷电机BLDC的FOC控制,以及IMU以及磁编码器调参。

嵌入式硬件

硬件主控芯片AT32F403A,240MHz主频,但是因为功耗问题,我把主频控制在140MHz,要跑IMU6050姿态解算的算法、电机控制、磁编码器解算控制,以及和子板通信控制。

电机驱动还是用的DRV8313,磁编码用的是AS5600,说实话没找到比较满意的替代芯片。

电源输入采用的宽电压输入,9~36V,大家可以调整输入电压得到比较理想的电机驱动效果。好多市面上的FOC板子动不动就烧了,还是电源以及管子的导通开关没有做好,我这个板子可以支持3A的电流,我用了这么多,调试了这么长时间还没有烧板子烧电机的。当然,这个调试和使用习惯也有关系(笔者自己手欠欠的测量信号,导致IIC信号和输入12V短路,一窝烧了串联的3块板子,心疼的不得了)。
mcu

主板和子板通过IIC链接,只有4根线,其他线备用。特殊场景下,走线可以穿轴,这样更灵活。
mcu

mcu

配置使用说明

拿到板卡,和资料,先打开调参软件,让我们先来熟悉一下界面:

电机控制页如下图:
mcu

IMU控制页如下图:
mcu

磁编码器控制页如下图:
mcu

升级页面如下(新增功能):
mcu

1、第一步,设置BoardID:

所有的电机默认都是主板YAW轴控制板。通过PC调参软件进行板卡ID的设置,使板卡可以配置成为子板。
mcu

接好线路,接通12V电源,接好串口,串口接在当前的板卡,设置当前的板卡BoardID。注意,BoardID不同其他参数设置,不同串行设置。

1、第二步,校准磁编码器:

如果是多个板卡,请串行接好板卡,主板接好串口和电源。
mcu
之后电机磁编码器控制页面,进行如下步骤校准磁编码器:
mcu

1、第三步,如果有IMU,开始校准IMU,方法同第二步类似。

2、第四步,调整电机参数:

调参前请先点击“Read Parameters”按钮,读出板卡中的现有参数。

电机调参包括极对数、力矩、转速、以及电机PID调整。

每一项都是拖动滑动条,进行调参,调参完成点击“Write Parameters”按钮,保存参数。调参完成点击“Write Parameters”按钮,保存参数。调参完成点击“Write Parameters”按钮,保存参数。重要的事情说三遍!!!
参数如下图:
mcu

IMU参数:参考MPU-6050 Spec。

磁编码器参数:参考AS5600 12-Bit Programmable Contactless Potentiometer Spec。

包装如下图:

mcu

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分