智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2023|回复: 11
打印 上一主题 下一主题

摄像头采样出现奇葩错误,采样明显错了,但舵机可以正确转向

[复制链接]

3

主题

67

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1848
威望
945
贡献
577
兑换币
605
注册时间
2013-7-23
在线时间
163 小时
跳转到指定楼层
1#
发表于 2013-8-13 16:41:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我程序单独采样时采到的点是正确的,但当我把同样的程序写到舵机控制的时候,采样就出问题了(程序没变),大概在原来每行采样总数一半处,出现3、4个连续的AD值为十几、二十几的点,我怀疑采到了行中断,但又觉得这是不可能的,第一、我的程序没变。第二、如果采到连续两行,得到的数组会出问题(后一半全部会变成0),但实际情况是,数组前一半数正常,后一半数正常,就是中间几颗老鼠屎不知道是怎么出来的。但我看采到的数就像是包括行中断标志的连续的两行,我对数据二值化处理后(我特意对高于阈值的数赋0,低于阈值的数赋1),奇葩的现象出现了,舵机可以正常转向,小车可以正常沿赛道跑!麻烦问一下各位这到底是什么回事??

3

主题

67

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1848
威望
945
贡献
577
兑换币
605
注册时间
2013-7-23
在线时间
163 小时
12#
 楼主| 发表于 2013-8-14 10:09:13 | 只看该作者
本帖最后由 WGQHHH 于 2013-8-14 10:11 编辑

回复 支持 反对

使用道具 举报

3

主题

67

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1848
威望
945
贡献
577
兑换币
605
注册时间
2013-7-23
在线时间
163 小时
11#
 楼主| 发表于 2013-8-14 01:18:05 | 只看该作者
好吧,我来结束它吧,我觉得对hang赋值时,对AD转换值得读取有延迟,导致一行结束时还没采够预设的点数,还有我之前对中断的理解有误,并不是捕获到一个中断,就马上进入中断函数,而是有优先级关系的,要判断优先级的关系,如果第二个优先级高的话进行第二个,第二个执行完了再执行第一个。如果第一个优先级高,或者优先级一样高的话,执行完第一个在执行第二个。所以会出现图中的错误,而不是我之前预想的数组后面全为0。还有为什么小车可以正确在一般的直道、弯道上跑,因为可能是出错得比较巧合,采到的一行数据,基本上可以代表连续的两行数据,所以一个数组的数连起来看,相当于看到了两条基本相同的赛道并排在一起,而我特意对静态阈值进行相反的赋值,按照我的算法是从两条赛道中间黑色部分找起,并提取中线,也就是说由于我采样的错误加上我特意的赋值,小车就把两条赛道中间夹着的黑色区域当做赛道,加上我提取了中线,所以出现了这种奇葩,采样出错还可以跑。
回复 支持 反对

使用道具 举报

3

主题

67

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1848
威望
945
贡献
577
兑换币
605
注册时间
2013-7-23
在线时间
163 小时
10#
 楼主| 发表于 2013-8-14 00:49:09 | 只看该作者
rubick 发表于 2013-8-13 23:47
是 16 啊!!!!必须是行消隐区啊!!!

嗯,是行消隐区,这位童鞋谢谢你了!请你吃,呵呵
回复 支持 反对

使用道具 举报

21

主题

896

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4068
威望
2252
贡献
1296
兑换币
1483
注册时间
2012-7-30
在线时间
260 小时
毕业学校
克莱德大学
9#
发表于 2013-8-13 23:47:24 | 只看该作者
是 16 啊!!!!必须是行消隐区啊!!!
回复 支持 反对

使用道具 举报

3

主题

67

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1848
威望
945
贡献
577
兑换币
605
注册时间
2013-7-23
在线时间
163 小时
8#
 楼主| 发表于 2013-8-13 22:35:09 | 只看该作者
rubick 发表于 2013-8-13 20:54
上图!

已经上图了求解答
回复 支持 反对

使用道具 举报

3

主题

67

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1848
威望
945
贡献
577
兑换币
605
注册时间
2013-7-23
在线时间
163 小时
7#
 楼主| 发表于 2013-8-13 22:30:54 | 只看该作者
我找到错误的地方了,但不知道原因,我之前采样时用的是一维数组image[0]、image[1]....image[65],这样采到的一行数据是没问题的。但我在写舵机控制的时候采用的是二维数组image[hang][0]、image[hang][1]....image[hang][65],对hang赋值就可以采到一行数据,但采到的数据出错,见图(第36、37、38)。当我把数组改为image[0][0]、image[0][1]....image[0][65],这时候采到的数据是正确的,如图。我不明白为什么会有这种影响??

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

21

主题

896

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4068
威望
2252
贡献
1296
兑换币
1483
注册时间
2012-7-30
在线时间
260 小时
毕业学校
克莱德大学
6#
发表于 2013-8-13 20:54:28 | 只看该作者
WGQHHH 发表于 2013-8-13 17:58
没有变的,PLL、AD以及中断设置都是和之前一样的

上图!
回复 支持 反对

使用道具 举报

3

主题

67

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1848
威望
945
贡献
577
兑换币
605
注册时间
2013-7-23
在线时间
163 小时
5#
 楼主| 发表于 2013-8-13 17:58:44 | 只看该作者
rubick 发表于 2013-8-13 16:55
那就不是舵机的影响了,你主频没变吧?

没有变的,PLL、AD以及中断设置都是和之前一样的
回复 支持 反对

使用道具 举报

21

主题

896

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4068
威望
2252
贡献
1296
兑换币
1483
注册时间
2012-7-30
在线时间
260 小时
毕业学校
克莱德大学
4#
发表于 2013-8-13 16:55:19 | 只看该作者
WGQHHH 发表于 2013-8-13 16:52
但那几个噪点是非常有规律的,就在数组的一半处,而且值也很稳定。还有如果是舵机引起的,那怎么样做才能 ...

那就不是舵机的影响了,你主频没变吧?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-27 17:32 , Processed in 0.056999 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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