基于 单片机的智能循迹小车设计-精品

更新时间:2023-10-18 18:18:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

**********************

************************

参赛学校:****************** 参赛队号:****************** 参赛题目:(A题)智能小车控制 参赛学生:******************* 指导教师:******************* 参赛日期: 2011.7.18~2011.7.22

第 1 页 共 23 页

智能小车控制

摘要

智能作为现代的新发明,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等用途。我们通过软件编程实现它的行进、绕障、停止的精确控制以及遇障次数的显示,并再次寻找到原来的轨道。

第 2 页 共 23 页

一、功能说明

1、基本功能:小车能够在设计的线路上完成寻迹功能; 2、拓展功能:在循迹线路上设置障碍物,小车遇到障碍物能够自动绕道行驶,完成避障功能;

二、方案论证

方案一:以AT89S51单片机为核心的控制电路,采用模块化的设计方案,运用传感器检测电路,实现小车在行驶中自动寻迹、躲避障碍物的功能。并将循迹过程中遇障次数等数据传至单片机进行处理,然后由单片机根据所检测数据实现对电动小车的智能化控制。

方案二:采用各类数字电路来组成电动小车的控制系统。采用数字电路对外围探测轨迹信号,避障信号进行处理。但对输入输出都是模拟量的小装置,如果采用数字化方案,则要先用A/D转换器和D/A转换器实现数字量与模拟量之间的转换。这样必然带来高成本、电路复杂等缺点。因此,本方案灵活性不高,效率低,不利于电动小车智能化的扩展。同时,对各路信号处理也比较困难。

比较以上两种方案的优缺点,方案一简洁、灵活、可扩展性好,能达到设计要求,因此本设计采用方案一来实现。

三、各模块设计

电路分为电源模块、单片机系统模块、电机驱动板、寻迹模块、避障模块。

智能小车运行基本原理框图见图1。

第 3 页 共 23 页

图1

1、电源模块

首先我们想到的是稳压电源供电,稳压电源供电稳定方便调试,但是稳压电源体积大,只适合调试阶段的使用。

其次就是干电池供电,相对于稳压电源来说体积小,电压也比较稳定,方便小车移动,所以我们采用6节1.2V干电池供电,电压达到7V左右给直流电机供电,然后用7805降压、稳压后给单片机系统供电。

2、单片机系统模块

本系统采用AT89S51单片机作为中央处理器。其主要任务是在小车行走过程中不断读取传感器采集到的数据,将得到的数据进行处理后,来控制小车行走,同时将相关数据送显示单元动态显示。

单片机是把中央处理器CPU、随机存储器RAM、只读存储器ROM、

第 4 页 共 23 页

显示模块 避障模块 AT89S51 单片机 电机驱动模块 电源模块 探测轨迹模块

I/O接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。它的优点是体积小,可放在仪表内部,且单片机内部有可以多次重复编程的闪烁ROM,并且闪烁ROM可以直接用编程器来擦写,使用起来比较方便。

在本系统中,AT89S51单片机的P0口用于数码显示,P2.4 P2.5 P2.6 P2.7口用于电动机的PWM驱动控制,P1.0 P1.1 P1.2口用于探测轨迹,P3.2 P3.3口用于探测障碍物, P2.1 P2.2 P2.3用于LED提示,P2.0用于倒车显示和蜂鸣器报警。

3、探测轨迹模块

为了保证小车沿黑线行驶,采用了两个检测器并行排列,左右方向都可以进行控制,控制精度得以提高。在小车行走过程中,结合查询方式,通过程序控制小车行走轨迹。如果左方向偏离黑线,则右侧的探头就会检测到黑线,把信号传送到单片机,进行处理校正。控制其向右转;如果右方向偏离黑线,则左侧的探头就会检测到黑线,把信号传送到单片机,进行处理校正。控制其向左转。从而保证小车沿黑线行驶。

方案一、采用发光二极管发光,用光敏二极管接收。

由于光敏二极管受可见光的影响较大,稳定性差,所以放弃该方案。

方案二、利用光敏电阻组成光敏探测器。

光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值

第 5 页 共 23 页

(1)蜂鸣器驱动电路一般都包含以下几个部分:一个三极管、一个蜂鸣器、一个续流二极管。蜂鸣器本质上是一个感性元件,其电流不能瞬变,因此必须有一个续流二极管提供续流。否则,在蜂鸣器两端会产生几十伏的尖峰电压,可能损坏驱动三极管,并干扰整个电路系统的其它部分。

(2)在设计原理图时注意上拉电阻,下拉电阻的使用,在必要时要加阻值合适的电阻,是电路更加完善。

1、

电路原理图:

单片机最小系统原理图(图4)

图4

蜂鸣器及倒车显示原理图(图5)

第 11 页 共 23 页

图5

数码管显示原理图(图6)

图6

L298电机驱动原理图(图7)

第 12 页 共 23 页

图7

电路PCB图(图8)

第 13 页 共 23 页

图8

3、PCB的设计和注意事项

(1)在原理图定义元件封装的时候,要根据元器件实际大小进行定义,如果库里没有的话自己再绘制一个。

(2)在放置元器件时,一定要考虑元器件的实际尺寸大小(所占面积和高度)、元器件之间的相对位置,以保证电路板的电气性能和生产安装的可行性和便利性同时,应该在保证上面原则能够体现的前提下,适当修改器件的摆放,使之整齐美观,如同样的器件要摆放整齐、方向一致。这个步骤关系到板子整体形象和下一步布线的难易程度,所以一定要花大力气去考虑。PCB布线时要设定好焊盘的尺寸

第 14 页 共 23 页

大小与实际器件相一致,信号线、电源线和地线的宽度要合适。

五、软件程序及调试

软件调试的任务是利用ISIS开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现仿真结果故障。程序的调试应一个模块一个模块地进行,我们首先单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各子程序连接起来总调。联调需要注意的是,各程序模块间能否正确传递参数,特别要注意各子程序的现场保护与恢复。

仿真图

第 15 页 共 23 页

//////检测输入子函数///// void jianceIN() { }

/////小车运行子函数///// void yunxing() { }

P2=OUT; delay(8); IN=P1&0x07; switch(IN) { }

case 0x00: OUT=0xf9;break;/////前进 case 0x01: OUT=0xea;break;/////左转 case 0x02: OUT=0xf9;break;/////前进 case 0x03: OUT=0xea;break;/////左转 case 0x04: OUT=0xd5;break;//右转 case 0x05: OUT=0xf6;break;////后退 case 0x06: OUT=0xd5;break;//右转 case 0x07: OUT=0xf0;break;/////全黑 停止 default: OUT=0xf0;break;/////其他情况小车停止

第 21 页 共 23 页

//////主函数////// void main() { init(); while(1) { if(su==3) { su=0; P2=0xf0;

delay(30);

} while(L==0) {

P2=0xf5;///右转

}

while(R==0)////左转 {

P2=0xfa;

}

jianceIN(); yunxing(); }

}

第 22 页 共 23 页

///////减速子程序////// void jiansu() interrupt 1 { TH0=(65536-50)/256; TL0=(65536-50)%6;

su++;

}

第 23 页 共 23 页

本文来源:https://www.bwwdw.com/article/flxf.html

Top