智能超声波避障小车

更新时间:2023-08-27 02:03:01 阅读量: 教育文库 文档下载

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

基于 AT89S51 单片机的智能 超声波避障小车

目录摘要...........................................3 一、总体方案概述.......................................3 二、总体电路原理图....................................3 三、各模块功能介绍.................................4 (一) 、超声波测距模块................................4 (二) 、数码管显示模块................................4 (三) 、步进电机控制模块..............................6 (四) 、语音提示模块..................................7 (五) 、速度自控模块..................................8 (六) 、信号提示模块..................................8 (七) 、单片机控制模块...............................8 四、系统软件设计..................................9 五、元件清单.....................................10 六、应用前景.....................................10 六、参考文献.....................................112

摘要: 摘要:现今发达的交通在给人们带来便捷的同时也带来了许多的交通事故。发生交通事故的因 素有很多。当然,如果我们的汽车能够更加智能,就是说事先能预测并显示前面障碍物离车的 距离,当障碍物距离很近时汽车会自动采取一些措施避开障碍物,这样就能够在很大程度上避 免这些事故的发生。在本论文中,我们将会看到能够实现这一功能的智能小车。 关键字: 关键字:超声波、测量、避障、单片机、语音 一、总体方案概述 本小车使用一台 AT89S51 单片机作为主控芯片, 它通过超声波测距来获取小车距离障碍物 的距离,并且用数码管实时的显示出来,在小车与障碍物的距离小于安全距离(用软件设定) 时,小车会发出“在距您车前方 x(数码显示的实时距离)米的地方有一障碍物,请您注意避 让” 的语音提示, 并且拐弯, 以避开障碍物, 同时会点亮相应侧边的发光二极管作为提示信号。 在避开障碍物后,小车会沿直线前进。 本系统设计的简易智能小车分为几个模块: 单片机控制系统、 超声波路面检测系统、 前进、 转弯控制电机以及方向指示灯系统。它们之间的相互关系如下图 1 所示。图 1:智能小车简要原理框架图二、总体电路原理图P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 RST 9 TRIG 10 ECHO 11 LCD3 12 13 14 15 LCD1 16 LCD2 17 18 19 20 GND 0.1uf VCC GND R20 4.7K 4.7K 4.7uf C7 VOL1 REC1 PLAY1 ERASE1 S5 S6 GND P3 MIC 2 1 R22 4.7K GND C14 0.1uf C15 0.1uf R23 80K 24 23 25 26 19 22 SS 7 SCLK 6 MOSI5 4 MISO 10 11 9 20 C16 18 4.7uf GND I1 REC PLAY ERASE FWD VOL FT SS SCLK MOSI MISO MIC+ MICAnaln Rosc AGC RESET LED ISD1760 Vccd Vssd 3 2 R19 1 R 28 21 8 14 16 12 15 13 17 27 C4 S4 VCC L7 VCC 0.1uf Sperker C9 0.1uf 0.1uf C12 C10 C13 4.7uf GND C11 4.7uf GND GND 4 g c dp d e VCC 0.1uf C6 GND VCC C5 4.7uf GND b 7 LED3 8 LED2 9 10 11 LED1 12 f a A1 P10 VCC P11 P00 P12 P01 P13 P02 P14 P03 P15 P04 P16 P05 P17 P06 RST/VPD P07 P30/RXD EA/VPP P31/TXD ALE/PROG P32/INT0 PESN P33/INT1 P27 P34/T0 P26 P35/T1 P25 P36/WR P24 P37/RD P23 XTAL2 P22 XTAL0 P21 VSS P20 AT89S51 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC R1 R2 R3 R4 R5 R6 R7 R8 b f a e d dp c g P10 P11 P12 P13 P14 P15 P16 P17 1 2 3 4 5 6 7 8 9 ULN2803 U1 IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 GND OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 CM 18 17 16 15 14 13 12 11 10 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 OUT1 OUT2 OUT3 OUT4 BJDJ1 VCC 470 470 470 470 470 470 470 470 P1 1 2 3 4 5 1 2 3 4 5 VCCVCC 10uf S1 C1FIRST BJDJ2Q1 LED1SECONDQ2 LED2THIRDQ3 LED3FORTHQ4 LED4 VCCGND 20pf C2 GND 20pf C3 X1S2 S3GND U2 1 TRIG 2 ECHO 3 4 5 GND VCC TRIG ECHO OUT GNDP2ultrasonicR9R10 10k R11 10k R12 10k R13 10k SS SCLK MOSI MISOFORTH FIRST SECOND THIRDOUT5 OUT6 OUT7 OUT8L1 POWER 470L2 470L3 470 R15 LCD2L4 470 R16 LCD2L5 R17 LCD1 470L6 R18 LCD1GNDR14 GND LCD3R21Vcca Vssa Vccp Vssp1 Vssp2 SP+ SP-C8 4.7ufl8LEDb 3 2 f a 1P4 1 2AUD/AUX INT/RDY36 5 4 3 2 1 g c dp d e LED4

