智能迷宫寻迹小车报告

合集下载

智能循迹小车___设计报告

智能循迹小车___设计报告

智能循迹小车___设计报告设计报告:智能循迹小车一、设计背景智能循迹小车是一种能够通过感知地面上的线条进行导航的小型机器人。

循迹小车可以应用于许多领域,如仓库管理、物流配送、家庭服务等。

本设计旨在开发一款功能强大、性能稳定的智能循迹小车,以满足不同领域的需求。

二、设计目标1.实现循迹功能:小车能够准确地识别地面上的线条,并按照线条进行导航。

2.提供远程控制功能:用户可以通过无线遥控器对小车进行控制,包括前进、后退、转向等操作。

3.具备避障功能:小车能够识别和避开遇到的障碍物,确保行驶安全。

4.具备环境感知功能:小车能够感知周围环境,包括温度、湿度、光照等参数,并将数据传输给用户端。

5.高稳定性和可靠性:设计小车的硬件和软件应具备较高的稳定性和可靠性,以保证长时间的工作和使用。

三、设计方案1.硬件设计:(1) 采用Arduino控制器作为主控制单元,与传感器、驱动器等硬件模块进行连接和交互。

(2)使用红外传感器作为循迹传感器,通过检测地面上的线条来实现循迹功能。

(3)使用超声波传感器来检测小车前方的障碍物,以实现避障功能。

(4)添加温湿度传感器和光照传感器,以提供环境感知功能。

(5)将无线模块与控制器连接,以实现远程控制功能。

2.软件设计:(1) 使用Arduino编程语言进行程序设计,编写循迹、避障和远程控制的算法。

(2)设计用户界面,通过无线模块将控制信号发送给小车,实现远程控制。

(3)编写数据传输和处理的程序,将环境感知数据发送到用户端进行显示和分析。

四、实施计划1.硬件搭建:按照设计方案中的硬件模块需求,选购所需元件并进行搭建。

2.软件开发:根据设计方案中的软件设计需求,编写相应的程序并进行测试。

3.功能调试:对小车的循迹、避障、远程控制和环境感知功能进行调试和优化。

4.性能测试:使用不同场景和材料的线条进行测试,验证小车的循迹性能。

5.用户界面开发:设计用户端的界面,并完成与小车的远程控制功能的对接。

循迹小车实验报告数据

循迹小车实验报告数据

一、实验目的1. 掌握循迹小车的基本原理和设计方法。

2. 熟悉红外传感器在循迹中的应用。

3. 提高单片机编程和调试能力。

二、实验原理循迹小车通过红外传感器检测地面上的黑线,根据黑线的位置控制小车的转向,使小车沿着既定路线前进。

三、实验器材1. 单片机:51单片机或Arduino2. 红外传感器:红外对管3. 电机驱动模块:L298N4. 电机:直流电机5. 车架及车轮6. 电源:可充电锂电池7. 连接线、电阻、电容等四、实验步骤1. 搭建电路将单片机、红外传感器、电机驱动模块、电机等连接起来,搭建循迹小车的电路。

2. 编程编写单片机程序,实现以下功能:(1)读取红外传感器的状态;(2)根据红外传感器的状态控制电机驱动模块,使小车转向;(3)实现小车的前进、后退、左转、右转等动作。

3. 调试调试程序,使小车能够沿着黑线稳定行驶。

五、实验数据1. 红外传感器参数| 传感器编号 | 阻值(Ω) | 电压(V) || :---------: | :-------: | :-------: || 1 | 10k | 5V || 2 | 10k | 5V || 3 | 10k | 5V || 4 | 10k | 5V |2. 电机参数| 电机型号 | 额定电压(V) | 额定电流(A) | 额定转速(r/min) || :-------: | :-----------: | :-----------: | :--------------: || 12V | 12V | 0.5A | 1000r/min |3. 程序运行数据| 指令类型 | 代码行数 | 运行时间(ms) || :-------: | :-------: | :------------: || 读取传感器 | 20 | 1ms || 控制电机 | 50 | 2ms || 其他指令 | 30 | 1ms |4. 实验结果在黑线宽度为10mm、小车与黑线距离为5cm的情况下,小车能够稳定行驶,转向灵活。

循迹小车实习报告

循迹小车实习报告

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

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

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

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

二、实习目的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. 实验步骤(1)将黑线地毯铺设在实验场地上,并保证地毯表面光滑清洁。

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

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

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

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

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

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

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

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

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

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

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

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

智能循迹小车-电子设计大赛优选全文

智能循迹小车-电子设计大赛优选全文

智能寻迹小车总结报告08电本3袁坤朱昊汪武杰1.设计任务:设计并制作了一个智能电动车,通过车前方的感光模块引导小车沿黑色路径运行,并记录小车整个运动过程的时间。

(1)感光模块引导小车运动:小车黑色轨迹白色背景图1如图1,小车运行在以白色背景的黑色轨迹上。

小车在整个运行过程中沿黑色轨迹运动,当黑色轨迹向左转时,小车能够自动左转弯,左转弯灯亮;当黑色轨迹向右转时,小车能够自动右转弯,右转弯灯亮。

(2)小车能记录整个运行过程的时间:在小车开始运行时,单片机控制计时,当小车收到停止指令后,计时器停止计时,并通过小车上的数码管显示小车整个运行过程的时间。

2.程序框图寻迹小车的主程序如下3.系统的具体设计与实现根据设计任务要求,并且根据我们自己的需要而附加的功能,该电路的总体框图可分为几个基本的模块,框图如(图2)所示:红外传感模块3.1设计中选用红外传感器来准确检测黑色寻迹线。

共设置2个传感器,传感器检测到黑色的寻迹线时,输出逻辑电平1,检测不到黑色寻迹线时,输出逻辑电平0。

在小车正前方中间安装两个标号是1号和2号的传感器用于定位寻迹线中心线,如图。

实物图:由电路图可以看出,在整个运行过程中,红外线发射管一直工作,发出红外线,由于黑色对红外线的反射量很小,而白色背景对红外的反射量很大,这样经过红外接收管的电压值的不同,可以判断出小车的运行情况。

当小车在黑色轨迹上正常运行时,1号和2号传感器输出1,当小车右偏时,2号由输出1转变为0,此时单片机驱动电机模块,调控小车左右两轮的转速,调整车身向左转;当小车左偏时,1号由输出1转变为0,单片机调控小车车身向右转。

传感器部分是小车的“眼睛”,只有通过它的引导小车才能正常在轨道上运行。

在小车的调试过程中,遇到了一些问题。

第一,两个传感器中的红外管有时一直感光,有时感光很差;第二,在黑线上运行时,在一些弯路传感器可以判断出来,一些反应迟钝,并且恢复直行的时候,传感器却依然保持上一状态运行。

智能循迹避障小车实习报告

智能循迹避障小车实习报告

智能循迹避障小车实习报告一、实习背景及目的随着科技的不断发展,嵌入式系统在各个领域的应用越来越广泛。

智能小车作为一种典型的嵌入式系统应用产品,不仅可以锻炼学生的动手能力,还能深入理解嵌入式系统的原理和应用。

