智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 9682|回复: 8
打印 上一主题 下一主题

摄像头图像采集问题

[复制链接]

18

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
394
威望
229
贡献
95
兑换币
0
注册时间
2011-1-14
在线时间
35 小时
跳转到指定楼层
1#
发表于 2011-3-9 22:49:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们加入了控制算法以后,摄像头采集的图像质量下降严重。不管怎么改行消隐信号等待时间,总是无法减弱行消隐信号产生黑块的宽度,以至于将干扰当成了跑道,谁知道该怎么办?我们的总线时钟是48M,要采一个70乘80的矩阵。是哪个时间设置的不合适?还是摄像头焦距没调好?还是AD的频率没调好?
这是AD模块的初始化代码:
  1. ATD0CTL0=0x00;   //单通道转换
  2.   ATD0CTL1=0x0F;   //7:1-外部触发,65:00-8位精度,4:放电,3210:通道15
  3.   ATD0CTL2=0x40;   //禁止外部触发, 中断禁止   
  4.   ATD0CTL3=0x08;   //左对齐无符号,每次转换1个序列, No FIFO, Freeze模式下继续转   
  5.   ATD0CTL4=0x00;   //765:采样时间为4个AD时钟周期,ATDClock=[BusClock*0.5]/[PRS+1]
  6.   ATD0CTL5=0x0F;   //通道15
  7.   ATD0DIEN=0x00;   //禁止数字输入
复制代码
附主函数代码:

  1. void main(void)
  2. {
  3.   LAST_PWMDTY01=6300;
  4.   PRE1_PWMDTY01=6300;
  5.   PRE2_PWMDTY01=6300;
  6.   k=0;
  7.   PORTB=0xFF;
  8.   
  9.   for(;;)
  10.   {
  11. // PWMDTY01=6200;
  12.   PORTB=0xf0;
  13.   PWMDTY23=0;
  14.   PWMDTY45=0;   
  15.   row=0;
  16.   gpline=0;                          //一场中行计数清零
  17.   gpflag=0;                          //清除场采集结束标志
  18.   while((PTH&0x02)!=0) ;             //等待场同步信号到来
  19.   PORTB=0xff;
  20.   EnableInterrupts;                  //开中断
  21.   TC0=TCNT+0x0CCC;                   //等待场消隐结束
  22.   TFLG1=0xFF;                        //清楚计数完成标志
  23.    
  24.   TIE=0x01;                          //开启TC0中断(interrupt 8)
  25.   while(gpflag==0);
  26.   DisableInterrupts;
  27.   
  28.                      
  29. //此处可添加信息处理、舵机和电机控制程序
  30.   draw_blackline_1();//提取有效的首行
  31.         draw_blackline_2();//对剩余的图像,提取黑线;
  32. //////////////////////////////////////////////////
  33.   get_steer(end_hang,start_hang);
  34.   duoji_control(steer);
  35.   PathIdentifier();
  36. startline_detect();
  37.   if(startline==1) {
  38.     stopline++;
  39.   }
  40.   motor_control();  
  41.   }
  42. //////////////////////////
  43.   }

  44. // Vector 6 Interrupt:start get a line
  45. interrupt 6 void line_start(void)
  46. //interrupt 2054 void line_start(void)
  47. {
  48.   IRQCR=0;                             //关闭行中断
  49.   
  50.   if(gpline==70) {
  51.     gpflag=1;                          //场结束标志位
  52.     //DisableInterrupts;
  53.   }
  54.   else {
  55.     gppoint=0;                         //一行中点计数清零
  56.     TC1=TCNT+0x004E;                  //等待行消隐结束
  57.     TFLG1=0xFF;                        //清除计数完成标志
  58.     TIE=0x02;                          //开启TC1局部中断(interrupt 9)
  59.   }
  60. }

  61. // Vector 8 Interrupt:Timer0
  62. interrupt 8 void timer0(void)
  63. //interrupt 2056 void timer0(void)
  64. {
  65.   TIE=0;                            //关闭定时器局部中断
  66.   IRQCR=0x40;                       //开启行同步中断(interrupt 6)
  67. }


  68. // Vector 9 Interrupt:Timer1
  69. //interrupt 2057 void timer1(void)
  70. interrupt 9 void timer1(void)
  71. {
  72.   unsigned char *p;
  73.   TIE=0;                             //关闭定时器局部中断
  74.   p=&(pic[gpline][0]);
  75.   ATD0CTL2=0x40;
  76.   ATD0CTL5=0x2F;
  77.   while(gppoint!=80)
  78.   {
  79.     while(!ATD0STAT2_CCF0);         //等待通道15转换结束
  80.     *p=ATD0DR0H;
  81.     p++;
  82.     gppoint++;
  83.   }
  84.     row=gpline;

  85.   TC2=TCNT+0x009c;   //隔数行采一次 ,已改
  86.   TFLG1=0xFF;        //清除计时完成标志
  87.   TIE=0x04;          //开启TC2局部中断(interrupt 10)
  88.   gpline++;
  89. }


  90. // Vector 10 Interrupt:Timer2
  91. interrupt 10 void timer2(void)
  92. //interrupt 2058 void timer2(void)
  93. {
  94.   TIE=0;           //关闭定时器局部中断
  95.   IRQCR=0x40;      //开启行同步中断(interrupt 6)
  96. }