三、各模块功能介绍 、超声波测距模块 (一) 超声波测距模块 、 首先利用单片机输出一个 40kHz 的触发信号,把触发信号通过 TRIG 管脚输入到超声波测 距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射时刻的同时单片机通过 软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收到反 射波后通过产生一个回应信号并通过 ECHO 脚反馈给单片机,此时单片机就立即停止计时。时 序图如图 1 所示。由于超声波在空气中的传播速度为 340m/s,根据计时器记录的时间 t,就可 以计算出发射点距障碍物的距离,即:S=VT/2,通过单片机来算出距离。图 1:超声波模块时序图、数码管显示模块 (二) 数码管显示模块 、 1、数码管显示原理 数码管有一位、双位、四位等几种。而不管将几位数码管连在一起,数码管和显示原理都 是一样的, 都是靠点亮内部的发光二极管来发光。 数码管的内部电路结构如下页图所示: (a) 从 可看出,一位数码管的引脚数是 10 个,显示一个 8 字需要 7 个小段,另外还有一个小数点, 所以其内部一共有 8 个小的发光二极管,最后还有一个公共端,生产商为了封装统一,单位数 码管都封装 10 个引脚。而它们的公共端又分为共阳极和共阴极。上页图的(b)和(c)分别 为共阳极和共阴极数码管的原理图。 本小车的数码管采用的是 4 位共阳极数码管。所谓“共阳”就是指其内部的 8 个发光二极 管的阳极全部接在一起,而它们的阴极是独立的,通常在设计电路时一般把阳极接 VCC,当我4

们给数码管的任一个阴极加低电平时,对应的那个发光二极管就点亮了。 当使用多位一体数码管时,它们内部的公共端是独立的,而负责显示什么数字的段线全部 都是连在一起的, 独立的公共端可以控制多位数码管中哪一位点亮。 通常我们把公共端叫做 “位 选线” ,连在一起的段线叫做“段选线” 。a b ca b c d e f g dpa b c d e f g dpa f e d g b c dpA Ad e f g dp(a)引引引(b)共共共GND(c)共共共+5图 2:数码管内部原理图2、显示部分 C 源程序的编写: 由于在本电子钟中 4 位数码管的段选线是直接接在单片机的 P0 口的,所以我们首先应该 计算出显示各个数字所对应的 P0 口输出的二进制编码。例如如果要显示一个“0” ,对照上面 的(a)图,我们需要点亮数码管中的 a、b、c、d、e、f,而 g 和 dp 不点亮,故 a、b、c、d、 e、f、g、dp 对应的二进制编码就为:00000011。再对照数码管段选线与单片机连接的顺序就 可得要赋给单片机 P0 口的值应为 10100000, 转换为十六进制就是 a0。 同理可以得到其它数字 对应的十六进制编码: uchar code table[10]={0xa0,0xbe,0x62,0x2a,0x3c,0x29,0x21,0xba,0x20,0x28}; uchar code table_dot[10]={0x80,0x9e,0x42,0x0a,0x1c,0x09,0x01,0x9a,0x00,0x08}; 点的数字段码表 //带小数5

b 7 LED3 8 LED2 9 10 11 LED1 12f aVCCl8 FIRST Q1 LED1 SECOND Q2 LED2 THIRD Q3 LED3 FORTH Q4 LED4LEDb 3 2 f a 1 4 g c dp d e LED46 5 4 3 2 1 g c dp d e图 3:指示灯与数码管显示电路3、数码管实时显示距离 用单片机控制四位共阳 7 段数码管来动态显示出测量距离。 在总体电路图中是通过单片机 的 P1 I/O 口来控制数码管的段选,通过 P3.0 到 P3.3 四个 I/O 口来控制四位数码管的位显示, 具体的显示是通过单片机的软件来控制数码管的数据显示, 把单片机计算出来的数据距离实时 的显示出来。 、步进电机控制模块 (三) 步进电机控制模块 、 此模块是用来作为小车前进的动力和控制小车的避障。 步进电机是通过脉冲来驱动的,其步距角和转速只与输入的脉冲频率有关,频率越快,其 转速越快,因此,只需要控制驱动步进电机的脉冲频率来控制步进电机的工作,而步进电机的 驱动脉冲可以通过单片机来输出。但由于步进电机工作时需要较大的工作电流,因此需要用步VCC P10 P11 P12 P13 P14 P15 P16 P17 1 2 3 4 5 6 7 8 9 ULN2803 U1 IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 GND OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 CM 18 17 16 15 14 13 12 11 10 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 OUT1 OUT2 OUT3 OUT4 P1 1 2 3 4 5 1 2 3 4 5 BJDJ1 BJDJ2 ultrasonicOUT5 OUT6 OUT7 OUT8 U2GND 1 TRIG 2 ECHO 3 4 5 GND6 图 4:步进电机驱动模块原理图P2VCC TRIG ECHO OUT GND

