多功能智能小车系统设计_第1页
多功能智能小车系统设计_第2页
多功能智能小车系统设计_第3页
多功能智能小车系统设计_第4页
多功能智能小车系统设计_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多功能智能小车系统设计第1章绪论1.1研究目的及意义智能小车是一种综合性的系统,它将环境感知、规划决策、自动行驶等功能融合在一起,利用计算机、传感、信息、通信、导航、人工智能和自动控制等高新技术。这使得智能小车具有高度的科技含量和复杂性。作为典型的高新技术综合体,智能小车为人们的出行提供了更智能化、更安全、驾驶负担更小的新型交通工具。目前,智能小车已经在军事、民用和科学研究等领域得到广泛应用。随着人们物质生活水平的提高,汽车已经越来越普及,但交通事故也随之增加,危及人们的财产和生命安全。与此同时,科学技术的发展也带来了机器人在探险、排爆等危险场合工作,以及自动化生产中运输小车的广泛应用。汽车不再只是拥有四个轮子的交通工具,人们更希望汽车成为日常生活和工作范围的一种延伸。因此,研制智能自动驾驶车已成为迫切而必要的需求,它为解决道路交通安全问题提供了新的途径。本设计的智能电动小车具备实时显示速度、里程的功能,并且具备自动寻迹和避障功能,具有较强的实际意义。智能电动小车的实时显示功能能够提供准确的速度和里程信息,使驾驶人员能够清楚地了解车辆的状态。这对于确保驾驶安全非常重要。此外,智能电动小车还具备自动寻迹功能,能够根据路面标记或导航系统指示进行行驶,减少了驾驶人员的操作负担,提高了行驶的准确性和稳定性。智能电动小车还具备避障功能,能够通过传感器感知周围环境,识别障碍物并采取相应的行动避免碰撞。这在拥挤的交通环境或复杂的道路条件下特别有用,有效地提高了行驶的安全性和可靠性。总之,智能小车作为一种综合性的系统,融合了多种高新技术,为人们提供了更智能化、更安全、驾驶负担更小的交通工具。它在军事、民用和科学研究等领域都有广泛的应用。智能电动小车作为其中的一种设计,具备实时显示速度、里程、自动寻迹和避障功能,将对现实生活产生积极的影响。1.2国内外研究现状2020年,刘芬在《基于SCP范式的我国家用汽车行业发展研究》中写道随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注,智能车的发展也更加细致与多元。2017年,许威在《基于MATLAB和OpenCV的双目视觉测距系统的实现》中指出早期的智能车研究侧重于应用,从单纯的作业考虑把智能车作为某个特定条件下作业的专用工具,即程序控制车,它完全按照事先装入到存储器中的程序安排的步骤进行工作,能有效地从事安装、搬运等工作。这一代智能车的最大缺点是它只能刻板地完成程序规定的动作,不能适应环境变化。2017年,MahendranNagalingam,Dr.G.Gurusamy等人在《ComputerApplicationsinPowerElectronicSystems》指出随着电子技术和人工智能学科的发展,配备有传感器的第二代自适应智能车应运而生。这种智能车通过传感器获取作业环境、操作对象的简单信息。由于它能随着环境的变化而改变自己的行为,故称为自适应智能车。第二代智能车虽具有一些初级的智能功能,但还没达到完全“自治”的程度。2016年,DavidG等人在《DistinctiveImageFeaturesfromScale-InvariantKeypoints》中提出当前,人们正在研制能在广泛范围内对物体进行搜索、识别和测距等功能的智能车机构。它们能对感知到的信息进行处理,以控制自己的行为,具有作用于环境的行为能力。一个理想化的、完善的智能车系统通常由3个部分组成:移动机构、感知系统和控制系统。目前研制的智能车虽大都只具有部分智能,但也已在很多领域得到了广泛的应用。目前发展较快、对智能车的发展影响较大的关键技术是传感器技术、智能控制技术、路径规划技术以及导航和避障技术等。近年来,各式各样的智能车传感器发展得很快。超小型化、高可靠性及廉价的传感器的出现,将从根本上改变智能车编程及其控制系统的设计。为了让智能车正常工作,必须对智能车的位置、速度和系统内部状态等进行监控,还要感知智能车所处的工作环境的静态和动态信息,使得智能车相关的工作顺序和操作内容能自然地适应工作环境的变化。目前已开发出的各种各样的传感器可分为内部传感器和外部传感器两大类。内部传感器用于监测和控制智能车自身,外部传感器安装在智能车上,用于感知外部环境信息。智能控制是具有智能信息处理和智能信息反馈以及智能控制决策的控制方式是控制理论发展的高级阶段,主要用来解决用传统方法难以解决的复杂系统的控制问题。智能车有自主导航功能,它是一个集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统。随着智能车技术的不断发展,智能车的应用范围和功能都将大为拓展和提高。1.3主要研究内容1.阅读相关文献确定了设计功能和软件硬件的选择方案2.硬件部分采用STM32单片机3.设计采用KEIL5软件平台和C编程语言完成软件设计4.将系统进行调试运行并成功实现5.实现的成果为实物该系统应完成的主要功能有: 蓝牙通信,手机端上位机,STM32F103C8T6上位机:1.获取并显示下位机发送的数据;2.下位机移动由发送指令来控制;下位机:1.获取上位机指令来控制下位机移动;2.系统具有避障功能;3.系统具备根据地面标下的标示线移动功能;4.系统通过监测并显示当前的速度;

