智能寻迹小车实验报告

合集下载

寻迹小车实验报告

寻迹小车实验报告

自动寻迹小车设计报告一、系统设计1、设计要求(1)自动寻迹小车从安全区域启动。

(2)小车按检测路线运行,自动区分直线轨道和弯路轨道,在弯路处拐弯,实现灵活前进、转弯、等功能2.小车寻迹的原理这里的寻迹是指小车在白色地板上寻黑线行走,通常采取的方法是红外探测法。

红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。

单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。

红外探测器探测距离有限,一般最大不应超15cm。

对于发射和接收红外线的红外探头,可以自己制作或直接采用集成式红外探头。

3、模块方案根据设计要求,本系统主要由控制器模块、寻迹传感器模块、直流电机及其驱动模块等构成。

控制器模块:控制器模块由AT89C51单片机控制小车的行走。

寻迹传感器模块:寻迹传感器用光电传感器ST188检测线路并反馈给单片机执行。

ST188采用高发射功率红外光电二极管和高灵敏度双光电晶体管组成。

检测距离:4--13mm直流电机及其驱动模块:直流电机用L298来驱动。

L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。

用该芯片作为电机驱动,操作方便,稳定性好,性能优良。

4.系统结构框图:二、硬件实现及单元电路设计1、微控制器模块的设计在本次设计中我们采用了AT89C51位主控制器。

它具有智能化,可编程,小型便携等优点。

2.光电传感器:本次试验我们采用了ST188光电传感器,ST188采用高发射功率红外光电二极管和高灵敏度双光电晶体管组成。

检测距离:4--13mm。

其连接电路图如下:3.直流电机及其驱动模块在直流电机驱动问题上,我们采用一片L298来驱动直流电机。

循迹小车实习报告

循迹小车实习报告

一、实习背景随着科技的发展,自动化技术在各个领域得到了广泛应用。

智能循迹小车作为自动化技术的一个重要应用,具有广泛的前景。

为了提高我们的实践能力,培养我们的创新精神,我们参加了智能循迹小车实习课程。

通过本次实习,我们学习了智能循迹小车的设计、制作和调试方法,了解了其工作原理,提高了我们的动手能力和团队协作能力。

二、实习目的1. 熟悉智能循迹小车的结构、原理和功能。

2. 掌握智能循迹小车的制作方法,提高动手能力。

3. 学习电路设计、传感器应用、单片机编程等知识。

4. 培养团队协作精神,提高沟通能力。

三、实习内容1. 智能循迹小车原理及结构智能循迹小车主要由以下几部分组成:车体、驱动电机、传感器、单片机、控制电路等。

车体是智能循迹小车的承载部分,驱动电机负责提供动力,传感器用于检测路面信息,单片机负责处理传感器信息,控制电路负责将单片机的指令转换为电机驱动信号。

2. 电路设计电路设计主要包括以下几个方面:(1)电源电路:为智能循迹小车提供稳定的电源。

(2)驱动电路:将单片机的控制信号转换为电机驱动信号。

(3)传感器电路:将传感器信号转换为单片机可识别的信号。

(4)控制电路:对单片机输出的控制信号进行放大、滤波等处理。

3. 传感器应用智能循迹小车主要采用红外传感器进行路面检测。

红外传感器具有体积小、成本低、安装方便等优点。

在制作过程中,我们需要对红外传感器进行调试,使其能够准确检测路面信息。

4. 单片机编程单片机编程是智能循迹小车实现智能控制的关键。

我们主要学习了C语言编程,掌握了单片机的基本指令、函数、中断等知识。

在编程过程中,我们需要编写程序,使单片机能够根据传感器信息控制小车行驶。

5. 调试与优化在制作过程中,我们需要对智能循迹小车进行调试,使其能够稳定、准确地行驶。

调试过程中,我们需要对电路、传感器、单片机等部分进行调整,以达到最佳效果。

四、实习成果通过本次实习,我们成功制作了一台智能循迹小车,并使其能够稳定、准确地行驶。

智能寻迹小车实验报告

智能寻迹小车实验报告

智能寻迹小车实验报告
实验目的:
设计一个智能寻迹小车,能够依据环境中的黑线自主行驶,并避开障碍物。

