背景说明
最近调试一款机器人产品,用到了之前的伺服电机FOC控制,实现了几个电机串联,用来实现机器人手臂控制,现在做机器人的很多,觉得这套方案可以帮助更多的人,快速搭建控制系统,实现关节手臂的控制,以及路径规划,而不用被串联、调参、电机驱动所束缚。所以把这套方案单独拿出来,希望可以帮助大家。
因为我这边努力实现***全覆盖(很难,坑太多了),所以就把原来STM32上跑的程序全部移植在国产的MCU AT32F403当中,一看这个名称大家也都明白,这个芯片跟STM32也是有渊源的。电源芯片我也用了国产的芯片,说实话,吃了不少亏,但想想帮着***厂家尽一份微薄之力,也就释然了。宝贝淘宝店里面有上,也希望更多的开发者都支持***!开发不易也希望大家多多支持笔者!
在用户调试过程中,笔者会指导和提供开发者级别的技术支持,如果改动工作不大,笔者会尽量满足用户的需求,并在线解决调参软件以及代码调试中遇到的各种各样的坑!这一点绝对屏蔽网上各种恶意剽窃。所以价格高些,用户多了也支持不过来,请大家理解,觉得贵的请绕道,提前谢了!
网上电机FOC控制有很多文章视频,包括一些开发板。但是讲解的也都不太好理解,程序分支也是比较多,最不能容忍的是动不动烧板子。所以我就来个简洁明了,直接就是这款AT32F403+DRV8313实现多轴直流无刷电机BLDC的FOC控制,以及IMU以及磁编码器调参。
嵌入式硬件
硬件主控芯片AT32F403A,240MHz主频,但是因为功耗问题,我把主频控制在140MHz,要跑IMU6050姿态解算的算法、电机控制、磁编码器解算控制,以及和子板通信控制。
电机驱动还是用的DRV8313,磁编码用的是AS5600,说实话没找到比较满意的替代芯片。
电源输入采用的宽电压输入,9~36V,大家可以调整输入电压得到比较理想的电机驱动效果。好多市面上的FOC板子动不动就烧了,还是电源以及管子的导通开关没有做好,我这个板子可以支持3A的电流,我用了这么多,调试了这么长时间还没有烧板子烧电机的。当然,这个调试和使用习惯也有关系(笔者自己手欠欠的测量信号,导致IIC信号和输入12V短路,一窝烧了串联的3块板子,心疼的不得了)。
主板和子板通过IIC链接,只有4根线,其他线备用。特殊场景下,走线可以穿轴,这样更灵活。
配置使用说明
拿到板卡,和资料,先打开调参软件,让我们先来熟悉一下界面:
电机控制页如下图:
IMU控制页如下图:
磁编码器控制页如下图:
升级页面如下(新增功能):
1、第一步,设置BoardID:
所有的电机默认都是主板YAW轴控制板。通过PC调参软件进行板卡ID的设置,使板卡可以配置成为子板。
接好线路,接通12V电源,接好串口,串口接在当前的板卡,设置当前的板卡BoardID。注意,BoardID不同其他参数设置,不同串行设置。
1、第二步,校准磁编码器:
如果是多个板卡,请串行接好板卡,主板接好串口和电源。
之后电机磁编码器控制页面,进行如下步骤校准磁编码器:
1、第三步,如果有IMU,开始校准IMU,方法同第二步类似。
2、第四步,调整电机参数:
调参前请先点击“Read Parameters”按钮,读出板卡中的现有参数。
电机调参包括极对数、力矩、转速、以及电机PID调整。
每一项都是拖动滑动条,进行调参,调参完成点击“Write Parameters”按钮,保存参数。调参完成点击“Write Parameters”按钮,保存参数。调参完成点击“Write Parameters”按钮,保存参数。重要的事情说三遍!!!
参数如下图:
IMU参数:参考MPU-6050 Spec。
磁编码器参数:参考AS5600 12-Bit Programmable Contactless Potentiometer Spec。
包装如下图:
审核编辑:汤梓红
-
mcu
+关注
关注
146文章
17141浏览量
351084 -
机器人
+关注
关注
211文章
28399浏览量
207005 -
FOC
+关注
关注
20文章
322浏览量
42806 -
直流无刷电机
+关注
关注
15文章
299浏览量
23830
发布评论请先 登录
相关推荐
评论