智能车制作

标题: 摄像头情况多多 程序和图奉上 [打印本页]

作者: BGD2008YXX    时间: 2011-6-8 22:15
标题: 摄像头情况多多 程序和图奉上
[attach]7765[/attach]用杜邦线连接的0V7620
如果把排线插在排座上(就是连接上S12的管脚),就不能成功DEBUG程序 也不能正常运行。
S12提前下好的能正常运行的电机舵机程序,接上摄像头之后就无法正常转动,偶尔舵机会转1,2下。
希望大家帮我瞧瞧是否接对了线。这种情况的解决方法。
作者: BGD2008YXX    时间: 2011-6-8 22:16
明天小比啊
作者: 张大鹏    时间: 2011-6-8 22:29
同样问题,求摄像头和单片机的连接图
作者: BGD2008YXX    时间: 2011-6-8 23:03
你这也同样问题。。
作者: BGD2008YXX    时间: 2011-6-9 07:58
路过的大神们,给点意见建议啊
作者: 小胡杨    时间: 2011-6-9 12:40
我们用的是OV6620 没有连接那么多的脚  只有 Y0-Y7   行中断  场中断  电源 视频输出
作者: hls    时间: 2011-6-9 15:29
我们用的OV6620   你买摄像头的时候没要资料吗?
作者: p_heng    时间: 2011-6-9 15:56
看看
作者: chance0077    时间: 2011-6-9 21:50
你的程序有问题,主函数里没有  FOR循环,主函数一会儿执行完了,什么也没了
作者: BGD2008YXX    时间: 2011-6-11 03:14
用OV7620的给分析一下我线接对了没,先排除硬件问题,谢谢楼上的
作者: rolcye    时间: 2011-6-12 00:45
楼主是从网上下载的程序吧,一般的调试步骤不是这样的。

首先要确定连接好摄像头,然后做个摄像头采集程序,搞定串口,再通过串口上位机观察采集的图像是否正确。
其次再考滤编写黑线提取程序,这个过程也是要通过上位机观察,并且确认提取到的黑线是正确的。
然后,你才要做电机/舵机的输出控制程序,具体情况要看算法了,

楼主连摄像头都不知道是不是接对了,怎么就开始控制舵机/电机了呢?
能按楼主这样的步骤做车,估计只有大神可以达到。
作者: 540708692    时间: 2011-6-12 09:19
我的舵机有是转1,2下,而且反映很慢,不知道是怎么回事。我想你的是不是中断问题,意思就是还没处理完其他数据,中断又来了!
作者: BGD2008YXX    时间: 2011-6-12 19:06
回复 11# rolcye


我第一步焊接电源 调试电源
第一步ok了我接着弄33886驱动
然后我上简易的程序 舵机 电机转动
能用程序控制电机的速度,舵机的方向后
我焊接上摄像头的接线。。
然后就发现无法使用 出现了顶楼的问题
作者: rolcye    时间: 2011-6-13 01:46
回复 13# BGD2008YXX


摄像头组的软件才是核心部份。
焊上摄像头就能跑了?? 你怎么知道你的程序是好的呢??
从一张图像中成功地提取到黑线中心不是那么容易的事,特别是今年还有虚线。

没猜错的话,你们是从别的地方弄到的程序,
OV6620的接线方式很简单的,问淘宝的卖家,他们会提供正确的接线方式,硬件不容易问题(如果是焊好的话)。
去年我用的OV6620,也出现过这种情况,程序的问题。自己想办法解决吧。
作者: rolcye    时间: 2011-6-13 01:56
按楼主的图上的接法,只接6-20号。
也就是PA0~PA7  +  IRQ  + PT2
再加VCC,GND
作者: BGD2008YXX    时间: 2011-6-14 23:40
回复 12# 540708692


   我的摄像头应该是还没接受过完整的程序
因为我dubug不了  插上摄像头就debug不了
只给电机转的程序
DDRB=0xff;
   PWME=0x00;        // Disable  PWM      
    PWMCAE=0X00;      // 对其方式   
    PWMCTL=0x80;      // 将67通道级联
    PWMPRCLK=0x33;    // A=16M/16=1M     时钟预分频寄存器设置
    PWMSCLA=5;        // SA=A/(2*SCLA)=100k   时钟设置
    PWMSCLB=1;        // SB=B/(2*SCLB)=100k   时钟设置
