PCM开发板模块实验指导--2轴步进电机八分法画圆实验

模块推荐:https://item.taobao.com/item.htm?ft=t&id=671629736762

        67---2轴步进电机八分法画圆实验:

                硬件需求:PC机,PCM模块一个,microUSB线,5V/0.5A直流电源,12V/1A直流电

                源,XY两轴定位装置, 导线若干;

                软件需求:PCM编译软件,串口调试助手;

                供电方式:12V电源供电给+5V电源,+5V电源输出的5V给PCM模块供电;

                连接电路:如图123(2轴步进电机串口接收坐标实验)

        图126         圆的八分法

                        本实验通过串口发送圆半径,使用steprundist指令,通过八分法的方法画圆。

                        本实验使用的2轴装置与第66个实验(2轴步进电机串口接收坐标实验)一样。

                        请参考图126-圆的八分法,如果我们把一个圆分成八个区D1,D2,D3,D4,D5,

                D6,D7,D8.我们会发现相邻的2个区坐标是对称的,只是符号或者是顺序,或者X与Y

                有颠倒,所以我们只需要先计算出一个区的坐标,其他区的坐标我们只要改变符号或者

                是顺序就可以了。

                        直线系统画圆,我们可以把圆分成很小很小的线段来画,分的越小,画的圆越精

                细,本实验我们把圆分成360段,每个区就有45段,每段弧的度数是1度。

                        本实验我们从D1区的X轴位置开始逆时针画圆,每个区XY轴都要走45步,所以每个

                区有45个XY轴的行走距离坐标,步进马达往X轴正方向为正,X轴负方向为负,Y轴正方

                向为正,Y轴负方向为负,这45个距离坐标我们这样来标记:

                        D1区的坐标:(D1X1,D1Y1),(D1X2,D1Y2),.......(D1X45,D1Y45);

                        D2区的坐标:(D2X1,D2Y1),(D2X2,D2Y2),.......(D2X45,D2Y45);

                        。。。。。。

                        D8区的坐标:(D8X1,D8Y1),(D8X2,D8Y2),.......(D8X45,D8Y45);

                        我们把D2-D8区的坐标用D1区的值去表示:

                        D2区坐标值:

                        D2X1 = - D1Y45 ; D2Y1 = - D1X45 ;

                        D2X2= - D1Y44 ; D2Y2 = - D1X44 ;

                        .........

                        D2X45 = - D1Y1 ; D2Y45 = - D1X1 ;

                        D3区坐标值:

                        D3X1 =  D2X45 = - D1Y1 ; D3Y1 = - D2Y45 =  D1X1 ;

                        D3X2 =  D2X44 = - D1Y2 ; D3Y2 = - D2Y44 =  D1X2 ;

                        .........

                        D3X45 =  D2X1 = - D1Y45 ; D3Y45 = - D2Y1 =  D1X45 ;

                        D4区坐标值:

                        D4X1 =  D3Y45 =  D1X45 ; D4Y1 =  D3X45 = - D1Y45 ;

                        D4X2 =  D3Y44 =  D1X44 ; D4Y2 =  D3X44 = - D1Y44 ;

                        .........

                        D4X45 =  D3Y1 =  D1X1 ; D4Y45 =  D3X1 = - D1Y1 ;

                        D5区坐标值:

                        D5X1 = - D4X45 = - D1X1 ; D5Y1 =  D4Y45 = - D1Y1;

                        D5X2 = - D4X44 = - D1X2 ; D5Y2 =  D4Y44 = - D1Y2 ;

                        .........

                        D5X45 = - D4X1 = - D1X45 ; D5Y45 =  D4Y1 = - D1Y45 ;

                        D6区坐标值:

                        D6X1 = - D5Y45 =  D1Y45 ; D6Y1 = - D5X45 =  D1X45;

                        D6X2 = - D5Y44 =  D1Y44 ; D6Y2 = - D5X44 =  D1X44 ;

                        .........

                        D6X45 = - D5Y1 =  D1Y1 ; D6Y45 = - D5X1 =  D1X1 ;

                        D7区坐标值:

                        D7X1 =  D6X45 =  D1Y1 ; D7Y1 = - D6Y45 = - D1X1 ;

                        D7X2 =  D6X44 =  D1Y2 ; D7Y2 = - D6Y44 = - D1X2 ;

                        .........

                        D7X45 =  D6X1 =  D1Y45 ; D7Y45 = - D6Y1 = - D1X45 ;

                        D8区坐标值:

                        D8X1 =  D7Y45 = - D1X45 ; D8Y1 =  D7X45 =  D1Y45 ;

                        D8X2 =  D7Y44 = - D1X44 ; D8Y2 =  D7X44 =  D1Y44 ;

                        .........

                        D8X45 =  D7Y1 = - D1X1 ; D8Y45 =  D7X1 =  D1Y1 ;

                        根据圆的坐标方程:X^2+Y^2=R^2,X=R*cos(a);Y=R*sin(a);现在来计算D1区的45

                个XY轴距离值;

                        第1段:D1X1 = R*(cos(1)-1) ,D1Y1 = R*sin(1) ;

                        第2段:D1X2 = R*(cos(2)-1) - R*(cos(1)-1) = R*(cos(2)-cos(1)),

                                D1Y2 = R*(sin(2) - sin(1)) ;

                        第3段:D1X3 = R*(cos(3)-cos(2)),

                                D1Y3 = R*(sin(3) - sin(2)) ;

                                ......

                        第45段:D1X45 = R*(cos(45)-cos(44)),

                                D1Y45 = R*(sin(45) - sin(44)) ;

                        程序先装载D1区数据给马达运行,运行完后再根据D1区数据计算出D2区数据,然

                后装载数据给马达运行,每个区运行结束后装载下一个区的数据,直到8个区运行完成,

                一个圆就画完了。

                        实验程序如下:

                1 subpro sub12 //XY轴运行子程序

                2         mov d20 f23 //X坐标转换成浮点数

                3         mov d21 f24 //Y坐标转换成浮点数

                4         abs f23 f23 //取X坐标绝对值

                5         abs f24 f24 //取Y坐标绝对值

                6         if f23 > f24 //如果X坐标大于Y坐标

                7                 if f24 != 0 //Y坐标不为0

                8                         div f23 f24 f25 //X坐标除以Y坐标的倍数

                9                 ​​​​​​​        mul f25 f26 f21 //倍数乘以最低的速度,为X轴速度;所以马达运行距离

                                                                //与速度成正比,这样可以让XY轴同步运行

                10         ​​​​​​​        ​​​​​​​        mov f26 f22 //Y轴速度

                11         ​​​​​​​        endif

                12         else //如果Y坐标大于X坐标

                13         ​​​​​​​        if f23 != 0 //X坐标不为0

                14         ​​​​​​​        ​​​​​​​        div f24 f23 f25 //Y坐标除以X坐标的倍数

                15         ​​​​​​​        ​​​​​​​        mul f25 f26 f22 //倍数乘以最低的速度,为Y轴速度;所以马达运行

                                                               // 距离与速度成正比,这样可以让XY轴同步运行

                16        ​​​​​​​        ​​​​​​​         mov f26 f21 //X轴速度

                17         ​​​​​​​        endif

                18         endif

                        //启动X轴,d20为脉冲数,正表示正转,负表示反转,f20为加减速时间,

                        //f21是最大速度,F10保存马达运行D20个脉冲需要的时间,单位S;

                19         steprundist 0 d20 f20 f21 f10

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值