本次实习旨在让学生通过设计制作智能循迹避障小车,掌握嵌入式系统的基本原理,提高动手实践能力,培养创新意识和团队协作精神。

二、实习内容与过程1. 实习准备在实习开始前,我们先学习了嵌入式系统的基本原理,了解了微控制器(如STM32)的工作原理和编程方法。

同时,我们还学习了如何使用相关开发工具(如Keil、CubeMX)进行程序开发和仿真。

2. 设计思路根据实习要求,我们确定了智能循迹避障小车的主要功能:远程控制、循迹、避障。

为了实现这些功能,我们需要选用合适的微控制器、传感器、电机驱动模块等硬件,并编写相应的软件程序。

3. 硬件设计我们选用了STM32F103C8T6作为主控制器,它具有高性能、低功耗的特点。

为了实现循迹功能,我们采用了红外传感器来检测地面上的黑线。

为了实现避障功能,我们采用了超声波传感器来检测前方的障碍物。

此外,我们还选用了两个直流电机来驱动小车行驶,并通过L298N驱动模块来控制电机转动。

4. 软件设计软件设计主要包括初始化配置、循迹算法实现、避障算法实现和远程控制实现。

我们使用了CubeMX工具对STM32的硬件资源进行配置,包括时钟、GPIO、ADC、PWM 等。

然后,我们编写了循迹算法和避障算法,通过不断地读取红外传感器和超声波传感器的数据,调整小车的行驶方向和速度,实现循迹和避障功能。

最后,我们通过蓝牙模块实现了手机APP对小车的远程控制。

5. 实习成果经过一段时间的紧张设计与制作,我们的智能循迹避障小车终于完成了。

在实习总结会议上,我们进行了演示,展示了小车的循迹、避障和远程控制功能。

通过实习,我们不仅掌握了嵌入式系统的设计方法,还提高了团队协作能力。

三、实习收获与反思通过本次实习,我们深入了解了嵌入式系统的设计原理,学会了使用相关开发工具和硬件设备,提高了动手实践能力。

循迹小车研究报告

循迹小车研究报告

循迹小车研究报告1. 引言循迹小车是一种能够根据特定路线上的黑线进行自动导航的智能机器人。

该研究报告旨在探讨循迹小车的工作原理、应用领域以及未来发展趋势。

循迹小车在工业自动化、教育培训和娱乐等领域具有广泛的应用前景。

本报告将深入研究循迹小车的算法、传感器技术以及控制系统,并分析其在实际应用中的优势和局限性。

2. 工作原理循迹小车通过搭载在车身下方的红外传感器,来检测路线上的黑线。

传感器会发射红外光束,当红外光束碰触到黑线时,传感器会接收到反射回来的光束。

基于这个原理,通过检测反射光强的变化,循迹小车可以判断当前车辆所处的位置和方向。

3. 系统设计循迹小车的系统设计涵盖硬件和软件两个方面。

下面将分别讨论这两个方面的关键设计要素。

3.1 硬件设计循迹小车的硬件设计包括车身结构和传感器模块。

车身结构应具备稳定性和灵活性,以适应不同路面的运动需求。

传感器模块通常采用红外线传感器阵列,以提高检测精度和鲁棒性。

3.2 软件设计循迹小车的软件设计主要包括控制算法和用户界面。

控制算法用于处理传感器数据,判断小车应如何运动以跟随黑线。

用户界面则提供了交互操作的接口,用户可以通过界面实时监控车辆状态和调整路径规划。

4. 应用领域循迹小车在工业自动化、教育培训和娱乐领域都有广泛的应用。

4.1 工业自动化循迹小车可以在工厂流水线上配备传感器阵列,用于自动化物流和生产线控制。

它可以通过追踪黑线,识别并搬运特定物品,极大提高生产效率和减少人力成本。

4.2 教育培训循迹小车作为一种教育工具,可以帮助学生理解基本控制原理和编程思维。

学生可以通过编写控制程序,让循迹小车按照设定的路径行驶,提高对编程和算法的理解能力。

4.3 娱乐循迹小车的智能导航功能使其成为一种有趣的玩具。

用户可以通过操控界面,让小车在复杂迷宫中自动寻找最快捷的路径。

这不仅增加了娱乐性,还可以锻炼空间思维和逻辑推理能力。

5. 优势和局限性循迹小车作为一种智能机器人,具有以下优势和局限性。

智能循迹避障小车报告书精选全文完整版

智能循迹避障小车报告书精选全文完整版

可编辑修改精选全文完整版电子科协竞赛项目报告书参赛作品:基于51单片机的智能寻迹避障小车小组成员:盛博专业班级:电信1205班报告提交日期: 2013年 4 月12日目录1设计要求与功能 (3)1.1设计基本要求 (3)2 硬件设计 ................................................. (3)2.1主控系统及所需主要元件 (3)2.2机械系统 (4)2.3电机驱动模块 (5)2.4 循迹模块 (6)2.5避障模块 (6)2.6电源模块 (7)2.7报警模块 (7)2.8远程操控模块 (8)3 软件设计 (8)3.1主程序及框图 (8)3.2电机驱动程序 (9)3.3循迹程序 (9)3.4避障程序 (10)3.5报警及远程操控程序 (10)4调试过程 (11)5总结 (11)附录总C程序 (11)一设计要求与功能设计并制作一个能自动循迹壁障的智能小车。

可沿不规则黑色轨迹行驶,遇到障碍可自动绕行,遇到黑色停止线自动停止,轨迹、通道、障碍现场如图。

1.基本要求(1)小车启动沿着轨迹行驶,遇到终点线停车;(2)小车遇到行驶轨迹范围内的障碍物应自动绕行,脱离轨迹后能自动寻找轨迹并形式到终点。

2.发挥部分(1)增加声、光报警功能,增加无线遥控启动、停止功能;(2)利用Protel或者Alitum Designer等软件进行PCB设计。

二硬件设计2.1主控系统及所需主要元件主控系统由STC89C52单片机负责,通过接收并分析信号模块传输过来的信号对各模块下达指令,使各模块能持续并稳定地共同工作,形成有机的整体,从而实现小车的各种功能。

所需主要元件:STC89C52单片机,减速电机,红外对管等。

各口功能:P0.0-P0.2是红外传感器信号输入口;P0.3-P0.6是四路红外对管信号输入口;P1.0-P1.1是无线信号输入口;P2.0-P2.7是四路减速电机控制信号输出口。

智能寻迹小车实习报告

智能寻迹小车实习报告

智能寻迹小车实习报告一、实习背景与目的随着科技的不断发展,机器人技术在各行各业中得到了广泛的应用。

智能寻迹小车作为一种典型的移动机器人平台,具有在复杂环境中自主导航、避障和完成任务的能力。

本次实习旨在通过设计和制作智能寻迹小车,掌握电子元器件的识别、传感器、电机在控制作用下的具体机械构架,以及单片机控制原理等知识,提高自己在电子技术、机器人技术等方面的实际操作能力。

二、实习内容与过程1. 设计思路本次实习的智能寻迹小车主要通过单片机控制,利用红外线传感器检测地面上的特定标记(如黑线),实现寻迹功能。

