版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于蓝牙的智能小车控制系统设计目录TOC\o"1-3"\h\u25352第一章绪论 摘要:本文设计了一种以STC89C52单片机为控制核心的无线通信控制模块,详细说明了该系统的硬件设计和软件设计,并且完成实物的制作与调试。硬件部分采用模块化设计,主要包括上位机与下位机之间的蓝牙通信控制电路,单片机与驱动模块的连接电路,蓝牙通信模块与单片机之间的连接电路以及驱动模块和电机之间的连接电路。软件部分同样采用模块化设计,分别对主程序模块和子程序模块进行设计。该通信控制系统中上位机通过手机APP操作界面控制,通过蓝牙通信控制模块形成与智能小车的联系,手机APP操作界面分别定义前进,后退,左转,右转功能。通过操纵APP界面,将规定的动作信号转换成数字信号,并通过蓝牙发送模块发送,蓝牙接收模块接收到相应信号后,智能小车通过I/O口电平识别对应的动作。本设计的智能小车具有可靠性强,性价比高等优点,软件部分具有通信方法简便的优点。 关键词:智能小车,STC89C52,蓝牙第一章绪论1.1背景及研究意义随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。遥控小车起源于美国,由于政府对无线遥控小车研发的资助以及相关资助的推动作用,日本、美国、德国等工业大国在遥控小车技术上占据着明显优势。我国的无线遥控小车研究工作始于20世纪中后期,在国家的863、973等技术发展计划的重点支持下,国内已大范围地进行无线遥控小车的研究。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究,但是与国际先进还存在一定的差距。可见其研究意义很大。本设计就是在这样的背景下提出的。设计的智能小车能够实现无线遥控,串口通讯,循迹,避障碍等功能。无线遥控实现方法包括蓝牙、红外、射频几种,其中蓝牙技术具有一定优势,目前在信息家电方面应用正在铺设。各种家电共用遥控,并可组网与公众互联网相接,共享有用信息。目前蓝牙技术实现无线遥控的短板在于传输距离短和芯片价格高方面。但随着科技发展,这些问题正在逐步得以解决。无线遥控机器人有着广阔的应用前景。智能小车已经在许多领域得到了应用。在科学探索中,智能小车可以代替人工操作,可以进行更精确的测量和计算。在家庭中,智能小车可以用来控制家用电器[2],控制房间温度[3]等。智能小车作为新时代的产物,与我们的生活息息相关。例如快递机器人[4]:智能机器人作为自动化装备和先进制造技术的代表,涉及许多领域学科的应用知识。将单片机技术和智能快递机器人控制系统关联在一起,一方面能够优化控制系统性能,提高智能快递机器人应用过程的平稳性,另一方面对加快机器人研究速度也有着积极作用。在工程施工中,智能小车可以对高速进行自动巡检[5],进行路面质量检测和损伤分析检测。在工作中,人工智能小车可以用于人们不能工作的地方,代替人们完成复杂和危险的工作,比如超声波测距[6]、高空作业[7]等等。1.2智能小车的现状及发展在国外,美国成功开发出世界上第一台自动引导车辆系统,这标志着智能小车研究时代的开端,它作为智能小车最明显的标志是无人驾驶。1974年瑞典的Volvo公司发明了AGVS,它具备两个特点,其一是VGVS可以装在轿车车体上,其二是可以组合成汽车装配线。VGVS的应用将来可以取代像拖车、叉车等这样的传统运输工具。1985年德国-高校发明了多智能原型车辆,它具备了通过车辆视觉系统来调!整车辆在运行过程中的横向和纵向运动的特征的能力,同时也具备在高速公路上高速行驶的能力,行驶速度能达到100Km/h[9]。日本最早在1996年就开展了对智能车的研究,并成立了专门的协会,该协会被命名为高速公路先进巡航辅助驾驶研究协会,任务主要用于研究车辆的自动导航系统[10]。截止到1988年,日本已经有多达20家厂家致力于智能车的研究。最近日本的三菱公司和尼桑公司也分别发布了他们在智能车方面的成果,这些成果主要是防撞设备,还声称汽车前方防撞技术和车道偏离技术也有可能在2年内解决[11,12]。在国内,各高校也纷纷投入到针对智能车辆的研究,最早开展研究的当属清华大学的汽车研究所,它对智能车的研究涵盖了主动避障、车载微机、汽车导航等多个领域。吉林工业大学早在30年前就开始研究智能小车,并且成功研发了图像识别自动引导小车,该车辆系统是一种新型的自动引导系统,在我国起到了带动引领作用[13]。中国一汽集团和国防科技大学合作研制成功CITAVT型自主导航车,该团队持续研发该智能导航车,截止目前已经发展到了第四代,该智能车同时具备高速行驶和超车的能力,经测试该智能车在公路自主行驶车速高达75lmn/h,该智能导航车的关键技术性能指标已经达到世界先进智能车水平[14]。沈阳新松机器人成功开发出了智能机器人“亮亮”,该智能机器人具多种功能,例如具备教育、娱乐等。该机器人身高0.8米,体重25公斤,充电一次能连续工作数小时。该智能机器人不仅能自动行走还具备智能躲避障碍物的功能[15]。“亮亮”可通过接收语音指令做出相应的反馈,且具有联网功能。人们可以通过该智能机器人下载新闻、天气预报等,这给智能车辆的研究提供了借鉴。当前随着计算机技术的发展,我国对智能小车的研究已经展现出新的特点。第一,在智能车的硬件结构方面,通用芯片已逐渐取代了传统的芯片。第二,在智能车的控制系统方面,基于网络传输信号控制方式已经慢慢取代传统的单机式控制,且范围在逐渐增加,这样能够大大提高数据的传输速度。随着智能小车比赛的开展,智能小车的研究也引起越来越多人关注。得益于飞思卡尔半导体公司的资助,我国全国范围内的智能小车竞赛于2006年成功举办。该竞赛被命名为“飞思卡尔”智能车竞赛。该赛事的主办方为教育部高等学校自动化专业教学指导委员会,截止目前参与该赛事的院校已多达50多所,代表队有100多支。1.3课题的设计目的通过本课题的设计,了解无线通信技术的基本原理,特别是掌握关于蓝牙模块的使用和调试方法。同时对于大学四年所学习到的专业知识进行系统的回顾,提升软件编程的能力和绘制硬件电路图的能力。学会将所学到的理论知识应用于生产实践中,做到学以致用,同时为毕业后从事机电工作奠定基础。1.4本文工作内容1.使用USB接口进行PC机与单片机的串行通信。2.使用BT05蓝牙模块实现无线通信模块与单片机的数据传输。3.通过对蓝牙模块进行配置,实现上位机和下位机之间的无线数据传输。4.手机App分别定义前进,后退,左转,右转功能。通过操纵手机App,上位机将相应动作信号转换成数字信号,并通过蓝牙发送模块发送,蓝牙模块接收到相应信号后,小车能够进行前进,后退,左转,右转的动作。第二章总体方案设计2.1系统总体方案概述本课题主要采用52单片机,无线收发模块,以及外围元器件组成。实现动作信号转换成数字信号,以及数字信号的发射和接收功能。在手机APP界面分别定义前进,后退,左转,右转功能。通过操作手机App,将相应动作信号转换成数字信号,并通过无线发送模块发送,接收模块接收到相应信号后,小车实现各种动作。2.2设计方案选择本设计需要搭建一个稳定的无线通信控制模块,以下分别对无线通信方式,微控制器,无线收发模块和串行通信方式四个方面进行比较,选出合适的设计方案。2.2.1无线通信方式的比较和选择现在常用的无线通信技术主要有:蓝牙(Bluetooth),红外数据传输(IrDA),无线宽带(Wi-Fi)等等[16]。蓝牙:蓝牙技术能够实线短距离无线通讯,它的通讯介质为2.4~2.48GHz的电磁波。蓝牙技术最大的特点就是无线传输[17],用电磁波传递信息,代替了传统的有线传输。蓝牙技术能够有效地避开干扰信号,与其他通信技术相比,抗干扰能力较强。所以蓝牙技术广泛用于手机,笔记本电脑,蓝牙耳机等领域。IrDA:红外技术是比较早的一种无线通信技术。红外技术的通讯介质为850nm的红外光[18],相比其他无线通信技术,它的传输的速度较高。而且随着科技的发展,红外光的接收角度和接收范围都有所提高。红外技术开发比较早,红外设备体积小,功率低,使用比较方便。但是红外技术也有一些缺点,例如:红外技术是采用点对点通讯,也就是只能实现一对一数据传输,不能实现一对多数据传输,这就限制了它的使用范围。还有,为保证接收可靠性。红外技术要求发送和接收端的位置固定,传输胡过程中发送和接收端不能相对移动,而且中间不能有障碍物阻挡。红外设备长时间使用会降低它的使用寿命。这就要求定期更换红外装置,所以红外技术的使用成本较高。Wi-Fi:Wi-Fi技术也是一种比较流行的无线传输技术。它的通讯协议是基于802.11协议。Wi-Fi信号覆盖范围广,传输速度快。而且无须布线[19]。因此非常适用于家用和移动办公。但是Wi-Fi技术也有一些缺点,例如:目前的Wi-Fi技术离不开PC端,并且尚无法像蓝牙那样利用模块或芯片实现。综合分析,本次设计使用蓝牙模块作为无线收发模块,它是蓝牙中的一种,具有体积小,功耗少的优点。相对于红外技术,蓝牙技术有可一配多、频段全球通用、可自动传输以及安全性/抗干扰能力强等特点。更加适合智能小车对于可移动遥控器的要求,对于遥控器的终端要求较低。2.2.2微控制器的比较和选择由于本设计的上位机和下位机需要完成数据的存储,处理,发送,接收等过程,所以需要一个稳定的控制器。单片机的体积小,使用非常方便,而且功能齐全,具有微机系统的特性,可以很好的作为指挥决策中心,实现智能化的控制[20]。本次设计也采用了单片机作为控制器。但是市面上的单片机具有不同的类型,所以需要进行分析和比较。AT89CXX系列单片机[21]:AT89CXX系列单片机:该系列单片机是由美国ATMEL公司生产其内部资源主要包括8位中央处理器,4KB片内程序存储器,128字节的片内RAAM。使用的是MCS-51系列的内核,兼容标准MCS-51指令系统。但是AT89CXX系列单片机的工作频率最高为2MHz,所以处理速度比较慢。而且不支持ISP在线编程功能,加大了编程的难度。STC89CXX系列单片机[22]:该系列单片机是由台湾STC公司生产的。它具有8K字节系统可编程Flash存储器,所以程序存储空间更大。STC89CXX系列单片机同样使用的是MCS-51内核,兼容标准MCS-51指令系统,但是它在传统的51单片机的基础上进行了改进。最大的优点是支持在线编程,可以配合PC端的控制程序将所编写的程序下载进单片机内部,这大大提高了程序的可读性。该系列单片机还有一个优点,就是价格比较便宜,性价比较高。综合考虑,STC89CXX系列单片机完全能够满足无线通信系统的要求并且性价比较高,所以本次设计采用STC89CXX系列单片机作为微控制器。2.2.3蓝牙模块的比较和选择市面上常见的蓝牙模块型号主要有BT05和HC-08蓝牙模块。BT054.0蓝牙模块是专为智能无线数据传输而打造,采用美国TI公司CC2541芯片,配置256Kb空间,遵循V4.0BLE蓝牙规范。支持AT指令,用户可根据需要更改串口波特率、设备名称、配对密码等参数,使用灵活,本模块支持UART接口,并支持SPP蓝牙串口协议[23],具有成本低、体积小(1.3cm*2.67cm)、功耗低、收发灵敏性高等优点,只需配备少许的外围元件就能实现其强大功能。主要参数如下表2-1。表2-1BT054.0模块参数表工作频段2.4GHz的ISM波段蓝牙技术规范BLE4.0输出功率等级2级工作电压3.3V主机接口UART存储容量256KB尺寸27mm(L)x13(W)mmx2mm(H)HC-08蓝牙模块采用CSR主流蓝牙芯片[23],蓝牙V2.0协议标准;在空旷地有效距离80米,超过10米也是可能的配对以后当全双工串口使用,无需了解任何蓝牙协议,但仅支持8位数据位、1位停止位、无奇偶校验的通信格式,这也是最常用的通信格式,不支持其他格式。在未建立蓝牙连接时支持通过AT指令设置波特率、名称、配对密码,设置的参数掉电保存。蓝牙连接以后自动切换到透传模式体积(2.69cm*1.3cm)。主要参数如下表2-2。表2-2HC-08模块主要参数表模块名称HC-08模块尺寸26.9*13*2.2mm工作频段2.4GHZISM天线接口内置PCB天线通讯接口UART3.3VTTL电平接收灵敏度-93dBm@lMbpsRSSI支持不支持空中速率1Mbps通讯电平3.3V工作湿度10%~90%发射功率4dBm(MAX)存储温度-40°C~85°C通信距离80m<$r环境〉工作温度-25°C~75℃电气特征参数测试条件典型值工作电压-DC2.0V~3.6V工作电流(不包括LED)主机未连接/己连接21mA/9mA从机MODEO,未连接/已连接8.5mA/9mAM0DE1,未连接/已连接6uA~2.6mA/I.6mAMODE2,未连接/已连接0.4uA/1.6mA比较两者得知BT05蓝牙模块体积相较于HC-08蓝牙模块体积更小功耗更低,BT05价格普遍在20元左右而HC-08模块价格普遍在30元左右,更适合智能小车对于体积小、功耗低、性价比高的要求,故而使用BT05系列蓝牙模块进而选择MLT-BT054.0蓝牙模块。2.2.4串行通信方式比较和选择RS-232串行通信:RS-232串行通信的接口使用广泛。它的接口有9根信号线,采用一根信号线和一根信号返回线来实现传输。所以,RS-232串行通信的传输速度较低,信号之间容易产生干扰。并且51系列的单片机不能直接和RS-232接口相连,需要进行电平转换,将接口处的电压转为+5V。这就需要使用电平转换器,同样导致成本提高,而且会增加系统的复杂性。USB接口通信:目前USB通信接口的使用最为广泛,市场上的电脑全都配有USB接口。USB接口使用也非常方便,支持即插即用和热插拔,即插上后不需要重启计算机,就可直接使用。这是前面两种通讯接口不具备的。USB接口数据的传输方式为串行传输。它的数据传输速度较快,速度达到480Mbp。USB接口占用体积较小,并且由于接口的标准统一,一个USB接口往往可以用于多个设备的连接。USB接口的输出电压是+5V,也正好满足51系列单片机的接口需求。综合分析,本次设计采用了USB转TTL接口通信方式。2.3最终方案组成综合以上分析,本课题主要采用STC89C52单片机,手机,电机驱动模块以及蓝牙模块组成。上位机选取安卓手机,App界面分别定义前进,后退,左转,右转,停止,连接蓝牙。通过操控手机,将相应动作信号转换成数字信号,并通过蓝牙模块发送,蓝牙模块接收到相应信号后,下位机以独立I/O口电平识别对应的动作。其系统框图如图2-1。图2-1系统框图第三章系统硬件设计3.1单片机最小系统本系统是以89C52内核单片机为核心主控芯片,考虑到程序代码占用的空间可能较大,于是采用了芯片内部空间较大的STC89C52单片机。基于STC89C52的单片机最小系统一般由主控芯片、时钟振荡电路(晶振电路)、复位电路,本系统是基于STC89C52主控芯片的蓝牙遥控系统,所以建立一个稳定、可靠和具有一定抗干扰能力的最小的系统很重要。3.1.1STC89C52简介1.STC89C52的主要特点STC89C52单片机使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52主要特点如下:增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。工作电压:5.5V~3.3V工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz用户应用程序空间为8K字节片上集成512字节RAM通用I/O口(32个),复位后为:P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片具有EEPROM功能共3个16位定时器/计数器。即定时器T0、T1、T2外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒通用异步串行口(UART),还可用定时器软件实现多个UART工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)PDIP封装2.STC89C52引脚定义说明STC89C52单片机有40个引脚,其引脚示意及功能分类如图3-1所示。图3-1STC89C52引脚图其中:VCC和GND分别为电源引脚和接地引脚,RST为单片机的复位引脚;PSEN是片选信号引脚,当单片机与外部芯片连接时,作为单片机访问外部芯片的通知信号使能;XTAL1和XTAL2分别为外接晶振的输入和输出引脚,单片机P0口可作为通用I/O口,也可以作为单片机系统的地址/数据线使用。它是真正的双向口。P1口是通用I/O口,P2口除了通用I/O口外,也以可作为地址线接口。P3口:可实现通用I/O口和第二功能口。3.1.2基于STC89C52的最小系统搭建本系统是基于STC89C52单片机的最小系统,最小系统一般由主控芯片、时钟振荡电路(晶振电路)、复位电路等外围电路组成。3.2电机驱动模块选择 由于单片机的驱动的能力有限,直接驱动电机的能力是不够的,为了实现电机的驱动,就需要在单片机与电机之间增加高驱动力的电路。本设计电路就是为了解决这一问题而选择合适的电机驱动模块。市面上有许多类型的驱动模块,例如以L293D芯片为主体的驱动模块[23]和以L298N芯片为主体的驱动模块,考虑到模块之间的协调性,我最终选择了以L298N芯片为主体的驱动模块。L298N驱动模块:使用L298N作为电机驱动芯片[24]。L298N具有高压、高电流和高响应频率的全桥驱动芯片,一片L298N可以分别控制两个直流电机,并且自带控制使能端。该电机驱动芯片有很强的驱动能力、操作简便、良好的稳定性和出色的性能。L298N的使能端可以通过外接电平控制,也可以利用单片机进行软件控制,以满足不同复杂电路的需求。此外,L298N具有很大的驱动功率,可以根据输入电压的大小来输出不同的电压和功率,从而解决了负载能力不足的问题。图3-2驱动原理图3.3USB通信接口电路设计由于下位机需要与PC端进行数据交流,所以需要进行下位机与PC端的接口设计。本次设计采用的是USB接口实现单片机和PC端的数据交流。3.3.1USB转接芯片的选择常用的USB转换芯片有CH340,PL230,FT232等等。本次设计采用的是CH340转换芯片。其特点有:1.高速USB通信;2.串口程序与Windows操作系统兼容3.带有全双工串口,内部带有收发缓存器4.电源电压为5V或3.3VCH340在单片机通信中起着重要的作用,此芯片有很多优点并且提供中文使用手册,所以本设计采用了CH340芯片作为USB转换芯片,其引脚图如图所示:图3-3CH340G引脚图它与单片机的连接框图如图3-4:图3-4CH340G连接框图3.3.2硬件电路设计CH340转换芯片和单片机的连接电路如图所示,其中CH340的TXD和RXD脚分别连接单片机的RXD和TXD引脚。CH340和单片机共用VCC和GND引脚CH340在正常工作的情况下,需要外接12Mhz的晶振电路。图3-5USB通信模块和供电连接电路图3.4单片机和蓝牙通信模块的接口电路设计STC89C52单片机有UART和SPI两种接口,MLT-BT054.0蓝牙使用RXD和TXD两线传输,考虑到传输速度的因素,STC89C52和MLT-BT054.0的连接准备用UART接口实现。3.4.1UART接口介绍UART接口作为异步串行接口,在嵌入式设计中通过UART接口可以进行主机和辅助设备的信号传输。其特点包括:使用RXD和TXD引脚实现异步数据传输;数据传输快;对电平信号没有规定;8位数据位;点对点发送数据;UART:一般由四个引脚构成:VCC:供电引脚,一般是3.3VGND:接地引脚RXD:接收数据引脚TXD:发送数据引脚3.4.2UART通信协议UART用一条传输线将数据一位位地顺序传送,以字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的,数据传送速率用波特率来表示。传输时序如下图3-6:图3-6UART传输时序图在UART中,信号线上共有两种状态,分别用逻辑1(高电平)和逻辑0(低电平)来区分在空闲时,数据线应该保持在逻辑高电平状态。其中各位的意义如下:起始位(StartBit):先发出一个逻辑0信号,表示传输字符的开始;数据位(DataBits):可以是5~8位逻辑0或1.如ASCII码(7位),扩展BCD码(8位)小端传输;校验位(ParityBit):数据位加上这一位后,使得1的位数应为偶数(偶校验)或奇数(奇校验);停止位(StopBit):它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平;空闲位:处于逻辑1状态,表示当前线路上没有资料传送;3.4.3蓝牙模块串口MLT-BT054.0蓝牙模块提供完整的蓝牙解决方案[25],内置2.4GHz天线,外置8MbitFlash,采用自适应跳频技术,Class2功率级别,采用蓝牙2.1+EDR(增强速率技术)版本,它向下对1.2版本兼容,较于2.0EDR简化了配对流程,增强了安全性,降低了功耗等,该芯片最高传输速率能达到3Mbps,是应用较为广泛的标准。MLT-BT054.0蓝牙模块是一个主从机一体模块,标准主控制接口(HCI)传输层可通过UART/USB实现,HCI以下的功能由MLT-BT054.0蓝牙模块实现,HCI以上的软件协议运行在主机上,二者之间的交互通过传输层实现。工作比特率可选择1200,2400,4800,9600,19200等,默认使用9600频率进行串口通信。与电脑或任何微处理器采用无线UART(通用异步收发器)串口通信,既能做主机也能做从机。HCI传输数据、事件和命令,以分组的方式进行传输,只有数据传输是双向的,事件分组由主机控制器发向主机,命令分组只能从主机发向主机控制器。Arduino板的数字引脚0,1和蓝牙模块通过UART串口通信[26],ATmega328提供UARTTTL(5V)串行通信,数据格式和传输速率是可配置的。而要使用软件模拟UART串口通信,需要改变其它引脚的中断程序来处理外部设备发送的RX信号。Arduino是该蓝牙模块的主机[],其数字引脚0和1用于串行信号传输,0为接收,1为发送数据。Arduino的ATmega16U2提供串行USB接口,在连接计算机时显示为一个虚拟COM接口,ArduinoIDE的串口监视器可以监视该串口上传输的数据,但传输数据的时候会默认使用1、0号引脚与计算机传输数据。因此蓝牙模块和PC机同时占用串口引发冲突,为了避免这种干扰带来的麻烦,可以通过软件模拟串口定义另外两个数字引脚作为蓝牙的接口。UART支持全双工串行通信,通过两条信号线(TXD,RXD)完成数据传输,线上有两种状态,高电平和低电平,空闲时为高。数据传输的过程是首先发送起始位,将数据线拉低,提示接收器已经发起数据传输。接着传输一个字节即8-bit数据(也可以是6-bit或7-bit),低位在前,高位在后,第九位是奇偶校验位(一般没有这位),最后一位是停止位,将数据线拉高,表示一笔传输结束。数据传输位格式见表3-2。表3-2UART串行数据位Start01234567(P)Stop起始位数据位奇偶校验位停止位UART硬件的时钟速度通常8倍于传输速率,通常使用“双缓冲机制”来读取数据,接收寄存器和主机之间的FIFO保证当控制器在处理一个缓冲数据时,可以继续读取线上数据从而不会丢失数据[27]。因此软件采用模拟串口方式实现通信,根据串行协议注册某个引脚的中断处理函数用于将数据读入缓存中,发送数据或从引脚输出,根据协议的位率,来控制每个信号的保持时间。软件用Serial函数控制Arduino与其他设备的串行通信[28],接口分别是Arduino板的数字端口0(RX)和1(TX),串行接口指的是USB接口或蓝牙模块的UART接口。MLT-BT054.0蓝牙模块与Arduino板接口:VCC接3.3V端口,发送和接收(TX、RX)端连接两个数字引脚(为避免与USB接口冲突,D1和D2除外),在软件SoftwareSerial库里定义发送或是接收。3.4.4BT054.0蓝牙模块的UART口实现本设计使用的是MLT-BT054.0蓝牙模块,该模块使用的是CC2541芯片,串行通信的接口RXD和TXD和单片机进行数据传输,因此采用下图的连接方式:图3-8BT05和STC89C52连接原理图STC98C52有专门进行UART串行通信的引脚分别是P3.0/RXD和P3.1/TXD组成的通信接口叫做串口,通过发送和接收二进制数据位进行数据的传输,当传输开始时拉低电平(逻辑0)开始发送数据中间八个数据位和奇偶校验传输完毕时拉高电平(逻辑1)结束传输。3.4.5单片机STC89C52和CC2541的接口电路图图3-8MLT-BT054.0模块应用电路图3.5电机的选择由于直流电机的控制方法比异步电机简单,所以本设计采用双直流电机。只要给电机的两条控制线加适当的电压,就可以使电机转动。在正常工作电压范围内,电压越高,直流电机的转速越高。直流电机调速有两种方法:一种是直接调节电压,另一种是通过PWM调节速度[29]。PWM调速就是将直流电动机两端的电压波形变成矩形波。改变矩形波的占空比可以实现电压的变化,从而实现电机转速的变化。为了更适合智能小车的设计要求这里选用了塑料齿轮减速电机。根据小车的整体设计要求需要选择两个塑料齿轮减速电机负责小车的动力。与驱动模块连接如图3-12。图3-10塑料齿轮减速电机FGD表3-3减速电机参数表产品名:塑料齿轮减速电机减速比:1:48电压范围:DC3V-12V额定电压3V6V7.2V电流≤170mA≤230mA≤250mA转速115±10%转/分255±10%转/分320±10%转/分扭矩~1kgf.cm~1.5kgf.cm~1.8kgf.cmG图3-11电机安装图图3-12电机连接驱动图系统软件设计软件部分的设计采用模块化的方法,将复杂的程序分成不同的模块,然后分别对不同的模块进行设计。这样的好处是设计的思路更清晰,程序的结够更清楚,程序易于读写和验证,程序的可靠性也得到了提高。目前52系列单片机主要采用汇编语言和C语言两种编程语言。与机器最接近的语言是汇编语言,它经常被用来编写与系统硬件相关的程序,如访问IO它是最快、最有效的语言之一。当程序的空间和时间要求很高时,使用汇编语言是最好的选择。然而,汇编语言也有其自身的缺点,如开发周期长、浮点操作处理复杂、程序可移植性差等。在编程过程中,C语言编程的思想被称为模块化编程[30]。有时,为了有效地完成任务,任务被划分为数千个独立但仍然相关的模块。这些模块使得任务相对简单,外部数据交换相对简单,易于编写,易于检测,易于读取和维护。本设计使用C语言编写程序。模块化结构程序的设计可以使系统软件易于调试和优化,也可以使他人更好地理解和阅读系统程序设计。因此,在软件设计中,采用模块化的程序结构来设计软件,使程序更加直观,易于理解。程序的主要模块有:主程序、定时溢出中断服务程序、外部中断服务程序。随着单片机开发技术的不断发展,从一般使用汇编语言到逐步使用高级语言开发,单片机的开发软件也在不断开发。Keil软件是MCS-51系列单片机开发中最流行的软件,近年来各仿真器厂商纷纷宣布全力支持Keil软件[31]。Keil提供了一个完整的开发方案,包括C编译器、宏汇编、连接器、库管理和强大的仿真调试器。这些部分通过集成开发环境(uVision)进行组合。掌握这个软件的使用是非常重要的这对于使用51系列单片机的学者来说是非常必要的。如果他们使用C语言编程,Keil几乎是唯一的选择。即使只使用汇编语言而不是C语言进行编程,其方便易用的集成环境和功能强大的软件仿真和调试工具也能做到事半功倍。4.1智能小车控制程序开始BT054.0开始BT054.0初始化启动接收正确地址和PIN读取接收到的数据将数据装入小车判断数据是否传送完成BT054.0配置模式小车以I/O口电平识别对应的动作NYYN图4-1控制系统原理图小车需要定义的中间变量以及常量比较多通常使用主文件和库文件分开定义(main.c和QX_A11.h,见附录A)小车控制程序实现如下:实现小车左转:voidleft_run(unsignedcharLeftSpeed,unsignedcharRightSpeed){ pwm_left=LeftSpeed,pwm_right=RightSpeed;//设置速度 left_motor_back;//左电机后退 right_motor_go;//右电机前进 }实现小车右转:voidright_run(unsignedcharLeftSpeed,unsignedcharRightSpeed){ pwm_left=LeftSpeed,pwm_right=RightSpeed;//设置速度 right_motor_back;//右电机后退 left_motor_go;//左电机前进}实现小车后退:voidback_run(unsignedcharLeftSpeed,unsignedcharRightSpeed){ pwm_left=LeftSpeed,pwm_right=RightSpeed;//设置速度 right_motor_back;//右电机后退 left_motor_back;//左电机后退}实现小车前进:voidforward(unsignedcharLeftSpeed,unsignedcharRightSpeed){ pwm_left=LeftSpeed,pwm_right=RightSpeed;//设置速度 left_motor_go;//左电机前进 right_motor_go;//右电机前进}实现无线遥控函数:voidRemote(){ switch(UartData) { case0X01: stop(); break; //停车 case0X02: forward(RemoteLeftSpeed,RemoteRightSpeed); break; //前进 case0X03: back_run(RemoteLeftSpeed,RemoteRightSpeed); break; //后退 case0X04: left_run(RemoteLeftSpeed,RemoteRightSpeed); break; //左转 case0X05: right_run(RemoteLeftSpeed,RemoteRightSpeed); break; //右转 case0X08: beep=0; break;//鸣笛 case0X09: beep=1; break;//停止鸣笛 default:stop(); break; } }实现小车的PWM输出:voidLoadPWM(void){ if(pwm_left>PWM_HIGH_MAX) pwm_left=PWM_HIGH_MAX; //如果左输出写入大于最大占空比数据,则强制为最大占空比。 if(pwm_left<PWM_HIGH_MIN) pwm_left=PWM_HIGH_MIN; //如果左输出写入小于最小占空比数据,则强制为最小占空比。 if(pwm_right>PWM_HIGH_MAX) pwm_right=PWM_HIGH_MAX; //如果右输出写入大于最大占空比数据,则强制为最大占空比。 if(pwm_right<PWM_HIGH_MIN) pwm_right=PWM_HIGH_MIN; //如果右输出写入小于最小占空比数据,则强制为最小占空比。 if(pwm_val_left<=pwm_left) Left_moto_pwm=1;//装载左PWM输出高电平时间 elseLeft_moto_pwm=0; //装载左PWM输出低电平时间 if(pwm_val_left>=PWM_DUTY) pwm_val_left=0; //如果左对比值大于等于最大占空比数据,则为零 if(pwm_val_right<=pwm_right) Right_moto_pwm=1;//装载右PWM输出高电平时间 elseRight_moto_pwm=0; //装载右PWM输出低电平时间 if(pwm_val_right>=PWM_DUTY) pwm_val_right=0; //如果右对比值大于等于最大占空比数据,则为零}实现定时器的初始化:voidTimer0_Init(void){ TMOD|=0x02;//定时器0,8位自动重装模块 TH0=164; TL0=164;//11.0592M晶振,12T溢出时间约等于100微秒 TR0=1;//启动定时器0 ET0=1;//允许定时器0中断 EA =1;//总中断允许 }串口的初始化:voidUartInit(void) //9600bps@11.0592MHz{ SCON|=0x50; //SCON:模式1,8-bitUART,使能接收 T2CON|=0x34;//设置定时器2为串口波特率发生器并启动定时器2 TL2=RCAP2L=(65536-(MAIN_Fosc/32/BAUD));//设置波特率 TH2=RCAP2H=(65536-(MAIN_Fosc/32/BAUD))>>8; ES=1; //打开串口中断}定时器的中断函数:voidtimer0_int(void)interrupt1{ pwm_val_left++; pwm_val_right++; LoadPWM();//装载PWM输出}实现串口的中断函数:voidUART_ISR()interrupt4{ if(RI) //判断是接收中断产生 { RI=0; //标志位清零 UartData=SBUF;//读入缓冲区的值 if((UartData>=51)&&(UartData<=150))//左电机调速0~100个档位手机端软件进行调节 RemoteLeftSpeed=(UartData-50)*2; //把51~150映射到2~200 if((UartData>=151)&&(UartData<=250))//右电机调速0~100个档位手机端软件进行调节 RemoteRightSpeed=(UartData-150)*2; //把151~250映射到2~200 }} 具体函数实现见附录A,以上完成了蓝牙小车的软件系统的设计。4.2MLT-BT054.0蓝牙模块串口设计4.2.1MLT-BT054.0蓝牙模块初始化MLT-BT054.0蓝牙模块与PC端连接需要连接USB转TTL接口同理选择《第三章3.3.1》所选CH340G芯片。模块通过USB转接口连接PC端,模块指示灯闪烁红灯表示连接成功。按住MLT-BT054.0蓝牙模块上的复位键,再接通电源,发现指示灯缓慢闪灭,表示进入AT指令模式(此时初始化完成默认波特率为9600)。4.2.2MLT-BT054.0蓝牙模块配置MLT-BT054.0蓝牙模块拥有特有的AT指令集来配置,打开串口助手选择串口3打开发送AT测试蓝牙模块,响应OK则蓝牙模块正常运行如下图4-2;图4-2蓝牙测试通过发送AT+VERSION获得软件版本号如图4-3;图4-3获取软件版本号从表4-1得知发送AT+BAUD4设置串口波特率为9600如图4-4;表4-1设置/查询波特率图4-4设置波特率为9600从表4-2得知发送AT+ADVI0设置广播间隔为100ms如图4-5。表4-2设置/查询-广播间隔图4-5设置广播频率从表4-3得知发送AT+POWE2设置模块发送功率为0bd,如图4-6;表4-4设置/查询模块功率图4-6设置模块发射功率从表4-5得知发送AT+UUID0xFFE0设置模块UUID为0xFFE0,如图4-7;表4-5设置/查询模块UUID图4-7设置模块UUID从表4-6得知发送AT+CHAR0xFFE1设置模块特征为0小FFE1如图4-8;表4-6设置/查询模块特征图4-8设置模块特征从表4-7得知发送AT+NAME<ZANGXIN17110108>设置设备名称如图4-9;表4-7设置/查询设备名称图4-9设置设备名称从表4-8得知发送AT+PIN123456设置配对码为123456如图4-10;表4-8设置/查询配对码图4-10设置模块配对码以上步骤完成了对MLT-BT054.0蓝牙模块的配置。配置其他AT指令参照MLT-BT054.0蓝牙模块AT指令集。4.3串行通信模块串行通信模块的程序主要由串口初始化程序和串口数据的收发程序两部分组成。4.3.1串行口的初始化在串行通行中,数据只能按位进行传输。按照传输的方向,串行通信可分为单工,半双工和全双工。STC89C52单片机在全双工串行通信时,系统的每端都有发送器和接收器,可实现同时发送和接收。串行通行的特点是只需一根传输线就可以实现通讯。STC89C52单片机的串行通信由SCON寄存器和PCON寄存器控制。串行口工作方式有四种方式,由串行口控制器SCON的SM0、SM1控制。定义如表4-9所示。表4-9串行口工作方式串行口的初始化就是初始化SCON寄存器和PCON寄存器的状态,同时对定时器T1的工作方式和波特率进行设置。单片机的波特率由PCON寄存器的SMOD位决定,SMOD为波特率加倍位,可以为1或0,当SMOD=1,波特率加倍。SMOD=0,波特率不变。单片机的晶振频率一般为11.0592MHz。串行口初始化流程图:开始开始配置T1配置PCON配置SCON配置系统中断结束图4-11串口初始化流程图4.3.2串行口数据的收发单片机的全双工串行口可编程为四种工作方式,现分述如下:方式0:方式0采用低5位TLx和高8位THx组成的13位计数器。计数初值不能自动重载。波特率固定为fosc/12,其中fosc为时钟频率。方式1:方式1是10位异步通信方式,包括1个起始位,1个停止位和8个数据位。在数据传输时,起始位和停止位是自动插入的。它的波特率可变方式2:方式2为11位异步通信方式,包括1个起始位,1个停止位,8个数据位和一个可程控为1或0的第9位数据。它的波特率固定。方式3:方式3也为11位异步通信方式,相比方式2,它的波特率可变。单片机串口收发数据流程图如图。图4-12单片机串口收发数据流程图第五章手机APP的选择上位机(手机)与MLT-BT054.0蓝牙模块通信需要通过手机蓝牙模块使用AT指令发送ASCII码来使小车进行前进、后退、左转、右转动作。在手机商店平台上有各种各样的手机蓝牙串口助手,在第四章中蓝牙配置成了透传模式连接,所以蓝牙串口APP需要选择具有透传模式功能的APP,设置按键为前、后、左、右。根据手机应用商店的查找发现了一个智能云平台的微信小程序,能够实现小车前、后、左、右等动作,不需要下载安装APP,非常的方便。下面是对该小程序的介绍。打开蓝牙,点击小程序的“搜索设备”找到<ZANGXIN17110108>设备图5-1搜索蓝牙设备 图5-2连接蓝牙模块连接蓝牙模块后双击进入操作界面如图5-3然后就可以远程操控小车了。图5-3进入操作界面第六章电路总图设计完成上述模块设计后画出电路连接总图如下;图6-1电路总图第七章总结与展望7.1总结毕业设计是大学四年学习的最后一个重要内容,通过这几个月的学习,我了解无线通信技术的基本原理,特别是掌握关于MLT-BT054.0蓝牙模块的使用和调试方法。同时对于大学四年所学习到的专业知识进行系统的回顾,提升了自身软件编程的能力和绘制硬件电路图的能力。通过一段时间的学习,我的设计工作在理论上和实践上都取得了一些成果,主要体现以下几个方面:(1)结合了一些参考资料及文献,提出了系统的整体方案。(2)对系统的硬件部分进行了设计,绘制相应的硬件电路图(3)对系统的软件部分进行了设计,并对各部分的编程原理进行了探讨。在KEIL开发环境下,编写出了各个模块的程序框图和对应程序。(4)完成实物的制作和调试。7.2展望此次设计虽然完成了实物的制作,但是由于自己的水平有限,设计也存在明显的不足:在硬件电路的设计上,还存在器件选用不够理想,设计思路不够完善,电路图绘制不精细等问题,在软件设计中,也同样存在程序不够精简、完善等问题。在以后的工作和学习中,在这方面还需要加强和提高。在硬件电路的设计上,需要加强理论知识的学习,特别是要熟悉器件的结构功能和工作原理。在软件方面,需要提高自身编程能力,设计的程序要更加的精简和可靠。心得体会至此,本系统的设计告一段落,下面从各个方面总结一下设计过程中的心得体会。四年的大学时光伴随着这次的毕业设计就这样结束了,所以这次的毕业设计从一开始就我就非常认真对待,一开始就认定了陈老师,申请了课题,当拿到课题的时候说实话心里面五味杂陈,毕竟单片机大三才开始真正意义上的接触,学的也是蛮吃力,但拿到单片机的课题时自然是有些许担心,担心的同时也有些许窃喜,因为从另一个角度看,这不就是又一个挑战吗?怀揣课题,一直到开题的时候,才发现我显然低估了本次课题的难度,完全无从下手。唯一值得庆幸的是陈卫国老师的先见之明,老师的先见直接体现在我们这组比别的组提前3个月开题,虽然这3个月里还有学习任务但是毕竟我又多出三个月来深化了解课题。在老师的悉心指导下,我开始到处找资料,看论文,渐渐的有了自己的思路和想法。最终,成功开题,并得到了老师的批准。紧接着寒假到来了,又是一个绝佳的机会,寒假期间开始设计系统,先从硬件开始,参考老师给的资料,最终花了半个月时间用Protuse7.5搭建了自己的硬件系统。年后开始系统软件设计,最痛苦的便是软件方面设计,本来自己就对C语言不是很擅长,所知道的也就是皮毛而已,只有硬着头皮看别人写的程序,一点点消化,导致软件部分也是我花最长时间的将近20天时间。终于软件程序写完了,编译也没有什么大问题,总算松了一口气。设计虽然还算顺利,但是大大小小问题也是不断,最头疼的是代号为184致命ERROR,四处问人也没发现怎么回事,最后发现时自己的一个手误导致字库出现了问题,为此我付出了整整3天时间。这也让我感觉到写程序时认真和细心的重要性。同时,我也发现了自己专业上的不足,不如C语言的使用不够熟练、不够标准。但我相信以后如果从事相关工作我会努力改正,努力提升自己的专业技能。参考文献[1]LisangLiu,DongweiHe,JishiZheng,YingMa,JingHuang,JunfengFan,XiaoyuWei,JinxinYao.Designandimplementationofintelligenttrackingcarbasedonmachinevision[J].JournalofIntelligent&FuzzySystems,2020,38(5).[2]黄定铭,梁飘,蓝日卫.手机监控家用电器设备系统的设计与研究[J].大众科技,2019,21(10):19-21.[3]罗泽鹏,李清霞.单片机温度测量及控制系统的设计及应用[J].电脑编程技巧与维护,2021(01):52-53+66.[4]聂秀珍.基于51单片机的智能快递机器人的控制系统设计[J].通信电源技术,2020,37(08):119-122.[5]祖炳洁,刘靖纳.高速公路全程监控机电设备自动巡检系统研究[J].交通标准化,2013(21):39-41.[6]魏雅,杜云.基于单片机遥控超声波测距智能小车[J].信息技术,2014(11):67-69+74.[7]韩敬娴.史河科技用爬壁机器人变革高危作业[J].创业邦,2019(01):47-48.[8]樊佳昊,刘芮嘉,王小利.智能小车循迹控制算法优化与设计[J].电工技术,2019.2:25-28.[9]陈江.智能小车研究综述[J].镇江高专学报.2017,30(4):58-60.[10]WuZ,PanG.SmartCarSpace:AnApplication[M]SmartShadow:ModelsandMethodsforPervasiveComputing.2013:101-127.[11]沈维佳,多传感器小车的控制系统设计与研究[J].南京:南京理工大学,2015:1-7,55-56.[12]张磊.智能小车控制系统的设计[J].长春:吉林大学,2016:1-7.[13]白一鸣.基于数据挖掘技术的模糊推理系统设计[J].大连海事大学,2013.[54]黄俊.基于霍尔传感器的电动小车测速监测系统的研究与设计[J].电子设计工程,2018,26(04):99-103.[14]温芮,陈锦鸿,王丽.基于蓝牙控制技术的智能小车控制系统设计[J].汽车零部件,2019(12):1-4.[15].承大国重器之志迎智能时代之光——新松机器人自动化股份有限公司发展纪实[J].全球商业经典,2019(06):34-41.[16]周婷婷,尚浩.基于2.4G的智能家居控制系统设计[J].单片机与嵌入式系统应用,2013,12(10):67-69+78.[17]谭健,佟国香,吕芳芳.基于2.4G的无线音频传输系统[J].信息技术,2013,(12):46-52.[18]严顺枝.基于2.4GRFID技术的家校通系统[J].电子测试,2015,(17):116-117+163.[19]刘志平,赵国良.基于nRF24L01的近距离无线数据传输[J].应用科技,2015,35(03):55-58.[20]\t"/https/77726476706e69737468656265737421e3f44990357e6b5e7501c7a29d41/zn/Detail/index/SPQD_01/_blank"nChainHoldingsLimited;"Computer-ImplementedSystemsAndMethodsForCombiningBlockchainTechnologyWithDigitalTwins"inPatentApplicationApprovalProcess(USPTO20200295919)[J]
ComputerTechnologyJournal,2020[21]叶金鑫.基于模糊PID的智能小车控制算法研究[J].实验科学与技术,2016,14(1):46-47,62.[22]丁鹏,李林升,钟成.基于改进BP神经网络的智能车PID控制研究[J].机工程师,2018(03):9-11.[20]陈旭.单片机技术在电气传动控制系统中的应用探讨[J].电子世界,2018(16):70+72.[21]苏晓峰,王海涛,程一平,杨嵛媛,肖又文,黄旻璇.自动循迹避障灭火智能小车设计[J].工业控制计算机,2021,34(04):134-135+143.[22]曾颖琳,董欣,倪鹏,郭斌.基于Arduino的智能避障小车设计[J].科技与创新,2021(04):32-34+40.[23]李建成,王功喆,刘春瑞.基于单片机的无线遥控智能小车的设计与制作[J].科学技术创新,2021(01):169-170.[24]宋音来,陆嘉鑫.智能小车的软件控制设计与实现[J].数字技术与应用,2020,38(11):4-6.[25]朱丹,陶晓庆,罗琛.基于光电传感器的智能小车系统的设计与实现[J].电子测试,2020(22):11-13.[26]盛春明.基于5G技术的多智能机器人应用研究[J].网络安全技术与应用,2021(05):147-149.[27]SeoJihun,HanKijun.ASurveyofEnhancedDeviceDiscoverySchemesinBluetoothLowEnergyNetworks[J].IETETechnicalReview,2021,38(3).[28]朱金龙,刘桂玲,陶伟唯.基于单片机和无线蓝牙的温度监测系统的设计[J].信息技术与信息化,2021(04):184-186.[29]TangGuanglin,WestoverKenneth,JiangSteve.ContactTracinginHealthcareSettingsDuringtheCOVID-19PandemicUsingBluetoothLowEnergyandArtificialIntelligence—AViewpoint[J].FrontiersinArtificialIntelligence,2021.[30]张权辉,彭森.基于单片机的智能小车控制系统设计[J].造纸装备及材料,2020,49(02):97+115.[31]丁鹏,李林升,钟成.基于改进BP神经网络的智能车PID控制研究[J].机工程师,2018(03):9-11.
附录A文件名main.c/**********************************************************************************【编写时间】:2021年3月12日*【作者】:臧鑫*【版本】:1.0*【实验平台】:QX-A11亚克力智能小车STC89C52*【外部晶振】:11.0592mhz *【主控芯片】:STC89C52*【编译环境】:KeilμVisio4* 版权所有,盗版必究。* Copyright(C)QXMBOT* Allrightsreserved************************************************************************************【接线说明】:请参考资料内图文说明书*【程序功能】:QX-A11亚克力智能小车蓝牙遥控 *【注意事项】:避免小车撞向障碍物或小车轮子堵转**********************************************************************************/#include<reg52.h>//51头文件#include<QX_A11.h>//蓝牙智能小车配置文件unsignedcharpdataUartData;//单字节串口数据unsignedchar pwm_val_left,pwm_val_right; //中间变量,用户请勿修改。unsignedchar pwm_left,pwm_right; //定义PWM输出高电平的时间的变量。用户操作PWM的变量。unsignedchar RemoteLeftSpeed,RemoteRightSpeed;//定义PWM输出高电平的时间的变量。用户操作PWM的变量。#define PWM_DUTY 200 //定义PWM的周期,数值为定时器0溢出周期,假如定时器溢出时间为100us,则PWM周期为20ms。#define PWM_HIGH_MIN 100 //限制PWM输出的最小占空比。用户请勿修改。#define PWM_HIGH_MAX PWM_DUTY //限制PWM输出的最大占空比。用户请勿修改。voidTimer0_Init(void);//定时器0初始化voidLoadPWM(void);//装入PWM输出值voidforward(unsignedcharLeftSpeed,unsignedcharRightSpeed);//蓝牙智能小车前进voidleft_run(unsignedcharLeftSpeed,unsignedcharRightSpeed);//蓝牙智能小车左转voidright_run(unsignedcharLeftSpeed,unsignedcharRightSpeed);//蓝牙智能小车右转voidback_run(unsignedcharLeftSpeed,unsignedcharRightSpeed);//蓝牙智能小车后退voidstop(void);//蓝牙智能小车停车voidUartInit(void); //串口初始化9600bps@11.0592MHz/*无线遥控函数*/voidRemote(){ switch(UartData) { case0X01: stop(); break; //停车 case0X02: forward(RemoteLeftSpeed,RemoteRightSpeed); break; //前进 case0X03: back_run(RemoteLeftSpeed,RemoteRightSpeed); break; //后退 case0X04: left_run(RemoteLeftSpeed,RemoteRightSpeed); break; //左转 case0X05: right_run(RemoteLeftSpeed,RemoteRightSpeed); break; //右转// case0X06: SmartCarLeftTurn(RemoteLeftSpeed,RemoteRightSpeed); break; //原地左旋转【没有用到】// case0X07: SmartCarRightTurn(RemoteLeftSpeed,RemoteRightSpeed); break; //原地右旋转【没有用到】 case0X08: beep=0; break;//鸣笛 case0X09: beep=1; break;//停止鸣笛 default:stop(); break; } }/*主函数*/voidmain(void){ Timer0_Init();//定时0初始化 UartInit(); while(1) { Remote(); } }/*********************************************蓝牙智能小车前进入口参数:LeftSpeed,RightSpeed出口参数:无说明:LeftSpeed,RightSpeed分别设置左右车轮转速**********************************************/voidforward(unsignedcharLeftSpeed,unsignedcharRightSpeed){ pwm_left=LeftSpeed,pwm_right=RightSpeed;//设置速度 left_motor_go;//左电机前进 right_motor_go;//右电机前进}/*小车左转*//*********************************************蓝牙智能小车左转入口参数:LeftSpeed,RightSpeed出口参数:无说明:LeftSpeed,RightSpeed分别设置左右车轮转速**********************************************/voidleft_run(unsignedcharLeftSpeed,unsignedcharRightSpeed){ pwm_left=LeftSpeed,pwm_right=RightSpeed;//设置速度 left_motor_back;//左电机后退 right_motor_go;//右电机前进 }/*********************************************蓝牙智能小车右转入口参数:LeftSpeed,RightSpeed出口参数:无说明:LeftSpeed,RightSpeed分别设置左右车轮转速**********************************************/voidright_run(unsignedcharLeftSpeed,unsignedcharRightSpeed){ pwm_left=LeftSpeed,pwm_right=RightSpeed;//设置速度 right_motor_back;//右电机后退 left_motor_go;//左电机前进}/*********************************************蓝牙智能小车后退入口参数:LeftSpeed,RightSpeed出口参数:无说明:LeftSpeed,RightSpeed分别设置左右车轮转速**********************************************/voidback_run(unsignedcharLeftSpeed,unsignedcharRightSpeed){ pwm_left=LeftSpeed,pwm_right=RightSpeed;//设置速度 right_motor_back;//右电机后退 left_motor_back;//左电机后退}/*********************************************蓝牙智能小车停车入口参数:无出口参数:无说明:蓝牙智能小车停车**********************************************/voidstop(void){ left_motor_stops; right_motor_stops;}/*********************************************蓝牙智能小车PWM输出入口参数:无出口参数:无说明:装载PWM输出,如果设置全局变量pwm_left,pwm_right分别配置左右输出高电平时间***
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目经理能力提升与团队建设手册
- 2026年小学小升初体育测试题及答案
- 2026年网易动作测试题及答案
- 2026年北宋的统治测试题及答案
- 武汉市武珞路中学八年级数学期末真题试卷含答案及解析
- 企业品牌价值与形象维护承诺书4篇
- 家用智能家居安全性能检测报告
- 2026届四川省平昌县重点中学中考语文考试模拟冲刺卷含解析
- 语文人教部编版习作:写日记教案及反思
- 幼儿园小班美术课《太阳公公》教学
- 2026年pcb维修主管测试题及答案
- 2026年无人机植保技术考试题库及答案
- 2026浙江杭州市西湖区第四次全国农业普查领导小组办公室招聘2人笔试备考试题及答案详解
- 中核集团校招测评题
- 2024新版2026春人教版英语八年级下册教学课件:Unit6第2课时(Section A 3a-3d)
- 银川市、石嘴山市、吴忠市三市2026年高三年级学科教学质量检测 政治+答案
- 采购廉洁行为准则制度
- TSG 08-2026 特种设备使用管理规则
- 江苏交通控股公司校招面笔试题及答案
- 2025年港澳台华侨生入学考试高考物理试卷真题(含答案详解)
- DL-T 1476-2023 电力安全工器具预防性试验规程
评论
0/150
提交评论