版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、沈阳师范大学本科毕业论文本科毕业论文(设计)(2015 届本科毕业生) 题 目: 基于NRF24L01的智能小车无线控制设计 学生姓名: 姜肇璘 学生学号: 11999048 学院名称: 软件学院 专业名称: 计算机科学与技术 指导老师: 李冶 二零一五年五月 【摘要】智能小车系统是有着一个集感知周围环境、自动蔽障、自动驾驶等功能的一个系统。它可以在人类无法进行工作的特殊环境下完成任务,所以在军事、航空、救援等领域有着重要的应用。而由于目前技术的限制,某些特定的场合下,机器智能尚不能完成某些任务,所以需要加以人的控制,这就涉及到了无线控制。本文既是以无线模块为核心。 本设计实现的功能是上位机与
2、以MSP430单片机为核心的智能小车进行实时无线通信并对其远程控制,同时可以将智能小车上的数据,如:速度、温度等信息反馈给上位机。在上位机控制模式下,通过控制上位机能控制小车的前进后退,左转右转,加速减速,显示小车当前的速度。【关键词】 NRF24L01, QT,串口通信,智能小车Intelligent carwireless controldesign based on NRF24L01【Abstract】Intelligent car system is a collection of perception surroundings, automatically escapes, inte
3、lligent functions such as automatic driving system. Because it can under special environment to work in the human cannot complete the task, so is very important in the field of military, aviation, rescue and other applications. Due to the limitation of current technology, certain situations, machine
4、 intelligence cannot finish some tasks, so people need to be controlled, this goes to the wireless control. This article is a wireless module as the core.This design implementation is the function of upper machine and with MSP430 single chip microcomputer as the core of the smart car for real-time w
5、ireless communication and remote control, at the same time can take the data on the smart car, such as speed, temperature and other information feedback to the upper machine. In PC control mode, by controlling the upper function to control the car forward backward, turn left turn right, speed.【Keywo
6、rds】NRF24L01,QT , Serial communication , Smart car , NRF24L01 目 录第一章 引言.- 1 - 1.1课题的背景和意义.- 1 - 1.2无线传输的发展与现状.- 1 -第二章 分析与整体设计.- 3 - 2.1总体方案设计.- 3 - 2.2需求功能.- 3 - 2.3系统可行性分析.- 3 - 2.4系统主要结构.- 4 - 2.5系统主要功能.- 5 -第三章 无线传输实现.- 6 - 3.1功能说明.- 6 - 3.2无线通信模块的选择.- 6 - 3.3 NRF24L01介绍.- 7 - 3.5异常情况分析.- 12 - 3
7、.6控制命令格式设计与说明.- 12 -第四章 上位机程序的设计与实现.- 18 - 4.1 功能说明. 18 - 4.2 小车控制软件程序与界面设计.- 18 -第五章 总结和展望.- 24 - 5.1本文总结.- 24 - 5.2本文展望.- 24 -后记.- 26 -参考文献.- 27 -III - -第1章 引言1.1课题的背景和意义目前,随着科技技术的进步、对自动化技术要求不断加深的环境下,智能车辆以及在智能车辆基础上开发出来的产品已成为一个重要的研究方向。移动机器人从无到有,数量不断增多,智能车辆作为移动机器人的一个重要分支也得到越来越多的关注。智能小车,是一个集环境感知、规划决策
8、,自动行驶等功能于一体的综合系统,它集中地运用了计算机、传感、信息、通信、导航及白动控制等技术,是典型的高新技术综合体。全世界许多国家都在进行智能微型车的相关研究,己经应用于各个领域,在探测和军事领域使用特别多。近年来,我国也进行了很多的研究工作,以此来满足不同用途的需要。世界各国开发、研制行星探测车系统己经有很多年的历史。世界上最早进行相关研究的国家是美国与前苏联。美国曾在1966-1968年间,向月球成功发射了两次无人巡游探测器。1997年,由美国研制的Sojourner号探测车登上了火星。它验证了小型火星车的性能,并完成了一系列技术试验。2004年1月,美国的“勇气号”和“机遇号”火星探
9、测车再度登陆火星。前苏联在1959-1976年间,总共成功发射了两个月球探测车。同时,随着计算机技术、电子技术和无线技术的快速发展,电子产品越来越呈现光机电一体化、智能化、小型化等趋势。同时人们需要系统变得越来越智能化。显然传统的控制观念是无法满足人们的需求,而智能控制与这些传统的控制有机的结合起来,提高整体的优势更好的满足人们的需求。随着人工智能技术、计算机技术、自动控制技术的迅速发展,智能控制必将迎来它的发展新时代。因此,遥控加智能的技术研究、应用都是很有意义而且有很高市场价值的。1.2无线传输的发展与现状伴随着时代的发展和科技的进步,无线通信技术也随之发生一定的改变,这不仅适应了时代发展
10、的需要,同时也符合了人们日益增长的对通信服务的需要,在信息化越来越普遍的时代,人与人之间的沟通也趋向于通信化,这在无形中提高了人们的生活质量。现代无线通信技术的发展历程主要包括以下几方面:1.年代初到年代初为无线通信技术发展的第一阶段,此时,无线通信技术主要应为了满足军用的需要,它主采用的技术存在一定局限性,因此,它的传输不仅受客观条件的制约,同时也没有达到最初的传输速率。2.年代到年代为通信技术的第二阶段,此时,通信设备器件已被应用于移动环境的专用系统中,并实现了从半导体器件技术的过度,这在无形中解决了通信技术中安装公用电话网的问题,同时实现了公用电话与移动电话的持续性。3.年代初到年代初为
11、通信技术的第三阶段,此时,不仅扩展了通信技术的频段,同时也制造出第一代的通信技术系统,并根据贝尔实验室所提出的蜂窝移动网理论,研制出新的实验系统。4.年代到年代为通信技术的第四阶,此时,在通信领域中,继第一代数字移动通信兴起后,出现了第二代的数字移动通信,这些都在无形中促进了各类电信系统的正常运行。5.年代后至今为通信技术的第五阶段,此时,第三代的移动通信技术已逐步兴起,这不仅满足了通信技术逐步发展的需要,同时也促使了移动通信与多媒体运转的结合,随着全球化标准的制定,无线通信技术仍有待于实现多样化与创新化。1.2.1现代无线通信技术的种类 随着无线通信技术的逐步深化与改革,现代无线通信技术面临
12、着新的发展现状,为了符合时代发展的需要,无线通信技术的种类在现代也有了改进和提升。现代无线通信技术的种类主要包括以下几方面: 根据传输的距离来分,无线通信技术主要分为以下四种技术,无线个域网、无线局域网、无线城预网以及无线广域网,其中、是短距离的无线通信技术接入的主要代表,而众所周知的、是长距离的无线通信技术接入技术的主要代表。根据无线通信技术的移动性,可以将移动接入分为固定接入与移动接入,其中,移动无线通信技术的接入主要包括、,而固定无线通信技术的接入主要包括、,并且在宽带上可分为宽带的无线接入与窄带的无线接入。1.2.2无线通信的意义无线通信技术在现代社会具有重要地位,发挥着重要作用。在经
13、济上,无线通信技术不仅可以完成数据信息的发送和接受,还可以对信息进行整合处理,分析预测,方便人们通过科学的、准确的数据做出正确决策;在科技领域,无线通信技术的不断发展和创新,提高了国家的科学技术水平,有利于增强国家在国际上的综合竞争力;在文化领域,无线通信技术促进文化传播,提高了人们的文化修养和综合素质;在生活领域,方便人们的工作、生活和学习,使人们的生活方式更加便捷,更加现代化、信息化等等由此说明无线通信在现代社会中有着极其重要的意义。第二章 分析与整体设计2.1总体方案设计 本设计的核心为QT程序设计,目的是为了实现上位机与以MSP430单片机为核心的智能小车进行实时无线通信并对其远程控制
14、,同时可以将智能小车上的数据,如:速度等信息反馈给上位机。设计需要MSP430单片机、NRF24L01无线通信模块、QT5.4来实现本次设计。整个设计需要单片机程序设计、无线通信模块驱动、QT程序界面设计、QT串口通信程序设计等步骤来完成。2.2需求功能 整个无线控制智能小车系统想要实现的功能主要分为手动控制模式与自动控制模式两大类,具体如下描述:1. 自动控制模式:小车在自动前进,并能通过超声波测距等模块避开障碍物2.手动控制功能:在上位机上通过设计好的软件对智能小车进行远程控制,包括:前进、后退、左右转弯、加速减速等模式。3.智能小车的速度等信息可以时时的显示在上位机的控制软件界面上。4无
15、线控制:通过软件设计程序来完成对智能小车的远程控制。2.3系统可行性分析 可行性分析是从多种种角度分析智能小车预计的目标是否能够实现而成立的,因此这是十分有必要的,这次设计的智能小车控制系统的可行性分析分为经济可行性分析、技术可行性分析、和运行可行性分析。2.3.1经济可行性分析 随着科技的发展和技术的改良,现在市场上电子产品的价格已经越来越低,本设计中使用到的各个模块性价比极高。因此经济上设计是可行的。2.3.2技术可行性分析1.QT界面:QT是一个良好的跨平台的创建C+图形用户界面的应用程序,它可以提供给开发者简历图形用户界面所需要的所有功能,易扩展,并允许组件编程,而且它具有良好的可移植
16、性。同时C+编程在大学期间有过学习课程,所以界面相关的程序设计在技术上是可行的。2.基于MSP430的单片机控制:MSP430单片机具有体积小,功耗低,易于产品化,面向控制,抗干扰能力强,适用温度范围宽。3.NRF24L01无线接收芯片:nRF24L01是由NORDIC生产的工作2.4GHz2.5GHz的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。输出功率频道选择和协议的设置可以通过SPI 接口进行设置。几乎可以连接到各种单片机芯片,并完成无线数据传送工作。2.3.3运行可行性分析从单片机的角
17、度分析:在MSP430单片机上有供NRF24L01模块使用的对应接口,所以NRF24L01在驱动和配置之后可以在MSP430单片机上使用。从上位机的角度分析:QT软件可以在Windows环境下运行,且在PC机上,NRF24L01模块可以接上一个串口转USB口连接到PC 机的USB接口上。使用QT制作的相应程序就可以使用NRF24L01无线传输数模块。从信息的发送与接收延时的角度分析:PC机到串口再到NRF24L01无线传输模块的延时、PC端无线模块到单片机端无线模块的延时、还有单片机的响应时间都是一段极其短的时间,所以当在上位机端发送控制小车的信号时,小车可以在特别短的时间内响应发送的动作,即
18、响应的时间在允许的范围内。 通过以上的各项可行性分析,本系统通过NRF24L01无线传输模块为设计核心,运用QT Creator,是可以达到预期的设计目标的。2.4系统主要结构智能小车控制结构图如图2-1所示:图2-1智能小车控制结构框图智能小车控制分为自动控制模式和手动控制模式。1.自动控制模式:是小车在自动模式下通过单片机的编写55的程序自主运行来支配避障传感器避开障碍物,通过测距传感器来检测距离后侧物体的距离,记录小车行走的路程长度,检测小车运行时的速度,并显示在液晶上。2.手动控制模式:手动控制的核心是NRF24L01无线通信模块,当切换到手动控制模式之后,小车的一切动作都可以通过用上
19、位机进行远程无线控制,如前进、后退等动作。与此同时,小车的上的速度等信息都可以在上位机上进行查看。无线通信系统如图2-2所示:图2-2无线通信系统示意图2.5系统主要功能 本设计要实现的功能是为了实现上位机与以MSP430单片机为核心的智能小车进行实时无线通信并对其远程控制,同时可以将智能小车上的数据,如:速度等信息反馈给上位机。上位机控制模式下,能控制小车的前进后退,左转右转,加速减速,显示测距的距离,显示所有行驶的里程数,显示小车的时时速度。 所以要想完成预期的目标,可以确定的方案是:对已经可以自动运行的智能小车安装NRF24L01无线通信模块并对其驱动。设置无线模块的数据位、波特率等信息
20、。QT界面和程序的编写与设计。运行程序,进行对小车的无线控制。第三章 无线传输实现3.1 功能说明上位机通过无线传输模块发送一定命令格式的数据来控制智能小车的各种动作,并接收小车发送的信息。3.2 无线通信模块的选择在市面上的无线通信模块的种类有很多,型号也多种多样,其中比较常见的有NRF905、NRF2401A、NRF24L01。3.2.1热门无线模块简介1.nRF905 nRF905是工作在433MHz、868MHz和915MHz频段的GFSK调制模式的无线数传芯片,最高发射功率可达+10dBm,接收灵敏度为-100dBm,支持512个通讯频率。使用ShockBurst传输模式,数据在空中
21、的传输速率为50kbps。使用SPI接口与MCU完成数据通讯与通讯控制等功能。2.nRF2401A nRF2401A为nRF2401的改进型号(nRF2401AG为无铅工艺型号)。nRF2401A工作在2.4GHz的国际通用ISM免申请频段GFSK调制的无线数传芯片。最高发射功率0dBm,接收灵敏度-90dBm,支持124个接收频率与126个发射频率。使用ShockBurst传输模式,具备两个独立的数据接收通道。支持250kbps和1Mbps的空中数据速率。使用SPI接口与MCU完成数据通讯与通讯控制等功能。3.nRF24L01 nRF24L01是工作在2.4GHz的国际通用ISM免申请频段G
22、FSK调制的无线数传芯片。最高发射功率0dBm,接收灵敏度为-85dBm,支持125个通讯频率。使用增强型的EnhancedShockBurst传输模式,支持6个数据通道(共用FIFO)。支持1Mbps和2Mbps的空中数据传输速率。使用SPI接口与MCU完成数据通讯与通讯控制等功能。兼容性: nRF2401A、nRF24L01和nRF24L01+之间是可以完成相互通讯的。前提是,它们必须在配置的过程中使用相同的通讯频率、空中传输速率、地址长度、地址信息、数据长度和CRC校验方式。nRF905因为工作频率与nRF2401A、nRF24L01和nRF24L01+的工作频率不同,所以nRF905不
23、能与其它任何一种2.4GHz无线芯片之间完成通讯。3.2.2 热门模块的差异 nRF2401A与nRF24L01和nRF24L01+之间虽然可以完成互相通讯,但是它们之间存在一些重要差异。 nRF2401A使用9个SPI通讯与工作方式控制引脚(DATA、DOUT2、CLK1、CLK2、DR1、DR2、CE、CS、PWR_UP)。工作方式配置与发送/接收缓存全部采用数据包的方式进行写入与读出操作,2个独立的接收通道采用不同的数据缓存和SPI引脚,使用不同的接收完成标志输出引脚,极大的简化了器件的操作和产品开发时间。一次最多可以传输长度为32Byte的数据包(注意这个32Byte的数据中同时包含了
24、地址数据和CRC校验码的数据长度)。 nRF24L01+使用6个SPI通讯与状态指示输出引脚(CE、CSN、SCK、MOSI、MISO、IRQ)。工作方式配置与发送/接收缓存全部采用写入控制字与写入寄存器地址方式进行操作(与nRF2401A可通过CE、CS、PWR_UP引脚快速完成状态切换是不同的)。6个数据接收通道(共用32Byte的RX_FIFO,在相应寄存器中完成通道编号指示工作),支持自动应答、自动重发和重发超限等功能。一次最多可以传输长度为32Byte的数据包(该长度不包含地址数据和CRC校验码的数据长度)。 nRF905使用9个SPI通讯与工作状态控制/指示引脚(TRX_CE、PW
25、R_UP、CD、AM、DR、MISO、MOSI、SCK、CSN)。工作方式配置与发送/接收缓存使用如些控制字与数据包的方式进行写入与读取操作。一次最多可以传输长度为32Byte的数据包(该长度不包含地址数据和CRC校验码的数据长度) 本设计就性价比而选择无线通信模块,所以经过反复比较最终决定使用NRF24L01无线通信模块。3.3 NRF24L01介绍:NRF24L01无线通信模块如图3-1所示:图3-1 NRF24L01无线通信模块NRF24L01无线通信模块共有八个引脚,而且在MSP430单片机上有供该模块工作的对应接口,所以该模块可以直接插在MSP430上使用。但是由于智能小车其他的功能
26、占用了无线模块需要的几个引脚,所以就需要对单片机上的us-art进行驱动后再使用NRF24L01无线通信模块。NRF24L01无线通信模块原理图如下图3-2所示: 图3-2 NRF24L01原理图3.3.1 NRF24L01的应用领域1.无线鼠标,键盘,游戏机操纵杆2.无线数据通讯3.无线门禁4.安防系统5.遥控装置6.遥感探测7.智能运动设备8.工业传感器9.玩具3.3.2 NRF24L01特性: 2.4GHz全球开放ISM频段,最大0dBm发射功率,免许可证使用支持六路通道的数据接收 低工作电压:1.93.6V低电压工作 高速率:2Mbps,由于空中传输时间很短,极大的降低了无线传输中的碰
27、撞现象(软件设置1Mbps或者2Mbps的空中传输速率) 多频点:125频点,满足多点通信和跳频通信需要 超小型:内置2.4GHz天线,体积小巧,15x29mm(包括天线) 低功耗:当工作在应答模式通信时,快速的空中传输及启动时间,极大的降低了电流消耗。 低应用成本:NRF24L01集成了所有与RF协议相关的高速信号处理部分,比如:自动重发丢失数据包和自动产生应答信号等,NRF24L01的SPI接口可以利用单片机的硬件SPI口连接或用单片机I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口,便于使用低成本单片机。 便于开发:由于链路层完全集成在模块上,非常便于开发。 自动重发功能,自
28、动检测和重发丢失的数据包,重发时间及重发次数可软件控制自动存储未收到应答信号的数据包自动应答功能,在收到有效数据后,模块自动发送应答信号,无须另行编程载波检测 固定频率检测 内置硬件CRC检错和点对多点通信地址控制 数据包传输错误计数器及载波检测功能可用于跳频设置 可同时设置六路接收通道地址 可有选择性的打开接收通道 标准插针Dip2.54MM间距接口,便于嵌入式应用3.3.3 NRF24L01的主要工作模式接收模式,发送模式,待机模式,掉电模式。 3.4 NRF24L01无线模块的配置 为了让两个NRF24L01无线模块能正常的工作。首先需要对无线模块进行配置。本次设计中NRF24L01无线
29、模块的配置环境如下:Windows操作系统;SSCOM3.3(串口调试助手);USB转TTL模块(图3-3);两个无线模块,其中一个无线模块接不带USB接口的无线驱动模块(图3-4)后用杜邦线接到单片机上,杜邦线连接到单片机的P3.4、P3.5口上。另一个无线模块接带USB接口的无线驱动模块(图3-5)接到PC机上。图3-3 USB转TTL模块图3-4不带USB接口的无线驱动模块图3-5 带USB接口的无线驱动模块无线模块的配置过程描述如下: 带USB接口的模块直接插电脑进行配置,不带USB接口的模块得借助USB转串口进行配置;1.USB转串口模块以及带USB的无线驱动模块需要安装CH341驱
30、动;2.波特率默认设置为9600(带USB与不带USB的),波特率的选择范围为:2400-115200;3.配置时,必须在断电的情况下,插上跳线帽,再从新上电;(不能上着电的情况下,插跳线帽!)4.配置完成之后,必须得把跳线帽拔掉;(注意:必须得在断电的情况下拔,然后,再重新上电)5.配置的格式为10个字节:0X55 + 数据长度 + 波特率 + 频道 + 地址1 + 地址2 + 地址3 + 地址4 + 地址5 + 0XAA配置时要注意:1.必须插上跳线帽进行配置,配置完之后,必须(如图3-6所示)拔掉跳线帽才能正常使用;(配置时,在上电前就得插上跳线帽;当然,正常使用时也得在断电的情况下,拔
31、跳线帽,再重新上电)图3-6驱动模块上的跳线帽2.串口调试助手发送数据的格式为:十六进制(即为“HEX”格式);在发送栏输入:55 06 00 78 01 02 03 04 01 aa其中:首位和末位55和aa为固定配置字节,不可以更改;第二位06代表数据长度(范围:0x01-0x20即1-32);第三位00代表波特率:00:9600 01:14400 02:19200 03:3840004:56000 05:57600 06:115200 07:2400 08:4800第四位78代表频道(范围:0x01-0x78即1-120)第五位至第九位五个字节构成地址,要把两个模块的地址配制成一样。点击
32、发送后得到下图的结果如图3-7所示:图3-7配置程序发送和接收结果3. USB转TTL模块的TX,RX与NRF24L01驱动模块(无USB的)的TX,RX要交叉相连,即一方的TX与另外一方的RX相连,然后,一方的RX与另外一方的TX相连。设计需要两个无线模块进行通信,一个位于单片机端,一个位于上位机端。在上位机端的连接方式,如图3-8所示:图3-8上位机端的连接方法在单片机端的连接方式,如图4-10所示:图3-9 单片机端连接方法4.两个模块的数据长度,频道,地址得设置成一样,否则工作不正常:数据长度选择范围:0x01-0x20,即1-32个字节;频道的选择范围为:0X01-0X78,即1-1
33、20;地址由5个字节构成:地址1、2、3、4、5 取值范围是 0x00-0xff ,这5个字节必须得设置一样;5.在同一个实验室中,为了不互相影响,得把频道设置成不一样,或者把地址设置成不一样,否则会互相干扰;6.波特的选择,从小到大分别为:2400(0X07),4800(0X08), 9600(0X00), 14400(0X01), 19200(0X02), 38400(0X03), 56000(0X04), 57600(0X05),115200(0X06);7.数据的长度得选择适中,串口调试助手(单片机)的发送频率也得选择适中;需要注意这两个两个模块的数据长度,频道,地址得设置成一样,否则
34、工作不正常。3.5 异常情况分析:1.配合NRF24L01+无线模块正常使用时,跳线帽忘记拔掉;2.两个模块,配置的参数不匹配,如数据长度,频道,地址;3.电源不纯,有干扰波,高频电路对电源的要求很高;3.6 控制命令格式设计与说明无线传输模块的使用需要对其编程,编程需要使用到的软件是:IAR Embedded Workbench IDE.IAR Embedded Workbench for AR是IAR Systems公司为ARM微处理器开发的一个集成开发环境。比较其他的ARM开发环境,IAR EWARM具有入门容易、使用方便和代码紧凑等特点。 嵌入式IAR Embedded Workben
35、ch适用于大量8位、16位以及32位的微处理器和微控制器,使用户在开发新的项目时也能在所熟悉的开发环境中进行。它为用户提供一个易学和具有最大量代码继承能力的开发环境,以及对大多数和特殊目标的支持。3.6.1 命令格式设计配置完成NRF24L01无线通信模块后,为了能让上位机与单片机能够实现信息的交换,需要对无线传输信息命令格式进行设计。1.需要控制小车的动作有:前进,后退,左转,右转,加速,减速,开始,停止,自动模式,手动模式。在无线模块配置时设置的是发送和接受6位的字符串,所以在设计无线传输命令格式时要使用6位的字符串。其中*是对齐位,因为在无线传输信息的发送和接收中会出现数据的丢失或串行等
36、,所以设置数据的对齐位,检验接收的数据是否完整。所以单片机接到的以*开头的字符串才是合法的。上位机向单片机发送数据的命令格式如下表3-1:表3-1 上位机向单片机发送数据的命令格式上位机向单片机发送的数据命令格式前进*23121后退*23122左转*23123右转*23124加速*23125减速*23126开始*23127停止*23128自动模式*13125手动模式*23128单片机接收信息部分关键代码如下:while t = t + 1; if (t99) t=0; fsl(t); if (h=6) if(ml0=* if(ml5=1) wholego(); else if(ml5=2) w
37、holeback(); else if(ml5=3) turnleft() ; else if(ml5=4) turnright(); else if(ml5=5) wholeadd(); else if(ml5=6) wholesub(); else if(ml5=7) wholestart(); else if(ml5=8) wholestop(); / else if(ml5=9) /sudu /else if (ml4=1&ml5=0) /lc = read_Lc(); / else if(ml4=1&ml5=1) /s=(int)float_range; else fsml(erro
38、r!);在以上代码中mlX:字符串的第X位。当单片机接收到上位机发送的信息后,对接收到的字符串进行判断,首位是否是*,是*则程序继续执行,不是*则返回error!。接下来判断第5位是1 2 3 4 5 6 7 8 9中的哪一个,若没有则返回error!,是其中的数字则执行数字对应的函数,然后小车执行对应的动作。2.需要小车向上位机发送的数据有:小车的速度值,小车的里程。如下表:表3-2单片机向上位机发送的数据单片机向上位机发送的数据命令格式小车的速度值s小车的里程实现将单片机上的信息发送给上位机,也需要上述的程序来完成,单片机发送部分关键代码如下:void UART1_TX(unsigned
39、char Data) while (!(IFG1 & UTXIFG0); TXBUF0 =Data; void fsl(double x )unsigned char stl6 = L,:; int j; int sw,gw,xs,ls; ls= (int)(x*10); sw = ls/100; gw = (ls - sw*100)/10; xs = ls % 10; stl2 = sw + 0; stl3 = gw + 0; stl4 = .; stl5 = xs + 0; for (j=0;j5;j+) TXBUF0 = stlj; while (!(IFG1 & UTXIFG0); T
40、XBUF0 = n; delay(); /P2OUT = 0XFF; void fslsd(double x ,char c)unsigned char stl6 ; int j; unsigned char w; unsigned long int ls; ls= (unsigned long int)(x+0.5); w=ls%10; ls=ls/10; stl4 = w + 0; w=ls%10; ls=ls/10; stl3 = w + 0; w=ls%10; ls=ls/10; stl2 = w + 0; w=ls%10; ls=ls/10; stl1 = w + 0; w=ls%1
41、0; ls=ls/10; stl0 = w + 0; stl5 = c; ME1 |= UTXE0 ; /使能单片机发送 ME2 &= URXE1 ; delay(); for (j=0;j=5;j+) TXBUF0 = stlj; while (!(IFG1 & UTXIFG0); /TXBUF0 = n; delay(); /P2OUT = 0XFF; delay(); ME2 |= URXE1 ; /使能单片机发送 ME1 &= UTXE0 ; 第4章 上位机程序的设计与实现4.1 功能说明上位机通过设计好的软件来实现对智能小车的控制,控制小车的动作有:前进、后退、左转、右转、加速、减速
42、、自动控制与手动控制。单片机将小车的速度发送给上位机。上位机控制小车流程图如图4-1所示: 图4-1上位机控制小车流程图4.2 小车控制软件程序与界面设计上位机是通过小车控制软件来对小车进行控制,而控制软件由底层的代码和表层的操作界面组成。4.2.1 Qt平台的简介Qt是一个1991年由奇趣科技开发的跨平台C+图形用户界面应用程序开发框架。它可以开发GUI程式,同时也可用于开发非GUI程式,比如控制台工具和服1的02编.3102.3.0程思想,并且它支持真正的组件编程。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc)以及一些宏
43、,易于扩展,允许组件编程。它可以提供给开发者简历图形用户界面所需要的所有功能,易扩展,并允许组件编程,而且它具有良好的可移植性。基本上,Qt同X Window上的Motif,Openwin,GTK等图形界面库和Windows平台上的 MFC,OWL,VCL,ATL 是同类型的东西。Qt使用”一次编写,随处编译”的方式为开发跨平台的图形用户界面应用程序提供了一个完整的C+应用程序开发框架。Qt云逊编程开发人员使用应用程序的单一源码树来构建可以运行在不同平台下的应用的不同版本。4.2.2 QT的特点 优良的跨平台性 面向对象 丰富的API QT包括400个以上的C+类,同时不断扩展 支持2D/3d
44、图形渲染,支持OpenGL; XML支持; 开放源码4.2.3 QT串口相关类的说明 在Qt5.4中串口通信并没有特定的串口控制类,现在普遍使用的是第三方写的qextserialport类。所以当需要使用QT的串口通信相关功能的时候,就需要使用qextserialport类。 在windows下qextserialport类只需要使用其中的6个文件:qextserialbase.cpp和qextserialbase.h,qextserialport.cpp和qextserialport.h,win_qextserialport.cpp和win_qextserialport.其中qextseri
45、alenumerator.cpp及qextserialenumerator.h文件中定 义的QextSerialEnumerator类是用来获取平台上可用的串口信息的。qextserialbase.cpp和qextserialbase.h文件定义了一个QextSerialBase 类,win_qextserialport.cpp和win_qextserialport.h文件定义了一个Win_QextSerialPort 类,posix_qextserialport.cpp和posix_qextserialport.h文件定义了一个 Posix_QextSerialPort类,qextseria
46、lport.cpp和qextserialport.h文件定义了一个 QextSerialPort类。这个QextSerialPort类就是我们上面所说的那个,它是所有这些类的子类,是最高的抽象,它屏蔽了平台特征, 使得在任何平台上都可以使用它。下载后直接将其解压到工程文件夹内即可。如图4-2所示:图4-2工程文件夹内文件 在Qt Creator中左侧的文件列表上,鼠标右击工程文件夹,在弹出的菜单中选择Add Existing Files,添加已存在的文件添加好类文件之后的文件列表如图4-3所示:图4-3添加完成后的文件列表4.2.4 QT无线传输程序设计#include widget.h#in
47、clude int main(int argc, char *argv) QApplication a(argc, argv); Widget w; w.show(); w.setWindowTitle(小车控制程序); return a.exec();以上代码的功能是更改程序窗口显示的名字。#include widget.h#include ui_widget.hWidget:Widget(QWidget *parent) : QWidget(parent), ui(new Ui:Widget) ui-setupUi(this); myCom = newWin_QextSerialPort(COM3,QextSerialBase:EventDriven); /定义串口对象,指定串口名和查询模式,使用事件驱动EventDriven myCom -open(QIODevice:ReadWrite); /以读写方式打开串口 myCom-setBaudRate(BAUD9600); /波特率设置,设置为9600myCom-setDataBits(DATA_8); /数据位设置,设置为8位数据位myCo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广播稿400字左右(35篇)
- 高中技术《技术与设计2》模块测试题 一
- 课外书的心得体会范文
- 幼儿园主题方案简单
- 风险合规部工作总结
- 销售培训心得(35篇)
- 居间代理房屋合同(3篇)
- 《技术的未来》教学设计(两篇)
- 苏教版 高中技术《技术与设计1》教案合集
- 26.1 锐角三角函数 同步练习
- 期中测试卷(1-4单元)(试题)-2024-2025学年人教版数学六年级上册
- 前程无忧行测笔试题库
- 中华民族发展史智慧树知到期末考试答案章节答案2024年云南大学
- 合唱比赛评分表及评分标准
- 关于高中英语写作教学的问卷设计(学生卷)
- VFA的测定方法及标准曲线
- 危险品安全数据清册氯氰菊脂
- 施工现场挖断电缆、光缆事故应急抢修方案(纯干货版)
- 石灰石粉仓安装方案
- 松下电器(中国)焊接学校——焊接技术
- 《肺动脉高压护理》PPT课件.ppt
评论
0/150
提交评论