同时,通过超声波传感器检测前方障碍物的距离,实现避障功能。

在保证小车能够准确跟随线路的同时,使其能够自动避开障碍物。

2. 硬件设计(1)单片机:选用高性能、低功耗的单片机作为核心控制器,负责处理传感器数据、执行避障和循迹算法,以及控制小车的运动。

(2)传感器模块:红外线传感器用于检测地面上的特定标记,实现寻迹功能。

超声波传感器用于检测前方障碍物的距离,实现避障功能。

(3)电机驱动模块:负责驱动小车的运动,包括前进、后退、转向等。

3. 软件设计软件设计主要涉及系统初始化、线路检测与循迹、避障检测与控制以及控制算法等。

通过编程实现对单片机的控制,使小车能够根据红外线传感器的信号准确跟随线路,并在遇到障碍物时能够自动避开。

4. 实习过程在实习过程中,首先进行了电子元器件的识别和学习,掌握了各种传感器、电机等元器件的工作原理和应用方法。

然后,根据设计思路,进行了硬件电路的搭建和调试,包括单片机、传感器、电机驱动模块等。

最后,进行了软件编程调试,使小车能够实现智能寻迹和避障功能。

三、实习成果与总结通过本次实习,我成功设计和制作了一款智能寻迹小车,掌握了电子元器件的识别、传感器、电机在控制作用下的具体机械构架,以及单片机控制原理等知识。

在实习过程中,我学会了如何将理论知识运用到实际操作中,提高了自己在电子技术、机器人技术等方面的实际操作能力。

智能循迹小车实验报告

智能循迹小车实验报告

智能循迹小车实验报告一、实验目的本次实验旨在设计并实现一款能够自主循迹的智能小车,通过传感器检测路径信息,控制小车的运动方向,使其能够沿着预定的轨迹行驶。

通过本次实验,深入了解自动控制、传感器技术和单片机编程等方面的知识,提高实际动手能力和问题解决能力。

二、实验原理1、传感器检测本实验采用红外传感器来检测小车下方的黑线轨迹。

红外传感器由红外发射管和接收管组成,当发射管发出的红外线照射到黑色轨迹时,反射光较弱,接收管接收到的信号较弱;当照射到白色区域时,反射光较强,接收管接收到的信号较强。

通过比较接收管的信号强度,即可判断小车是否偏离轨迹。

2、控制算法根据传感器检测到的轨迹信息,采用 PID 控制算法(比例积分微分控制算法)来计算小车的转向控制量。

PID 算法通过对误差(即小车偏离轨迹的程度)进行比例、积分和微分运算,得到一个合适的控制输出,使小车能够快速、准确地回到轨迹上。

3、电机驱动小车的动力由直流电机提供,通过电机驱动芯片(如 L298N)来控制电机的正反转和转速。

根据控制算法计算出的转向控制量,调整左右电机的转速,实现小车的转向和前进。

三、实验器材1、硬件部分单片机开发板(如 STM32 系列)红外传感器模块直流电机及驱动模块电源模块小车底盘及车轮杜邦线、面包板等2、软件部分Keil 等单片机编程软件串口调试助手四、实验步骤1、硬件搭建将红外传感器模块安装在小车底盘下方,使其能够检测到黑线轨迹。

将直流电机与驱动模块连接,并安装在小车底盘上。

将单片机开发板、传感器模块、驱动模块和电源模块通过杜邦线连接起来,搭建好实验电路。

2、软件编程使用单片机编程软件,编写传感器检测程序、控制算法程序和电机驱动程序。

通过串口调试助手,将编写好的程序下载到单片机开发板中。

3、调试与优化启动小车,观察其在轨迹上的行驶情况。

根据小车的实际行驶情况,调整 PID 控制算法的参数,优化小车的循迹性能。

不断测试和改进,直到小车能够稳定、准确地沿着轨迹行驶。

智能循迹小车报告

智能循迹小车报告

西京学院自动化1002班概要本寻迹小车是以万能板为车架,STC12C5A60S2单片机为控制核心,将各传感器的信号传至单片机分析处理,从而控制L293D电机驱动,控制小车,速度由单片机提供的PWM波控制。

利用红外传感器检测黑线,红外对管来实现循迹功能,利用超声波传感器进行检测避障。

整个系统的电路结构简单,可靠性能高。

根据小车各部分功能,模块化硬件电路,并调试电路。

将调试成功的各个模块逐个地“融合”成整体,再进行软件编程调试,直到完成。

关键词:STC12C5A60S2 直流电机红外对管传感器寻迹小车L293D电机驱动1一、循迹小车的系统的要求和总体方案设计1.1设计要求1.1.1 基本要求利用单片机实验板,并制作一定的外围电路,编写程序设计制作一个智能循迹壁障的小车,具体要求如下:(1)具有启动、停止功能;(2)能够完成前进、后退、左转、右转单独动作和复合动作;(3)能按照规定路线循迹行驶;1.1.2 发挥要求利用超声波或红外等方式实现避障功能1.2智能循迹小车的工作原理我们知道小车的循迹原理是根据实现电位的高低来实现对前进方向的控制的。

在这里我们设定了白色和黑色的通道界面来行驶,而根据我们所学的知识通常采取的方法是红外探测法。

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

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

通过查资料我们知道红外探测器探测距离有限,一般最大不应超过3cm。

1.2.1恒压恒流桥式驱动芯片L293D驱动电机原理本L293D 驱动模块,采用ST 公司原装全新的L293D 芯片,采用SMT工艺稳定性高,采用高质量铝电解电容,使电路稳定工作。

可以直接驱动4路3-16V直流电机,并提供了5V输出接口(输入最低只要6V),可以给5V单片机电路系统供电(低纹波系数),支持3.3V MCUARM控制,可以方便的控制直流电机速度和方向,也可以控制2相步进电机,5线4相步进电机,是智能小车必备利器。

智能寻迹避障小车总结范文汇报

智能寻迹避障小车总结范文汇报

智能寻迹避障小车总结范文汇报
硬件构成
循迹模块循迹模块好比小车的眼睛,在这里我使用了四路红外对管,
利用它们在白色和黑色下产生不同电平的特性,给单片机输入信号,单片
机经过分析后给驱动模块输出信号,从而控制小车的运动。

电机驱动模块
采用L298N芯片控制小车的“前进”、“后退”、“左转”、“右转”等基本动作,通过输入PWM波控制小车的车速。

L298N电路原理图
避障模块采用三只探测距离较远的红外探测器置于小车前端,有障碍
物时输出低电平否则输出高电平。

无线控制采用315M/433M无线接收模块(带解码)(图一)和无线发射遥
控器(图二)实现远程操控小车启动、停止的功能,其操作简单也较稳定。

图一
图二
报警模块利用单片机电路板上自带的蜂鸣器作为报警模块。

软件设计软件整体设计流程N
开始
无线启动Y检测障碍物NY无线停车N循迹N是否到停车线Y刹停
Y
避障
循迹功能设计轨道红外对管12341某某101——210001——301001——4某某011——方向左转右转左转右转刹车直行
避障功能设计避障示意图:右转后直行
左转并前进
障碍物
直行
右转并前进
遇到障碍物
系统设计调试调试过程中遇到了诸多问题,不过最终都解决了,小车预期的基本功能都已实现,但软件优化还有待提高。

