设计任务和设计方案
本章节主要介绍该实验设计的任务和要求,选择出最适合本设计的方案。
1.1 设计任务
循迹避障二合一:(1)循迹功能:小车利用红外传感器探测黑线通过单片机控制电机实现小车左右转和直行实现该功能;(2)避障功能:当小车遇到障碍物时,传感器将信号传递给单片机掉头重新执行循迹功能。
超声波魔术手:超声波魔术手即利用超声波传感器对人手进行检测,小车进行前进后退,实现“跟手”功能。
遥控器控制小车:通过遥控器对小车进行前进后退和左右转功能。
1.2 实验设备
小车组件 电池 遥控器 改锥 红外传感器 超声波传感器 电机 计算机
1.3 设计方案
以STC89C52单片机为核心,制作一款智能小车,使其具有自动驾驶,手动驾驶和循迹前进等功能。在自动驾驶功能时,其前进过程中可以实现避障。手动驾驶时,遥控控制小车前进、后退、左转、右转等操作。以下是对要实现各个功能的设计:
(1)循迹避障二合一:小车利用红外传感器探测黑线将信号传递给单片机,然后通过单片机输出信号控制电机,实现小车左右转和直行;当传感器检测到障碍物时,向后转180°然后继续寻找黑线,达到避障的目的。
(2)超声波魔术手:利用超声波传感器发出的信号与人手的距离进行检测,当手向后或者向前时,小车也跟随着进行前进后退,实现“跟手”功能。
(3)遥控器控制小车:通过遥控器发出信号,被小车的接收模块接收信号,使小车进行前进后退和左右转的功能。
本系统由硬件和软件两部分组成。硬件部分主要完成红外编码信号的发射和接受、障碍物检测、轨迹检测、直流电机运行等功能。软件主要完成信号的检测和处理、设备的驱动及控制等功能。STC89S52单片机查询红外信号并解码,查询各个检测部分输入的信号,并进行相应处理,包括电机的正反转,判断是否遇到障碍物,判断是否小车其前进中有出轨等。系统结构框图如图1-1所示。
图1-1 系统结构框图
第二章 系统硬件方案
本章节主要介绍本设计中系统的硬件方案和各个部分电路的设计原理。通过各个模块的功能描述了解其工作原理以及在设计的中作用。
2.1 STC89C52单片机系统设计
2.1.1 STC89C52的概述
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C51使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、非常有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89C51可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。
2.1.2 STC89C52单片机的最小系统
单片机最小系统说的通熟易懂的话就是以最少的元器件组成能让单片机工作起来的系统,接下来开始介绍51单片机最小系统必备的器件及其作用。
首先电源这对于一个电子产品的话是必不可少,它提供能源给系统运作,在本设计中由于51单片机的工作电压在4.5~5.5V之间都可以正常工作所以我们采用了USB电源线连接手机充电器插头或者5V的移动电源给系统进行供电。
其次晶振电路,XTAL1和XTAL2 是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。图2-1中采用的是内时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。一般来说晶振可以在1.2~12MHz 之间任选,甚至可以达到24MHz 或者更高,但是频率越高功耗也就越大。在本实验套件中采用的12M 的石英晶振。和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。当采用石英晶振时,电容可以在20 ~40pF 之间选择(本设计使用30pF);当采用陶瓷谐振器件时,电容要适当地增大一些,在30~50pF 之间。通常选取30pF 的陶瓷电容就可以了。
图2-1 晶振电路
复位电路分为:上电自动复位和开关复位。图2-2 中所示的是开关复位,复位电路并联在电容的两端为复位按键,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。一般来说,只要RST 管脚上保持10ms 以上的高电平,就能使单片机有效的复位。图中所示的复位电阻和电容为经典值,实际制作是可以用同一数量级的电阻和电容代替,读者也可自行计算RC 充电时间或在工作环境实际测量,以确保单片机的复位电路可靠。
图2-2 复位电路
完整的STC89C52单片机最小系统电路图如图2-3所示。
图2-3 STC89C51单片机最小系统
2.2 主要硬件电路
2.2.1 电源模块
电源模块如图2-4所示,C1.104电容为100nF的无极性电容。SW1闭合之后,电源模块开始供电, 7.2V电压信号(两节3.6V蓄电池)被直接通到电机驱动模块VCC2引脚上,为其供电。U3为降压芯片(LM7805),因为开发板的大部分芯片正常工作电压都在5V左右,所以引入该芯片,将7.2V电压降到5V左右。EC1为耐压10V,470uF的滤波电容,其作用是滤除7.4V的电压。EC2为耐压35V,220uF的滤波电容,防止电压过低,将其稳定在5V左右,因为单片机的供电电压低于5V之后,单片机将无法正常工作。F1为保险丝,为防止接线短路烧坏元器件而设置。VCC接通后,其5V电压会使电源指示灯电路接通,LED1亮起。J7为电压检测模块,电路接通后, 7.4V电压信号被直接接到J7上,实时监测显示电压。
图2-
4 电源模块
供电口模块如图2-5所示,J5为开发板供5V电压,D1为一二极管,其作用是防止开发板通过USB供电时,电流从开发板流向小车底板,导致开发板烧坏或烧毁USB线。
图2-5 供电口
舵机模块如图2-6所示,本次实验仅用其来为小车供电。
图2-6 舵机模块
2.2.2 电机驱动模块
电机驱动模块如图2-7,采用L293D,采用光电测速方法实现速度采集。当需要调速时由单片机产生占空比进行控制的其控制原理为:EN1为使能端,当其接收到5V电压信号跳变为高电平时,芯片左端会响应电机的驱动信号。其为低电平时,左端接收到任何信号芯片都不会做出反应。IN1与IN2为控制端,接收到单片机传来的控制信号后,产生高低电平控制指令传到OUT1、OUT2端。OUT1与OUT2为输出信号端,接到左电机接口上,通过分别改变其高低电平,实现电机的正转反转。芯片右端控制右电机,其使能端为EN2,控制原理与左端相同。J3、J4为电机的两个接口,位于小车底板底部。
图2-7 电机驱动模块
2.2.3 红外循迹与避障反馈模块
红外循迹和避障反馈模块如图2-8所示,循迹是通过红外对管来执行的。避障是由超声波来控制,避障主要在下一超声波模块介绍。红外对管由一个红外发射管(例如LEAS1)和一个红外接收管(例如RC1)组成,发射管上的胶套是为了降低环境自然光的干扰。
当VCC接通时,LEAS1将会导通而发出红外光,R3为调节其发光亮度而设置。当RC1端接收到红外光后,RC1下端电压会发生变化,并将此电压变化引出直接接到反馈模块的电压比较芯片U5(LM324)上的IN3,通过用螺丝刀拧动RW1改变其阻值,从而改变T3端的电压,用来调节红外循迹模块的灵敏度。当T3处电压与IN3处电压相同时,U5会在输出端O1处输出一个低电平信号给P3.4,从而使LED4接通发光。RW2与其工作原理相同。此过程通过J11接到单片机,单片机将决定对电机驱动模块发出指令。实现下一步的控制,以实现循迹。
图2-8 红外循迹和避障反馈模块
2.2.4 超声波模块
实现避障和魔术手用到的都是超声波模块,在实现避障时,检测到障碍物反馈回的信号时,将信号传递给单片机,然后电机停止工作,控制电机右转180°,然后继续上边的红外循迹,当切换到模式2的时候,进行魔术手模式,超声波检测信号,然后控制电机前进后退。HC-SR04超声波测距模块如下图2-9,可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。
基本工作原理:
(1)采用I0口TRIG触发测距,给最少10us的高电平信呈。
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过I0口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;
VCC供5V电源,GND为地线,TRIG触发控制信号输入,ECHO回响信号输出等四个接口端如图2-10。超声波模块共有四个引脚,其中两个为电源和地,P2.0与P2.1分别为其输入端与输出端,将其接到单片机I/O口上之后,与单片机连通,将其接收到的超声波信息传到单片机,并读取单片机返回的数据,实现单片机控制超声波的功能。
图2-9 超声波模块实物
图2-10 超声波模块原理图
2.2.5 红外遥控模块
一般而言,红外遥控系统由发射装置和接收装置两大部分组成。其中发射装置主要包括键盘电路、红外编码芯片、电源和红外发射电路组成(例如遥控器);红外接收设备可由红外接收电路、红外解码芯片、电源和应用电路组成(例如开发板上有红外接收电路,单片机充当解码芯片)。红外通信流程图如图2-11。通常为了使信号能更好的被传输,发送端将基带二进制信号调制为脉冲串信号,通过红外发射管发射。
图2-11 红外通信流程图
红外发射和红外接受如下图2-12所示。2为前进、8为后退、4和6为左右转、中间5为停止。
图2-12 红外发射和接收模块
2.3 原理图及PCB板
2.3.1 PCB软件介绍
Altium Designer 是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在Windows操作系统。这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件使电路设计的质量和效率大大提高。最高版本为:Altium Designer 21.3.1。
电路设计自动化 EDA(Electronic Design Automation)指的就是将电路设计中各种工作交由计算机来协助完成。如电路原理图(Schematic)的绘制、印刷电路板(PCB)文件的制作、执行电路仿真(Simulation)等设计工作。随着电子科技的蓬勃发展,新型元器件层出不穷,电子线路变得越来越复杂,电路的设计工作已经无法单纯依靠手工来完成,电子线路计算机辅助设计已经成为必然趋势,越来越多的设计人员使用快捷、高效的CAD设计软件来进行辅助电路原理图、印制电路板图的设计,打印各种报表。
Altium Designer 除了全面继承包括Protel 99SE、Protel DXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。 由于Altium Designer 在继承先前Protel软件功能的基础上,综合了FPGA设计和嵌入式系统软件设计功能,Altium Designer 对计算机的系统需求比先前的版本要高一些。
2.3.2 原理图和PCB板展示
图2-13是设计的原理图。
图2-14主要是通过AD画的PCB板。
图2-13 原理图
图2-14 PCB板
第三章 系统软件设计
3.1 软件开发环境的介绍
本设计采用 Keil μVision5进行编程实现。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
3.2 系统重要函数的介绍
3.2.1 主函数的设计
主函数void main()是程序的入口函数,一个完整的程序必须要包含该函数。在该函数的开头一般都是先对单片机和一些外围器件需要进行初始化才能正常使用的器件进行初始化和重新赋值一些变量,初始化完后进去死循环,如果不进入死循环程序运行一次就会退出,如果加入死循环程序就会不断地进行循环达到实时检测执行的目的。在主程序的设计中需要注意的是主函数中不宜放过多的代码,具体的代码一般都是采用函数进行封装然后在主函数进行调用,这样也可以方便阅读修改。
3.2.2 循迹避障函数设计
首先将back置0,进入循迹程序,如果左右灯都不亮,直行;如果左灯亮,右灯不亮,则左转;如果右灯亮,左灯不亮,则右转;如果传感器检测到前方有障碍物,back置1,向后转重新进行循迹。流程图如下图3-1。
图3-1 循迹避障函数流程图
开始
前进
是否检测到黑线
是否检测到障碍
左/右检测到黑线
左/右转弯
左转
检测黑线
是
是
是
否
否
否
否
结束
3.2.3 红外遥控函数设计
对遥控上的按键进行设置,2为前进、4为左转、6为右转、8为后退、9为停止。流程入下图3-5所示。
图3-2 红外遥控设计
3.2.4 魔术手函数设计
超声波测距,根据检测到的距离,控制小车的前进、后退。
3.3 系统软件测试
测试所需的工具:KEIL软件、系统硬件、普中下载器等。
系统的软件方面通过KEIL软件进行编写,将编写好的程序生成.HEX文件后通过PL2303下载器下载到单片机中。通过观察整个系统运行的状态,然后进行反复的修改调试程序,最终得到一个完善的程序。
第四章 结 论
经过制作设计的这段时间的努力终于将本设计方案要求基本实现。由于时间、水平和经验有限,设计的作品还存在着一些的不足之处。
存在问题:在红外循迹采集黑线信号时不稳定,有时采集不到信号,小车只能停止,同时红外传感器受光线影响也比较大。在设计红外遥控时小组成员对该模块的原理和使用不太熟悉。解决方案:多次进行小车实验,调整红外传感器的精度和灵敏度,使小车跑起来更稳,同时调低电机转速,在检测黑线时更方便检测,达到要求。针对对红外遥控不了解的情况,小组成员从各方收集红外遥控的资料,了解红外遥控的原理,同时查找红外遥控的相关程序,进行多次调试,最终实现该要求。
经过设计最后实现了如下设计要求:
(1)循迹避障二合一:小车利用红外传感器探测黑线将信号传递给单片机,然后通过单片机输出信号控制电机,实现小车左右转和直行;当传感器检测到障碍物时,向后转180°然后继续寻找黑线,达到避障的目的。
(2)超声波魔术手:利用超声波传感器发出的信号与人手的距离进行检测,当手向后或者向前时,小车也跟随着进行前进后退,实现“跟手”功能。
(3)遥控器控制小车:通过遥控器发出信号,被小车的接收模块接收信号,使小车进行前进后退和左右转的功能。
对于这次设计来说既是一次机遇,又是一次挑战。在这次的设计过程中,本人学到了很多东西,通过自己的实践,增强了动手能力。通过实际工程的设计也使我了解到书本知识和实际应用的差别。在实际应用中遇到很多的问题,这都需要我对问题进行具体的分析,并一步一步地去解决它。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。