智能循迹小车

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

指示电路
转向灯电路采用4个 黄色发光二极管,分 别为左前灯,左后灯, 右前灯,右后灯。 蜂鸣电路采用了8550 驱动蜂鸣器。
整机电路原理图
控制电路PCB
程序设计思路
检测电路
转向灯 蜂鸣器
单片机
驱动电机
循迹检测程序设计
数据采集: 前进:110011;000000;111011
110111 开始 系统复位
通过读相应端口把 信息给CPU CPU根据循迹端口的 情况调节小车状态
左转:110001;111001;111000
111100;111101;111110
右转:100011;100111;101111
000111;001111;011111
停止:111111
结束
按键与指示程序
程序 流程
开始 读取检测板数据 数据处理
Y
驱动电机左转
Y
驱动电机右转
Y
驱动电机停止
源程序
#include<reg52.h> #define uchar unsigned char #define uint unsigned int #define qianjin 0xfa // 定义前进 #define youzhuan 0xfe //定义右转 定义右转 #define zuozhuan 0xfb //定义左转 定义左转 #define tingzhi 0xff //定义停止 定义停止 sbit key=P3^0; //按键开关 按键开关 sbit Rd=P1^0; //右转向灯 右转向灯 sbit Ld=P1^1; //左转向灯 左转向灯 sbit Fm=P3^1; //蜂鸣器信号输出端 蜂鸣器信号输出端 delay(uint z) //延时函数 延时函数 { uint x,y; for(x=z;x>0;x--) for(y=100;y>0;y--);
总结
经过这四个星期的学习与实践,我们团队成员 分工合作。我们深刻地体会到了团队合作的重 要性,每个成员都非常认真的完成自己所分工 的部分。在完成之余,相互一起讨论不解的地 方,以及相互监督和检查。在两位指导老师的 帮助下,共同完成寻迹小车的设计与制作。使 我们在下厂实习之前得到一次难得的实训机会, 给我们将来的工作打下坚实的基础。最后,感 谢两位老师的指导与帮助,使我们这次的实训 得到圆满的结束。

谢谢大家!
Y
是否前 进 是否左 转 是否右 转 是否停 止 返回
关转向灯 关蜂鸣器 开左转向灯 开转向蜂鸣器 开又转向灯 开转向蜂鸣器 开停止灯 开停止蜂鸣器
Y
Y
Y
驱动程序设计
程序 流程
开始 读取检测板数据 数据处理
N
是 否 前 进 N 是 否 左 转 N 是 否 右 转 N 是 否 停 止 返回
Y
驱动电机前进
main() //主函数 主函数 { uchar i; {if(key==0){delay(5);while(!key);delay(5);i++;} //按键控制 按键控制 if(i==1) //按下启动小车 按下启动小车 { while(i<2) { FM(); if(P0==0xf3||P0==0x00||P0==0xf7||P0==0xfb) //前进 前进 {Ld=1;Rd=1;P2=qianjin;}
小任务要求
1基本要求:(1)输入电压:9伏 基本要求: (2)具有前进、左拐、右拐 自动停车和速度调节功能。 (3)能根据提供的循迹路线进 进行循迹。 发挥部分: 2发挥部分:(1)按键启动 (2)转向提示 (3)蜂鸣提示
小车循迹原理
小车供电后,发光二极管发出光线,光线照在路面上反 射回来被光电二极管接收,半导体二极管在电场作用 下产生电势,将光信号转换成电信号。该智能小车在 画有黑线的白纸 “路面”上行驶,由于黑线和白纸对 光线的反射系数不同,可根据接收到的反射光的强弱 来判断“道路”——黑线。 当小车检测到黑线时,光线部分被黑线吸收,反射回 的光线极少被光电二极管接收,转换成比较弱的电信 号;当小车未检测到黑线时,光线大部分被反射,反 射回的光线被光电二极管接收,转换成比较强的电信 号。最终,这些电信号经过比较器处理后传入单片机, 再由单片机进一步做信号处理
wenku.baidu.com迹检测电路
当光线照射到白线上 面时,光线反射强烈, 光线照射到黑线上面 时,光线反射较弱。 因此光敏电阻在白线 和黑线上方时,阻值 会发生明显的变化。 将阻值的变化值经过 比较器就可以输出高 低电平。循迹电路用 以实现小车沿着场地 的黑色弧线引导轨迹 进行前进和位置校正 的,且小车不能偏离 该轨道。循迹电路原 理图如右:
控制电路
系统控制电路采 用单片机AT89S52 作为主控单元, 负责整个电路的 资源分配以及对 各电路信号的采 集、分析及处理。 配置了外部晶振 以及蜂鸣器。同 时还配置了作功 能扩展的端口。 单片机控制电路 原理图如右图:
电源电路
考虑到节省空 间的问题,所 以我们采用了 L7805来稳定 电压输出,使 用了47μf的 电解电容作为 滤波电容。其 原理图如右图:
源程序
} void fm(uint t) //蜂鸣器子函数 蜂鸣器子函数 { Fm=0;delay(t);Fm=!Fm;delay(t); } void zxd() //转向灯函数 转向灯函数 { if(P2==youzhuan){Rd=0;delay(300);Rd=!Rd;} if(P2==zuozhuan){Ld=0;delay(300);Ld=!Ld;} if(P2==tingzhi){Ld=0;Rd=0;delay(300);Ld=!Ld;Rd=!Rd;delay(300);} } void FM() //蜂鸣调用函数 蜂鸣调用函数 { if(P2==youzhuan||P2==zuozhuan){Fm=0;} else Fm=1; }
电机驱动电路
驱动电路主要采用芯片L293 来直接驱动电机。L293为单 块集成电路高电压、高电流、 四通道驱动,其额定工作电 流为1A,最大可达1.5A,VSS 1A 1.5A VSS 最小电压为4.5V,最大可达 4.5V 36V,可直接的对电机进行控 制无须隔离电路。L293从主 控单片机AT89S52那里接受指 令来直接控制电机的工作状 态。可以对电机进行正、反 转,停止操作,非常方便。 其驱动电路原理图如右:
if(P0==0xf1||P0==0xf9||P0==0xf8||P0==0xfc||P0==0xfe||P0= =0xfd) //左转 左转 {P2=zuozhuan;zxd();Ld=1;} if(P0==0xe3||P0==0xe7||P0==0xc7||P0==0xcf||P0==0xdf||P0 ==0xef) //右转 右转 {P2=youzhuan;zxd();Rd=1;} if(P0==0xff) {P2=tingzhi;zxd();fm(300);} if(key==0){delay(5);while(!key);delay(5);i++;} //再按下跳出循环 再按下跳出循环 } } i=0;Fm=1;Ld=1;Rd=1;P2=0xff; //小车终止运行 小车终止运行 } }
相关文档
最新文档