第2章系统总体结构2.1设计方案本设计是一种基于STM32F103C8T6单片机技术的多功能智能小车系统设计。通过STM32F103C8T6单片机作为基本控制核心,采用干电池组进行供电,使用MC33886芯片来驱动电机,从而实现小车的循迹和避障功能。2.2功能需求分析2.2.1技术路线硬件部分需要单片机模块、前轮驱动电路模块、后轮驱动电路模块、轨迹探测模块、障碍物探测模块、键盘与显示模块;设计中采用红外传感器放置于小车中央,也可以检测障碍物的存在;距离检测是在小车后轮内侧匀距贴有m个磁钢,并且车厢内装有霍尔开关,对轮子转速进行测量;设计结构框图。2.2.2预期结果这款多功能智能小车具备多项实用功能,包括蓝牙通信、手机端上位机、STM32F103C8T6控制等。它可以通过上位机接收并显示下位机发来的数据,并通过发送指令来控制下位机移动。同时,下位机也能够接收上位机发送的指令,实现精准的移动控制。除此之外,该智能小车还具备强大的避障功能,可以自主检测并回避障碍物,确保行驶安全。同时,它还可以依照地面设下的标示线移动,实现精准的路径控制。在使用过程中,系统可以实时监测并显示当前速度,让用户清晰了解小车的运动状态。总体来说,这款多功能智能小车具备完备的功能和出色的控制能力,可以在各种场景中得心应手,为用户带来更加便捷和高效的使用体验。2.3总体方案设计在进行系统设计时,需要先进行理论知识准备阶段,认真研究设计课题并掌握相关知识。接下来,确定各个模块及其关系,收集所需的软硬件资料。然后,规划系统组成结构,勾画大体框架并提出原理框图。接着,利用软件完成硬件电路部分设计并绘制电路图,将系统部件通过接口电路连接。同时,进行软件设计部分,绘制主流程图来完成系统控制过程。最后,进行模拟仿真以检查系统是否能够按照要求实现控制功能,并整理论文。2.4单片机型号选择图2-1STM32F103C8T6原理图STM32系列单片机是‎‏一款高性能,功能强‎‏大的系列单片机。该‎‏系列单片机常被用于‎‏要求低成本、高性能‎‏和低功耗的嵌入式应‎‏用程序,其在功耗和‎‏集成方面也展现出良‎‏好的性能。由于其便‎‏捷的工具和简单的结‎‏构并且结合了强大的‎‏功能性,在业界很受‎‏欢迎。本实验采用的最小系统如图2-1。主控制芯片选择STM32F103C8T6,STM32F103C8T6是由意法半导体集团基于STM32系列ARMCortex-M内核开发的一款具有64KB的程序存储器的32位微控制器。其工作时需要2V~3.6V的电压和-40℃~85℃环境温度。表2.11STM32STM32表示ARMCortex-M内核的32位微控制器2FF代表芯片子系列3103103代表增强型系列4CR这一项代表引脚数,其中T代表36脚,C代表48脚R代表64脚,V代表100脚,Z代表144脚,I代表176脚58B这一项代表了内嵌Flash容量,其中6代表32K字节Flash,8代表64K字节Flash,C代表256K字节Flash,D代表384字节Flash,E代表512K字节Flash,G代表1M字节Flash6TT这一项代表封装,其中H代表BGA封装,T代表LQFP封装,U代表VFQFPN封装766这一项代表工作温度范围,其中6代表-40——85℃,7代表-40——105℃

