|
本帖最后由 motor_control 于 2019-10-28 16:30 编辑
玩了好久的无感电机控制,感觉没什么意思了,当我看到淘宝上有卖14块钱的新西达无刷电机的时候,我觉得是不是可以做点废物利用的东西,所谓“人弃我取,人取我与”,于是乎在看到大疆热卖的机甲大师后,觉得应该也可以做点伺服控制之类的
东西玩玩,所以就有了下面的小故事。
前段时间在为ST的研讨会上给朋友公司准备了基于STSPIN32F0A的速度伺服DEMO后,觉得银燕的电机好是好,就是太贵了,要135块钱一个,但新西达电机只要14块钱呀!再说了,我们只是想评估一下STSPIN32F0A的性能,看看除了做简单的无感电机控制外,应该也可以做点简单的伺服控制应用,比如说速度控制、位置控制、什么总线控制之类的,也比较的好玩呀。至于美美的用CNC台架或是用个有机玻璃做台架,但这个只是好看,不是核心。这样一想,那用普通电机也是可以的,只要把控制算法学习一下、通过实践加深了理解,那以后想移植到啥平台都是可以的,关键是对控制算法的实际理解。
ST本来也有官方的STSPIN32F0、STSPIN32F0A DEMO板,但有几个限制:
1.STSPIN32F0有四个运放,其实我们用2、3个就够了,第四个占用了几个引脚。另外,OP2运放不知道是不是芯片的原因,输出总是有干扰(官方板也是如此,但很好玩的是:在后出的STSPIN32F0A刚好取消了OP2运放)。因为官方DEMO板默认使用ABZ模式来读取光电编码器的数据,而我们却是要使用SPI接口来读取磁编TLE5012B(在这里,特别感谢英浩科技的支持),而企图修改官方板来使用SPI接口是非常麻烦的事,至少要把STSPIN32F0的芯片吹下后手工切割一条铜箔走线,还要使用有干扰的OP2运放,索性自己画个板了。嘉立创的打板实在是便宜,只能到它那里做了。5块板5块钱,我是不是薅到资本的羊毛了?
2.STSPIN32F0A的官方板搞了个单电阻采样的布局,我想要的是经典的2电阻方案,搞单电阻方案的话,STSPIN32F0A内含的M0核负担很重啊。当然,STSPIN32F0A后面带的A有哪些变化呢?第一,可以低至6.7V,第二,省了一个运放.很好,有多的引脚来做别的功能了。
考虑到以上2点,我决定采用如下方式做个小玩意:
1.使用STSPIN32F0A芯片,适合将来可能的体积受限的应用场合;6.7V的电压很适合航模类的使用;省掉一个运放可以让我有多的引脚可供使用。
2.使用TLE5012B磁编作为位置传感器,当然也是速度传感器。
3.使用1206封装的10毫欧合金采样电阻,我们这是研究控制算法,不是做什么大电流的电锤,通个10A电流没问题的,再说了,我的电源就5A最大输出。玩过几百安的高压植保机电调后,我还是觉得研究控制算法比较的好玩,比较的小资些。
4.现在做个什么低端有刷舵机都得用总线控制,不然怎么好意思和别人打招呼呢?所以也加了一个RS485的芯片在上面,当然,这里也有个规划的问题,就是机甲大师除了4个轮子要做速度控制外,还有个炮塔,那就是一个2轴云台了,就是一个位置的控制了,所以想玩2轴的位置控制,用下总线控制也未尝不可呀!其实我更喜欢用PWM方式,简单可靠,到手即用!所以我也有保留这个接口。于是乎,STSPIN32F0A的振荡器就最好用外部的石英振荡器了。
5.电位器这个必须有,一个LED灯的引脚也必须有。
6.用ARM芯片的一个没法拒绝的理由,对比MICROCHIP的芯片,最大的差异在于有没有JSCOPE可以使用!!!我个人觉得:感谢SEGGER开发这么好用的工具,感谢华强北让我用上JLINK。什么FREEMASTER的我就不用了。
7.电流传感器这一块保持和ST官方板一致,方便用ST MCSDK来生成代码。
下面是拍的视频,上电伊始,电机会做一个零点校准的动作,然后进入速度环控制模式,速度可以从低速到1000RPM连续用电位器加以调节,当然,我知道大家可能更关心电机的低速特性,因为是考虑到机甲大师的轮子不需要很低的速度,所以没有特别考虑非常非常低的速度,比如0.1RPM、0.01RPM,甚至是0.001RPM,这个就留待下次实现了。现在的低速足以满足现有的要求,而且速度环刚性很好,速度很平滑,用手去捏根本捏不住。在这里,特别要提到本坛的高手,outman和蓝色蝴蝶大侠了,他们做的伺服控制非常棒,对我很有启发意义!
现在开始上图片:
现在是速度环模式:
http://v.youku.com/v_show/id_XND ... j.8428770.3416059.1
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|