小车制作总结
安装设计
调试
了解查资料
成果展示
谢谢观看。

智能迷宫寻迹小车报告

智能迷宫寻迹小车报告

题目名称:迷宫寻迹机器人(E题)参赛队员:************************摘要:本寻迹小车选用8位89C52单片机为控制器,通过6个红外光电传感器TCRT5000对信号进展采集,采集到的信号经比拟器LM393处理后传给89C52单片机,经单片机处理后,发出控制命令给L298N,驱动2台直流电动机进展相应的动作。

该小车能够识别出黑色轨迹并能沿着黑色轨迹前进直到终点,并能显示出运行时间。

1方案论证与比拟1.1 传感器的选择与比拟方案一采用摄像头,然后用CCD处理技术,对采集的信号进展分析。

方案二使用光敏传感器,能够采集回来黑与白两种信号,然后进展处理与分析。

由于采用摄像头进展CCD处理所用的硬件搭接较为繁琐,并且处理起来还比拟麻烦,而光敏传感器TCRT5000可以虽然智能识别黑与白两种颜色由于现场条件,并不能对其造成干扰,而且其反响速度快,响应时间短,故此,我们选用光敏传感器TCRT5000。

1.2 车体的选择与比拟方案一采用4轮小车,前轮由舵机控制转弯,后轮由动力电机控制前进与后退。

方案二采用三轮小车,前面两轮由两个电机分别控制,用其速度差来实现转弯与调整,后前轮为万向轮,用来维持小车的平衡由于采用4轮车,小车在转弯时会产生转弯半径,会偏离轨迹,不能按照黑色轨迹前进,而转弯半径无法缩小到满意的程度,由于三轮小车用两个电机来控制两个轮子,故很容易来实现转弯与调整,是理想的车体模型。

1.3前进路径与返回路径的最优选择由于小车需要按照黑色轨迹寻到终点,并且按最优路径返回,故小车应能识别迷宫的路况,普通寻迹小车智能按照黑色轨迹走,但不能识别路况,这样小车寻到终点的效率很低,又不能按照最优路径返回。

考虑到以上情况,我们给小车加上了识别路口程序,并且让小车按照右手原那么前进,在每个路口处让小车记录出所走过的路况,并且记忆,以便于在返航时调用记录信息,使小车顺利返回。

1.4传感器个数的比拟与选择方案一总共5个传感器,两个传感器用来检测小车是否偏离轨迹,另外三个传感器用来检测小车是否遇到路口〔前方.左方与右方各一个〕,由前方传感器来检测终点。

智能迷宫小车报告

智能迷宫小车报告

长通杯电子竞赛报告目录目录............................................................................................................................................. - 0 - 摘要.............................................................................................................................................. - 1 - 一、系统方案 .................................................................................................................................. - 2 -1.方案论证与实现方法 ............................................................................................... - 2 -1.1.1控制器选择 ............................................................................................................ - 2 -1.1.2电动车车体的选择 ................................................................................................ - 2 -1.1.3电动车的动力方案选择 ........................................................................................ - 2 -1.1.4电机驱动电路方案选择 ........................................................................................ - 2 -1.1.5终点黑线及边界的检测方案选择 ........................................................................ - 2 -1.1.6显示器的选择方案 ................................................................................................ - 2 -2.系统设计与结构框图 ............................................................................................... - 3 -二、理论分析与计算 ...................................................................................................................... - 3 -三、功能概述及方案设计 .............................................................................................................. - 4 -1.功能概述 ................................................................................................................... - 4 - 2.具体方案设计 ........................................................................................................... - 4 -2.2.1.STC12C5404AD增强型单片机系统................................................................. - 4 -2.2.2.电机驱动及电源电路 ......................................................................................... - 4 -2.2.3.边界路口及黑线检测电路 ................................................................................. - 5 -2.2.4.液晶显示电路 ..................................................................................................... - 6 -四、程序流程与程序设计 .............................................................................................................. - 7 -1. 程序流程图 ................................................................................................................ - 7 -五、测试结果分析 .......................................................................................................................... - 8 -六、综合总结 .................................................................................................................................. - 8 -1. 系统资源使用情况 .................................................................................................... - 8 -2. 小车优缺点分析 ........................................................................................................ - 9 -4.2.1.优点 ..................................................................................................................... - 9 -4.2.2.缺点 ..................................................................................................................... - 9 -3.结束语 ....................................................................................................................... - 9 -电子信息工程摘要本系统采用STC公司12C5404AD芯片为核心进行设计,并配合L293D驱动芯片,合理利用了该芯片上丰富的资源,采用红外对管及光电反射开关作为传感器,在LCM128645ZK上对获取的信息进行实时显示。

循迹小车实训报告范文

循迹小车实训报告范文

循迹小车实训报告一、引言随着科技的不断发展,嵌入式系统在各个领域的应用越来越广泛。

循迹小车作为嵌入式系统的一个典型应用,具有很高的实用价值。

本次实训旨在通过设计和制作循迹小车,让学生掌握嵌入式系统的基础知识和实践技能,提高学生的动手能力和创新意识。

二、项目背景循迹小车是一种基于传感器和单片机控制的小型移动机器人,能够在预设的轨道上自动行驶。

它由传感器模块、单片机控制模块、电机驱动模块和舵机控制模块等组成。

循迹小车广泛应用于工业自动化、物流搬运、环境监测等领域。

三、项目目标1. 掌握循迹小车的工作原理和设计方法;2. 学会使用传感器、单片机、电机驱动模块和舵机等硬件;3. 熟悉C语言编程,编写循迹小车的控制程序;4. 培养团队合作精神和创新意识。

四、项目内容1. 硬件设计(1)传感器模块:采用红外对管作为传感器,用于检测轨道线。

(2)单片机控制模块:采用51单片机作为控制核心,负责处理传感器信号,控制电机驱动模块和舵机控制模块。

(3)电机驱动模块:采用L298N电机驱动芯片,驱动两个直流电机。

(4)舵机控制模块:采用SG90舵机,用于控制小车转向。

2. 软件设计(1)主程序:初始化各个模块,读取传感器信号,根据信号判断小车位置,控制电机驱动模块和舵机控制模块。

(2)中断服务程序:处理传感器中断,实时调整小车行驶方向。

3. 系统调试(1)硬件调试:检查电路连接是否正确,确保各个模块正常工作。

(2)软件调试:通过程序调试,使小车能够准确循迹。

五、项目实施1. 硬件制作(1)根据电路图,焊接传感器、单片机、电机驱动模块和舵机等元器件。

(2)搭建循迹小车车体,连接各个模块。

2. 软件编程(1)编写主程序,实现小车循迹功能。

(2)编写中断服务程序,实现小车转向功能。

3. 系统调试(1)调试硬件电路,确保各个模块正常工作。

(2)调试软件程序,使小车能够准确循迹。

六、项目成果1. 成功制作了一辆循迹小车,能够准确地在预设轨道上行驶。