第3章系统的硬件部分设计3.1系统总体设计本设计是一种基于单片机技术的多功能智能小车系统设计。通过STM32F103C8T6单片机作为基本控制核心,采用干电池组进行供电,使用MC33886芯片来驱动电机。该系统应完成的主要功能有:蓝牙通信,手机端上位机,STM32F103C8T6上位机:1.接收并显示下位机发来的数据;2.发送指令控制下位机移动;下位机:1.可接收上位机指令控制下位机移动;2.系统具备避障功能;3.系统具备依照地面设下的标示线移动功能;4.系统可监测并显示当前速度;总体原理图如下所示:图3-1总体原理图3.2系统的主要功能模块设计3.2.1红外避障传感器模块设计红外避障传感器是一种用于检测障碍物的传感器,它通过发射红外线信号并测量反射回来的信号来判断障碍物的距离和方向。这种传感器通常由红外发射器、红外接收器和信号处理器组成。红外发射器发射红外光线,红外接收器接收反射回来的光线,信号处理器对接收到的信号进行处理并输出距离信息。本设计采用E18-D80NKNPN三线常开的红外光电传感器来实现避障功能。(如图3-2)图3-2红外避障传感器模块原理图光电开关又称光电传感器,传感器分三中类型:漫反射型、反馈反射型、对射型。传感器可与PLC可编程控制器单片机非门电路电子计数器小型继电器等产品配套使用。发射器对准检测到的目标不间断的发射红外线光束,接收器把检测物返射回来的光束(光能量)转换为电流传输给后面的集成电路,经过集成电路处理后再通过放大器放大后输出。特性参数:

