《智能循迹小车设计.docx》由会员分享,可在线阅读,更多相关《智能循迹小车设计.docx(10页珍藏版)》请在课桌文档上搜索。
1、智能循迹/避障小车研究工作报告一、智能循迹小车程序构造框图二、ProteIlS仿真图三、软件程序设计一、智能循迹小车程序构造框图通过几天在网上查找,对智能循迹/避障小车有了大体理解,普通有三个模块:1、最基本小车驱动模块,使用两个二相四线步进电机对小车两个后轮分别进行驱动,前轮最佳用万向轮,能使小车更好地转弯;2、小车循迹模块,在小车底部有三个并排安装红外对管,对黑色与白色反射信号不同,经单片机解决后对小车进行相应解决;3、避障模块,我写程序中对于避障模块是用中断来解决(即安装在小车车头红外对管检测到有障碍物后,就会向单片机P32口输出一种高电平或是低电平,这时中断程序将对小车进行预先设定好避
2、障解决),但是在程序构造框图中,我不太会表达中断解决方式,因此就用查询方式画了。停止?二、ProteUS仿真图我用PrOteUS大概地仿真了小车运营状态。图中两个二相四线步进电机就代表小车左右轮(假定步进电机顺时针转动方向为小车迈进方向),网上有诸各种驱动芯片,在仿真时我只使用1.298N芯片来驱动步进电机。用三个单刀双制开关模仿用于小车循迹三个红外对管输出信号,经一种与门与三极管开关连接到P3_3口,中断程序对Pl_0,Pl-1,P1-2三个口进行检测,并做出相应解决。同步由于避障模块优先级高于循迹模块,因此将外部中断。用于避障,外部中断1用于循迹。Pl_3口则用于检测小车与否到达终点。1、
3、小车驱动模块:使用一片298芯片驱动一种二相四线步进电机,电机电压为12Vo2、小车循迹模块:左边为三个单刀双制开关模仿小车循迹使用红外对管输出信号,经一种与门和三极管开关送至P3_3口,有Pl_4口定期响应中断程序。又经或门送至Pl_3口(图因找不到或门,因此用7411和7404代替),检测小车与否到达终点.3、避障模块:(用一种开关代替车头红外对管输出信号)4、仿真成果:依照两个步进电机转动状况,小车可以按照预先设计好程序进行循迹(转弯,直走),避障解决,最后停止迈进。三、软件程序设计ttinclude#defineucharunsignedcharsbitP1_2=P2;/Pl口低三位作
4、为小车循迹三个红外对管与单片机信号接口sbitP1.O=PlP;sbitP1J=P1;sbitP1_3=P3;三个循迹红外对管输出口经或门后成果与Pl_3接,用于实时检测sbitP1_7=P7;控制两个二相四线步进电机启动与停止sbitP1_6=P6;sbitP1_4=P4;/为循迹中断所用定期/计数器0输出口uchari,j,ms;uchardianji=0xll,0x22,0x44,0x88);电机转动使小车迈进ucharback=0x88,0x44,0x22,0x11;电机转动使小车后退voiddelay(intz)延时程序(intx,y;for(x=0;xz;x+)for(y=0;y5
5、00:y+);)voidgoahcad()小车迈进程序,一种循环使小车车轮转动一周Pl_6=l;Pl_7=l;for(i=0;i4;i+)(P2=dianjii;delay(50);)voidturnleft()小车左转程序,小车采用两个步进电机驱动,分别控制小车左右两个车轮转动。小车左转时,左边电机停止转动,右边电机Pl_6=0;依然转动,即实现小车左转动作;反之则是小车右转动作Pl_7=l;for(i=0;i4;i+)(P2=dianjii;delay(50);)voidturnright()小车右转程序Pl_6=l;Pl_7=0;for(i=0;i4;i+)P2=dianjii;delay(50);)voidqianjin()小车迈进程序,此程序是为小车遇到障碍时进行躲避解决时小车前进程序,一种循环小车车轮转动三周Pl_6=l;Pl_7=l;for(j=0;j3;j+)(for(i=0;i4;i+)(P2=dianjii;delay(50);)voidgobackO小车后退程序,此程序也是小车避障环节中为小车后退程序,一种循环,小车车轮向后转动三周Pl_6=l;Pl_7=l;for(j=0;j=2)P1_4=!P1_4;ms=0;