实验材料:
1. Arduino开发板
2. 电机驱动模块
3. 智能车底盘
4. 红外传感器
5. 电源线
6. 杜邦线
7. 电池
实验步骤:
1. 按照智能车底盘的说明书将车底盘组装起来。

2. 将Arduino开发板安装在车底盘上,并与电机驱动模块连接。

3. 连接红外传感器到Arduino开发板上,以便检测黑线。

4. 配置代码,使小车能够依据红外传感器检测到的黑线自主行驶。

可以使用PID控制算法来控制小车的速度和方向。

5. 测试小车的寻迹功能,可以在地面上绘制黑线,观察小车是否能够准确地跟随黑线行驶。

6. 根据需要,可以添加避障功能。

可以使用超声波传感器或红外避障传感器来检测障碍物,并调整小车的行驶路线。

实验结果:
经过实验,可以发现小车能够依据红外传感器检测到的黑线自主行驶,并能够避开障碍物。

小车的寻迹功能和避障功能能够实现预期的效果。

实验总结:
本次实验成功设计并实现了智能寻迹小车。

通过使用Arduino 开发板、电机驱动模块和红外传感器等材料,配合合适的代码配置,小车能够准确地跟随黑线行驶,并能够避开障碍物。

该实验展示了智能小车的基本原理和应用,为进一步研究和开发智能车提供了基础。

智能循迹小车实验报告

智能循迹小车实验报告

智能循迹小车实验报告第一篇:智能循迹小车实验报告摘要本设计主要有单片机模块、传感器模块、电机驱动模块以及电源模块组成,小车具有自主寻迹的功能。

本次设计采用STC公司的89C52单片机作为控制芯片,传感器模块采用红外光电对管和比较器实现,能够轻松识别黑白两色路面,同时具有抗环境干扰能力,电机模块由L298N芯片和两个直流电机构成,组成了智能车的动力系统,电源采用7.2V的直流电池,经过系统组装,从而实现了小车的自动循迹的功能。

关键词智能小车单片机红外光对管 STC89C52 L298N 1 绪论随着科学技术的发展,机器人的设计越来越精细,功能越来越复杂,智能小车作为其的一个分支,也在不断发展。

在近几年的电子设计大赛中,关于小车的智能化功能的实现也多种多样,因此本次我们也打算设计一智能小车,使其能自动识别预制道路,按照设计的道路自行寻迹。

设计任务与要求采用MCS-51单片机为控制芯片(也可采用其他的芯片),红外对管为识别器件、步进电机为行进部件,设计出一个能够识别以白底为道路色,宽度10mm左右的黑色胶带制作的不规则的封闭曲线为引导轨迹并能沿该轨迹行进的智能寻迹机器小车。

方案设计与方案选择3.1 硬件部分可分为四个模块:单片机模块、传感器模块、电机驱动模块以及电源模块。

3.1.1 单片机模块为小车运行的核心部件,起控制小车的所有运行状态的作用。

由于以前自己开发板使用的是ATMEL公司的STC89C52,所以让然选择这个芯片作为控制核心部件。

STC89C52是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年。

其程序和数据存储是分开的。

3.1.2 传感器模块方案一:使用光敏电阻组成光敏探测器采集路面信息。

阻值经过比较器输出高低电平进行分析,但是光照影响很大,不能稳定工作。

方案二:使用光电传感器来采集路面信息。

循迹小车的装调实训报告

循迹小车的装调实训报告

一、实训背景随着科技的飞速发展,智能机器人技术逐渐成为研究的热点。

循迹小车作为一种典型的智能机器人,具有简单、实用、成本低等优点,是学习和研究智能控制技术的重要工具。

本实训旨在通过组装和调试循迹小车,使学生掌握智能控制系统的基本原理和装调方法,提高学生的动手能力和创新意识。

二、实训目的1. 熟悉循迹小车的结构和工作原理;2. 学会循迹小车的组装和调试方法;3. 培养学生的团队协作能力和创新意识;4. 提高学生对智能控制技术的认识和应用能力。

三、实训内容1. 循迹小车简介循迹小车是一种能够在特定路径上自动行驶的智能小车。

