t514 发表于 2009-8-4 21:43:08

求助电机画圆算法

求助电机画圆算法

chenfuyun 发表于 2009-8-4 22:04:54

内圆周与外圆周比就是速度比,两个电机设定恒定速度

t514 发表于 2009-8-4 22:07:16

能说清楚一点吗,有点不懂

wenming 发表于 2009-8-4 22:13:33

找本计算机图形学看看,这个与LCD的画圆其实没有不同的

maxwell_lee 发表于 2009-8-4 22:21:34

你能再纸上任意指定点画点吗?如果可以,你想画什么都行。

romanticye 发表于 2009-8-11 22:26:32

严重关注,期待高手赐教!!

xiaopang 发表于 2009-8-12 17:35:50

#include<reg52.h>
#include<math.h>

//控制左右转的电机
sbitzm2=P1^0;
sbitzm1=P1^1;
sbit cp1 = P1^4;
sbit cw1 = P1^5;
//控制上下转的电机
sbit m2=P2^2;
sbit m1=P2^3;
sbit cp2 = P2^6;
sbit cw2 = P2^4;



//sbitjidian=P1^7;


float x,y,r;
float buj1,buj2;
int y1=0;

void delay(int i);

void yuan(float r);

void lr(char x);
void fb(char x);



void main()
{
   
    zm2=0;//1/4细分
    zm1=1;
        m2=0;//1/4细分
        m1=1;
    //jidian=0;
    while(1)
    {
   yuan(100);
   }

}

void yuan(float r)
{
int k;


for(x=0;x<=r;x++)
{
        y=r-sqrt(r*r-x*x);
        lr(1);
    k=(int)(y1-y);
        fb(k);
    y1-=k;
}
y1=0;
for(x=r;x>=0;x--)
{
        y=sqrt(r*r-x*x);
        lr(-1);
    k=(int)(y1-y);
        fb(k);
    y1-=k;
}
y1=0;
for(x=0;x<=r;x++)
{
        y=r-sqrt(r*r-x*x);
        lr(-1);
    k=(int)(y1-y);
        fb(-k);
    y1-=k;
}
y1=0;
for(x=r;x>=0;x--)
{
        y=sqrt(r*r-x*x);
        lr(1);
    k=(int)(y1-y);
        fb(-k);
    y1-=k;
}
}



void delay(int i)
{
while(i --);
}



void lr(char x)
{
   char j;
   if(x < 0)
               {
                  cw1 = 1;
                  x= -x;
               }
       else
          cw1 = 0;

          for(j = 1;j <= x;j++)
                        {   
               
                cp1 = 0;
                delay(1000);
                cp1 = 1;
                delay(1000);
            }
}


void fb(char x)
{
   char j;
   if(x < 0)
               {
                  cw2 = 0;
                  x= -x;
               }
       else
          cw2 = 1;

          for(j = 1; j <= x; j ++)
                        {   
               
                cp2 = 0;
                delay(1000);
                cp2 = 1;
                delay(1000);
            }
}


我的就是用圆的公式做的,分1/4画,画4次。

hushaoxin 发表于 2009-8-12 18:24:14

这个好像是05年还是03年的国家赛的题目,画圆,寻迹,我在06年训练的时候做过。呵呵!老师说达到国家奖的水平了,当时我只知道所有功能实现并超标

t514 发表于 2009-8-17 19:19:04

谢谢啦,爽歪歪

hxjsini 发表于 2009-9-9 22:15:48

只要把画点的功能完美实现其它功能就简单了。
画圆的时候一定要注意两个电机同步的问题,同时开始,同时结束。这样才画的更圆。

QJD_LZF 发表于 2009-9-9 22:51:57

哈哈.我现在做的自动点胶机就是控制X,Y移动台自动画圆.我只要给它半径,它就会从圆心开始画一个圆面给我.这个难点只是在X,Y坐标的运算上面而已.
页: [1]
查看完整版本: 求助电机画圆算法