这是一种接纳于一体与集发射的光电传感器。距离检测可根据要求进行调节。该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点。电气的特性:尺寸大小:直径:18MM传感器的长度:70MM引线的长度:80CM运用案例:1、生产线货物自动计数设备2、多功能提醒器3、走迷宫机器人产品参数输出电流DC/SCR/继电器Controloutput:100mA/5V供电消耗电流DC<25mA响应时间<2ms指向角:≤15°,有效距离3-80CM可调检测物体:透明或不透明体工作环境温度:-25℃~+55℃标准检测物体:太阳光10000LX以下白炽灯3000LX以下以下是该模块的硬件电路设计。电源供应:E18-D80NK使用5V直流电源供电。可以通过连接电源正极到VCC引脚,电源负极到GND引脚来提供电源。发光二极管(LED):该模块内置了一个发光二极管,用于发射红外光束。LED的正极连接到VCC引脚,负极连接到LED引脚。接收器(Phototransistor):E18-D80NK内置了一个光电晶体管接收器,用于接收反射回来的红外光信号。接收器的集电极连接到VCC引脚,发射极连接到OUT引脚。比较器:该模块还包含一个比较器,用于将接收到的光信号转换为数字输出。比较器的一个输入端连接到接收器的发射极,另一个输入端连接到一个可调电阻上,以便调整传感器的灵敏度。比较器的输出连接到OUT引脚。输出信号:OUT引脚用于输出传感器的数字信号。当检测到物体时,OUT引脚输出低电平(通常为0V);当没有检测到物体时,OUT引脚输出高电平(通常为VCC电压,即5V)。电流限制电阻:为了保护LED和接收器,可以在VCC和LED引脚之间、VCC和OUT引脚之间分别加入适当的电流限制电阻。3.2.2电机驱动模块设计图3-3电机驱动原理图主要采用L298N,通过单片机的I/O输入改变芯片控制端的电平,即可以对电机进行正反转,停止的操作,输入引脚与输出引脚的逻辑关系图为表3-1L298N功能模块EoAIn1In2运转状态0××停止110正转101反转111刹停100停止如表3-1为L298N构成的电机驱动电路。L298N是SGS公司的产品,内部包含4通道逻辑驱动电路,是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。IN1、IN2、IN3、IN4引脚从单片机接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端控制电机的停转。下面是L298N电机驱动模块的硬件电路设计。电源供应:L298N模块需要一个外部电源来为电机提供电力。典型的工作电源电压为5V至35V。将正极连接到模块的VCC引脚,负极连接到模块的GND引脚。此外,还需要连接一个外部电源地(GND)与L298N模块的GND引脚相连。控制信号输入:L298N模块的控制信号用于控制电机的转动方向和速度。每个电机通道都有两个控制输入引脚。通常使用一个双极性(2-bit)逻辑输入信号来控制电机的转向和一个模拟输入信号(PWM)来控制电机的转速。转向控制:对于每个电机通道,有一个使能引脚(ENA和ENB)用于启用或禁用电机的转动。当ENA或ENB引脚为高电平时,相应的电机通道被启用;当ENA或ENB引脚为低电平时,相应的电机通道被禁用。转速控制:对于每个电机通道,还有一个方向控制引脚(IN1和IN2,IN3和IN4)。通过将这些引脚设置为不同的逻辑电平组合,可以控制电机的正转、反转和停止。通常,通过设置IN1和IN2引脚的逻辑电平来控制电机通道A的转向,通过设置IN3和IN4引脚的逻辑电平来控制电机通道B的转向。转速控制:可以使用模拟输入信号(PWM)来控制电机的转速。通过将ENA和ENB引脚连接到可以提供PWM信号的微控制器的引脚,可以调整电机的转速。PWM信号的占空比决定了电机的转速。电机连接:将电机的正极连接到L298N模块的OUT1和OUT2引脚,将电机的负极连接到L298N模块的OUT3和OUT4引脚。每个电机通道都有两个引脚,用于控制电机的正转和反转。电流检测:L298N模块还提供了一个电流检测功能,可以测量通过电机的电流。通过连接一个电流检测电阻到模块的VCC引脚和OUT1引脚之间,可以测量电机通道A的电流。类似地,通过连接一个电流检测电阻到模块的VCC引脚和OUT4引脚之间,可以测量电机通道B的电流。3.2.3循迹传感器模块设计图3-4循迹传感器模块原理图主要采用TCRT5000寻迹模块。TCRT5000传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,红外接收管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,红外接收管饱和,此时模块的输出端为高电平,指示二极管被点亮。循迹原理:模块上配有一个输出指示灯,部分模块还有电源指示灯,我们主要关注输出指示灯。红外发射器一直发射红外线,红外线经发射后被接收,此时输出低电平,输出指示灯点亮。黑色是不反射红外线的,也就是说循迹模块遇到黑线,模块输出高电平,输出指示灯熄灭。当然除了遇到黑线熄灭,当距离太远红外线反射后检测不到,此时指示灯也会熄灭。那么如果要循迹,模块离地面要近,在没有遇到黑线时确保指示灯长亮,一旦指示灯熄灭就说明遇到黑线了。接线方式:1、VCC:接电源正极(5V)2、GND:接电源负极3、OUT:高/低电平开关信号(数字信号0和1)下面是TCRT5000寻迹模块的硬件电路设计。电源供应:TCRT5000模块使用5V直流电源供电。将正极连接到模块的VCC引脚,负极连接到模块的GND引脚。发射二极管(Emitter):TCRT5000模块内置了一个红外发射二极管,用于发射红外光束。将发射二极管的正极连接到VCC引脚,负极连接到Emitter引脚。接收光敏二极管(Phototransistor):该模块还包含一个光敏二极管接收器,用于接收反射回来的红外光信号。将光敏二极管的集电极连接到VCC引脚,发射极连接到OUT引脚。电流限制电阻:为了保护发射二极管和光敏二极管,可以在发射二极管的负极和Emitter引脚之间,以及VCC引脚和光敏二极管的发射极之间分别加入适当的电流限制电阻。输出信号:OUT引脚用于输出传感器的数字信号。当检测到反射面时,OUT引脚输出低电平(通常为0V);当没有检测到反射面时,OUT引脚输出高电平(通常为VCC电压,即5V)。模块灵敏度调节:TCRT5000模块通常具有一个灵敏度调节电位器。通过调整电位器,可以调整模块对反射面的敏感度。3.2.4测速传感器模块设计图3-5测速传感器模块原理图本设计光电测速传感器模块实时监测当前智能小车的移动速度。光电式测速传感器是一种基于光电变换原理的器,广泛用于电机转速检测,脉冲技术,位置限位等。光电测速传感器是一种用于测量物体速度的传感器,它通过光学原理来检测物体的运动。光电测速传感器通常由一个发光二极管和一个光敏电阻组成。当物体经过传感器时,它会遮挡光线,从而改变光敏电阻的电阻值。这个变化被转化为电信号,然后被传感器输出。光电测速传感器可以 ‎用于测 ‎量不同 ‎类型的 ‎物体, ‎如旋转 ‎物体、 ‎移动物 ‎体和流 ‎体。它 ‎们广泛 ‎应用于 ‎许多领 ‎域,包 ‎括工业 ‎自动化 ‎、交通 ‎运输和 ‎体育竞 ‎技等。 ‎例如, ‎在生产 ‎线上, ‎光电测 ‎速传感 ‎器可以 ‎用来监 ‎测机器 ‎的运行 ‎速度, ‎以确保 ‎生产过 ‎程的稳 ‎定和高 ‎效。在 ‎运动比 ‎赛中, ‎光电测 ‎速传感 ‎器可以 ‎用来测 ‎量运动 ‎员的速 ‎度和时 ‎间,以 ‎帮助评估运动员的表现。下面是光电测速传感器模块的典型硬件电路设计。电源供应:光电测速传感器模块通常使用5V直流电源供电。将正极连接到模块的VCC引脚,负极连接到模块的GND引脚。发射器(Emitter):模块内置了一个发射器,用于发射红外光束。将发射器的正极连接到VCC引脚,负极连接到发射器引脚。接收器(Receiver):模块还包含一个接收器,用于接收被物体阻挡后反射回来的光信号。将接收器的正极连接到VCC引脚,负极连接到接收器引脚。光敏电阻(Photocell):光电测速传感器模块通常使用一个光敏电阻来检测光的变化。将光敏电阻的一个引脚连接到VCC引脚,另一个引脚连接到接收器引脚。比较器:为了将接收到的光信号转换为数字输出,通常使用一个比较器。将比较器的一个输入端连接到接收器引脚,另一个输入端连接到一个可调电阻上,以便调整传感器的灵敏度。比较器的输出连接到输出引脚。输出信号:输出引脚用于输出传感器的数字信号。当光阻被物体阻挡时,输出引脚输出低电平(通常为0V);当光阻未被物体阻挡时,输出引脚输出高电平(通常为VCC电压,即5V)。3.3.5蓝牙模块设计图3-6蓝牙模块原理图HC-06蓝牙模块采用CSR主流蓝牙芯片,蓝牙V2.0协议标准;串口模块工作电压为3.3V,波特率为1200,2400,4800,9600,19200,38400,57600,115200,用户可根据需求自行设置;核心模块尺寸大小为:28mmx15mmx2.35mm;工作电流为40MA;休眠电流小于1MA;当用于GPS导航系统,水电煤气抄表系统,工业现场采控系统时,可以与蓝牙笔记本电脑、电脑加蓝牙适配器、PDA等设备进行无缝连接。HC-06蓝牙模块是一种简单、易用的串口通信蓝牙模块,与HC-05类似,但通常用于低成本的蓝牙应用,其传输速度和稳定性相对较低。它采用蓝牙2.0规范,可以通过UART串口与其他设备进行通信,通常与单片机、Arduino、树莓派等嵌入式设备一起使用,实现无线数据传输。HC-06蓝牙模块有两种工作模式:主模式和从模式。在主模式下,模块可以主动搜索其他蓝牙设备,并连接到它们。在从模式下,模块等待其他蓝牙设备连接并进行通信。类似于HC-05,HC-06也可以通过AT命令进行配置。其AT命令集如下:1、测试通讯发送:AT(返回OK,一秒左右发一次)返回:OK2、改蓝牙串口通讯波特率发送:AT+BAUD1返回:OK1200发送:AT+BAUD2返回:OK2400……1120022400348004960051920063840075760081152009230400A460800B921600C1382400下面是HC-06蓝牙模块的硬件电路设计。电源供应:HC-06模块需要3.3V至5V的直流电源供电。将正极连接到模块的VCC引脚,负极连接到模块的GND引脚。串口连接:HC-06模块使用串口通信与主控设备进行数据交互。将主控设备的TX引脚连接到模块的RX引脚,将主控设备的RX引脚连接到模块的TX引脚。此外,还需将主控设备的地(GND)与模块的GND引脚相连,以确保共地。LED指示灯:HC-06模块通常带有一个LED指示灯,用于显示模块的工作状态。将模块的LED引脚连接到一个适当的限流电阻上,然后将其连接到电源的正极。配置引脚(可选):有些HC-06模块还带有一个配置引脚(STATE或KEY),用于设置模块的工作模式。通过对该引脚的连接或断开,可以实现模块的配对、配置等功能。具体的配置引脚用法请参考模块的数据手册。天线连接:HC-06模块需要连接一个外部天线以实现无线通信。将天线引脚连接到模块的ANT引脚。