它通过检测地面上的线条或标记,根据反馈信号调整行驶方向,实现自动循迹。

循迹小车主要由以下几个部分组成:(1)车体:包括车身、轮子、支架等;(2)传感器:用于检测地面上的线条或标记;(3)控制器:根据传感器信号控制小车行驶;(4)驱动器:将控制器输出的信号转换为电机转速,驱动小车行驶;(5)电源:为小车提供电能。

2. 循迹小车组装(1)准备工作:准备好组装所需的材料、工具和电路板;(2)组装车体:将车身、轮子、支架等组装成小车;(3)安装传感器:将传感器安装在车体上,确保传感器能够检测到地面上的线条或标记;(4)连接电路:将传感器、控制器、驱动器和电源等电路连接起来;(5)调试电路:检查电路连接是否正确,确保电路正常工作。

3. 循迹小车调试(1)调试传感器:调整传感器位置,使传感器能够准确检测到地面上的线条或标记;(2)调试控制器:调整控制器参数,使小车能够根据传感器信号准确调整行驶方向;(3)调试驱动器:调整驱动器参数,使电机转速与小车行驶速度相匹配;(4)测试循迹性能:将小车放置在特定路径上,观察小车是否能够自动循迹。

四、实训结果与分析1. 实训结果通过本次实训,学生成功组装和调试了一辆循迹小车,小车能够在特定路径上自动循迹。

2. 实训分析(1)组装过程中,学生学会了如何使用工具,提高了动手能力;(2)调试过程中,学生学会了如何调整传感器、控制器和驱动器参数,提高了对智能控制技术的认识;(3)团队合作方面,学生学会了相互协作、沟通和解决问题,提高了团队协作能力;(4)创新意识方面,学生在实训过程中积极思考,提出了一些改进方案,提高了创新意识。

循迹小车的实验报告

循迹小车的实验报告

循迹小车的实验报告循迹小车的实验报告引言:循迹小车是一种基于光电传感器的智能机器人,能够通过感知地面上的黑线,实现自主导航。

本次实验旨在探索循迹小车的工作原理及其应用,并对其性能进行评估。

一、实验背景循迹小车作为一种智能机器人,广泛应用于工业自动化、仓储物流、智能家居等领域。

其基本原理是通过光电传感器感知地面上的黑线,根据传感器信号控制电机的转动,从而实现沿着黑线行进。

二、实验过程1. 实验器材准备本次实验所需器材有循迹小车、黑线地毯、计算机等。

通过连接计算机和循迹小车,可以实现对小车的控制和数据传输。

2. 实验步骤(1)将黑线地毯铺设在实验场地上,并保证地毯表面光滑清洁。

(2)将循迹小车放置在地毯上,确保其底部的光电传感器与黑线接触。

(3)通过计算机控制循迹小车的启动,观察小车是否能够准确跟踪黑线行进。

(4)记录小车在不同条件下的行进速度、转弯半径等数据,并进行分析。

三、实验结果1. 循迹性能评估通过实验观察和数据记录,我们发现循迹小车在较为平整、光线充足的黑线地毯上表现较好,能够准确跟踪黑线行进。

然而,在黑线不明显、光线较暗的情况下,小车的循迹性能会有所下降。

2. 行进速度与转弯半径根据实验数据分析,循迹小车的行进速度受到多种因素的影响,包括地面摩擦力、电机功率等。

在实验中,我们发现增加电机功率可以提高小车的行进速度,但同时也会增大转弯半径。

3. 应用前景循迹小车作为一种智能机器人,具有广泛的应用前景。

在工业自动化领域,循迹小车可以用于物料搬运、装配线操作等任务;在仓储物流领域,循迹小车可以实现货物的自动分拣、运输等功能;在智能家居领域,循迹小车可以作为家庭服务机器人,提供家居清洁、送餐等服务。

四、实验总结通过本次实验,我们深入了解了循迹小车的工作原理和应用前景。

循迹小车的循迹性能受到地面条件和光线影响,需要进一步优化。

在实际应用中,循迹小车可以广泛应用于工业自动化、仓储物流和智能家居等领域,为人们的生活和工作带来便利。

模拟循迹小车实验报告

模拟循迹小车实验报告

