目 录
1 绪论 1
1.1 课题研究背景及意义 1
1.2 国内外研究现状 1
1.2.1国外智能车辆研究现状 2
1.2.2发展前景 3
1.3 课题主要研究内容 4
2 工作原理及总体设计 5
2.1 工作原理 5
2.2 总体设计 5
3 硬件设计 7
3.1 小车车体设计 7
3.2 电源模块 7
3.3 电机驱动模块 8
3.4 电机模块 9
3.5 检测模块 9
3.6 最终方案 9
4 硬件实现及单元电路设计 11
4.1 主控制模块 11
4.2 单片机的复位电路与振荡电路设计 11
4.3 电源设计 13
4.4 驱动电路 14
4.5 E18-D50NK光电开关避障模块 15
4.6 红外光电开关传感器的安装 17
4.7 小车车体总体设计 17
5 软件设计与仿真调试 18
5.1 主程序流程 18
5.2 Keil uVision3环境 19
5.3 单片机程序烧写 22
5.4 系统的安装与调试 23
结束语 24
致 谢 25
参考文献 26
附录 28
附录A 整体电路图 28
附录B 部分源程序 29
1.3 课题主要研究内容
系统采用STC89C52单片机作为核心控制单元,小车车体前方的红外线传感器检测前方障碍物,用于判断是否需要转弯,防止小车碰到障碍物。
本设计题目为基于单片机的自动避障小车设计,主要研究小车的避障功能,小车遇到障碍物时,当距离障碍物大于25cm,PWM信号自增,驱动电机加速,小车加速前进,当小于15cm时,PWM信号自减,驱动电机减速,小车减速前进,并且小车采取相应的避障措施。这里探测装置必不可少,因为红外在距离检测方面的准确定位。所以采用红外线传感器作为探测装置。运用单片机搭建控制电路,把红外信号接到单片机上,通过单片机对信号的检测和处理,控制外围电路使小车转向,来避开障碍物。通过H桥驱动电路来控制电机的转向和前进。
2 工作原理及总体设计
2.1 工作原理
在这里我们采用STC89C52作为控制电路,把两个红外信号接到单片机上,通过单片机对信号的接收和处理,控制外围电路使小车转向,来避开障碍物。通过H桥驱动电路来控制电机的转向和前进。通过为微控制芯片对数据进行处理,处理速度远远满足小车的运行和避障的需求。也可以通过编写不同的程序,增加模块来增加小车的功能。
本小车使用STC89C52单片机作为主控芯片,它通过红外线传感器获知前方的障碍物情况,若不存在障碍物,小车直线前进;若左前方发现障碍物,左前放的红外传感器将信号传给单片机,单片机作出处理后控制小车向右转弯以躲开障碍物;若右前方发现障碍物,右前放的红外传感器将信号传给单片机,单片机作出处理后控制小车向左转弯以躲开障碍物;若正前方发现障碍物,则两个红外传感器将信号传给单片机,单片机作出处理后控制小车倒车至合适距离后,通过传感器传来的信号决定转弯方向,以躲开障碍物。
2.2 总体设计
通过学习相关技术资料可了解到,红外测模块是系统的关键模块之一,红外检测方案的好坏直接关系到整体性能的优劣,因此确定红外检测方案是总体方案的关键。
检测使用的红外传感器是专业的红外避障传感器,当有障碍物时,它能够反映出电平高低的变化,而且更加廉价易得,适合简单的避障。系统总体设计方框图如图2-1所示。

图2-1 系统总体设计方框图
根据系统方案设计,系统包括以下模块:STC89C52主控模块、L298N电机驱动模块、电源模块、红外检测模块等。各模块作用如下:
STC89C52主控模块,作为整个智能小车的“大脑”,将根据传感器的信号,控制算法做出控制决策,驱动直流电机等完成对智能小车的控制。
电源模块,为整个系统提供合适而又稳定的电源。
红外检测模块,检测障碍信号,为单片机提供前方道路信息。
电机驱动模块,驱动直流电机完成智能车的加减速和转向控制。

