智能循迹小车程序完美_第1页
智能循迹小车程序完美_第2页
智能循迹小车程序完美_第3页
智能循迹小车程序完美_第4页
智能循迹小车程序完美_第5页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

小车运行主简介:@模块组成:红外对管检测模块----五组对管,五个信号端直流电机驱动模块----驱动两个直流电机,另一个用万向轮 @功能简介:在白色地面或皮质上用黑色胶带粘贴出路线路径宽度微大于相邻检测

这样小车便可在其上循迹运行@补充说明:该程序采取“右优先”的原则即右边有黑线向右转假定:IN1=1,IN3=1时电机正向转动,必须保证本条假定:遇到白线输出0,遇到黑线输出如果实际电路是:遇到白线输出1,遇到黑线输出0,#definem0#definem1即可说明1:直 速度转弯,调头速 微小校正 高速轮低速轮下的占空比(Dutycycle),以求达到合适的转弯,直行速 length检测到黑线到启动转动的时间间 mid3在黑线上到脱离黑线的时间 作为判断中心位置是否进入黑线的标志,由于运行的粗糙性和惯性常取其他对管的输出信号作为判断条 若先检测到左边黑线,并且左边已出黑线,判断右端是否压黑线时间#defineucharunsignedchar#defineuintunsignedint#definem01//黑线m1,白线m0#definem10#definefull_speed_left40//方便调节各个状态的占空 ,可用参数组(30,35,6,25,30,68000,27000,500#definefull_speed_right (40,45,6,25,30,68000,27000,500#definecorrect_speed6时的低速轮的占空比#defineturn_speed_left25#defineturn_speed_right#definelenth68000 #definewidth27000 #definecheck_right5002000--》20--》200--》500#definemidlleft1#definemidrucharDuty_left,Duty_right,i=0,j=0空比标志,取1--100sbitIN1=P2^0;sbitIN2=P2^1;sbitIN3=P2^2;sbitIN4=P2^3;sbitENA=P1^0;sbit//循迹口五组红外对管,依次对应从左往右第1,2,3,4,5sbitleft1=P1^6;sbitleft2=P1^5;sbitmid3 sbitright4=P1^3;sbitright5=P1^2;voidline_left();voidvoidvoiddelay(longintDelay_time)//延时{uintt=Delay_time;}voidinit()//定时器初始{left1=m0;//初始化 mid3=m1; TH0=(65536-TL0=(65536-ENA=1;使能端口,初始化}voidtime0(void)interrupt //中断程{ //调速在中断中执elseENA=0;elseENB=0; //取约150HZ,12M晶振,每次定时66us,分100次,这样开头定TL0=(65536-}voidcorrect_left()//向左校正,赋{Duty_left=correct_speed;}voidcorrect_right()//向右校正,赋{Duty_left=full_speed_left;}voidturn_left()//左转,赋{Duty_left=turn_speed_left;IN1=0;//转弯时一个正转,一个反转,}voidturn_right()//右转,赋{Duty_left=turn_speed_left; }voidstraight()//直走,赋{Duty_left=full_speed_left;//左右电机占空比初始化,调节直线运动速度 值需要单独写程序取}voidline_straight()reentrant//函数名后加reentrant可以递归调用,//一直走黑直线{ //防止校正时,小车冲出过大,导致2,4号检测管了{goto}elsegotolabel3;}} {line_right(); gotolabel3;}elseif(left1==m1){line_left();goto}{while(right4==m0)//本来应该是用mid3,但是为了提高灵敏度,选择right4;向左时,可取left2对管}label3:什么都不}voidline_right()//右边有黑线{{turn_right();//执行向右转的赋 width决定转弯时mid3黑线宽度时所需要的时goto}{}}voidline_left()//左边出现黑{{{goto}}delay(check_right);//左边遇到黑线时,左边出了黑线之后,继续延时一段时间,判断右是否遇到黑线//若遇

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论