循迹小车报告精选全文完整版

循迹小车报告精选全文完整版

可编辑修改精选全文完整版创新制作循迹小车制作报告班级:学号:姓名:一、设计方案路面检测模块电路检测路面信息,区分黑色与白面,并形成相对应的高电平与低电平提供给单片机;单片机对路面循迹模块提供的高低电平进行分析,并形成相应的对策(直行、左转、右转和停止等),并将其转化成对应的电压输出给电机驱动模块;电机驱动模块根据单片机提供的电压信号驱动对应的电机,得到与对策相同的执行动作;电源模块电路为三个模块提供所需要的电。

电路框图如下图所示:电路框图二、路面检测模块工作原理一对光电开光的发射管不停的发射红外光,经过路面发射回来的被接受管接收到。

因为白色路面和黑线对光的反射不同,所以正对白色路面的光电对管的接收管接收到更多的红外光,而正对黑线的光电对管的接收管收到较少的红外光。

经过光电开关的接收电路将接收到红外光的多少转化为正相关的电流大小,并进一步转化成接收电路的输出电压(A点电压)的较小值和较大值。

输出电压的较小值和较大值进一步与一个居中的基准电压分别进行比较,对应比较器的输出端(C点)分别为高电平还是低电平,并进一步输出给单片机,同时对应指示发光管的不亮与亮。

路面循迹模块电路如下图所示:D1路面循迹模块电路三、单片机最小系统单片机最小系统包括了时钟电路和复位电路。

时钟电路为单片机工作提供基本时钟,复位电路用于将单片机内部各电路的状态恢复到初始值。

单片机是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号下严格地按时序进行工作。

时钟电路用于产生单片机工作所需要的时钟信号。

时钟信号的产生是在MCS-51系列单片机内部有一个高增益反相放大器,其输入端引脚为XTAL1,其输出端引脚为XTAL2。

只要在XTAL1和XTAL2之间跨接晶体振荡器和微调电容,就可以构成一个稳定的自己振荡器。

复位电路由一个按键、电解电容和电阻组成,它是使CPU 和系统中的其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作。

智能循迹小车报告.doc

智能循迹小车报告.doc

智能循迹小车报告.doc一、前言智能循迹小车是一款基于机器人技术的智能装备,主要实现对机器人的智能控制和追踪操作,适用于各种场景中的巡航及运输。

智能循迹小车在各类工业现场、家庭生活中得到广泛应用。

本报告将对智能循迹小车的相关技术、应用及未来发展进行分析与总结。

二、技术原理智能循迹小车的核心技术是基于计算机视觉和机器人导航领域中的视觉跟踪技术,实现对目标的追踪和路径规划。

该技术主要包括如下步骤:1. 传感器采集数据:智能循迹小车配备了多种传感器,如激光雷达、摄像头、红外线传感器等,用于采集目标物体的信息;2. 数据处理:接收传感器采集的数据后,智能循迹小车通过算法处理,将数据转化成可供计算机识别的数字信号;3. 目标检测:将数字信号传入计算机,通过人工智能、机器学习等技术实现对目标的识别、分类和跟踪;4. 路径规划:根据目标的位置和运动轨迹,智能循迹小车通过算法实现路径规划和自主导航,避开障碍物,寻找最短路径;5. 控制执行:根据路径规划生成的控制信号,智能循迹小车对轮子和电机执行精确的控制,实现移动和自动导航。

三、应用现状智能循迹小车在生产、物流、安防、家庭生活等众多领域得到广泛应用,以下列举几种应用场景。

1. 工业自动化:在工业生产自动化方面,智能循迹小车可以用于运输原材料和成品、仓库货物的自动化管理、装配线物料转移等。

机器人可以根据目标位置和运动方向,自动运行到指定位置,精准地完成操作任务。

2. 物流配送:智能循迹小车可以用于大型物流中心的快递配送、医院内的物资搬运等场景。

机器人通过自主路径规划和导航,可以自动避开障碍物,并将货物准确地送到目的地,提高了生产效率和准确性。

3. 家庭服务:智能循迹小车还可应用于家庭服务领域,如智能扫地机器人、智能花盆机器人等。

机器人自动巡航,清洁地面,喷水浇花,实现人机交互。

4. 安防监控:在安防监控领域,智能循迹小车可以应用于产品物流追踪、边境巡逻等领域。

机器人对区域进行自动巡航,通过多种传感器检测目标,将异常情况反馈给监控中心,实现精确的实时监控。

智能循迹小车报告

智能循迹小车报告

西京学院自动化1002班概要本寻迹小车是以万能板为车架,STC12C5A60S2单片机为控制核心,将各传感器的信号传至单片机分析处理,从而控制L293D电机驱动,控制小车,速度由单片机提供的PWM波控制。

利用红外传感器检测黑线,红外对管来实现循迹功能,利用超声波传感器进行检测避障。

整个系统的电路结构简单,可靠性能高。

根据小车各部分功能,模块化硬件电路,并调试电路。

将调试成功的各个模块逐个地“融合”成整体,再进行软件编程调试,直到完成。

关键词:STC12C5A60S2 直流电机红外对管传感器寻迹小车L293D电机驱动 1一、循迹小车的系统的要求和总体方案设计1.1设计要求1.1.1 基本要求利用单片机实验板,并制作一定的外围电路,编写程序设计制作一个智能循迹壁障的小车,具体要求如下:(1)具有启动、停止功能;(2)能够完成前进、后退、左转、右转单独动作和复合动作;(3)能按照规定路线循迹行驶;1.1.2 发挥要求利用超声波或红外等方式实现避障功能1.2智能循迹小车的工作原理我们知道小车的循迹原理是根据实现电位的高低来实现对前进方向的控制的。

在这里我们设定了白色和黑色的通道界面来行驶,而根据我们所学的知识通常采取的方法是红外探测法。

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

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

通过查资料我们知道红外探测器探测距离有限,一般最大不应超过3cm。

1.2.1恒压恒流桥式驱动芯片L293D驱动电机原理本L293D 驱动模块,采用ST 公司原装全新的L293D 芯片,采用SMT工艺稳定性高,采用高质量铝电解电容,使电路稳定工作。

可以直接驱动4路3-16V 直流电机,并提供了5V输出接口(输入最低只要6V),可以给5V单片机电路系统供电(低纹波系数),支持3.3V MCUARM控制,可以方便的控制直流电机速度和方向,也可以控制2相步进电机,5线4相步进电机,是智能小车必备利器。

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

题目名称:迷宫寻迹机器人(E题)参赛队员:************************摘要:本寻迹小车选用8位89C52单片机为控制器,通过6个红外光电传感器TCRT5000对信号进行采集,采集到的信号经比较器LM393处理后传给89C52单片机,经单片机处理后,发出控制命令给L298N,驱动2台直流电动机进行相应的动作。

该小车能够识别出黑色轨迹并能沿着黑色轨迹前进直到终点,并能显示出运行时间。

1方案论证与比较1.1 传感器的选择与比较方案一采用摄像头,然后用CCD处理技术,对采集的信号进行分析。

方案二使用光敏传感器,能够采集回来黑与白两种信号,然后进行处理与分析。