第4章系统的软件设计4.1软件主流程图在多功能智能小车系统通电后,整个系统将以单片机为核心,并通过系统控制模块完成基本功能,例如按下指令即可启动或停止行驶等。此外,系统还采用红外避障传感器,能够及时探测路线上的障碍物并调整行进方向。当进入循迹模式时,循迹传感器会帮助小车辨识标志,以实现自动行驶。此外,通过蓝牙模块,系统可以与手机端进行通信,以实现控制小车行驶的功能。图4-1主流程图4.2红外避障模块的软件设计接通电源之后,传感器的红外发射二极管连续发射红外线,当发射出的红外线未被反射回来或被反射回来但其强度不够大时,红外接收管会一直处于关断状态,当被检测的物体出现在检测的范围之内时,红外线被反射回来并且强度足够大时,红外接收管处于饱和状态。图4-2红外避障模块设计流程图4.3循迹传感器模块的软件设计TCRT5000属于一款红外发射式光电传感器,是由高灵敏度的光电晶体管和高发射功率的红外光电二极管所组成。电路通电后,传感器的红外发射二极管连续发射红外线,当其发射出的红外线信号没有被反射回来或者被反射回的强度不够大时,光敏晶体管会一直处于断开状态,当光电传感器输出高电平,通过反相器后,模块则输出低电平。当有障碍物出现在传感器的检测范围之内时,被反射回来红外线强度足够大时,光敏晶体管处于饱和导通状态,光电传感器输出低电平,通过反相器后,模块输出高电平。若是此时在Signal网络接一个指示灯到地,可以指示出模块的开关状态。流程图如下。图4-3循迹传感器模块4.4蓝牙模块的软件设计蓝牙模块接收手机发送的信号,将信号通过串口发送给单片机,单片机接收到信号后,执行相应的操作。如果要向模块发送指令,通常是采用按键的方式,可以使用扫描按键,也可以使用外部中断,按下按键就执行发送指令的程序,比如通过按键来切换模块主从模式,修改名称,修改密码,修改波特率等等。所涉及到的单片机部分主要是由串口和定时器构成,串口用来向模块发送指令或者接收来自外部的信号,定时器主要用来产生定时中断,用来界定两帧数据,比如约定接收的相邻两个字节时间间隔超过5ms,则认定为是两帧数据,这个间隔是自定义的。串口部分是整个最重要的一部分,大致要完成一下事情:初始化串口,设置好串口的通信波特率,开启串口中断,编写串口中断函数。在串口中断函数里面把接收的数据存入一个数组当中。编写串口发送函数,用来向模块发送指令。stm32有现成函数可以调用,51单片机要自己去编写单字节的发送函数和字符串发送函数。初始化定时器,设置好定时时间,使能中断,在中断函数里面关闭定时器。图4-4蓝牙模块流程图