进电机驱动芯片来驱动,如图 4 所示,我们用 ULN2803 芯片来驱动步进电机,并且用单片机 的 P0 I/O 口来给 ULN2803 芯片输入不同频率的脉冲,再通过 ULN2803 来驱动步进电机。 本小车使用的是两个四相五线的步进电机来驱动。我们知道,四相五线步进电机共有五根 线,其中红色的接电源的正极,剩下的四根分别接在了 ULN2803 芯片的四个输出端,其对应 的输入端则接在了单片机的 P1.0~P1.3 端口,要使电机工作,则只需让四个 I/O 口依次输出高 电平。电机励磁表如下所示: 励磁顺序 1 2 3 4 A 1 0 0 0 A 0 1 0 0 B 0 0 1 0 B 0 0 0 1小车的前面两个轮子分别用两个步进电机来驱动,当两个步进电机的转速一样的时候,车 子将沿直线前进,而两个步进电机的转速不一样的时候,车子就会拐弯,例如,左边的步进电 机转速比右边的快的话,车子将向右边拐弯,只要控制好两个步进电机的转速比和不同转速的 时间,就可以精确的控制小车的避障行为。 、语音提示模块 (四) 语音提示模块 、 此模块是用来提供语音提示的, 当小车距离障碍物距离 (这个距离可以自行设定) 很近时, 小车的控制系统会发出“在距您车前方 x 米的地方有一障碍物,请您注意避让”的语音提示。 此功能是用 ISD1760 语音芯片来实现,预先给语音芯片录入“在距您车前方”“米的地方 , 有一障碍物,请您注意避让”“0”“1”“2”“3”“4”“5”“6” , , , , , , , , , , , “7”“8”“9”“10” 等语音信息,在通过单片机程序来控制语音芯片的定点放音,来实现语音提示。GND 0.1uf VCC GND R20 4.7K 4.7K 4.7uf C7 VOL1 REC1 PLAY1 ERASE1 S5 S6 GND P3 MIC 2 1 R22 4.7K GND C14 0.1uf C15 0.1uf R23 80K 24 23 25 26 19 22 SS 7 SCLK 6 MOSI 5 MISO 4 10 11 9 20 C16 18 4.7uf GND I1 REC PLAY ERASE FWD VOL FT SS SCLK MOSI MISO MIC+ MICAnaln Rosc AGC RESET LED ISD1760 Vccd Vssd 3 2 R19 1 R 28 21 8 14 16 12 15 13 17 27 C4 S4 VCC L7 VCC 0.1uf Sperker C9 0.1uf 0.1uf C12 C10 C13 4.7uf GND C11 4.7uf GND GND VCC 0.1uf C6 GND VCC C5 4.7uf GNDR21Vcca Vssa Vccp Vssp1 Vssp2 SP+ SP-C8 4.7ufP4 1 2AUD/AUX INT/RDY图 5:语音模块原理图7

由总体电路图,用单片机的 P2.2 到 P2.5 四个 I/O 口来控制 ISD1760 语音芯片的定点放音。 ISD1760 工作原理:如图所示,通过 REC 键来进行录音,录音时要一直按住 REC 键,录完 一段语音后松开 REC 键,按动 PLAY 键可以对刚才的录音播放出来;VOL 键可以加减音量,每 按动一次 VOL 键,声音就增大一级,由于只有 8 级音量调节,所以在第 9 次按动 VOL 键时, 声音又回到了最小音量;ERASE 键可以对已经录入的语音进行擦除,短按此键可以擦除上一段 录音,长按此键可以擦除所有录音;通过 SS、SCLK、MISO、MOSI 脚与单片机进行 SPI 通信, 单片机就是通过这几个脚实现对 ISD1760 的定点放音。 (五) 速度自控模块 、速度自控模块 、 此模块的功能是通过按键自行输入一个速度后,小车就会按照输入的速度进行直线前进, 直到遇到障碍物。 如图所示,通过 S2、S3 来输入设定的速度,此时是通过数码管来显示输入的数字,设定 结束后,小车就会按照此速度前进,不过这只是一个象征性的速度,实际前进速度并不是输入 的速度,而是以速度的快慢来反映这一功能的。 (六) 信号提示模块 、信号提示模块 、 此功能就是相当于汽车的转向灯和刹车灯。 把 L2、L3、L4、L5 四个发光二极管分别安装在小车的四个角上,当小车在拐弯时相应侧 边的发光二极管点亮,并且闪动;当小车在减速时小车后面的发光二极管点亮且闪动。 (七) 单片机控制模块 、单片机控制模块 、 此模块是小车的最重要部分,它控制着超声波测距模块、数码管显示模块、步进电机控制复复复复VCC P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 REST1 R15 16K C1 10uF P1.7 1 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20AT89S51U2 P1.0 VCC P1.1 P0.0 P1.2 P0.1 P1.3 P0.2 P1.4 P0.3 P1.5 P0.4 P1.6 P0.5 P1.7 P0.6 RST/VPD P0.7 P3.0/RXD EA/VPP P3.1/TXD ALE/PROG P3.2/INT0 PSEN P3.3/INT1 P2.7 P3.4/T0 P2.6 P3.5/T1 P2.5 P3.6/WR P2.4 P3.7/RD P2.3 XTAL2 P2.2 XTAL1 P2.1 VSS P2.0 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21VCC LED6 LED10 LED5 LED9 LED8 LED12 LED7 LED11模块、语音提示模块、速度自控 模块和信号提示模块的工作。 单片机通过计时器记录超声 波发射和接受的时间差,来计算 出小车距离障碍物的距离,控制 P1 口的高低电平来控制数码管 显示,通过输出不同频率的脉冲 来控制步进电机的工作, 通过 SPI 协议与 ISD1760 语音芯片进行通 信, 来控制语音芯片的定点放音, 实现语音提示功能。GNDLED4 LED1 LED2 LED3 BELL1 C2 20pFY12 C3 20pFXTALGND振振复复图 6:单片机最小系统8