#include <reg52.h>          //调用单片机头文件
#define uchar unsigned char  //无符号字符型 宏定义   变量范围0~255
#define uint  unsigned int   //无符号整型 宏定义    变量范围0~65535sbit biz_l = P1^1;          //左边避障
sbit biz_r = P1^0;         //右边避障/********************LN298电机驱动IO口定义*********************************/
sbit qu_ll = P2^1;    //左边电机控制IN1
sbit qu_zl = P2^0;    //左边电机控制IN2
sbit qu_zr = P2^2;    //右边电机控制IN1
sbit qu_rr = P2^3;    //右边电机控制IN2/*********************1ms 延时函数*****************************/
void delay_1ms(uint q)
{uint i,j;for(i=q;i>0;i--)for(j=120;j>0;j--);
}/***********************小车前进函数************************/
void go()
{qu_ll = 1;  qu_zl = 0; qu_zr = 0; qu_rr = 1;
}/***********************小车后退函数************************/
void back()
{qu_ll = 0;  qu_zl = 1; qu_zr = 1; qu_rr = 0;
}/***********************小车左转函数 只有一个轮子动************************/
void left()
{qu_ll = 0;  qu_zl = 0; qu_zr = 0; qu_rr = 1;
}/***********************小车左转函数 左边轮子后退 右边轮子前进************************/
void left_s()
{qu_ll = 0;  qu_zl = 1; qu_zr = 0; qu_rr = 1;
}/***********************小车停下函数************************/
void stop()
{qu_ll = 0;  qu_zl = 0; qu_zr = 0; qu_rr = 0;
}/***********************小车右转函数 只有一个轮子动************************/
void right()
{qu_ll = 1;  qu_zl = 0; qu_zr = 0; qu_rr = 0;
}/***********************小车右转函数 左边轮子前进 右边轮子后退************************/
void right_s()
{qu_ll = 1;  qu_zl = 0; qu_zr = 1; qu_rr = 0;
}/*********************红外避障头避障*****************************/
void hongwai_bizhang()
{if((biz_l == 1) && (biz_r == 1))     //没有障碍物时就前进{go();}else if((biz_l == 0) && (biz_r == 0))//两个传感器都有障碍物时,先后退然后再右转{stop();delay_1ms(100);back();delay_1ms(500);right_s();delay_1ms(380);}else if(biz_l == 0)                   //左边传感器都有障碍物时,先停下然后再右转{stop();delay_1ms(100);right_s();delay_1ms(200);} else if(biz_r == 0)                   //右边传感器都有障碍物时,先停下然后再左转{stop();delay_1ms(100);left_s();delay_1ms(200);    }go();
}/***************主函数*****************/
void main()
{while(1){delay_1ms(150);   hongwai_bizhang();  }
}