第5章系统测试5.1系统实物图如图5-1是多功能智能小车系统设计的实物,它具有循迹和避障功能,通过蓝牙通信的方式进行操控。图5-1系统完整实物图5.2测试原理图5-2红外传感器和循迹传感器如图5-2是循迹传感器和红外传感器。通过红外传感器接收的数据能够判断前方是否存在障碍物,完全可实现小车的避障功能;以下为循迹传感器,小车循迹功能可通过循迹传感器来实现,当开启循迹模式,小车会依照地面设下的标示线移动。图5-3测速传感器如图5-3为测速传感器,配合光电码盘实现测速功能。图5-4蓝牙如图5-4为蓝牙模块,实现上位机与下位机通信。图5-5手机端如图5-5为手机端上位机,实时显示小车速度,并且通过前进、后退、左转、右转、停止来控制小车移动。图5-6手机端如图5-6,当点击循迹模式时,小车将依照地面上设计的标示线进行移动,按下停止按钮,会退出循迹模式。第6章总结与展望6.1总结随着科技的不断发展,智能化和自动化技术在各个领域得到了广泛应用,其中智能交通系统作为一种重要的应用领域,对交通安全和交通效率的提升起着积极作用。本论文以基于单片机的多功能智能小车设计为研究对象,旨在通过集成多项智能功能,实现小车在不同场景下的智能控制和自主决策,以提高小车在复杂环境中的自主导航和任务执行能力。首先,本论文通过深入研究单片机技术,选用了一款性能卓越、资源丰富的单片机作为智能小车的控制核心,实现了小车的底层硬件控制和传感器数据采集。在硬件设计上,采用了先进的电机驱动技术和传感器模块,实现了小车的高效运动控制和精准位置定位,为后续的智能功能提供了强有力的技术支持。其次,本论文通过软件设计,开发了一套完整的控制算法和智能决策策略,实现了小车的多功能智能控制。通过对传感器数据的实时处理和分析,小车能够自主识别环境中的障碍物、路径规划和避障导航,实现了在复杂环境中的自主导航和路径规划。同时,本论文还引入了机器学习算法,对小车的行驶轨迹和环境感知进行了优化和智能化处理,提高了小车在不同场景下的自主决策能力。此外,本论文还实现了小车的多功能操作和远程控制。通过在小车上搭载无线通信模块,实现了小车的远程图像传输和控制,使操作者可以通过移动终端设备对小车进行实时监控和控制,从而实现了小车的远程遥控和多功能操作。最后,通过对多个实验场景下的小车性能测试和实际应用验证,本论文证明了所设计的基于单片机的多功能智能小车具有较好的性能和实用性。小车能够在不同环境下实现高效、精准的自主导航和任务执行,具有较强的自主决策和智能控制能力,能够适应不同场景下的应用需求,如室内导航、室外探测、环境监测等。同时,小车还具有良好的远程控制和操作体验,操作者可以通过移动终端设备方便地对小车进行监控和控制,实现了远程遥控和多功能操作。本论文的研究成果对于智能交通系统和无人驾驶领域具有重要的理论和实践价值。通过将单片机技术与传感器技术、控制算法和机器学习算法相结合,实现了小车的多功能智能控制,为智能交通系统和无人驾驶技术的发展提供了新的思路和方法。此外,本论文还在小车的远程控制和多功能操作方面取得了一定的实践经验,为未来智能交通系统的远程操作和多功能应用提供了参考。6.2展望随着科技的不断发展,智能小车系统的应用范围也越来越广泛。未来,多功能智能小车系统将更加智能化、自主化和可靠化。首先,智能小车系统将更加智能化。随着人工智能技术的不断发展,智能小车系统将可以更加智能地感知周围环境,并做出更加精准的决策。例如,小车可以通过摄像头感知交通信号灯,并根据信号灯的颜色自动停车或行驶。同时,小车也可以学习用户的行为习惯和喜好,根据用户的需求自主调整行驶路线和速度。其次,智能小车系统将更加自主化。未来,智能小车系统将具有更强的自主决策能力和自我修复能力。例如,小车可以根据遇到的问题自主判断并进行修复,避免了用户的干预。此外,小车还可以通过云端技术实现多个小车之间的协同工作,提高了小车系统的整体效率和稳定性。最后,智能小车系统将更加可靠化。未来,智能小车系统将具有更加完善的安全保障措施,保障用户和行车安全。例如,小车可以通过多种传感器对路况进行实时监测,以便在紧急情况下及时做出反应。同时,小车还可以通过多种数据加密技术保障用户的数据安全。综上所述,多功能智能小车系统的未来展望是令人期待的。未来,随着技术的不断创新和应用,我们相信智能小车系统将会变得更加智能化、自主化和可靠化,为人们的出行带来更加便捷、安全和舒适的体验。