//********************************************************
//电机驱动PWM选择    电机接在PP0,PP1               
    EN=0;
    PWMCLK_PCLK0=1;   // 时钟源的选择
    PWMCLK_PCLK1=1;   
    PWMPOL_PPOL0=0;   // 极性设置      
    PWMPOL_PPOL1=0;   
    PWMPER0=200;      
    L_PWM=50;      
    PWMPER1=200;      
    R_PWM=50;
//这样的PWM输出为占空比可调,0.5kHz。
//*********************************************************
//舵机驱动PWM设置 舵机接在PP7  
PWMCLK_PCLK7=1;  
  PWMPOL_PPOL7=1;
PWMPER67=20*1000;     
S_PWM=1500;
PWME_PWME7=1;        
}
/**********************************************************
*         speed and motor operation function
**********************************************************/
#pragma INLINE
void speedUp()
{         
L_DIE_NO=0;
L_DIR=1;               
R_DIR_NO=0;
R_DIR=1;     
EN=1;
PWME_PWME0=1;
PWME_PWME1=1;
}
#pragma INLINE
void speedSet(uchar left,uchar right) //先左后右
{
R_PWM=right;
L_PWM=left;
}
#pragma INLINE  
void speedDown()
{         
L_DIE_NO=1;
L_DIR=0;               
R_DIR_NO=1;
R_DIR=0;     
EN=1;
PWME_PWME0=1;
PWME_PWME1=1;
}
#pragma INLINE
void speedStop()
{           
EN=0;
PWME_PWME0=0;
PWME_PWME1=0;
}
/**********************************************************
*          servo motor operation function
**********************************************************/
#pragma INLINE
void servo(uint s) //chuanru bianliang wei 1000--2000.
{
S_PWM=s;
}
/**********************************************************
*          servo motor and motor test function
**********************************************************/
void delay(dword max)
{
dword i;
for(i=0;i<max;i++);
}
void motorTest()
{
speedUp();
/********************
  speedSet(0,0);
delay(0x00050000);
servo(1300);
speedSet(100,100);
PORTE_PE5=1;
delay(0x00050000);
servo(1700);
speedSet(40,40);
PORTE_PE5=0;
delay(0x00050000);
servo(1500);
speedSet(100,100);
  PORTE_PE5=1;
delay(0x00050000);
speedSet(150,150);
PORTE_PE5=0;
delay(0x00100000);
speedSet(199,199);
PORTE_PE5=1;
delay(0x00050000);
speedSet(200,200);
PORTE_PE5=0;
delay(0x00050000);
speedSet(200,200);
PORTE_PE5=1;
delay(0x00050000);
speedDown();
PORTE_PE5=0;
*****************/
servo(1500);      
speedSet(20,20);
LED1=1;
delay(0x50000);
speedSet(160,160);
LED1=0;
delay(0x50000);
speedSet(100,100);
servo(1700);
LED1=1;
delay(0x50000);
servo(1500);
speedSet(20,20);
LED1=0;
delay(0x50000);
speedSet(100,100);
servo(1700);
LED1=1;
delay(0x50000);
speedStop();
// while(1);
}
这个程序不接摄像头能正常的动 接上就不行了。
我明天试试把摄像头的供电断掉 看看会有什么情况
作者: BGD2008YXX    时间: 2011-6-14 23:45
回复 15# rolcye


    摄像头不是我买的。是另一组买的,虽然也给了我卖家发过来的资料 但不明白啊。
OV7620使用手册 里的接线 有PJ6 7 PJ0 PJ1
用的好像不是64引脚的S12
作者: fjxm007    时间: 2011-6-15 09:56

作者: rolcye    时间: 2011-6-15 10:01
按楼主的图上的接法,只接6-20号。
也就是PA0~PA7  +  IRQ  + PT2
再加VCC,GND
是肯定可以的,不用接那么多线。前面也有人说过了……
要是实在不会,可以问你们另一组的,同一个学校的,不可能不帮这种小忙吧!
作者: BGD2008YXX    时间: 2011-6-19 00:37
中断    搞不明白
作者: vgjkl    时间: 2011-6-19 00:55
用7620的很多啊




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2