课程设计报告书题目:智能机器人创新实践学院专业学生姓名学生学号指导教师课程编号课程学分起始日期 2016.04-2016.06目录1 设计原理........................................................................................................错误!未定义书签。
2方案论证........................................................................................................错误!未定义书签。
2.1 巡线模块设计......................................................................................错误!未定义书签。
2.2巡线模块设计......................................................................................错误!未定义书签。
3 设计方案........................................................................................................错误!未定义书签。
3.1小车的总体结构设计..........................................................................错误!未定义书签。
............................................................................................................错误!未定义书签。
............................................................................................................错误!未定义书签。
............................................................................................................错误!未定义书签。
............................................................................................................错误!未定义书签。
3.2巡线功能介绍......................................................................................错误!未定义书签。
............................................................................................................错误!未定义书签。
............................................................................................................错误!未定义书签。
............................................................................................................错误!未定义书签。
............................................................................................................错误!未定义书签。
3.3小车三路巡迹算法..............................................................................错误!未定义书签。
............................................................................................................错误!未定义书签。
............................................................................................................错误!未定义书签。
............................................................................................................错误!未定义书签。
3.4巡线与电机驱动程序..........................................................................错误!未定义书签。
4 结果与分析....................................................................................................错误!未定义书签。
智能巡线小车1 设计原理由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断实际的“道路”情况,使小车在白色地板上循黑线行走。
通常采取的方法是红外探测法。
红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。
单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线2方案论证2.1 巡线模块设计采用一体反射式红外对管,所谓一体就是发射管和接受管固定在一起,反射式的工作原理就是接收管接收到的信号是发射管发出的红外光经过反射物的反射后得到的,所以使用红外对管进行循迹时必须是白色地板加黑色引导条。
这次设计中由于是近距离探测,故采用红外对管来完成数据采集。
由于红外光波比可见光长,因此受可见光的影响较小。
同时红外线系统还具有以下优点:尺寸小、质量轻,便于安装。
反射式光电检测器就是其中的一种器件,它具有体积小、灵敏度高、线性好等特点,外围电路简单,安装起来方便,电源要求不高。
用它作为近距离传感器是最理想的,电路设计简单、性能稳定可靠。
1.2.2 供电方案设计与比较2.2巡线模块设计方案一:采用两个电源供电,将电动机驱动电源以及其周边电路与单片机电源分别供电,由于单片机的电压较低,而电机需要的电压较高,容易使单片机电压过高而损坏,使用两个电池供电,可以提高系统稳定性,但是多一组电池,增加了小车的质量,同时也增加了小车的惯性,降低了灵敏度。
方案二:采用单一电源供电。
电源直接给单片机供电,通过单片机的IO口连接到电动机上,这样输出的电压稳定,同时也减轻了小车的质量,使小车更加灵活。
但是加高的电压提高了损坏单片机的风险。
从安全性考虑,我们选择方案一。
3 设计方案3.1小车的总体结构设计轮胎,减速箱,电机,万向滑轮,黄色底盘,pcb敷铜板,亚克力板,螺丝,卡簧,固定片等。
3.2巡线功能介绍RPR220是一种一体化反射型光电探测器。
其探测器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电二极管。
主要应用在游戏机,复印机和办公自动化等设备中。
本巡线小车就是用该元件作为检测元件,即是通过检测黑线有没有来达到控制小车巡线的目的的。
(1)没有检测到黑线,则H4发光到白纸光反射到H4接收端,H4接收端导通,导通T1接地等于0。
(2)有检测到黑线,则H4发光到黑线光全部被吸收,H4接收端,没有收到任何信号,因为H4不导通(截止),T1等于vcc。
3.3小车三路巡迹算法3.4巡线与电机驱动程序#include <REGX52.H> //包含51单片机相关的头文件sbit LeftLed=P2^0; //定义前方左侧指示灯端口sbit RightLed=P0^7; //定义前方右侧指示灯端口sbit FontLled=P1^0;sbit LeftIR=P3^5; //定义前方左侧红外探头端口sbit RightIR=P3^6; //定义前方右侧红外探头端口sbit FontIR=P3^7; //定义前方正前方红外探头端口sbit M1A=P0^0; //定义左侧电机驱动A端sbit M1B=P0^1; //定义左侧电机驱动B端sbit M2A=P0^2; //定义右侧电机驱动A端sbit M2B=P0^3; //定义右侧电机驱动B端sbit B1=P0^4; //定义语音识识别传感器端口sbit SB1=P0^6; //定义蜂鸣器端口void tingzhi(){M1A=0; //将M1电机A端初始化为0 M1B=0; //将M1电机B端初始化为0 M2A=0; //将M2电机A端初始化为0 M2B=0;}void qianjin(){M1A=1;M1B=0;M2A=1;M2B=0;}void houtui(){M1A=0;M1B=1;M2A=0;M2B=1;}void zuozhuan(){M1A=0;M1B=1;M2A=1;M2B=0;}void youzhuan(){M1A=1;M1B=0;M2A=0;M2B=1;}void delay_nus(unsigned int i) //延时:i>=12 ,i的最小延时单12 us{i=i/10;while(--i);}void delay_nms(unsigned int n) //延时n ms{n=n+1;while(--n)delay_nus(900); //延时1ms,同时进行补偿}void ControlCar(unsigned char ConType) //定义电机控制子程序{tingzhi();switch(ConType) //判断用户设定电机形式{case 1: //前进//判断用户是否选择形式1 {qianjin();break;}case 2: //后退//判断用户是否选择形式2 {houtui(); //M2电机反转break;}case 3: //左转//判断用户是否选择形式3 {zuozhuan(); //M2电机正转break;}case 4: //右转//判断用户是否选择形式4 {youzhuan(); //M1电机正转//M2电机反转break;}case 8: //停止//判断用户是否选择形式8 {tingzhi();break; //退出当前选择}}}void main() //主程序入口{bit RunFlag=0; //定义小车运行标志位//RunShow=0; //初始化显示状态ControlCar(8); //初始化小车运行状态while(1) //程序主循环{Start:LeftLed=LeftIR; //前方左侧指示灯指示出前方左侧红外探头状态RightLed=RightIR; //前方右侧指示灯指示出前方右侧红外探头状态FontLled= FontIR;SB1=LeftIR;if(LeftIR == 0 && RightIR == 0) //三个红外检测到黑线,就前进{ControlCar(1); //左侧没有信号时,开始向右转一定的角度delay_nms (10);goto NextRun;}if(LeftIR == 0 && RightIR == 1){ControlCar(3); //右侧没有信号时,开始向左转一定的角度delay_nms (10);goto NextRun;}if(LeftIR == 1 && RightIR == 0){ControlCar(4); //右侧没有信号时,开始向左转一定的角度delay_nms (10);goto NextRun;}goto Start;NextRun:ControlCar(8);}}4 结果与分析小车的运行如视频附件所示,能实现常规的巡线,遥控,寻光功能。