一、实验目的1. 理解循迹小车的工作原理,掌握模拟循迹技术。

2. 学习使用传感器检测道路情况,并根据检测结果进行小车控制。

3. 提高嵌入式系统设计和编程能力。

二、实验原理循迹小车是一种能够按照预设轨迹运行的智能小车。

其工作原理是:通过安装在车身上的传感器检测道路情况,并将检测到的信息传输给单片机,单片机根据接收到的信息对小车进行控制,使小车按照预设轨迹运行。

本实验中,我们采用红外对管作为传感器,通过检测红外对管对光线反射的强弱来判断小车是否偏离预设轨迹。

当红外对管检测到光线反射较强时,表示小车偏离了预设轨迹;当红外对管检测到光线反射较弱时,表示小车位于预设轨迹上。

三、实验器材1. 单片机开发板(如STC89C52)2. 红外对管传感器3. 电机驱动模块4. 电机5. 轮胎6. 跑道7. 电阻、电容等电子元件8. 编程软件(如Keil)四、实验步骤1. 硬件连接:将红外对管传感器连接到单片机的I/O口,将电机驱动模块连接到单片机的PWM口,将电机连接到电机驱动模块。

2. 编程:编写程序,实现以下功能:(1)初始化红外对管传感器和电机驱动模块;(2)读取红外对管传感器的状态,判断小车是否偏离预设轨迹;(3)根据红外对管传感器的状态,控制电机驱动模块使小车按照预设轨迹运行。

3. 调试:将程序烧录到单片机中,进行调试。

观察小车是否能够按照预设轨迹运行。

五、实验结果与分析1. 实验结果:经过调试,小车能够按照预设轨迹运行。

2. 分析:(1)红外对管传感器能够有效地检测道路情况,判断小车是否偏离预设轨迹;(2)单片机能够根据红外对管传感器的状态,及时调整电机的转速,使小车按照预设轨迹运行;(3)电机驱动模块能够稳定地驱动电机,使小车运动平稳。

六、实验总结通过本次实验,我们掌握了模拟循迹小车的工作原理,学会了使用传感器检测道路情况,并根据检测结果进行小车控制。

同时,我们还提高了嵌入式系统设计和编程能力。

七、改进建议1. 可以尝试使用其他类型的传感器,如光电传感器、红外线传感器等,以提高循迹精度。

智能小车实验报告心得(3篇)

智能小车实验报告心得(3篇)

第1篇一、引言随着科技的不断发展,人工智能技术逐渐渗透到我们生活的方方面面。

作为人工智能的一个典型应用,智能小车实验为我们提供了一个将理论知识与实践操作相结合的平台。

在本次智能小车实验中,我深刻体会到了理论知识的重要性,同时也感受到了动手实践带来的乐趣和成就感。

以下是我对本次实验的心得体会。

二、实验目的本次实验旨在通过设计、搭建和调试智能小车,让学生掌握以下知识:1. 传感器原理及在智能小车中的应用;2. 单片机编程及接口技术;3. 电机驱动及控制;4. PID控制算法在智能小车中的应用。

三、实验过程1. 设计阶段在设计阶段,我们首先对智能小车的功能进行了详细规划,包括自动避障、巡线、遥控等功能。

然后,根据功能需求,选择了合适的传感器、单片机、电机驱动器等硬件设备。

2. 搭建阶段在搭建阶段,我们按照设计图纸,将各个模块连接起来。

在连接过程中,我们遇到了一些问题,如电路板布局不合理、连接线过多等。

通过查阅资料、请教老师,我们逐步解决了这些问题。

3. 编程阶段编程阶段是本次实验的核心环节。

我们采用C语言对单片机进行编程,实现了小车的基本功能。

在编程过程中,我们遇到了许多挑战,如传感器数据处理、电机控制算法等。

通过查阅资料、反复调试,我们最终完成了编程任务。

4. 调试阶段调试阶段是检验实验成果的关键环节。

在调试过程中,我们对小车的各项功能进行了测试,包括避障、巡线、遥控等。

在测试过程中,我们发现了一些问题,如避障效果不稳定、巡线精度不高、遥控距离有限等。

针对这些问题,我们再次查阅资料、调整程序,逐步优化了小车的性能。

