亚博智能论坛  
  
查看: 1050|回复: 0

机器人总线舵机=简单的舵机+串口通信?

  [复制链接]
  • TA的每日心情
    大哭
    2017-7-26 09:46
  • 29

    主题

    51

    帖子

    155

    积分

    菜鸟程序猿

    Rank: 2

    积分
    155
    发表于 2017-6-21 12:18:10 | 显示全部楼层 |阅读模式
    本帖最后由 different 于 2017-6-21 12:26 编辑

    继开源航模四轴飞行器带来的“无人机”热开始慢慢降温之后,又开始了所谓智能机器人的炒作热潮,书城的点读机加上几个舵机之后就叫做智能学习保姆机器人,实在是令人叹为观止,以为是二十年目睹之怪现状。 于是乎作为机器人驱动的关键部件之一的舵机也开始有很多人关注了。总的来说,感觉市面上的所谓机器人舵机无非就是把原来普通的舵机加了个串口通信而已,无非就是按着韩国DYNAMIXEL舵机的协议和改改开源的OPENSERVO而已。 在我看来,如果不用磁编码器想做好的机器人舵机简直就是扯蛋的事情。 这不,最近就有朋友想找我做个机器人总线舵机的DEMO玩玩,幸好去年花了2个多月的时间研究了一下简单的直流有刷伺服,于是怀着试试看的心理,也试试机器人舵机的水深。 当然了,既然是DEMO就不要指望做的很精细了,有效果就行,但试了一下实际效果,不会比原装的差很远。 这个舵机DEMO使用的STM32F031G6U6 QFN28的单片机,STSPIN230作为驱动器,加了个简单的3态总线缓冲器,所有连线使用杜邦线,哈哈。 还有所使用的舵机是深圳一家公司的产品,据说是结构改良版,不过就我的实际使用觉得,还是一如既往的渣!那个齿轮噪音简直就像在用这种方式表达着它的痛苦。 下面是拆下来的电路板,居然用的是C8051F850,超便宜的单片机,记得以前应该用的应该是STM32F031的片子,芯片被打磨了,但根据我对STM32单片机封装的了解和引脚特征,基本可以 肯定是STM32F031G6U6.


    虽然我不是专业的PCB LAYOUT工程师,画的板也很渣,但我觉得这个板子做的还是不太美观,难道是想把PCB也做成机器人的圆圆的脑袋?以凸显是机器人专业控制板? 不得而知,不得而知。。。但可以看出这个画板子的工程师很有人文情怀。




    下面是我画的渣渣板,好好的一个电机控制软件工程师活生生被逼成了一个PCB画板工程师,你说这不是逼良为娼么? 这个是模拟的主控板:

    焊好后

    舵机板:

    焊好

    单个接线的样子:


    PWM频率为20KHZ,非常的安静,完全没有原装舵机那种高频的滋滋声和抖动,效果还是不错的! 串口通信速度为115200,10ms周期发送一次数据,考虑到数据回传没有界面,就免掉了,这个下次搞基于磁编的舵机时再搞,当然那个时候要搞上位机了。 数据包就简单的模拟一下dynamixel就行,搞了个简化版,当然,数据校验是一定要有的,没有的话就好像穿裤子不系皮带一样,严肃的说很不好。不用什么CRC了,就简单的校验和就行。 拜深圳制造的发达所赐,在华强PCB打个板实在是太方便了,画板子焊板子写软件,一气呵成,断断续续花了20几天的样子,提刀而立,为之四顾,为之踌躇满志,善刀而藏之。 使用简单的PID位置环,控制周期为1ms,效果已经差不多了。 舵机的电源电压用的是5V,根据实际使用效果,电压加的太高,会导致电机转速太快,会让单片机的换向中断太过频繁,被操的太累有点于心不忍哈。 对了,还有个问题可能会有兄弟会问:你是怎么确定马达霍尔相序的? 其实很简单,先通过板子上的霍尔插座判断出电机上电源引线后加个3.3V的电压,然后用自己的旺财板烧个无感方波的程序(要注意进角要设定为0进角,让波形对称,方便判断霍尔切换点),将马达以无感方式驱动后用示波器观察3个霍尔信号,然后记下马达相和霍尔信号的对应关系做个表格就行了。
    回复

    使用道具 举报

    *滑动验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表