由于采用摄像头进行CCD处理所用的硬件搭接较为繁琐,并且处理起来还比较麻烦,而光敏传感器TCRT5000可以虽然智能识别黑与白两种颜色由于现场条件,并不能对其造成干扰,而且其反应速度快,响应时间短,故此,我们选用光敏传感器TCRT5000。

1.2 车体的选择与比较方案一采用4轮小车,前轮由舵机控制转弯,后轮由动力电机控制前进与后退。

方案二采用三轮小车,前面两轮由两个电机分别控制,用其速度差来实现转弯与调整,后前轮为万向轮,用来维持小车的平衡由于采用4轮车,小车在转弯时会产生转弯半径,会偏离轨迹,不能按照黑色轨迹前进,而转弯半径无法缩小到满意的程度,由于三轮小车用两个电机来控制两个轮子,故很容易来实现转弯与调整,是理想的车体模型。

1.3前进路径与返回路径的最优选择由于小车需要按照黑色轨迹寻到终点,并且按最优路径返回,故小车应能识别迷宫的路况,普通寻迹小车智能按照黑色轨迹走,但不能识别路况,这样小车寻到终点的效率很低,又不能按照最优路径返回。

考虑到以上情况,我们给小车加上了识别路口程序,并且让小车按照右手原则前进,在每个路口处让小车记录出所走过的路况,并且记忆,以便于在返航时调用记录信息,使小车顺利返回。

1.4传感器个数的比较与选择方案一 总共5个传感器,两个传感器用来检测小车是否偏离轨迹,另外三个传感器用来检测小车是否遇到路口(前方.左方及右方各一个),由前方传感器来检测终点。

(如图1.1)方案二 总共6个传感器,其中两个传感器用来检测小车是否偏离轨迹,另外三个传感器用来检测小车是否遇到路口(前方.左方及右方各一个),还有一个传感器配合前方的传感器来检测终点。

(如图1.2)方案三 总共8个传感器,两个传感器用来检测小车是否偏离轨迹,另外五个传感器用来检测小车是否遇到路口(前方一个,左方及右方各两个),还有一个传感器配合前方的传感器来检测终点。

检测路口左右方向时用2个传感器,是以使能减少误判,让小车更好的寻迹。

(如图1.3)方案一比方案二多一个传感器,是为了更好的检测终点,方案一检测终点的方法是前当方传感器检测到死胡同时在让其延时继续前进如图1.4,当再检测到黑色信号时即使终点,但是实际运作时发现由于2cm 对于运动的小车来说过小,而且即便检测到终点在返回时,会再次遇到黑色信号,和死胡同标志容易产生混淆,不易于小车更好的判别路口,而当有第6个传感器辅助前方传感器检测到终点时,则能避免以上问题,当检测到死胡同标志时,只要再继续往前走,辅助检测传感器便会检测到白色信号小车就会认为到达终点如图1.5,避免了小车混淆死胡同与终点标志,同时让终点标志更好的被识别。

而方案三,将检测左右路口的传感器增加至每侧2个,以防出现如图1.6所示的误判,而图1.7的方案三只要两个传感器不全进入黑线就不会认为有路口,能大大的避免误判的几率。

但是后来在软件编写和实际测试的时候,发现了用软件可以进行防误判,而由于这种防误判方法的引入,是传感器的个数从8个减少到了6个,其具体如何防误判将在后面说明。

图1.1五个传感器示意图 图1.2六个传感器示意图图1.3八个传感器示意图图1.4 一个传感器检测终点示意图 图1.5 两个传感器检测终点示意图图1.6 路口误判示意图 图1.7 路口防误判示意图1.5传感器位置摆放的比较与选择1.为了让小车在检测到路口时就进行转弯,在转完后其中线仍与轨迹中线重合,避免了其每次转弯后都进行调整,我们经测量发现小车轮距为10cm ,而轨迹宽度为2cm ,故检测路口的传感器与轮子轴承间的距离D=(10-2)/2=4cm ,如图1.8所示。

2.为了让小车刚刚检测偏离轨迹就做出调整,同时又给小车在走直线时留有余量,经过不断实践测试,认为检测偏离轨迹的两个传感器间距以2.1cm 为最佳。

如图1.9所示。

图1.8 检测转弯路口传感器位置的计算图1.9检测偏离轨迹的传感器示意图3.为了两检测终点的传感器能够准确快速的检测并识别出终点,设定两传感器间距离为2.1cm 。

图1.10 两检测终点传感器间距4.总体摆放如下图1.11,A=1.1cm ,B=3.2cm图1.11总体摆放图2 硬件系统设计 2.1 总体设计有光敏传感器进行信号采集,经电压比较器LM393处理后直接传给AT89C52,单片机对信号按照预定的程序进行处理,将处理的结果通过IO 口传给74LS08,通过与PWM 波合成后给L298N (直流电机驱动芯片)信号,通过L298N 进行控制小车两轮子,以实现左右微调,左右转弯,前进与原地旋转等动作。

小车每到路口都进行相关的记忆处理,以便最优返回。

图2.1 总体设计框架图2.2单元电路设计2.2.1传感器单元电路的设计当传感器进入黑色轨迹中时,由发射管发射的不可见光被吸收,不能被接收器接收到,故接收一侧电路不导通,LM393的同向输入为高,输入比较器输出为高,其输出高电压为5V ,低电压为0V ,故可以直接传给单片机。

而电压比较器的输出端所接的LED 能够实时的显示传感器的工作状况。

图2.2 传感器单元电路本题目要求小车能够不偏离中心轨迹,由于轨迹交窄小车相对运动速度快,故要求传感器单元必须较为灵敏,相应时间短,反应速度快。

我们采用的LM393电压比较器,其工作电源电压范围宽,单电源、双电源均可工作,消耗电流小,输入失调电压小,共模输入电压范围宽,反应时间快,其内部结构图如图 2.3所示。

2.2.2 电机驱动单元电路的设计图2.4 电机驱动电路图由于要对电机实行加速减速刹车的控制,故采用由L298N 和74LS08构成的驱动电路,由1.0和1.1口负责控制1号电机的前进与后退,而与他们一起走与门74LS08的1.4口负责输出PWM 波,由PWM 波负责控制小车的减速与加速以及制动的控制。

同时与门也起到了扩大单片机输出电流的作用,由于L298N 需要的输入电流AT89C52无法驱动,与门在此起到一定的上拉作用。

因为要用单片机对电动机进行四象限的控制,由于控制象限的复杂以及驱动电机功率的问题,这里我们需要采用电动机驱动芯片来实现,我们采用的是L298N 这款电机驱动芯片,该芯片具备控制简单,反应快,输出功率大,支持外接电机工作电源等一系列优点。

其结构图如图2.5所示。

图2.3 LM393内部结构图图2.5 L298N 内部结构图2.2.3电源模块单元电路的设计由于整个控制板都需要5V 电压,考虑到电池随着使用时间的增强,电压会有所下降,故我们选用直流稳压电源9V 进行供电,由于多方同时分流,有可能造成电量不足,为了保持电压能够稳定在5V ,故选用L7805进行稳压。