复制代码

1

主题

26

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
威望
277
贡献
34
兑换币
0
注册时间
2009-12-4
在线时间
19 小时
2#
发表于 2011-3-10 13:12:21 | 只看该作者
我知道怎么办,底下私聊!
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
369
QQ
威望
283
贡献
62
兑换币
2
注册时间
2011-2-16
在线时间
12 小时
3#
发表于 2011-3-16 00:10:26 | 只看该作者
求经验啊,急!!
回复 支持 反对

使用道具 举报

4

主题

18

帖子

0

精华

高级会员

Rank: 4

积分
685
威望
249
贡献
424
兑换币
0
注册时间
2010-10-22
在线时间
6 小时
4#
发表于 2011-3-16 13:31:06 | 只看该作者
你试着不接电机,用手推推看。。
回复 支持 反对

使用道具 举报

4

主题

18

帖子

0

精华

高级会员

Rank: 4

积分
685
威望
249
贡献
424
兑换币
0
注册时间
2010-10-22
在线时间
6 小时
5#
发表于 2011-3-16 13:32:59 | 只看该作者
我的车只要不接电机,用手推就是跑得很好。。一但接上了。就over了图像采集出来看到的就是很多行无语的黑线
回复 支持 反对

使用道具 举报

8

主题

62

帖子

0

精华

高级会员

Rank: 4

积分
726
威望
373
贡献
107
兑换币
15
注册时间
2010-1-5
在线时间
123 小时
6#
发表于 2011-3-16 20:50:09 | 只看该作者
电机干扰?
回复 支持 反对

使用道具 举报

23

主题

106

帖子

0

精华

金牌会员

iven

Rank: 6Rank: 6

积分
2696
威望
585
贡献
1671
兑换币
60
注册时间
2009-12-11
在线时间
220 小时
7#
发表于 2011-3-17 10:43:12 | 只看该作者
回复 1# zjt


    楼主解决了没有?什么问题?不接电机看看推车跑看看
回复 支持 反对

使用道具 举报

6

主题

105

帖子

0

精华

高级会员

Rank: 4

积分
635

活跃会员奖章

威望
431
贡献
156
兑换币
38
注册时间
2011-8-7
在线时间
24 小时
8#
发表于 2011-10-30 21:42:33 | 只看该作者
怎么用BDM看ov7620呀
回复 支持 反对

使用道具 举报

3

主题

19

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
威望
318
贡献
66
兑换币
55
注册时间
2012-2-29
在线时间
39 小时
毕业学校
HUS
9#
发表于 2012-7-5 20:44:45 | 只看该作者
二楼能和我私聊吗?623770364
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-20 13:29 , Processed in 0.050809 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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