四、心得体会1. 理论与实践相结合本次实验让我深刻体会到了理论与实践相结合的重要性。

在实验过程中,我们不仅学习了理论知识,还通过实际操作,将所学知识应用于实践,提高了自己的动手能力。

2. 团队合作在实验过程中,我们充分发挥了团队合作精神。

在遇到问题时,我们互相帮助、共同探讨解决方案,最终完成了实验任务。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DIY达人赛基于STC89C52单片机智能寻迹小车实验报告参赛队伍:队员:2014年4月一、引言我们所处的这个时代是信息革命的时代,各种新技术、新思想层出不穷,纵观世界范围内智能汽车技术的发展,每一次新的进步无不是受新技术新思想的推动。

随着汽车工业的迅速发展,传统的汽车的发展逐渐趋于饱和。

伴随着电子技术和嵌入式技术的迅猛发展,这使得汽车日渐走向智能化。

智能汽车由原先的驾驶更加简单更加安全更加舒适,逐渐的向智能驾驶系统方向发展。

智能驾驶系统相当于智能机器人,能代替人驾驶汽车。

它主要是通过安装在前后保险杠及两侧的红外线摄像机,对汽车前后左右一定区域进行不停地扫描和监视。

计算机、电子地图和光化学传感器等对红外线摄像机传来的信号进行分析计算,并根据道路交通信息管理系统传来的交通信息,代替人的大脑发出指令,指挥执行系统操作汽车。

1、来源汽车的智能化是21 世纪汽车产业的核心竞争力之一。

汽车的智能化是以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科交叉的科技。

2、智能汽车国外发展情况从20 世纪70 年代开始,美国、英国、德国等发达国家开始进行无人驾驶汽车的研究,目前在可行性和实用化方面都取得了突破性的进展。

目前日本、欧美已有企业取得实用化成果。

与国外相比,国内在智能车辆方面的研究起步较晚,规模较小,开展这方面研究工作的单位主要是一些大学和研究所,如国防科技大学、清华大学、吉林大学、北京理工大学、长安大学、沈阳自动化所等。

我国从20 世纪80 年代开始进行无人驾驶汽车的研究,国防科技大学在1992 年成功研制出我国第一辆真正意义上的无人驾驶汽车。

先后研制出四代无人驾驶汽车。

第四代全自主无人驾驶汽车于2000 年 6 月在长沙市绕城高速公路上进行了全自主无人驾驶试验,试验最高时速达到75.6Km/h。

3、我们的小车我们做的是基于STC89C52单片机开发,主要是研究3 轮小车的路径识别及其遥控运动。

二、智能寻际小车基本原理1、红外寻迹原理探测路面黑线的基本原理:光线照射到路面并反射,由于黑线和白纸对光的反射系数不同,可以根据接收到的反射光强弱来判断是否是黑线。

利用这个原理,可以控制小车行走的路迹。

这里的循迹是指小车在白色地板上循黑线行走,通常采取的方法是红外探测法。

红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。

处理器就根据是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。

红外探测器探测距离有限,一般最大不应超过3cm。

2、驱动原理:利用L298N构成电机驱动电路。

2.1 L298N 的恒压恒流桥式2A 驱动芯片L298N引脚介绍:#1和15和8引脚直接接地;#4管脚VS接2.5到46的电压,它是用来驱动电机的。

#9引脚是用来接4.5到7V的电压的,它是用来驱动L298芯片的,L298需要从外部接两个电压,一个给电机,一个给芯片。

#6和11引脚是使能端,一个使能端控制一个电机,至于控制哪个取决自己。

可以理解为总开关,只有都是高电平的时候两个电机才能工作。

#5,7,10,12是298的信号输入端,和单片机的IO口连接。

2,3,13,14是输出端。

#输入5和7控制输出2和3,输入的10,12控制输出的13,14.1;L298N是SGS公司产品,内部包含4通道逻辑驱动电路,是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V,2A以下的电机。

2;OUT1,OUT2,和OUT3,OUT4直接分别接2个电动机。

TN1,TN2,TN3,TN4引脚从单片机接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。

3;对于电机的调速,我们采用PWM调速的方法。

