毕业设计论文+智能循迹避障小车设计 下载本文

内容发布更新时间 : 2024/12/24 8:38:27星期一 下面是文章的全部内容请认真阅读。

图3.3.1 L9110引脚图

图3.3.2 电机驱动电路

3.4信号检测模块

小车循迹原理是小车在画有黑线的白纸 “路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。笔者在该模块中利用了简单、应用也比较普遍的检测方法——红外探测法。

红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号,再通过LM393作比较器来采集高低电平,从而实现信号的检测。避障亦是此原理。电路图如图3.4。

市面上有很多红外传感器,在这里我选用94型光电对管。

...

图3.4循迹原理图

3.5主控电路

本模块主要是对采集信号进行分析,同时给出PWM波控制电机速度,起停。以及再检测到障碍报警等作用。其电路图如图3.5。

图3.5 主控电路

...

第四章 软件设计

4.1主程序框图:

启动 避障 循迹 N 是否检测到障碍是否检测到 是否检测到停止线 N Y Y 停止

4.1 主程序图

4.2电机驱动程序 void goahead() { s1=1; s2=0; s3=1; s4=0; }

void goback()

...

{ s1=0; s2=1; s3=0; s4=1; }

void turnleft() { s3=1; s4=0; }

void turnright() { s1=1; s2=0; }

void stop() { en1=0; en2=0; }

4.3循迹模块 循迹框图:

...

开始 前进 扫描I/O口,是否检测到黑线 N Y 左转 左边 右边 右转

图4.3 循迹框图

循迹程序:

#include //包含51相关的头文件 typedef unsigned char uchar; //重定义char数据类型 typedef unsigned int uint; //重定义int数据类型 #define ShowPort P2 //定义数码管显示端口 uchar code LedShowData[]={0x03,0x9F,0x25,0x0D,0x99,

0x49,0x41,0x1F,0x01,0x19};//0,1,2,3,4,5,6,7,8,9//定义数码管显示数据 static unsigned int RecvData; //定义接收红外数据变量 static unsigned char CountData; //定义红外个数计数变量 static unsigned char AddData; //定义自增变量 static unsigned int LedFlash; //定义闪动频率计数变量 unsigned char HeardData; //定义接收到数据的高位变量 bit RunFlag=0; //定义运行标志位 bit EnableLight=0; //定义指示灯使能位 /***********完成基本数据变量定义**************/

...