版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于MSP430处理器的的智能清洁机器人控制系统设计摘要当今世界,科学技术不断改变着人类的生活和思维方式,科技产品已经渗透到人类生活的每一个角落。随着材料、通信、感知和驱动等领域科学技术的不断进步,在制造业以外的服务领域也开始出现了机器人,使机器人的应用有了更为广阔的发展前景。清洁机器人是一种能够自动进行房间清洁的家用服务机器人,涉及力学、材料学、嵌入式技术、通信技术、物联网技术和计算机软件技术等多个学科[1]。清洁机器人的发展不仅在科学研究上具有挑战性和前瞻性,而且具有广阔的市场前景[2]。本课题是嵌入式技术、传感检测技术和通信技术的结合。具体实现方案如下:运用PWM脉冲宽度调制技术对电机的转速进行控制;使用超声波传感器测量距离,反射回来的声波变成电信号通过放大器传给MSP430运算处理;使用红外线避障传感器检测障碍物,由MSP430控制清洁机器人及时躲避障碍;在液晶上显示所处模式、速度、剩余时间等数据,同时具备红外遥控功能。智能机器人系统由以下几部分组成:(1)MSP430处理器模块:以MSP430处理器作为核心模块,各种功能模块的扩展通过其通信接口实现,是该智能清洁机器人系统的核心模块。该模块在整个机器人系统中起到模块控制和数据处理的核心作用,具有处理能力强,运算速度快,超低功耗的特点;(2)运动控制模块:该模块可以对电机的转速进行控制;(3)避障模块:该模块可以使机器人及时躲避障碍;(4)超声波传感器模块:该模块可以实时检测距离;(5)通信模块:采用串口通信,将信息传输到PC机;(6)OLED模块:该模块为本系统的显示模块,主要显示模式、速度、剩余时间、课题名称、学校、班级、姓名等信息;本课题研制的清洁机器人系统具有功能齐全、实时监控等特点,在需要时及时进行充分清洁,能够合理地规划路径、有效的提高清洁效率。关键字:清洁机器人;无线通信;嵌入式系统;MSP430目录TOC\o"1-3"\u第1章绪论 21.1课题研究的背景及意义 21.2课题研究的现状及发展趋势 21.3
本设计主要内容 31.4论文结构 3第2章系统设计方案 42.1系统设计任务 42.2系统设计方案选择 42.2.1单片机芯片的选择 42.2.2运动模块选择方案 52.2.3超声波模块选择方案 52.2.4避障模块选择方案 52.2.5无线通信模块选择方案 62.2.6显示模块选择方案 62.3系统整体设计框图 6第3章硬件电路设计 83.1主控制器MSP430F149 83.2运动模块 103.3超声波模块 113.4避障模块 133.5无线通信模块 143.6显示模块 15第4章系统软件设计 184.1智能清洁机器人系统主程序流程 184.2运动模块程序 204.3超声波模块程序 214.4避障模块程序 224.5无线通信模块程序 244.6显示模块程序 26第5章系统仿真与调试 325.1设计前期工作 325.2系统仿真 325.3硬件电路调试 405.3.1避障模块调试 405.3.2超声波模块调试 415.3.3无线通信模块调试 445.3.4显示模块调试 445.4设计成果 46第6章总结……………………48致谢 49参考文献 50第1章绪论1.1课题研究的背景及意义在人类不断发展的文明中,科技产品已经渗透到人类生活的每一个角落。在控制、感知、驱动、材料等领域不断进步的技术背景下,机器人出现在制造领域之外的服务领域,开辟了机器人应用的新领域。服务机器人的出现有着深刻的社会因素。主要原因有三:1.劳动力成本上升;2.人类想要摆脱枯燥的体力劳动,如清洁、家务和病人护理;3.人口老龄化与社会福利体系日益完善[3]。清洁机器人是一种能够自动进行房间清洁的家政服务机器人,涉及力学、材料学、嵌入式技术、通信技术、物联网技术和计算机软件技术等多个学科。清洁机器人的发展不仅具有挑战性和前瞻性,而且具有广阔的市场前景。本课题研究的基于MSP430的清洁机器人控制系统,能够采集到机器人的位置以及当前的状态,实现现场数据的实时监控,并调整机器人运动轨迹完成清洁。1.2课题研究的现状及发展趋势机器人是当代高端智能装备和高新技术的突出代表,对制造业的发展至关重要,是衡量一个国家制造业水平和核心竞争力的重要指标。目前,世界主要发达国家都把机器人作为提升自身在国际制造业竞争力的重点发展领域。机器人标准作为机器人产业国际竞争的技术基础和有效手段,被发达国家置于产业战略的重要地位。可以说,各国在机器人产业领域的竞争不仅是技术和市场的竞争,更是机器人标准的竞争[4]。清洁机器人始于上世纪80年代,现在已经有了多样的产品,推动了家用服务清洁机器人产业的发展,还推动了运动机器人图像处理、语音识别、材料以及传感器等技术的发展[5]。许多国家特别是发达国家都把家用服务清洁机器人看做机器人研发的一个新的领域,并予以重视,投入了大量的技术和资金。相关信息还预测,在机器人应用领域,清洁机器人将是未来数年中最受欢迎的机器人,尤其是家用清洁机器人,它们在产品创新和市场占有方面是所有小家电中最活跃的。清洁机器人未来仍然会有很大的成长空间和市场机会。2019年,中国商用清洁机器人的需求将在3.8亿元左右。2020年,受新型冠状病毒疫情影响,商业市场和公共市场对商用清洁机器人需求旺盛,商用清洁机器人在机场、医院、办公室等多种应用场景加速发展。与此同时,国内商用清洁机器人企业也加快了量产计划。随着我国制造业和服务业数字化进程的加快,各行业人工成本的增加,劳资矛盾的加剧,未来我国对商用清洁机器人的需求将继续快速增长。预计到2025年,市场总需求将达到27.8亿元[6]。总之,清洁机器人市场正处于一个不断发展壮大的时期。为了不断提升用户体验,满足实际功能的需求,清洁机器人将不断进化和完善,实现智能清洁机器人的真谛。1.3
本设计主要内容
本次设计是为了减轻大量重复家务活动带来的负担,设计一种可以自动执行房间清扫的家用服务机器人。该系统采用MSP430F149芯片作为控制单元,内部装有电机模块,利用PWM波原理进行速度控制,其次通过红外传感器接受遥控信号。同时超声波和光电传感器模块将位置信息传送给MSP430F149,对路径进行规划,将模式、速度、剩余时间在液晶屏中显示出来,最后完成清洁任务。1.4论文结构论文第1部分是说明本次课题的来源和近几年国内外快递行业发展的趋势,最后对本次设计的系统进行一次简单概括。论文第2部分是系统设计方案选择,先讲一下各模块的大体设计和设计任务,并对各个硬件的优点、功能和特性进行说明。论文第3部分是硬件设计部分,近一步对第二章的硬件加深说明,包括运动、超声波、避障、无线通信和TFT液晶显示屏模块。并解释各自引脚关系以及与主芯片MSP430F149的连接关系。论文第4部分是软件设计部分,主要先对本部分的程序画了流程图,进行解释,对主要的程序进行详细说明。论文第5部分是系统调试部分,一开始说了以下毕业设计的准备工作,接下来对软件部分进行一些调试,接着对硬件部分的功能做了一下测试,判断功能是否能够实现。论文第6部分是结束语,主要再对智能清洁机器人系统进行总结,并进行优点和不足之处的说明。最后是致谢和参考文献。
第2章系统设计方案2.1系统设计任务本设计是对清洁机器人进行一次研究,并且以MSP430F149作为控制单元,并通过该芯片读取数据显示在OLED屏上。本次设计是为了减轻大量重复家务活动带来的负担,设计一种可以自动执行房间清扫的家用服务机器人。该系统采用MSP430F149芯片作为控制单元,内部装有电机模块,利用PWM波原理进行速度控制,其次通过红外传感器接受遥控信号。同时超声波和光电传感器模块将位置信息传送给MSP430F149,对路径进行规划,将模式、速度、剩余时间在液晶屏中显示出来,最后完成清洁任务。下面将会对系统功能及各模块设计的方案选择进行描述。2.2系统设计方案选择2.2.1单片机芯片的选择本次设计选择MSP430F149作为核心芯片。MSP430F149单片机电源电压采用低电压,电压范围为1.8~3.6V。在数据保持方式下,随机存取存储器的耗电很低,电流约为0.1uA;在活动模式下,耗电约为250uA/每秒百万条指令数。MSP430F149单片机的时钟系统设计较为独特。基本时钟系统和锁相环时钟系统或DCO数字振荡器时钟系统是MSP430系列单片机包括的两个不同的时钟系统。时钟系统的作用是产生中央处理器和功能模块所需要的时钟。在指令的控制下,这些时钟可以开启或关闭并实现对整个系统功耗的控制,充分发挥该系列单片机低功耗的优点。因为系统在运行时采用的工作模式和使用的功能模块不同,芯片的功耗也随之出现较大的差异。MSP430单片机系统有一种活动模式(AM)和五种低功耗模式(LPM0、LPM1、LPM2、LPM3和LPM4)。此外,MSP430F149单片机的中断为支持10多个中断源、可任意嵌套的矢量中断。仅仅6us就可以用中断请求唤醒中央处理器。通过编程可以实现较快地响应外部事件请求,同时降低系统的功耗的目的。在世界上所有的单片机中,MSP430系列的单片机是功耗最低的,一块电池可在该系列单片机的系统中使用长达10年,目前还没有单片机可以在这一点上与之媲美。本次设计选用的MSP430F149单片机是一种16位单片机。它采用的结构为RISC(即精简指令集)结构,一条指令可以在一个时钟周期内执行完毕(传统的MCS51单片机执行一条指令至少需要12个时钟周期),故RISC精简指令集结构在单片机中很受欢迎且备受推崇。由于这种设计,当选择8MHz的晶振时,MSP430F149的指令速度可以达到8MIPS[7]。2.2.2运动模块选择方案采用ULN2003芯片设计步进电机驱动模块,该芯片可以对步进电机进行驱动,由七个硅NPN达林顿管组成的ULN2003是大电流、高耐压的达林顿陈列。ULN2003芯片电路的特点主要有以下几个方面:(1)每对达林顿电路都有一个阻止为2.7K基极电阻与之串联。当工作电压为5V时,ULN2003可以直接连接TTL晶体管-晶体管逻辑电路和CMOS金属-氧化物-半导体集成电路,需要使用标准逻辑缓冲器来处理的数据在这种情况下可以直接被处理。(2)ULN2003工作电压高,工作电流大。漏电流高达500mA,关断时可承受50V电压,输出也可在大负载电流下并行运行[8]。可在5V电压下工作,直接驱动5V步进电机。如典型的5V步进电机,例如24BYJ/48,为四相八拍电机,减速比为1/64,步进角为5.625°/64。2.2.3超声波模块选择方案 本设计选用US-015作为超声波测距模块。US-015是市场上分辨率最高的超声波测距模块,具有最佳的重复测量一致性。US-015分辨率大于1mm,可达0.5mm,测距精度高;重复测量一致性好,测距稳定可靠。US-015超声波测距模块可实现2cm~4m的非接触测距功能,供电电压为5V,工作电流2.2mA,支持GPIO通讯方式,运行稳定可靠[9]。当被测距离超出US-015的测量范围时,US-015仍会通过echo引脚输出高电平信号,高电平宽度约为80ms。测量周期:通过echo引脚接收到US-015输出的高电平脉冲后,即可进行下一次测量。因此,测量周期取决于测量距离。当US-015非常靠近被测物体时,Echo返回的脉冲宽度比较窄,并且测量周期较短。随着US-015远离被测物体,返回的脉冲宽度变宽,测量周期也随之变长。最坏情况下,被测物体在US-015的测量范围之外,此时返回的脉宽最长,约为80ms,因此最坏情况下的测量周期略长于80ms(取85ms足够)。2.2.4避障模块选择方案 本设计采用TCRT5000红外反射传感器作为避障模块。该模块的传感器基于红外光反射原理。TCRT5000内部有一个覆盖了能够阻挡可见光的材料的光敏晶体管,和一个红外发光二极管。TCRT5000用于检测反射距离,适用于1mm~25mm;比较器输出,信号清晰,波形好,驱动能力强,大于15mA;配备多圈可调精密电位器,调节灵敏度;工作电压3.3V-5V;输出形式:数字开关量输出(0、1);带固定螺栓孔,安装方便;PCB尺寸:3.2cmx1.4cm;使用宽电压LM393比较器[10]。 TCRT5000传感器的红外线发射二极管持续发射红外线。当发出的红外线出现以下两种情况时,红外线接收管始终处于关闭状态:(1)红外线没有被反射回来;(2)红外线被反射回来,但是反射回来的红外线强度低于所设定的阈值。此时二极管一直处于断开状态,模块的输出端为高电平。当被测物体出现在检测范围内时,红外线以足够的强度反射回来,红外接收管饱和。此时模块输出为低电平,表示二极管导通。2.2.5无线通信模块选择方案 在本次毕业设计中,选择1838红外接收器作为无线通信模块。红外遥控作为目前被大量使用的通信方法,具有很多优点,如功能强大、成本低廉等。红外遥控器具有体积较小、便于携带和功耗较低的优点。生活中的各种产品都有红外遥控的应用,如电视、机顶盒、智能音箱、录音机、空调和玩具等。同时,由于红外遥控具有可靠性高、可以将电气干扰隔离的优点,在需要在有辐射、高压、有毒气体等环境中运行的工业设备中,红外遥控也得到了广泛的应用[11]。2.2.6显示模块选择方案 本设计选用DMTFT-28TFT彩色触摸屏作为显示模块。目前TFT是使用最广泛的手机屏幕。随着产业的发展和技术的进步,TFT不仅应用于手机等数码产品,还应用于各种行业和家用电器,如仪器仪表、手持工业设备、扫描设备、冰箱等。DMTFT-28模块是一块2.8英寸的TFT彩屏,带触摸功能。可直接应用于各种单片机(51、AVR、MSP430、PIC以及飞思卡尔等)、ARM(如STM32等)、DSP等控制器,可以显示汉字、字符以及图片等,可通过模块的LCD转接板进行设置[12]。2.3系统整体设计框图本系统以MSP430F149为主控制器,接下来使用光电传感器、超声波传感器、红外传感器模块对数据进行采集,将数据由MSP430F149芯片读取出来再在显示屏上展现出来,最后可以实现清洁功能。下图2-1为整个系统设计的框图。图2-1系统整体设计框图
第3章硬件电路设计本设计是对清洁机器人进行一次研究,并且以MSP430F149作为控制单元,并通过该芯片读取数据显示在TFTLCD屏上。该系统采内部装有电机模块,利用PWM波原理进行速度控制,其次通过红外传感器接受遥控信号。同时超声波和光电传感器模块将位置信息传送给MSP430F149,对路径进行规划,将模式、速度、剩余时间在液晶屏中显示出来,最后完成清洁任务。本系统硬件部分包含运动、无线通信、显示屏、超声波、和避障模块。本设计用MSP430F149作为核心芯片,并对数据进行采集在TFTLCD上显示出来,并完成清洁任务。3.1主控制器MSP430F149图3-1为MSP430F149芯片的硬件原理图。图3-1MSP430F149芯片端口引脚图MSP430F149单片机电源电压采用低电压,电压范围为1.8~3.6V。MSP430单片机系统有一种活动模式(AM)和五种低功耗模式(LPM0、LPM1、LPM2、LPM3和LPM4)。MSP430F149单片机的中断为支持10多个中断源、可任意嵌套的矢量中断。仅仅6us就可以用中断请求唤醒中央处理器。通过编程可以实现较快地响应外部事件请求,同时降低系统的功耗的目的。在世界上所有的单片机中,MSP430系列的单片机是功耗最低的。MSP430F149单片机它采用的结构为RISC(即精简指令集)结构,一条指令可以在一个时钟周期内执行完毕(传统的MCS51单片机执行一条指令至少需要12个时钟周期)[13]。MSP430F149芯片端口引脚功能分别如下:在图3-1中,Avcc和Avss为MSP430F149芯片的数模转换的模拟部分供电,分别是模拟电源的正端和负端。起到为数字部分供电功能的引脚是DVcc和DVss,分别是数字电源的正端和负端。P1.0/TACLK除了作为通用的输入输出端之外,还可以作为定时器A时钟信号的输入。P1.1/TA0可用作通用的输入输出端,使CCIOA的输入可以被定时器A捕获,还可以用于BSL的发送以及OUT的输出的比较。P1.2/Tal用于通用的输入输出端,以及被定时器A捕获的CCI1A输入,还可以用于OUTl输出的比较。P1.3/TA2用于通用输入输出端,还可以用于OUT2输出的比较。P1.4/SMCLK用于通用的输入输出端,以及输出SMCLK信号。P1.5/TA0用于通用的输入输出端,也可以用于比较OUT0的输出。P1.6/Tal也是通用的输入输出端,还可以用于定时器A的OUT1输出的比较。P1.7/TA2除了作为通用的输入输出端之外,也使比较器A的OUT2的比较输出。P2.0/ACLK、P2.1/TAINCLK、P2.2/CAOUT/TA0、P2.3/CA0/Tal、P2.4/CA1/TA2、P2.5/Rosc、P2.6/ADCl2CLK/DMAE0、P2.7/TA0均为通用的输入输出端,分别还具有以下功能:P2.0还可以用于ACLK输出;P2.1还可以用于INCLK的时钟信号(定时器A);P2.2还可以用于比较器输出以及CCIOB输入;P2.3还可以用于比较器A输入和OUT2输出;P2.4还可以用于比较OUT2输出(定时器A)和比较器A输入;P2.5还有定义外部电阻输入(DCO标称频率)的功能;P2.6可用于DMA外部触发器(通道0),还可用于时钟ADC12的转换;P2.7还具有比较OUT0输出(定时器A)的功能。P3.0/STE0、P3.1/SIMO0/DSDA、P3.2/SOMIO、P3.3/UCLK0/SCL、P3.4/UTX、P3.5/URXD0、P3.6、P3.7管脚也都可以作为通用的输入输出端。这些引脚同时还具有其他功能,如USART0/SPI模式的使能、从入和主出、从出和主入、I2C时钟输出和外部时钟输入、传输数据和接收数据的输入和输出等。P4所有引脚也可作为通用数字输入输出引脚,同时还有很多其他用途。P4口的所有引脚均可用于捕获I/P以及作为PWM脉冲宽度调制的输出端口。P5口也均可作为通用数字输入输出引脚。同时可用于USARTI/SPI模式的控制、主系统以及子系统时钟的输入输出。P6口除了用于通用数字输入输出引脚外,还用于ADC模拟的输入和输出。除了以上介绍的P1~P6引脚,MSP430F149芯片还有一些其他引脚。如复位引脚、测试时钟和测试数据的输入输出引脚、内外部参考电压的输入输出引脚、XT1和XT2晶振的输入输出端口等[14]。3.2运动模块步进电机驱动模块ULN2003可以驱动步进电机,方便在控制设备中使用。ULN2003是由七个硅NPN复合晶体管组成的耐高压、大电流复合晶体管阵列。每对达林顿电路都有一个阻值为2.7K基极电阻与之串联。当工作电压为5V时,ULN2003芯片可以直接连接TTL晶体管-晶体管逻辑电路和CMOS金属-氧化物-半导体集成电路,需要使用标准逻辑缓冲器来处理的数据在这种情况下可以直接被处理。ULN2003芯片是达林顿晶体管阵列系列高压大电流产品。ULN2003芯片具有工作电压高以及工作电流大的特点。该芯片的漏电流高达500mA,在关断时可以承受高达50V的电压,输出也可在大负载电流下并行运行。ULN2003芯片可在5V电压下工作,直接驱动典型的5V步进电机,例如24BYJ/48等,该步进电机为四相八拍电机,减速比为1/64,步进角为5.625°/64[15]。图3-2为ULN2003芯片端口引脚图:图3-2ULN2003芯片端口引脚图其中JP6即与步进电机的接口,步进电机可以直接插到2~5口,D1~D4为步进电机控制口,连接到P21~P24口,步进电机正转或者反转数据可以直接给对应的P2口。3.3超声波模块本次设计选择US-0159模块作为超声波测距模块。本超声波测距模块模块包括P89LPC932A1芯片,该芯片适用于多种对集成度要求较高和对成本要求较低的场合。P89LPC932A1芯片的处理器架构具有高性能、执行速度快的特点,仅需2~4个时钟周期就可以执型一条指令,比标准的80C51器件速度快6倍。多种系统级功能集成在P89LPC932A1芯片上,具有降低成本、减少元件数量和减小所用电路板的面积的作用,提高了系统的性价比。P89LPC932A1芯片的引脚图如图3-3所示。图3-3P89LPC932A1芯片的引脚图本设计采用74HC595芯片来控制数码管的显示。74HC595芯片是一个位移缓冲器,有8位串行输入和三态并行输出。串行数据在SCK出现上升沿时,被SDL输入到内部并通过Q7'输出。当74HC595芯片处于并行输出状态时,位于8位位移缓存器的数据在LCK的上升沿被存贮到并行输出缓存器中。OE是串行数据输入端的控制信号,当输入信号为低使能时,存储在并行输出缓冲器中存储的数值和输出的数值相等。74HC595芯片的主要优点是它有一个数据存储寄存器。在移位期间,输出数据可以保持不变。这在串行速度较慢且需要数码管没有肉眼可识别的闪烁时很有用。74HC595芯片的引脚如图3-4所示,各引脚介绍如下。数码管的八个段位可以由八位并行输出端Q0、Q1、Q2、Q3、Q4、Q5、Q6和Q7直接进行控制。通过级联输出端可以与其他的74HC595芯片相连,级联输出端是Q7',将前一个芯片的Q7'端与下一个74HC595芯片的串行数据输入端DS端连起来就可以实现级联。74HC595芯片的第十个管脚的/MR通常与电源正极相连,使输入信号为高电平,防止数据被清零,当信号为低电平时则将清零移位寄存器的数据清零。74HC595芯片的11角是SH_CP,在输入信号处于上升沿时,对数据寄存器中的数据按照Q0到Q7的顺序移位,当信号处于下降沿时,移位寄存器的数据被锁存,不会发生改变。74HC595芯片的12角是ST_CP,移位寄存器中的数据在当检测到输入的信号处于上升沿时,可以进入数据存储寄存器,当信号处于下降沿时,数据被锁存。在一般情况下,74HC595芯片的11角置为低电平,在移位结束之后,在74HC595芯片的12角产生一个正向脉冲,显示的数据被更新。74HC595芯片的13角是/OE,该引脚在信号处于高电的时候禁止输出数据,即处于高阻状态。如果单片机管脚使用不是很紧张,用单个管脚来控制,就可以很容易地产生闪烁以及新灭的效果。它比通过数据端移位更省时省力。当74HC595芯片处于正常工作状态时,12角为低电平,13角为低电平。在串行数据输入的过程中,每当有一位数据从DS口输入,11角的串行输入时钟产生一次有效的上升沿信号。输入完所有的的数据之后,74HC595的12角ST_CP会产生一个有效的上升沿信号17]。图3-4HC595的引脚图图3-5为US-0159模块端口引脚图:图3-5US-0159端口引脚图1号端口接VCC电源(直流5V);2号端口接外部电路的Trig端,向此管脚输入一个10uS以上的高电平,可触发模块测距;3号端口接外部电路的Echo端,当测距结束时,此管脚会输出一个高电平,电平宽度为超声波往返时间之和;4号端口接外部电路的地。trig和echo端口在程序初始化时都被置为低电平。当US-0159处于工作模式时,若要测出超声波在空气中运行的时间,则要先将高电平脉冲发送给trig口,该脉冲为自动发送的40k方波,持续至少10us的时间。等到echo端口输出的上升沿信号被trig端口接收到之后,定时器被打开,进行计时。再将捕捉到echo的下降沿后定时器的数值读出来。根据上升沿和下降沿间隔的时间和声信号传播的速度,可以将障碍物和发送超声波设备之间的距离计算出来。3.4避障模块本次设计选择TCRT5000作为避障模块,图3-6为TCRT5000硬件电路图:图3-6避障模块电路图TCRT5000传感器的红外线发射二极管持续发射红外线。当发出的红外线出现以下两种情况时,红外线接收管始终处于关闭状态:(1)红外线没有被反射回来;(2)红外线被反射回来,但是反射回来的红外线强度低于所设定的阈值。此时二极管一直处于断开状态,模块的输出端为高电平。当被测物体出现在检测范围内时,红外线以足够的强度反射回来,红外接收管饱和。此时模块输出为低电平,表示二极管导通。TCRT5000红外传感器的工作距离范围约为0.2~15mm[18]。TCRT5000传感器有以下四个端口,VCC:接电源正极(3-5V),GND:接电源负极,DO:TTL开关信号输出,AO:模拟信号输出。3.5无线通信模块本次设计选择红外接收头1838作为无线通信模块。遥控器由红外收发、信号调制和指示状态电路、程序存储器、数据存储器以及键盘等组成。红外遥控器的原理比较简单,就是通过遥控器中的红外发射管将信号转化为不可见的红外光,将红外光发送出去,再由被遥控器物体的红外接收头接收到红外光并转换成信号。于是目标物体就可以受到红外遥控的控制了。在控制状态下,每次控制键被用户按下后,位于指定的存储单元中的一系列二进制数据就会被中央处理器读取出来,同时串行输出到信号保持电路,由信号保持电路电路进行信号的调制。在串行输出时,两位数据之间间隔的时间与采样期间间隔的时间相等。调制信号经过放大后,由红外发光二极管发射,从而实现用按键控制设备的功能。控制信号一般用几种不同的特性来区分,常用来区分指令信号的特性是频率和编码组的特性,即用不同的频率或编码的电信号来表示信号,从而实现遥控。根据指令和识别信号产生方法的不同,常把红外系统分为频分制和码分制。为了避免信号间的相互干扰,正确地实现遥控功能,控制信号通常使用不同频率和编码组进行区分。即用不同的频率或编码的电信号来表示信号,以实现遥控。因此,红外遥控系统通常根据控制命令产生和识别信号的方式和特点进行分类,常分为红外遥控频率共享和红外遥控编码共享。红外遥控系统一般由发射器和接收器两部分组成,信号发生电路、调制和驱动电路、发射指令按键组成了红外遥控系统的发射器。指令信号经过红外信号调制电路调制后,发出信号驱动红外发射器。接收器由前置解调和放大电路、指令信号检出电路、记忆、执行及驱动电路组成。当红外指令的红外光信号被接收器件收到时,接收器件把收到的信号由光信号转化为可以被前置放大电路放大和解调器解调的电信号,放大和解调后再通过检出电路,把检测出来发的指令信号送到记忆和驱动电路,驱动执行电路来实现所设置的功能。红外遥控发射器由以下三部分组成:键盘、发光二极管和驱动电路。按下按键后,为了防止把干扰信号识别为有效信号,系统会在启动振荡器之前进行一段微小的延迟。代码经过一定范围内的载波调制后再输出,提高了传输过程中的抗干扰能力,延长了遥控器电池的使用寿命。一体化红外接收头是遥控系统的接收部分,由解调器、放大器、限幅器、积分器和滤波器等部分组成。一体化红外接收头根据载波频率的不同有不同的型号。一体化红外接收头接收的电路输出为高电平时,没有收到红外信号;输出为低电平时,表示收到了红外信号。一体化红外接收头有信号输出、电源、GND三个引脚。接口原理图如图3-7所示:图3-7一体化红外接收头1838端口引脚图一体化红外接收头1838的1脚KEY3连接到P32口,为红外数据通道,2脚和3脚分别接GND和VCC。3.6显示模块本设计选用DMTFT-28TFT彩色触摸屏作为显示模块。DMTFT-28模块是一块2.8英寸的TFT彩屏,带触摸功能。触摸屏、液晶面板和转接板组成了彩屏模块。转接板电路主要由以下几部分组成:输入输出扩展、SD存储卡接口、屏幕控制、彩屏控制接口、背光电路和柔性印刷电路板等。为了获得较为稳定的工作状态,选择柔性印刷电路板接口电路将LCD面板和转接面板的连接起来。触摸屏时出厂默认使用XPT2046控制芯片。如图3-8所示。图3-8XPT2046端口引脚图电极、两层阻性导体层和两层隔离层构成了触摸屏,导体的上下两层在触摸屏工作时起到电阻网络的作用。当有外力作用在触摸屏上时,上下两层会产生接触点,接触点处的坐标可以通过测量电压得到,测量的位置为电极未加电压的另一层[20]。通过通用输入输出端口的扩展,驱动16位数据只需占用8位控制器的端口,节省了通用输入输出端口的资源。液晶显示模块出厂时被设置为16位,IO扩展电路图如下图3-9所示。图3-9DMTFT-28的输入输出口扩展电路图锁存器的D0、D1、D2、D3、D4、D5、D6、D7分别与8位通用数字输入输出口相连,锁存器的输出口Q1、Q1、Q3、Q4、Q5、Q6、Q7分别与TFT的高8位数据口连接在一起。送到D10~D17,此时通过LE控制管脚将数据锁存到TFT的高8位数据口,然后将16位数据的低8位送到D10~D17即完成数据送至TFT数据口工作。写入16位数据时,首先把16位数据中的高8位分别发送到D10、D11、D12、D13、D14、D15、D16和D17,通过LE引脚的控制,数据被锁存到显示屏数据口的高8位,接着再将剩下的低8位数据发送D10~D17端口。彩色触摸屏采用2x20直插式接口,40个引脚使用两组单列20个的插针,接口原理图如图3-10所示:图3-10DMTFT-28端口引脚图DMTFT-28的1脚为地;2脚为高电平输入,默认输入5V电压,也可以输入3.3V电压;3脚悬空;4~16脚与一个阻值为1k~2k的电阻相连,起到限流作用,再与控制器相连,避免在TFT在5V电压驱动下因电流过大而损坏;17脚LE为输入输出扩展控制位;18脚NB为背光控制预留脚;21~24脚为存储卡的控制接口;26~33脚为彩屏数据口的高8位;35~40脚为彩屏的触摸控制接口。
第4章系统软件设计本章详细介绍了各个模块的软件设计流程以及部分源代码,包括运动模块、无线通信模块、超声波模块、避障模块与MSP430芯片之间的软件程序,显示屏模块的程序,最终得以在显示屏上显示模式、速度、剩余时间、课题名称、学校、班级、姓名等信息。4.1智能清洁机器人系统主程序流程图4-1主程序流程图主程序流程图如图4-1,主程序如L4.1。在该系统中,首先对变量进行定义,其次利用调用函数对看门狗、系统时钟、IO口、光电传感器、超声波传感器和液晶模块初始化,接下来对这些模块的参数进行设置,利用While语句进行循环,将模式、速度、剩余时间以及我个人的信息在液晶屏上显示出来。L4.1程序清单:voidmain(){WDT_Init();(1)Clock_Init();(2)Port_Init();(3)TCRT_Init();(4)US_Init();(5)Infrared_Init();(6)Device_code=0x7789;(7)TFT_Init();(8)LED_Light();(9)LCD_Infor();(10)while(1)(11){Motor();(12)TCRT();(13)US();(14)_Code();(15)LCD_Display();(16)}}程序L4.1说明:L4.1(1):看门狗设置L4.1(2):系统时钟设置L4.1(3):系统初始化,设置IO口属性L4.1(4):初始化光电传感器L4.1(5):初始化超声波传感器L4.1(6):初始化红外模块L4.1(7):TFT控制IC型号7789L4.1(8):初始化LCD L4.1(9):LED点亮一次,如有现象,说明单片机初始化成功L4.1(10):液晶显示个人信息L4.1(11):循环执行程序L4.1(12):调用电机程序L4.1(13):光电传感器L4.1(14):超声波传感器L4.1(15):调用遥控器解码子程序L4.1(16):调用LCD显示程序4.2运动模块程序运动模块是运用PWM脉冲宽度调制对电机的转速进行控制。该部分程序L4.2如下:L4.2程序清单:ucharF_Rotation[8]={0xE2,0xE6,0xE4,0xEC,0xE8,0xF8,0xF0,0xF2};(1)ucharB_Rotation[8]={0xF2,0xF0,0xF8,0xE8,0xEC,0xE4,0xE6,0xE2};(2)voidMotor(){for(j=0;j<64*8;j++) (3){for(i=0;i<8;i++){MADAPORT=B_Rotation[i];(4) delay_ms(10);(5)}}for(j=0;j<64*8;j++) (6){for(i=0;i<8;i++){MADAPORT=F_Rotation[i];(7)delay_ms(10);(8)}}}程序L4.2说明:L4.2(1):正转表格L4.2(2):反转表格L4.2(3):步距角5.625/64减速比1/64,8拍,这个循环为反转一圈L4.2(4):B_Rotation为反转表格L4.2(5):延时10msL4.2(6):步距角5.625/64减速比1/64,8拍,这个循环为正转一圈L4.2(7):F_Rotation为正转表格L4.2(8):延时10ms4.3超声波模块程序本次设计选择US-0159模块作为超声波测距模块,该部分程序L4.3如下。L4.3程序清单:voidinit_timerA(void)(1){TACTL|=TASSEL_2+MC_2+TAIE+TACLR+ID_3;(2)TACCTL1|=CAP+CM_1+CCIS_0+SCS+CCIE;(3)}voidinit_IO(void)(4){P1DIR|=BIT1;(5)P1DIR&=~BIT2;(6)P1SEL|=BIT2;(7)P1OUT&=~BIT1;(8)}voidinit_clk(void)(9){uchari;BCSCTL1&=~XT2OFF;(10)BCSCTL2|=SELM_2+SELS;(11)do(12){IFG1=IFG1&(~OFIFG);(13)for(i=0;i<=0xff;i=i+1){ _NOP();(14)}}while((OFIFG&IFG1)!=0);(15)IFG1=IFG1&(~OFIFG);}程序L4.3说明:L4.3(1):定时器A初始化函数L4.3(2):SMCLK,8MHz,8分频,连续计数,中断允许,计数器清零L4.3(3):捕获模式,上升沿捕获(CM_2),CCI1A输入,同步捕获,中断允许L4.3(4):I/O口初始化函数L4.3(5):P1.1输出,普通I/OL4.3(6):P1.2输入L4.3(7):P1.2第二功能,捕获输入L4.3(8):开始低电平,控制驱动波形发生L4.3(9):时钟初始化函数L4.3(10):打开XT振荡器L4.3(11):MCLK8MandSMCLK8ML4.3(12):进入循环L4.3(13):清除振荡错误标志L4.3(14):延时等待L4.3(15):如果标志为1继续循环等待晶振起振4.4避障模块程序采用TCRT5000红外反射传感器作为避障模块,该部分程序L4.4如下。L4.4程序清单:voidInitial_com(void){ EA=1;(1) ES=1;(2)ET1=1;(3)TMOD=0x20;(4)PCON=0x00;(5)SCON=0x50;(6)TH1=0xfd;(7)TL1=0xfd; TR1=1;(8)}voidTCRT(){ Initial_com(); while(1) { if(key1==0) { delay(200); (9) if(key1==0) (10) { SBUF=0X01; delay(200); } } if(RI) { date=SBUF;(11) SBUF=date;(12) RI=0; } }}程序L4.4说明:L4.4(1):开总中断L4.4(2):允许串口中断L4.4(3):允许定时器T1中断L4.4(4):定时器T1,在方式2中断产生波特率L4.4(5):SMOD=0L4.4(6):方式1,由定时器控制L4.4(7):波特率设置为9600L4.4(8):开定时器T1运行控制位L4.4(9):消抖动L4.4(10):确认触发L4.4(11):单片机接受L4.4(12):单片机发送4.5无线通信模块程序无线通信模块是用红外传感器对清洁机器人的模式进行控制,在数码管上显示出来。该部分程序L4.5如下。L4.5程序清单:#defineRED_IN P1DIR&=~BIT3 (1)#defineRED_OUT P1DIR|=BIT3 (2)#defineRED_L P1OUT=P1OUT&~BIT3 (3)#defineRED_H P1OUT=P1OUT|BIT3(4)#defineRED_R (P1IN&BIT3) (5)voidRed_Code(){uchari,j,k=0;for(i=0;i<19;i++){delay_us(400); (6)if(RED_R)(7){ return;}}while(!RED_R);(8)for(i=0;i<5;i++)(9){delay_us(500);if(!RED_R) { return; }}while(RED_R);(10)for(i=0;i<4;i++)(11){for(j=0;j<8;j++)(12){ while(!RED_R);(13) while(RED_R);(14) { delay_us(100); k++; if(k>22)(15) { return; } } code_value>>=1;(16) if(k>=7) { code_value|=0x80;(17) } k=0;(18)}key_code[i]=code_value;(19)}Key_Icode();(20)Display_Key(KEY_VAL);(21)SOUNDON;(22)delay_ms(50);SOUNDOFF;(23)}程序L4.5说明:L4.5(1):设置输入,红外接收头接单片机PE3口L4.5(2):设置输出L4.5(3):置低电平L4.5(4):置高电平L4.5(5):读电平L4.5(6):延时400usL4.5(7):9ms内有高电平,则判断为干扰,退出处理程序L4.5(8):等待9ms低电平过去L4.5(9):是否连发码L4.5(10):等待4.5ms高电平过去L4.5(11):接收4个字节的数据L4.5(12):每个字节的数据8位L4.5(13):等待变高电平L4.5(14):计算高电平时间L4.5(15):高电平时间过长,则退出处理程序L4.5(16):接受一位数据L4.5(17):高电平时间大于0.56,则为数据1L4.5(18):计时清零L4.5(19):四个字节的数据L4.5(20):调用赋值函数L4.5(21):显示按键值L4.5(22):P62置低,蜂鸣器发声L4.5(23):P62置低,蜂鸣器发声4.6显示模块程序本次设计选择DMTFT-28型TFT彩色触摸屏作为显示模块,该部分程序L4.6如下。L4.6程序清单:voidData_Write_hl(unsignedcharData_High,unsignedcharData_Low)(1){CS_CLR;RS_SET;DataPort=Data_High;(2)LE_SET;(3)LE_CLR;(4)DataPort=Data_Low;(5)}voidClear_Screen(uintbackground_color)(6){unsignedinti,j;LCD_Set_Position(1,239,1,219); (7)for(i=0;i<=239;i=i+1){ for(j=0;j<=319;j=j+1) Data_Write_hl_U16(background_color);}}voidData_Write_hl_U16(uinty)(8){unchara,b;a=y>>8;b=y;Data_Write_hl(a,b);}voidPutGB2424(unshortm,unshortn,unchard[2],uintfront_color,uintbackground_color)(9){uinta,b,c;LCD_SetPosition(m,m+23,n,n+23);for(c=1;c<=65;c=c+1)(10){ if((code_GB_24[c].Index[0]==c[0])&&(codeGB_24[c].Index[]==c[])){ for(a=0;a<=71;i=i+1){ unsshortm=code_GB_24[k].Msk[i]; for(b=0;b<=7;b=b+1) { if((m&0x80)==0x80){ Data_Write_hl_U16(front_color); } else{ Data_Write_hl_U16(background_color); } m<<=1; } } }} } voidLCD_Ascii_PutChar(unshortm,unshortn,charc,uintfront_Color,uintbackground_Color)(11){uinta,b;LCD_SetPosition(m,m+7,n,n+15);(12) for(a=0;a<16;a=a+1){(13) uncharm=Font8x16[(c-0x20)*16+i];(14) for(b=0;b<=7;b=b+1)(15){ if((m&0x80)==0x80)(16){ Data_Write_hl_U16(front_Color);(17) } else{ Data_Write_hl_U16(background_Color);(18) } m<<=1;(19) } }}voidLCD_PutString_24(unshortm,unshortn,unchar*s,uintfront_Color,uintbackground_Color)(20){uncharl=0; while(*s!=0){ if(*s<=0x80) { LCD_Put_Char(m+l*8,n,*s,front_Color,background_Color); s=s+1;l=l+1; } else{ PutGB2424(m+l*12,n,(unsignedchar*)s,fColor,bColor); s+=2;l+=2; }}}voidLCD_Display(){CLR_Screen(Black_color);(21)LCD_PutString_24(10,30,"基于",Yellow,Black);(22)LCD_PutString_24((62,30,"msp430",Yellow,Black);(23)LCD_PutString_24((118,30,"的清洁机器人控制",Yellow,Black);LCD_PutString_24((10,60,"系统的研究与设计",Yellow,Black);LCD_PutString_24((150,100,"17通信二",Blue2,Black);delay_ms(300);LCD_PutString_24((150,130,"周海婷",Blue2,Black);LCD_PutString_24((150,160,"17030838",Blue2,Black);LCD_PutString_24((150,180,"指导老师:徐强",Blue2,Black);delay_ms(1000);CLR_Screen(Black);(24)LCD_PutString24(70,50,"步距角:",Blue2,Black);(25)LCD_PutString24(158,53,"5.625/64",Blue2,Black);LCD_PutString24(70,80,"模式:自动模式",Blue2,Black);LCD_PutString24(145,83,"1",Blue2,Black);LCD_PutString24(70,110,"剩余时间:",Blue2,Black);LCD_PutString24(180,113,"2min",Blue2,Black);LCD_PutString24(70,140,"避障:否",Blue2,Black);delay_ms(8000);}程序L4.6说明: L4.6(1):实现功能:写入数据输入参数:Data_High需要输入高8位的数据Data_Low需要输入低8位的数据L4.6(2):送低8位数据给573待锁存L4.6(3):锁存位L4.6(4):断开锁存,位选573的Q7~Q0仍保持L4.6(5):送高8位数据给TFTL4.6(6):实现功能:TFT清屏输入参数:bColor清屏所使用的背景色L4.6(7):320x240L4.6(8):实现功能:写数据(16位) 输入参数:n需要输入16bits数据L4.6(9):函数功能:显示汉字24x24输入参数:m为横坐标 n为纵坐标 c在屏幕上显示的字码 front_Color字符的颜色background_Color字符背景的颜色L4.6(10):64表示自建汉字库中的个数,循环查询内码L4.6(11):实现功能:将Ascii字符在屏幕上显示输入参数:m横坐标n纵坐标 c在屏幕上显示的字符 front_Color表示字符的颜色 background_Color表示字符背景的颜色L4.6(12):设置字符显示位置L4.6(13):循环写入16字节,一个字符为16字节L4.6(14):因为需要将Ascii库中的0~1f去掉,所以c的数值减去0x20,从而提取字符的第i个字节L4.6(15):循环写入一个8位的字节L4.6(16):判断最高位是否为1L4.6(17):当最高位是1时,把字符颜色写入L4.6(18):当最高位是0时,把背景颜色写入L4.6(19):将m左移1位L4.6(20):函数功能:显示字符串,同时显示中英文输入参数:m为字符的横坐标n为字符的纵坐标*s需要在屏幕上显示的字符串 front_Color字符的颜色background_Color字符背景的颜色L4.6(21):用背景色清屏L4.6(22):24x24大小汉字,字模软件隶书
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全国专业人事考试及答案
- 教育民生工程知识宣传
- 2025年体育老师的笔试题目及答案
- 2025年湖南事业单位工考试题及答案
- 2025年上海市肿瘤所笔试及答案
- 药物名册制度
- 数学小知识大学
- 护理进修学术成果汇报
- 2026年历史文化常识考试
- 2026年历史学教授职称评审知识竞赛试题库
- GB/T 9706.266-2025医用电气设备第2-66部分:助听器及助听器系统的基本安全和基本性能专用要求
- 2025年生态旅游度假区生态旅游度假村生态旅游商品开发项目可行性分析报告
- (一模)株洲市2026届高三年级教学质量统一检测地理试卷(含答案详解)
- 2025安徽省中煤三建国际公司机关工作人员内部竞聘31人笔试历年参考题库附带答案详解
- 医美医疗纠纷协议2025年
- 软笔书法课件教学
- 产品品质管理控制模板与实施手册
- 2025年工商管理硕士MBA联考综合能力真题及答案
- 洗煤厂陶瓷片施工方案
- 中国抑郁障碍防治指南(2025版)
- 私募基金风控培训
评论
0/150
提交评论