其原理就是开关管在一个周期内的导通时间为t,周期为T。

VCC是电源电压。

电机的转速与电机两端的电压成正比,而电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比成比例。

在硬件电路的连接上,我们将单片机的P2.0~P2.3口分别连接到298的IN1~IN4上,通过改变P2.0~P2.3上的高低电平变化以控制小车的前进方向,通过改变P2.0~P2.3口上的高低电压的占空比以控制电机的转速。

4;PWM配合桥式驱动电路L298N,实现直流电机调速,非常简单,且调速范围大。

另外我们特别在直流电机的电驱两端并联一个磁片电容104,以稳定电机的电压不致对单片机造成干扰,实际效果不错,省掉了通过光耦隔离TPL521实现单片机输出信号与电机驱动信号隔离2.2驱动板电路原理:该驱动板需要7.2电源供电,但L298的逻辑参考电平为典型的TTL电平。

用了一个L1117稳压芯片是为了提供稳定的5V输出电压和逻辑参考电压。

D9,D10,D11和D12是发光二极管,指示运动方向,与它们连接的电阻是限流电阻。

R5,R8是下拉电阻,让ENB和ENB要么是高电平,要么是低电平,避免电平混乱,提高对输入信号的抗干扰能力。

输出端都接有0.1uf电容,加上二极管平衡电路。

都是为了保护L298N,电机是感性负载,当给电机突然通电和断电,因为电流的瞬变,电机两端会产生瞬时高电压和大电流。

如果没有保护措施,L298会被损害。

3 智能小车舵机控制原理利用舵机灵活控制超声波探头1800°旋转,可以实现小车的全方位避障。

什么是舵机在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。

舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。

舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。

舵机工作原理控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。

它内部有一个基准电路,产生周期为20ms,宽度为 1.5ms 的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。

最后,电压差的正负输出到电机驱动芯片决定电机的正反转。

当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。

舵机的控制舵机的控制一般需要一个20ms 左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms 范围内的角度控制脉冲部分。

以180 度角度伺服为例,那么对应的控制关系是这样的:0.5ms--------------0 度;1.0ms------------45 度;1.5ms------------90 度;2.0ms-----------135 度;2.5ms-----------180 度;4. 智能小车避障基本原理小车避障是利用超声波测距,并根据测出离障碍物不同距离而做出不同反应。

超声波测距模块简介检测距离:5CM-5M 分辨率:5MM 数字电平信号,可直接接单片机,无需任何辅助电路,也无需单片机产生任何信号辅助,距离和模块输出信号脉冲长度成正比。

尺寸:43.5*20.5 毫米高度:13.8 毫米 2.5.2 .超声波测距原理你只需要提供一个短期的10uS 脉冲触发信号。

该模块内部将发出8 个40kHz 周期电平并检测回波。

一旦检测到有回波信号则输出回响信号。

回响信号是一个脉冲的宽度成正比的距离对象。

可通过发射信号到收到的回响信号时间间隔可以计算得到距式:uS/58= 厘米或者uS/148=英寸。

建议测量周期为60ms 以上,以防止发射信号对回响信号的影响.5. 智能小车液晶显示原理加入液晶显示一方面是为了弥补数码管显示的局限性,其次是为了显示小车的运动状态,离前方障碍物距离,循迹状态,是否遇到黑线,后退,前进还是转向,作为一个控制平台,实现小车的灵活控制。

液晶显示原理液晶显示其实就是对屏幕的每个点的扫描,带字库的液晶内部自带控制芯片,直接对它操作就可以显示出汉子字符,需要读写命令和数据,才能达到对液晶控制器的操作。

6. 避障模块电路设计小车避障模块由超声波和舵机两部分组成,超声波测量距离障碍物的距离,舵机来控制超声波探头的180°旋转,从而达到全方位的避障控制。

7.电源我们用的是六节干电池,用LM2940s降压。

原理图如下8.红外通信原理通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用电路芯片来进行控制操作。

遥控器在按键按下后,周期性地发出同一种32 位二进制码,周期约为108ms。

当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms 的编码脉冲,这108ms 发射代码由一个起始码(9ms),一个结果码(4.5ms),低8 位地址码(9ms~18ms),高8 位地址码(9ms~18ms),8 位数据码(9ms~18ms)和这8 位数据的反码(9ms~18ms)组成。

