搜索
bottom↓
回复: 22

可以实现“自动返回黑线”的循迹小车

[复制链接]

出0入0汤圆

发表于 2009-12-9 21:56:22 | 显示全部楼层 |阅读模式
花了一下午做了一个简单的循迹小车   
硬件:电机用两个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,很快的把车从黑线的左边拿到右边(保持车不要离地太高)在把车放下   车左拐     反之右拐     


各位高手帮忙弄明白下

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2009-12-9 22:20:03 | 显示全部楼层
点击此处下载 ourdev_512541.rar(文件大小:219K) (原文件名:视频.rar)

出0入0汤圆

 楼主| 发表于 2009-12-10 14:17:58 | 显示全部楼层
原理图ourdev_512782.pdf(文件大小:146K) (原文件名:XIAOCHE.pdf)

出0入0汤圆

发表于 2009-12-31 17:03:08 | 显示全部楼层
mark一下下

出0入0汤圆

发表于 2009-12-31 22:06:17 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-5-29 11:16:26 | 显示全部楼层
hao

出0入0汤圆

发表于 2010-5-31 23:12:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-2 01:59:18 | 显示全部楼层
请问楼主 原理图中的 header 4x2a 是器件?还是 接口啊!

出0入0汤圆

发表于 2010-6-2 15:53:32 | 显示全部楼层
这个4X2A找不到器件和资料,你能发下资料吗?我看怎么用分立元件替换这个集成块

出0入0汤圆

 楼主| 发表于 2010-7-10 00:14:31 | 显示全部楼层
回复【8楼】hzwl2007 乐学善思
----------------------------------------------------------------------
不好意思 没有标明白  是比较器  lm393

出0入0汤圆

发表于 2010-9-17 19:22:19 | 显示全部楼层
学习了,不错!

出0入0汤圆

发表于 2011-1-6 12:01:27 | 显示全部楼层

出0入0汤圆

发表于 2011-3-29 10:28:59 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-29 16:52:57 | 显示全部楼层
最近正要做 手机马

出0入0汤圆

发表于 2011-4-16 10:33:55 | 显示全部楼层
不错不错··

出0入0汤圆

 楼主| 发表于 2011-5-14 20:49:15 | 显示全部楼层
现在我知道原因了!!!

出0入0汤圆

发表于 2011-6-22 13:36:34 | 显示全部楼层
393

出0入0汤圆

发表于 2011-7-14 00:23:24 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-7-16 12:20:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-24 16:17:08 | 显示全部楼层
顶一下,我最近也在研究这个,相互学习下qq584233185

出0入0汤圆

发表于 2014-4-13 15:32:20 | 显示全部楼层
楼主,ina-为运放的输入端吧,,这个运放用的什么型号?检测到黑线、白线的电压为多少?

出0入0汤圆

发表于 2014-10-11 16:48:16 | 显示全部楼层
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-28 21:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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