在其输出输入端口各并联一个电容,以起到保护芯片的作用。

其内部结构图如2.7所示。

图2.6 电源模块单元电路图图2.7 L7805内部结构图2.2.4液晶显示单元电路设计图2.8液晶显示单元电路图采用1602液晶进行时间和方向的显示,我们采用单独的AT89S52来控制液晶,减少其对小车控制的干扰,然后由2根数据线让其与主控AT89S52进行通信,以此来显示小车运行的时间和方向。

图2.8中R38用来控制液晶字幕的清晰度,R37用来控制液晶屏幕的对比度。

3软件系统设计3.1 总体设计小车自上电时程序开始运行,我们依着右手原则为小车寻迹方法,右为先。

自上电后小车进入初始化阶段之后转入主函数,我们将小车能遇到的各种情况进行一一排列出来,这样无论传感器反馈回来什么样的信号都有与之对应的命令,分为以下10种情况:左微调,右微调,前进,左转,右转,T型,左T,右T,十字路口,死胡同。

其流程图如图3.1所示。

3.2 各子模块的设计3.2.1 转弯模块的设计为了让小车能够顺利并且及时的停止转弯,我们将其转弯的停止标志设为当检测前方是否有路的传感器遇到黑色轨迹,即表示其已完成转弯,这样避免了小车转弯过大或者过小的问题。

3.2.2 终点识别模块的设计为了让小车能够准确的识别终点标志,采用2个传感器来检测终点标志,当且仅当前后检测终点的传感器同时检测到终点信号时,才认定到达终点,即当前后前后检测终点的传感器3.2.3 防误判模块的设计列出了小车在行走时可能碰到的各种误判情况,对其一一分析后判别出应是那种路况,将其对应情况列出,并给出小车应该正确运行的指令。