四、系统软件设计 系统软件设计 本设计系统软件采用模块化结构, 由主程序﹑定时子程序、 电机驱动子程序﹑中断子程序、 显示子程序﹑调速子程序﹑算法子程序构成。主程序流程图如图 2 所示。其中:避障中断服务 子程序完成对超声波探测器产生的外部中断进行处理, 如果超出预定的危险距离就左转进行避 障。遥控中断服务子程序完成对遥控信号产生的外部中断进行处理,对不同的遥控信号产生相 应的控制信号。在定时中断服务子程序,完成定时与里程的计算。初始化驱动电机利用定时器中断每 800ms 发送一个触发信号收到回波信号 否 是 计算障碍物距离否 障碍物距离小于 20cm是 驱动电机转向图 7:程序流程图9

五、原件清单序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21元件名称 AT89S51 单片机 电解电容 电解电容 瓷片电容 瓷片电容 弹性按键 ISD1760 电源插座 发光二极管 LED 数码管 三极管 电阻 电阻 电阻 电阻 ULN2803 晶振 电机接口 超声波模块接口 驻极体接口 扬声器接口元件 U1 C1 C5, C7, C8, C10, C11, C16 C2,C3 C4, C6, C9, C12, C13, C14, C15 ERASE1, PLAY1, REC1,S1~S7, VOL1 U2 J1 L2, L3, L4, L5, L6, L7 U3 Q1, Q2, Q3, Q4 R1~R10,R14~R18 R19~R22 R10~R13 R23 U4 Y1 P1,P2 P5 P3 P4数量 1 1 6 2 7 11 1 1 6 1 4 14 4 4 1 1 1 2 1 1 1参数 —— 10uf 4.7uf 20pf 0.1uf —— 8550(2N3960) PWR2.5 —— 4 位共阳 8550(2N3960) 470kΩ 4.7kΩ 10kΩ 80kΩ —— 11.0592MHz 排针 排针 排针 排针五、应用前景 本智能小车系统最诱人的前景就是可用于未来的智能汽车上了。 当驾驶员因疏忽或打瞌睡 时这样的智能汽车的设计就能体现出它的作用。如果汽车偏离车道或距障碍物小于安全距离 时,汽车就会发出报警,提醒驾驶员注意,如果驾驶员没有及时作出反应,汽车就会自动减速 或停靠于路边。 这样的小车还可以用于月球探测等的无人探月车,帮助我们传达月球上更多的信息,让我10

们更加的了解月球,为将来登月做好充分准备。 这样的小车在科学考察探测车上也有广阔的应用前景。在科学考察中,有许多很危险且人 们无法涉足的地方,这时,智能科学考察车就能够派上用场,在它上面装上摄像机,代替人们 进行许多无法进行的工作。 六、参考文献 [1] 郭天祥.新概念 51 单片机 C 语言教程——入门、提高、开发、拓展全攻略.北京:电子 工业出版社,2009 [2] 宋戈,黄鹤松,员玉良,蒋海峰.51 单片机应用开发范例大全.北京:人民邮电出版社, 2010 [3] 阎石.数字电子技术基础(第四版).北京:高等教育出版社,1998 [4] 刘伏文,王春华.MCS-51 单片机存储器结构详解.电子制作,2007,(10)11

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

Top