智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2474|回复: 7
打印 上一主题 下一主题

车子无法往左转

[复制链接]

4

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
414
威望
233
贡献
121
兑换币
140
注册时间
2013-12-1
在线时间
30 小时
毕业学校
安徽财经大学
跳转到指定楼层
1#
发表于 2014-5-16 08:26:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
车子总是无法往左转,CCD返回回来的图像是对的,当给适合的PWM值时车子会左右转,但是左边转的最大幅度没有右转的大,是不是轮子要调整???可是为什么我们车子不会往左转呢?有没有可能是我们测的左右PWM值错误,不过我们都测了很多遍还是不行,求大神指教还有可能有什么原因导致车子无法左转。

回复

使用道具 举报

4

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
414
威望
233
贡献
121
兑换币
140
注册时间
2013-12-1
在线时间
30 小时
毕业学校
安徽财经大学
2#
 楼主| 发表于 2014-5-16 08:28:22 | 只看该作者
//////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////  方向控制  //////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
int dir_mid=2800;
int dir_left=3450;
int dir_right=2150;
int dir_p=6;
//3250左值,2350右值,2800中值
int abs(int a)
{
    if(a<0)
        return -a;
    else
        return a;
}

int dir1() {

int leftnum,rightnum,left,right,i;
  int output;
   left=0;
   right=0;
   for(i=64;i>=5;i--)
    {
        if(abs(ADV[i-2]-ADV[i])>=20)
        {
            left=1;                               //找到左边黑线位置
            leftnum=i-2;
            break;
        }
    }
     for(i=64;i<=102;i++)
    {
         if(abs(ADV[i+2]-ADV[i])>=20)
         {
             right=1;                              //找到右边黑线位置
             rightnum=i+2;
             break;
         }     
    }
    if(right==1&&left==1)
    {
        rightnum=abs(rightnum-64);
        leftnum=abs(64-leftnum);
        if(rightnum>leftnum)
               output=dir_mid-(rightnum-leftnum)*dir_p;
         else if(rightnum<leftnum)
               output=dir_mid+(leftnum-rightnum)*dir_p;
         else output=dir_mid;
    }
    else if(right==1)
      output=dir_mid+rightnum*dir_p;
    else if(left==1)
      output=dir_mid-leftnum*dir_p;
    if(output>dir_left)
    output=dir_left;
    if(output<dir_right)
    output=dir_right;
    PWM_Output(PWM_PIN_PTA10,output);
    return output;
}
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
414
威望
233
贡献
121
兑换币
140
注册时间
2013-12-1
在线时间
30 小时
毕业学校
安徽财经大学
3#
 楼主| 发表于 2014-5-16 08:29:37 | 只看该作者
我们车子转向的程序在上面,程序是蓝宙的,应该不会出问题吧
回复 支持 反对

使用道具 举报

1

主题

247

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1284
威望
657
贡献
367
兑换币
445
注册时间
2014-3-9
在线时间
130 小时
4#
发表于 2014-5-17 21:41:43 | 只看该作者
程序略简单。。。
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
414
威望
233
贡献
121
兑换币
140
注册时间
2013-12-1
在线时间
30 小时
毕业学校
安徽财经大学
5#
 楼主| 发表于 2014-5-18 07:05:03 | 只看该作者
zhuimengA2012 发表于 2014-5-17 21:41
程序略简单。。。

求大神给牛掰程序
回复 支持 反对

使用道具 举报

1

主题

247

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1284
威望
657
贡献
367
兑换币
445
注册时间
2014-3-9
在线时间
130 小时
6#
发表于 2014-5-18 15:21:25 | 只看该作者
18505541003 发表于 2014-5-18 07:05
求大神给牛掰程序

你们舵机中间值为什么是2800?
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
414
威望
233
贡献
121
兑换币
140
注册时间
2013-12-1
在线时间
30 小时
毕业学校
安徽财经大学
7#
 楼主| 发表于 2014-5-18 19:14:42 | 只看该作者
zhuimengA2012 发表于 2014-5-18 15:21
你们舵机中间值为什么是2800?

我们换成大律算法,现在车子能跑了,中间值是输出PWM使舵机转到中间一个一个试出来的,左右值也是一个一个试出来的
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
414
威望
233
贡献
121
兑换币
140
注册时间
2013-12-1
在线时间
30 小时
毕业学校
安徽财经大学
8#
 楼主| 发表于 2014-5-18 19:17:33 | 只看该作者
zhuimengA2012 发表于 2014-5-18 15:21
你们舵机中间值为什么是2800?

感觉你车子方面懂得挺多,希望能留个qq,方便以后交流
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-28 07:02 , Processed in 0.050180 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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