VS1838B三、材料准备1.小车底盘,电机。

我们从淘宝网上买的车模,他们直接组装好的。

2.四路红外探测系统。

3.超声波探测模块。

4.舵机、液晶5.STC89C52,L298N,LM2940S,VS1838B,IN5819。

瓷片电容104接收器及解码一体化红外线接收器是一种集红外线接收和放大于一体,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。

四、实验过程i.我们先做了单片机STC89C52最小系统。

以及稳压电路。

ii.我们用L298N以及IN5819,104电容照前边原理图搭建了驱动电路。

iii.第三阶段做红外探测,用的是LM339,红外发射、接收二极管,好多次都失败了,最后我们就买了四路红外探测系统。

调试时发现还不太好用,就换掉了滑动变阻器。

iv.第四阶段我们对小车进行组装,加上了液晶显示器,超声波模块,舵机(带动超声波探头),红外一体化接收头。

v.最后阶段对小车进行总体调试。

五、程序1.一些定义#include<reg52.h> //头文件一般无需改动#include<intrins.h> //头文件一般无需改动#include "hongwai.h"#define uchar unsigned char //宏定义#define uint unsigned intsbit out1 = P2^2;//电机驱动输出控制管脚配置sbit out2 = P2^3;sbit out3 = P2^0;sbit out4 = P2^1;sbit ena=P3^7;sbit enb=P3^6;sbit SPK=P3^5;sbit in1 = P0^1;//循迹模块的信号输入管脚配置sbit in2 = P0^2;sbit in3 = P0^3;sbit in4 = P0^4;sbit RS = P2^4; //定义端口sbit RW = P2^5;sbit EN = P2^6;sbit pwm=P0^0;sbit ECHO=P3^3;sbit TRIG= P3^4;extern unsigned char Y0;//外部链接变量#define RS_CLR RS=0#define RS_SET RS=1#define RW_CLR RW=0#define RW_SET RW=1#define EN_CLR EN=0#define EN_SET EN=1#define DataPort P1long S=0;2.驱动程序void qianjin()//使小车向前行驶{ena=enb=1;out2=out4=1;}void zuozhuan()//控制小车做轻微左转动作{ena=enb=1;out1=0;out2=out3=out4=1;}void youzhuan()//控制小车做轻微右转? { e na=enb=1;out1=out2=out4=1;out3=0;}void zuozhuan1()//控制小车做左转动作{ena=enb=1;out1=out4=0;out2=out3=1;void youzhuan1()//控制小车做右转动作{ena=enb=1;out1=out4=1;out2=out3=0;}void houtui()//控制小车可以使小车倒退行驶{ena=enb=1;out1=out3=1;out2=out4=0;}void tingzhi () //使小车停止当前所有动?{ena=enb=1;out1=out2=out3=out4=1;}void TIM2Inital(void) //用定时器2{RCAP2H = (65536-100)/256;//晶振12M 60ms 16bit 自动重载RCAP2L = (65536-100)%256;ET2=1; //打开定时器中断EA=1; //打开总中断}void TIM2(void) interrupt 5 using 1//定时器2中断输出不同PWM信号{TF2=0;count++; //对小车调速if(count<shu)out1=out3=1;elseout1=out3=0;count=count%50;}3.液晶显示函数bit LCD_Check_Busy(void) //判忙{DataPort= 0xFF;RS_CLR;RW_SET;EN_CLR;_nop_();EN_SET;return (bit)(DataPort & 0x80);}void LCD_Write_Com(uchar com) //命令{while(LCD_Check_Busy()); //忙则等待RS_CLR;RW_CLR;EN_SET;DataPort= com;_nop_();EN_CLR;}void LCD_Write_Data(uchar Data) //写数据{while(LCD_Check_Busy()); //忙则等待RS_SET;RW_CLR;EN_SET;DataPort= Data;_nop_();EN_CLR;}void LCD_Clear(void) //清屏{LCD_Write_Com(0x01);delay(5);}void LCD_Write_String(uchar x,uchar y,uchar *s)/******写字符串*****/ {if (y == 0){LCD_Write_Com(0x80 + x); //表示第一行}else{LCD_Write_Com(0xC0 + x); //表示第二行}while (*s){LCD_Write_Data( *s);s ++;}}void LCD_Write_Char(uchar x,uchar y,uchar Data) /******写单个字符**/ {if (y == 0){LCD_Write_Com(0x80 + x);}else{LCD_Write_Com(0xC0 + x);}LCD_Write_Data( Data);}void LCD_Init(void) //初始化{LCD_Write_Com(0x38); /*显示模式设置*/delay(7);LCD_Write_Com(0x08); /*显示关闭*/LCD_Write_Com(0x01); /*显示清屏*/LCD_Write_Com(0x06); /*显示光标移动设置*/delay(7);LCD_Write_Com(0x0C); /*显示开及光标设置*/ }4.超声波检测unsigned int time=0;bit flag =0;void Conut(void){time=TH0*256+TL0;TH0=0;TL0=0;S=time*1.7/100; //算出来是CM 12M晶振}void StartModule(){TRIG=1;_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();TRIG=0;StartModule();while(!ECHO); //当ECHO为零时等待TR0=1; //开启计数while(ECHO); //当ECHO为1计数并等待TR0=0;Conut();}void disp(void) //液晶显示障碍距离{LCD_Write_Char(8,1,'0'+S%1000/100);LCD_Write_Char(9,1,'0'+S%1000%100/10);LCD_Write_Char(10,1,'0'+S%1000%10 %10);}5.避障程序void bizhang(){uchar a;StartModule();delay(5);if(S<13){delay(10);if(S<13){TR2=0;delay(2);tingzhi();delay(3);LCD_Clear();//清屏delay(20);LCD_Write_String(5,0,"Barrier");delay(5);for(a=0;a<200;a++) //蜂鸣器报警{DelayUs2x(200);SPK=!SPK;}SPK=0;//防止一直给喇叭通电造成损坏for(a=0;a<200;a++){delay(1);}delay(2);youzhuan();delay(600);}TR1=1; //开PWM/*******舵机转动**** shu1=2; //45度角delay(500);Conut();zuo=S;shu1=4; //135度角delay(500);Conut();you=S;shu1=3; //90度角,if(zuo>you) //判断左右转{ zuozhuan();delay(400);}else{ youzhuan();delay(400); }TR1=0; //关PWM}void init_pwm() //定时器1控制舵机带动超声波模块摇头{TMOD|=0X10;TH1=0XFE;TL1=0X33;ET1=0;EA=1;}void duoji() interrupt 3 定时器1中断{TH1=0XFE;TL1=0X33;if(count1<shu1)pwm=1;elsepwm=0;count1++;count1=count1%40;}6.循迹程序void xunji(){ if(in1==1&&in2==0&&in3==0&&in4==0){delay(1);TR2=0;zuozhuan();}else if(in1==0&&in2==1&&in3==0&&in4==0){delay(1);TR2=0;youzhuan();} else if(in1==0&&in2==0&&in3==0&&in4==1){delay(1);TR2=0;youzhuan1();} else if(in3==1&&in1==0&&in2==0&&in4==0){delay(1);TR2=0;zuozhuan1();} else if (in1==0&&in2==0&&in3==0&&in4==0){delay(1);TR2=1; qianjin();} else if (in1==1&&in2==1&&in3==1&&in4==1){delay(1); TR2=0; tingzhi();} }7.红外通信sbit IRIN = P3^2;//红外接收器数据线unsigned char Y0=2;//unsigned char IRCOM[7];//暂存数组void IRdelay(unsigned char x) //x*0.14MS{unsigned char i;while(x--){for (i = 0; i<13; i++) {}}}void IRInit(){IE |= 0x81; //允许总中断中断,使能INT0 外部中断TCON |= 0x01; //触发方式为脉冲负边沿触发IRIN=1; //I/O口初始IRdelay(1);}void IR_IN(void) interrupt 0{unsigned char j,k,N=0;EX0 = 0;IRdelay(15);if (IRIN==1){ EX0 =1;return;}//确认IR信号出现while (!IRIN) //等IR变为高电平,跳过9ms的前导低电平信号。

相关文档
最新文档