4附加功能增加了小车转弯的转向灯模拟功能,转向灯能随小车的转向实时的闪烁起来,以此一次来表示小车的运转状态,还在车尾处额外增加了两组led小灯,以此表示小车现在处于附录1 主控程序清单#include <reg52.h>#include <stdio.h>#include <intrins.h>/////////////////////////////////////////////////////////////////char pro_left,pro_right,i,j; //左右占空比标志extern int a[24]={3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};extern int n=2,logo=0;//////////////////////////////////////////////////////////////////sbit left1=P1^0; //左电机正反转sbit left2=P1^1;sbit right1=P1^2; //右电机正反转sbit right2=P1^3;sbit en1=P1^4; //输出PWM1波控制左电机sbit en2=P1^5; //输出PWM2波控制左电机sbit p16=P1^6; //sbit p17=P1^7;//////////////////////////////////////////////////////////////////sbit p23=P2^3;sbit p24=P2^4;sbit p25=P2^5;sbit p26=P2^6;/////////////////////////////////////////////////////////////////sbit left_turn=P0^0; //左侧传感器(识别路口)sbit left=P0^1; //微调左位置sbit midb=P0^2; //后中间传感器(识别路口)sbit midf=P0^3; //前中间(识别路口)sbit right=P0^4; //微调右位置sbit right_turn=P0^5; //右侧传感器(识别路口)////////////////////////////////////////////////////////////////////sbit p20=P2^2; //左拐sbit p21=P2^1; //直走sbit p22=P2^0; //右拐void first_straight(); //启动直走void straight(); //直走void sd_straight(); //左岔直走void stop(); //终点稍停void end(); //回到起点停车void wleft(); //左微调void wright(); //右微调void ft_left(); //左转90 由黑到白void sd_left(); //左转90 由白到黑void ft_right(); //右转90 由黑到白void sd_right(); //右转90 由白到黑void ft_180rt(); //左转180 由黑到白void sd_180rt(); //左转180 由白到黑//////////////////////////////////////////////////////////////////void infrared(); //初次循迹void comeback(); //返航void memory(int x); //记忆void delay(int z); //延时1ms//////////////////////////////////////////////////////////////////void delay(int z) //延时z*1ms {char k;while(z--){for(k=0;k<121;k++);} //延时1ms }//////////////////////////////////////////////////////////////////void first_straight() //启动走直线{p20=1;p21=0;p22=1;pro_left=85;pro_right=85;left1=1;left2=0;right1=1;right2=0;delay(5);}//////////////////////////////////////////////////////////////////void straight() //走直线函数{p20=1;p21=0;p22=1;pro_left=80;pro_right=80;left1=1;left2=0;right1=1;right2=0;}//////////////////////////////////////////////////////////////////void sd_straight() //左岔走直线函数{p20=1;p21=0;p22=1;straight();if((left_turn==1))//&&(right_turn==0)&&(midf==1) {sd_straight();}else{straight();}}//////////////////////////////////////////////////////////////////void wleft() //微调左转函数{pro_left=0;pro_right=85;left1=0;left2=0;right1=1;right2=0;}//////////////////////////////////////////////////////////////////void wright() //微调右转函数{pro_left=85;pro_right=0;left1=1;left2=0;right1=0;right2=0;}//////////////////////////////////////////////////////////////////void ft_left() //左转90 由黑到白{p20=0;p21=1;p22=1;pro_left=0;pro_right=80;left1=0; //左轮不动left2=0; //右轮动right1=1;right2=0;if(midf==1){ft_left();}else{sd_left();}}void sd_left() //左转90 由白到黑{p20=0;p21=1;p22=1;pro_left=0;pro_right=80;left1=0; //左轮不动left2=0; //右轮动right1=1;right2=0;if(midf==0){sd_left();}else{first_straight();straight();}}//////////////////////////////////////////////////////////////////void ft_right() //右转90 由黑到白{p20=1;p21=1;p22=0;pro_left=85;pro_right=0;left1=1; //左轮动left2=0; //右轮不动right1=0;right2=0;if(midf==1){ft_right();}else{sd_right();}}void sd_right() //右转90 由白到黑{p20=1;p21=1;p22=0;pro_left=80;pro_right=0;left1=1; //左轮动left2=0; //右轮不动right1=0;right2=0;if(midf==0){sd_right();}else{first_straight();straight();}}//////////////////////////////////////////////////////////////////void ft_180rt() //左转由黑到白{p20=0;p21=0;p22=0;pro_left=80;pro_right=80;left1=0; //左轮反转left2=1; //右轮正转right1=1;right2=0;if(midf==1){ft_180rt();}elseif(midf==0){sd_180rt();}}void sd_180rt() //左转由白到黑{p20=0;p21=0;p22=0;pro_left=80;pro_right=80;left1=0; //左轮反转left2=1; //右轮正转right1=1;right2=0;if(midf==0){sd_180rt();}else{first_straight();straight();}}////////////////////////////////////////////////////////////////// void stop() //回到起点{while(1){p17=1;p16=1;p23=0;p24=0;p25=0;p26=0;pro_left=0;pro_right=0;left1=1; //或是全等于0left2=1;right1=1;right2=1;}}//////////////////////////////////////////////////////////////////void end() //单程刹车{pro_left=0;pro_right=0;left1=0; //或是全等于1 left2=0;right1=0;right2=0;delay(150);}////////////////////////////////////////////////////////////////// void infrared() //循迹char flag=10;p16=0;p17=1;p23=0;p24=0;p25=1;p26=1;if((left_turn==0)&&(right_turn==0)&&(midf==1)&&(midb==1)&&(left==0)&&(right==0)) {flag=7;} //直线elseif((left_turn==0)&&(right_turn==0)&&(midf==0)&&(midb==0)&&(left==0)&&(right==0 )){flag=4;} // memory(4); 死胡同elseif((left_turn==1)&&(right_turn==0)&&(midf==0)&&(midb==1)){flag=3;} //memory(3);左拐elseif((left_turn==1)&&(right_turn==0)&&(midf==0)&&(midb==0)){flag=13;} //误认为左拐左拐elseif((left_turn==0)&&(right_turn==1)&&(midf==0)&&(midb==1)){flag=1;} //memory(1); 右拐elseif((left_turn==0)&&(right_turn==1)&&(midf==0)&&(midb==0)){flag=11;} //误认为右拐右拐elseif((left_turn==1)&&(right_turn==0)&&(midf==1)&&(midb==1)){flag=2;} //memory(2); 左岔elseif((left_turn==1)&&(right_turn==0)&&(midf==1)&&(midb==0)){flag=12;} //误认为左岔直走elseif((left_turn==1)&&(right_turn==1)&&(midf==0)&&(midb==1)){flag=1;} //memory(1); 丁字elseif((left_turn==1)&&(right_turn==1)&&(midf==0)&&(midb==0)){flag=11;} //误认为丁字右拐elseif((left_turn==0)&&(right_turn==1)&&(midf==1)&&(midb==1)){flag=1;} //memory(1); 右岔elseif((left_turn==0)&&(right_turn==1)&&(midf==1)&&(midb==0)){flag=11;} // 误认为右岔右拐if((left_turn==1)&&(right_turn==1)&&(midf==1)&&(midb==1)){flag=1; } //memory(1); 十字elseif((left_turn==1)&&(right_turn==1)&&(midf==1)&&(midb==0)){flag=11; } //误判十字右拐elseif((left_turn==0)&&(right_turn==0)&&(midf==1)&&(midb==0)&&(left==0)&&(right==0 )){flag=0;} //memory(0); 终点elseif((left_turn==0)&&(right_turn==0)&&(left==0)&&(right==1)){flag=5;} //左偏(right)elseif((left_turn==0)&&(right_turn==0)&&(left==1)&&(right==0)){flag=6;} //右偏(left)else{flag=7;} //直走switch (flag){case 0: p17=0;p16=0;p23=0;p24=0;p25=0;p26=0;end();ft_180rt();memory(0); logo=1; break; //p17=0;p16=0;终点两个灯全亮case 1: ft_right();memory(1); logo=0; break; //右拐case 2: sd_straight();memory(2); logo=0; break; //直走case 3: ft_left();memory(3); logo=0; break; //左拐case 4: ft_180rt();memory(4); logo=0; break; //死胡同case 5: wright(); logo=0; break; //左偏case 6: wleft(); logo=0; break; //右偏case 7: straight(); logo=0; break; //直走case 11: ft_right(); logo=0; break; //误认为右case 12: straight(); logo=0; break; //误认为直case 13: ft_left(); logo=0; break; //误认为左default: straight(); logo=0; break; //}}//////////////////////////////////////////////////////////////////void memory(int mflag) //记忆程序{if(mflag==1){a[n]+=1;if(a[n]==4){a[n]=0;n=n-2;}n++;}elseif(mflag==2){a[n]+=2;n++;}elseif(mflag==3){a[n]+=3;n++;}elseif(mflag==4){a[n]=0;n--;}elseif(mflag==0){n--;}}//////////////////////////////////////////////////////////////////void comeback(){p23=1;p24=1;p25=0;p26=0;p17=0;p16=1;if((left_turn==0)&&(right_turn==0)&&(midf==1)&&(midb==1)&&(left==0)&&(right==0)){ straight();logo=1;} //直线elseif((left_turn==1)&&(midb==1)) //左边有路{switch(a[n]){case 1: ft_left(); logo=1;n--; break;case 2: sd_straight(); logo=1;n--; break;case 3: ft_right(); logo=1;n--; break;}}elseif((right_turn==1)&&(midb==1)) //右边有路{switch(a[n]){case 1: ft_left(); logo=1;n--; break;case 2: sd_straight(); logo=1;n--; break;case 3: ft_right(); logo=1;n--; break;}}elseif((left_turn==0)&&(right_turn==0)&&(midf==0)&&(midb==0)&&(left==0)&&(right==0 )) //&&(n==1){ p17=1;p16=1;stop();} //回到起点两个灯全灭elseif((left_turn==0)&&(right_turn==0)&&(left==0)&&(right==1)){wright();logo=1;} //左偏(motor_right)elseif((left_turn==0)&&(right_turn==0)&&(left==1)&&(right==0)){wleft();logo=1;} //右偏(motor_left)/* else{straight();logo=1;}*/}//////////////////////////////////////////////////////////////////void init(){TMOD=0x01;TH0=(65536-100)/256;TL0=(65536-100)%256;EA=1; //中断总开关ET0=1; //开启定时器0TR0=1; //定时器0启动en1=1; //使能1端en2=1; //使能2端}void time0(void)interrupt 1{i++;j++;if(i<=pro_left) {en1=1;}else en1=0;if(i==100) {en1=~en1;i=0;}if(j<=pro_right) {en2=1;}else en2=0;if(j==100) {en2=~en2;j=0;}TH0=(65536-100)/256;TL0=(65536-100)%256;}//////////////////////////////////////////////////////////////////void main(void){init();delay(1);while(1){if(logo==0){infrared();}if(logo==1){comeback();}}}void int0(void)interrupt 0{}附录2 液晶驱动源代码程序#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit rs=P1^0;sbit lcden=P1^1;sbit p20=P2^0;sbit p21=P2^1;uchar count,num;char miao,shi,fen;uchar code table[]="2010-6-22 ROBOT"; uchar code table1[]=" 00:00:00"; void time();void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_com(uchar com){rs=0;lcden=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}void write_date(uchar date){rs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;}void init(){uchar num;lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(num=0;num<15;num++){write_date(table[num]);delay(5);}write_com(0x80+0x40);for(num=0;num<12;num++){write_date(table1[num]);delay(5);}TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}void write_sfm(uchar add,uchar date) {uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_date(0x30+shi);write_date(0x30+ge);}void main(){init();while(1){if((p20==1)&&(p21==1))//回到起点{TR0=0;}elseif((p20==0)&&(p21==1))//单程去{TR0=1;time();}elseif((p20==1)&&(p21==0))//单程回{TR0=1;time();}elseif((p20==0)&&(p21==0))//终点{TR0=0;}}}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;}void time(void){if(count==18){count=0;miao++;if(miao==60){miao=0;fen++;if(fen==60){fen=0;shi++;if(shi==24){shi=0;}write_sfm(4,shi);}write_sfm(7,fen);}write_sfm(10,miao);}}附录3总体电路图(见下页)。

相关文档
最新文档