智能车制作

 找回密码
 注册

扫一扫,访问微社区

楼主: BGD2008YXX
打印 上一主题 下一主题

摄像头情况多多 程序和图奉上

  [复制链接]

4

主题

273

帖子

0

精华

金牌会员

NO

Rank: 6Rank: 6

积分
1511
QQ
威望
532
贡献
721
兑换币
0
注册时间
2010-3-27
在线时间
129 小时
11#
发表于 2011-6-12 00:45:31 | 只看该作者
楼主是从网上下载的程序吧,一般的调试步骤不是这样的。

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

楼主连摄像头都不知道是不是接对了,怎么就开始控制舵机/电机了呢?
能按楼主这样的步骤做车,估计只有大神可以达到。
回复

使用道具 举报

3

主题

203

帖子

0

精华

高级会员

Rank: 4

积分
764
威望
491
贡献
215
兑换币
19
注册时间
2011-4-18
在线时间
29 小时
12#
发表于 2011-6-12 09:19:12 | 只看该作者
我的舵机有是转1,2下,而且反映很慢,不知道是怎么回事。我想你的是不是中断问题,意思就是还没处理完其他数据,中断又来了!
回复

使用道具 举报

3

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
475
QQ
威望
265
贡献
192
兑换币
0
注册时间
2011-2-28
在线时间
9 小时
13#
 楼主| 发表于 2011-6-12 19:06:48 | 只看该作者
回复 11# rolcye


我第一步焊接电源 调试电源
第一步ok了我接着弄33886驱动
然后我上简易的程序 舵机 电机转动
能用程序控制电机的速度,舵机的方向后
我焊接上摄像头的接线。。
然后就发现无法使用 出现了顶楼的问题
回复

使用道具 举报

4

主题

273

帖子

0

精华

金牌会员

NO

Rank: 6Rank: 6

积分
1511
QQ
威望
532
贡献
721
兑换币
0
注册时间
2010-3-27
在线时间
129 小时
14#
发表于 2011-6-13 01:46:03 | 只看该作者
回复 13# BGD2008YXX


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

没猜错的话,你们是从别的地方弄到的程序,
OV6620的接线方式很简单的,问淘宝的卖家,他们会提供正确的接线方式,硬件不容易问题(如果是焊好的话)。
去年我用的OV6620,也出现过这种情况,程序的问题。自己想办法解决吧。
回复

使用道具 举报

4

主题

273

帖子

0

精华

金牌会员

NO

Rank: 6Rank: 6

积分
1511
QQ
威望
532
贡献
721
兑换币
0
注册时间
2010-3-27
在线时间
129 小时
15#
发表于 2011-6-13 01:56:02 | 只看该作者
按楼主的图上的接法,只接6-20号。
也就是PA0~PA7  +  IRQ  + PT2
再加VCC,GND
回复

使用道具 举报

3

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
475
QQ
威望
265
贡献
192
兑换币
0
注册时间
2011-2-28
在线时间
9 小时
16#
 楼主| 发表于 2011-6-14 23:40:31 | 只看该作者
回复 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);
}
这个程序不接摄像头能正常的动 接上就不行了。
我明天试试把摄像头的供电断掉 看看会有什么情况
回复

使用道具 举报

3

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
475
QQ
威望
265
贡献
192
兑换币
0
注册时间
2011-2-28
在线时间
9 小时
17#
 楼主| 发表于 2011-6-14 23:45:05 | 只看该作者
回复 15# rolcye


    摄像头不是我买的。是另一组买的,虽然也给了我卖家发过来的资料 但不明白啊。
OV7620使用手册 里的接线 有PJ6 7 PJ0 PJ1
用的好像不是64引脚的S12
回复

使用道具 举报

3

主题

241

帖子

0

精华

高级会员

Rank: 4

积分
810

优秀会员奖章

QQ
威望
473
贡献
279
兑换币
2
注册时间
2011-5-21
在线时间
29 小时
18#
发表于 2011-6-15 09:56:04 | 只看该作者
回复

使用道具 举报

4

主题

273

帖子

0

精华

金牌会员

NO

Rank: 6Rank: 6

积分
1511
QQ
威望
532
贡献
721
兑换币
0
注册时间
2010-3-27
在线时间
129 小时
19#
发表于 2011-6-15 10:01:11 | 只看该作者
按楼主的图上的接法,只接6-20号。
也就是PA0~PA7  +  IRQ  + PT2
再加VCC,GND
是肯定可以的,不用接那么多线。前面也有人说过了……
要是实在不会,可以问你们另一组的,同一个学校的,不可能不帮这种小忙吧!
回复

使用道具 举报

3

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
475
QQ
威望
265
贡献
192
兑换币
0
注册时间
2011-2-28
在线时间
9 小时
20#
 楼主| 发表于 2011-6-19 00:37:59 | 只看该作者
中断    搞不明白
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-5 10:04 , Processed in 0.052270 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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