智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2497|回复: 2
打印 上一主题 下一主题

[第五届] 智能车循迹

[复制链接]

5

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
894
QQ
威望
349
贡献
495
兑换币
0
注册时间
2010-4-7
在线时间
25 小时
跳转到指定楼层
1#
发表于 2010-4-7 23:07:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

硬件:电机用两个8050驱动  单片机是M16(内部8M   传感器是红外对管(两个)   测到黑线为低电平    两个传感器夹黑线
可以实现:在小车循迹过程中   把小车拉离黑线(在拉离的时候要保持传感器能测到的高度  小车不能提起)  小车可以自动返回黑线


代码很简单


//
左传感器接PA0  右传感器接PA1  (面对车头)

#include<iom16v.h>
#include<macros.h>

#define uint8  unsigned char
#define  int8    signed char
#define uint16 unsigned int
#define  int16   signed int

#define LIFT   5
#define RIGHT  6

uint8 flag,signal;

void delay(uint16 a)
{
   uint8 i,j;
   for(i=10;i>0;i--)
      for(j=a;j>0;j--);
}

void motor_run()
{
   PORTD |= (1<<LIFT)|(1<<RIGHT);
}

void motor_stop()
{
   PORTD &= ~(1<<LIFT)&~(1<<RIGHT);
}

void motor_r()
{
   PORTD = 0XFF;
   PORTD &= ~(1<<LIFT);  
}

void motor_l()
{
   PORTD = 0XFF;
   PORTD &= ~(1<<RIGHT);  
}


void main()
{
   DDRD = 0XFF;
   DDRA = 0X00;
   PORTA = 0XFF;
   while(1)
   {   
     flag = PINA;
  signal = flag & 0X03;
   
  switch(signal)
  {
case 0X00:motor_run();//
两黑

break;
case 0X01:motor_r();//
右黑左白

break;
case 0X02:motor_l();//
左黑右白

break;
case 0X03: while(!(signal==0x03));  //
两白
  
                     break;
default: motor_run();
   }
}
}


小车实现自动返回黑线(也就不怕冲出跑道)是我在实验过程中无意中实现的  我正在找原因   现在的情况是:

         
传感器                       轮子

      
左黑      右黑                 左转右转    前进

      
左白      右黑 (保持左白)    左停右转    左拐

      
左白      右白(保持左白)     左停右转    左拐        在其中一个传感器测到白色(输出高)并保持一直测到白色,另一个无论测到黑或白

      
右白      左黑  (保持右白)   左停右转    右拐        电机的状态都不变

      
右白      左白(保持右白)     左停右转    右拐

      
小车可以转过90度折线    甚至80度的折线

当我把   上边代码中

case 0X03: while(!(signal==0x03));   
                     break;
两句注释掉的时候

      
小车必须 很慢很慢(速度要比原来的1/2还慢才行) 才能循迹   并且不能过90度的折线   不能实现自动返回黑线



还有:1,在把车放在白色区域   上电   车会前进一下  然后就不动了   放回到黑线线上就开始动了
  
      2
,很快的把车从黑线的左边拿到右边(保持车不要离地太高)在把车放下   车左拐     反之右拐     

2

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
威望
240
贡献
20
兑换币
0
注册时间
2010-4-29
在线时间
1 小时
2#
发表于 2010-4-30 10:49:26 | 只看该作者
回复 支持 反对

使用道具 举报

9

主题

150

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1515
QQ
威望
392
贡献
1057
兑换币
0
注册时间
2010-5-4
在线时间
33 小时
3#
发表于 2010-5-4 18:41:33 | 只看该作者
新手!顶
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 15:52 , Processed in 0.168472 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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