基于51单片机的红外自动避障小车(lunwen+任务书+开题+文献综述+翻译及原文+避障程序)相关推荐

  1. c语言51单片机湿度浇花器,基于51单片机的室内自动浇花系统的制作方法

    本实用新型涉及单片机应用领域,具体涉及一种基于51单片机的室内自动浇花系统. 背景技术: 随着科学技术不断进步,人民的消费水平和生活质量逐渐,物质水平已经满足不了人民的需求,精神上的需求越来越受人们的 ...

  2. 【038】基于51单片机的土壤湿度自动浇花系统Proteus仿真设计

    一.压缩包资料内容 (1).基于51单片机的土壤湿度自动浇花系统proteus仿真设计一份: (2).基于51单片机的土壤湿度自动浇花系统proteus仿真设计keli源代码一份: (3).基于51单 ...

  3. 蓄水池问题c语言编程,基于51单片机的蓄水池自动控制系统(35页)-原创力文档...

    广西民族大学 第二次综合课程设计报告 论文题目 : 基于 51 单片机的蓄水池自动控制系统 学 院: 物理与电子工程学院 专 业 : 自动化 年 级 : 2007 级 学 号 : 1072630101 ...

  4. 单片机c语言中p1asf,基于51单片机的蓄水池自动控制系统 毕业设计.doc

    基于51单片机的蓄水池自动控制系统 毕业设计 广西民族大学 第二次综合课程设计报告 论文题目: 基于51单片机的蓄水池自动控制系统 学 院: 物理与电子工程学院 专 业: 自动化 年 级: 2007级 ...

  5. 【003】基于51单片机的宠物自动定时、喂食系统的proteus仿真设计

    一.压缩包资料(私信获取) (1). 包含基于51单片机的宠物自动定时.喂食系统的proteus仿真设计一份: (2).包含基于51单片机的宠物自动定时.喂食系统keil源代码工程文件一份: (3). ...

  6. (毕业设计资料)基于51单片机控制的自动浇水系统设计

    功能描述: 本次毕业设计是设计一种51单片机控制的自动浇水系统,实现室内盆花浇水的自动化系统.该系统可对土壤的湿度进行监控,并对作物进行适时适量的浇水.其核心是51单片机和土壤湿度检测器YL-69和显 ...

  7. 基于51单片机多功能智能台灯设计 视力灯 坐姿矫正套件 台灯 人体感应 包括实物+电路原理图+程序+proteus仿真

    基于51单片机多功能智能台灯设计 视力灯 坐姿矫正套件 台灯 人体感应 包括实物+电路原理图+程序+proteus仿真 ID:69100646120443268太白路自信的桔梗

  8. 基于51单片机和红外漫反射传感器的久坐提醒神器(番茄钟)的设计

    一.背景介绍 我们工作久了,久坐导致的毛病就显现出来了,腰酸背痛颈椎疼,最近看到利用番茄钟工作法挺好,工作25分钟,休息5分钟,既能调整工作节奏,避免精力过分消耗,也能避免久坐导致的身体问题. 我刚开 ...

  9. 基于51单片机的智能自动感应垃圾桶

    资料编号:142  下面是相关功能视频演示: 142-基于51单片机的智能自动感应垃圾桶(源程序+原理图+PCB+全套毕设资料) 设计要求: 题目:基于51单片机的自动感应垃圾桶 基本功能要求: 1. ...

最新文章

  1. synchronized 的超多干货!
  2. WCF+Silverlight部署本机备忘
  3. Java引入import其它目录的自定义包或java源文件
  4. 头同尾合十的算法_乘法速算之首同尾合十
  5. var radioname = new array();_体坛观察丨争议判罚不止中超 为何VAR屡成足坛焦点?_足球...
  6. java 重载赋值_java中构造方法,set/get方法,方法重载使用解读
  7. 挑战IPOD功能最强MP3——Zune二代评测
  8. 黑体std能商用_用产品诠释商用PC成功之道 惠普战66高性能商用一体机评测
  9. Linux - ATT汇编基础
  10. NFT商城/NFT盲盒/虚拟盲盒/NFT交易/可定制二开
  11. vscode中文乱码问题及几种常见的解决方案
  12. u盘中的android文件夹图标不显示,怎么解决u盘图标变成文件夹,手把手教你解决方法...
  13. iOS音乐播放器实现后台播放锁屏界面控制
  14. liblensfun 在 mingw 上编译时遇到的奇怪问题
  15. 对YAML :: LoadFile的未定义引用
  16. windows下更改Apache以fastcgi方式运行php
  17. 【十分钟读懂系列】之什么是SLF,PSL,MLF,SLO?
  18. hadoop应用-pig
  19. bon app android,bon app
  20. uni-app获取用户所在地

热门文章

  1. html给列表中每一行设置背景,教程丨如何设置内容的背景
  2. 水位报警器c语言程序,简易水位报警器制作_制作简单的水满报警器 - 全文
  3. 链路追踪 zipkin 可执行 zipkin-server-x-exec.jar 下载地址
  4. 分享99个JS幻灯片代码,总有一款适合您
  5. JAVA开发(自研项目的开发与推广)
  6. InnoSetup比NSS好用,下面是一些碎片记录
  7. QT5.4 计算器程序 打包发布,解决dll的最新解决方案
  8. 导入rasterio时的玄学错误:在命令行模式下可以导入,在代码文件中导入却会报错
  9. 妙不可言,Sklearn 做异常检测这么简单
  10. MySQL制定启动配置文件_mysql指定配置文件启动