参考文献[1]彭岚峰,李晓芳,章小宝基于单片机与无线网络的实验室安全管理系统设计门现代电子技术2019(10):99-100.[2]杨永红,高磊,余航,徐欣辰.DeepWeb接口的自动识别技术研究[j].计算机工程与应用,2017(7):109-114.[3]甘礼福,彭博齐,邓金海基于STM32实验室环境监测系统的研究与设计.轻工科技2020(03):70-73.[4]陈朝大,韩剑.单片机原理与应用:实验实训和课程设计[M].华中科技大学出版社,2018.[5]莫先.基于STM32单片机家电控制及家居环境监测系统设计与实现[D].重庆:重庆理工大学2019.[6]郭吴坤,电子测试.基于单片机和蓝牙控制的智能小车设计[J].2019(11).27-29.[7]汪洋,武明虎.基于STM32汽车仪表检测系统中信号模块的设计.仪表技术与传感器,2018(12):41-43.[8]闫敏杰,夏宁,万忠,等.物联网在现代农业中的应用[J].中国农学通报.2019,(8).[9]李通,韩建萍,魏诚.基于STM32电气控制器硬件设计,山西能源学院学报,2020,33(04):100-102.[10]孙静,杨森林雷俊红.STM32单片机原理及应用课程思政研究刚.农家参谋,2020(24):154.[11]许威,丁学文,宋兰草,李莉.基于MATLAB和OpenCV的双目视觉测距系统的实现[J].天津职业技术师范大学学报.2017,(04)[12]汪珍珍,赵连玉,刘振忠.基于MATLAB立体视觉测距系统[J].天津理工大学报,2013,(01).[13]高翔.视觉SLAM十四讲[M].电子工业出版社.2017.[14]张欢,安利,张强,郭迎钢,宋锡宁,高乾.SGBM算法与BM算法分析研究[J].测绘与空间地理息,2019,(10).[15]高文静;杨预立;邢强;徐海黎.基于目标运动的复眼式双目视觉测距法[J].应用光学.2020.[16]DemancgaIngrid,MujanIgor,SingerBrettC.,AndelkovicAleksandarS.BabichFrancesco,LicinaDusanPerformanceassessmentoflow-costenvironmentalmonitorsandsinglesensorsundervariableindoorairqualityandthermalconditions[J].BuildingandEnvironment,2020,187.[17]PengweiHua,XiaowuLiu,JiguoYu,NaDang,XiaoweiZhang.Energy-efficientadaptiveslice-basedsecuredataaggregationschemeinWSN[J].ProcediaComputerScience,2018,129.[18]MPanaitescu,PanaitescuM,DumitrescuMV,PanaitescuFV.Indoorairqualitymonitoringuniversaldevice[J].IOPConferenceSeries:MaterialsScienceandEngineering,2020,916(1).[19]H.Chojcr,P.T.B.S.Branco,F.G.Martins,M.C.M,Alvim-Ferraz,S.I.V.Sousa.Developmentoflow-costindoorairqualitymonitoringdevices:Recentadvancements(J.ScienceoftheTotalEnvironment,2020,727.[20]ZhouY,DongW,FYuan,etal.ResearchofOnlineWaterQualityMonitoringSystemBasedonZigbeeNetwork[J].AdvancesinInformatioSciences&ServiceSciences,2019,4(5):255-261.

附录电路图源代码#include"delay.h"#include"sys.h"#include"timer.h"#include"usart.h"#include"oled.h"#include"bmp.h"#definePB5PBout(5) #definePB6PBout(6)#definePB7PBout(7)#definePB8PBout(8)#defineLEDPCout(13)#definebeepPBout(9)#definePB12GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)#definePB13GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)#definePB14GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_14)#definePC15GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_15)unsignedcharfs_fg=0;externu8point;unsignedintdis_jl=0;unsignedintjl_r[2]={0,0};unsignedcharlc[]="0000.0CM";unsignedcharsp_d[]="000cm/s";unsignedcharly_da=0;u16msHcCount=0;unsignedintsp_count=0;unsignedintnext_lc=0;unsignedintlc_sp1=0;unsignedintlc_sp2=0;voiddde(u16time){u16i=0; while(time--) {i=12000; while(i--); }}voidGPIO_Config(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOC,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;// PB9ÉèΪÊä³ö½Å£¬·åÃùÆ÷GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //??GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //50M????GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; GPIO_Init(GPIOB,&GPIO_InitStructure);beep=1;}voidsend(unsignedchardata){USART1->DR=data;while((USART1->SR&0X40)==0);}voidsen3_str(unsignedchar*dat){while(*dat!='\0'){send(*dat); dat++;}}voidqianjin(){PB5=1; PB6=0; PB7=1; PB8=0; TIM_SetCompare3(TIM2,21500); TIM_SetCompare4(TIM2,19000);}voidht(){PB5=0; PB6=1; PB7=0; PB8=1; TIM_SetCompare3(TIM2,21500); TIM_SetCompare4(TIM2,21500);}voidzz(){PB5=1; PB6=0; PB7=1; PB8=0; TIM_SetCompare3(TIM2,15000); TIM_SetCompare4(TIM2,38000);}voidyz(){PB5=1; PB6=0; PB7=1; PB8=0; TIM_SetCompare3(TIM2,36000); TIM_SetCompare4(TIM2,15000);}voidtz(){PB5=0; PB6=0; PB7=0; PB8=0; TIM_SetCompare3(TIM2,0); TIM_SetCompare4(TIM2,0);}voidzz1(){PB5=0; PB6=1; PB7=1; PB8=0; TIM_SetCompare3(TIM2,20000); TIM_SetCompare4(TIM2,20000);}voidyz1(){PB5=1; PB6=0; PB7=0; PB8=1; TIM_SetCompare3(TIM2,20000); TIM_SetCompare4(TIM2,20000);} voidEXTIX_Init(void){ EXTI_InitTypeDefEXTI_InitStructure; NVIC_InitTypeDefNVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource1); EXTI_InitStructure.EXTI_Line=EXTI_Line1; EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising_Falling;//ÉÏÉýÑØºÍϽµÑØ´¥·¢ EXTI_InitStructure.EXTI_LineCmd=ENABLE; EXTI_Init(&EXTI_InitStructure); NVIC_InitStructure.NVIC_IRQChannel=EXTI1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x03; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x01; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure);}voidjs_jl(){i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论