电磁循迹
基于ADRC-PID串级控制算法的直立智能车
中图分类号 :TP39
文献标识码 :A
文章编号 :2095-1302(2021)01-0051-03
0引言
对于电磁循迹直立智能车在赛道上不断修正路线时电磁 信号变化大,外部干扰敏感时系统无法保持稳定,以及参数 调整不便等问题,本文提出了基于串级自抗扰控制算法的直 立智能车系统。传统智能车一般采用经典 PID、自适应模糊 PID、神经网络等控制算法,这些方法成熟,易于实现,但 各自存在不足之处。一方面,参数调整困难,传统 PID 控制 是根据得到的误差来逐步减少偏离量以达到控制目的,而理 想控制效果则来源于有效的误差值和良好的参数,所以受输 入信号品质和参数影响较大。另一方面,调整好的 PID 参数 并不能有效的自适应系统和周围环境中的干扰变量,在传统 智能车程序中,实际采集到的电磁信号在车速过快的情况下 会“跳变”,此时以期望目标值与实际值做差得到误差值的 方法不太合理,传统 PID 控制算法基于得到的误差值在进 行输出限幅后无法使系统快速反应。此外,用于智能车的模 糊 PID 和神经网络算法实际调参和获得训练集比较麻烦。为 了更快地调试参数和提高直立智能车对外界环境的抗干扰能 力,提出 ADRC-PID 串级控制算法。实验结果证明,直立智 能车有较强的抗干扰性,可实现自主循迹。
1.2 驱动模块
图 2 电源模块
收稿日期:2020-03-14 修回日期:2020-05-07
直立智能车需要驱动 2 个电机并实现正反转,为提高
2021年 / 第1期 物联网技术 51
Copyright©博看网 . All Rights Reserved.
智能处理与应用
将谐振电路采集的感应电压作为方向引导指标,将输入 值进行归一化处理后,通过左右电感差比和相应算法得到误 差值,使用增量式 PD(也可以只有 P 参数)作为方向外环进 行控制,通过陀螺仪采集的角速度作为 PD 方向内环控制车模 方向,最终使得直立智能车中线始终保持在预定电磁线上 [2]。 2.2 速度 PI 控制器设计
红外循迹传感器工作原理
红外循迹传感器工作原理红外循迹传感器是一种应用广泛的传感器,它可以用于机器人的循迹、避障、避光等场合。
其工作原理是利用红外线传感器感受地面上黑线与白地的反射率差异,从而控制机器人自动行走。
接下来,我将详细介绍红外循迹传感器的工作原理。
一、红外线红外线是一种电磁波,其波长长于可见光,频率低于可见光。
人眼不能直接感知红外线,但许多热物体会主动辐射出红外线,因此红外线传感器被广泛应用于热成像、温度测量等领域。
红外循迹传感器主要由光电二极管和运算放大器构成。
当红外线照射到地面上的黑线或白地面时,会发生不同程度的反射。
红外循迹传感器可以探测这些反射光,并将其转化为电信号输出。
黑线反射的光比白地面反射的光小,因此红外循迹传感器可以通过排除环境干扰,只检测地面上的黑线,从而控制机器人自动行走。
三、工作原理当红外光源照射到地面上的黑线或白地面时,反射光线经过红外循迹传感器的光电二极管,产生微弱的信号电流。
该电流信号经过放大、滤波等处理后,被转化为数字信号输出。
由于黑色反射率低于白色反射率,因此检测到的黑线信号电压低于白线信号电压。
通过设定一个阈值,当检测到的信号电压低于该阈值时,机器人会执行相应的行动指令。
在机器人的循迹控制系统中,通常会使用多个红外循迹传感器组合使用。
两个传感器可以探测机器人左右两侧的黑线情况,进而控制机器人前进方向。
多个传感器可以实现更加复杂的循迹控制策略,例如环形循迹、轨迹识别等。
四、总结红外循迹传感器广泛应用于机器人、自动化生产线等领域。
在机器人的应用中,红外循迹传感器通常与电机、舵机、控制器等部件组合使用。
在自动化生产线的应用中,红外循迹传感器可以用于检测物料的位置、实现物料输送等功能。
除了红外线,其它传感器也可以用于循迹控制。
光电开关可以探测黑线和白线的颜色差异,从而控制机器人行走。
超声波传感器可以检测机器人距离地面的高度,从而实现避障控制。
红外循迹传感器具有响应速度快、功耗低、价格低廉、安装方便等优势,因此是循迹控制领域中应用最广泛的传感器之一。
简易电磁循迹智能小车ppt课件
过渡页
Transition Page
总体设计方案
电磁传感器
电
信号采集及处理
源
模
块
逻辑控制
电机驱动
左电机
右电机
电磁传感器
由于赛道路径上铺设的漆包线通有20KHz的方波,传感器采用传统的 电磁感应线圈方案,它具有原理简单,体积较小,价格便宜,相应频率快, 电路实现简单等优点。
检测电磁线圈选用10mH的工字电感,这类电感的体积小, Q值高,具有开放的磁芯等特点。
已知感应电动势的频率为f=20 kHz,感应线圈电感为 L= 10 mH ,可以计算出谐振电容的容量为:
标称电容与上述容值最为接近的电容为 6.8nF,所以在 实际电路中我们选用 6.8nF 的独石电容作为谐振电容。该电 容虽然误差比较大,测试中15个电容里面误差最小的都有 1453pF,但价格便宜。
磁感线是以导体为圆心的一系列同心圆,由上述公式可知,当电 流I一定时,磁感应强度与距离导线中心的长度成反比。变化的磁 场通过感应线圈会产生感应电动势。因此在小车前方放置感应线 圈,根据磁场的大小产生相应感应电动势,驱动小车行进。根据 法拉第电磁感应定律可知,假设线圈半径为r,感应电动势为:
过渡页
过渡页
Transition Page
1
制作过程 2
3
第一阶段:课程设计题目分析、文献查询和 咨询阶段
第二阶段:电路设计、元器件采购及电路板 PCB设计阶段
第三阶段:焊接电路及调试阶段
过渡页
Transition Page
通过在跑道上测试,本设计基本达到了课程设计要求。 但其中也有不足之处。首先小车在行进途中会出现左 右晃动的情况,通过分析,是由于对感应部分的放大 电路没有达到要求,当导线位于两电感线圈中间时, 产生的感应电动势极其微小,放大倍数不高,以至于 后面的逻辑判断不能准确定位。其次对于小车行驶速 度也有待提高,起初为了防止小车因速度过快不能及 时反应而脱离跑道,因此在电机驱动电路上选择稍大 电阻,以减小电流。整体而言,整个设计所需成本较 低,功能也基本完善,在后续的学习和工作中,我将 进一步改进传感器电路,加大探测范围,提升小车速 度,来提升智能车的性能。
智能电磁循迹小车的硬件设计与实现
智能电磁循迹小车的硬件设计与实现作者:陈文仙庞荣来源:《商情》2011年第29期【摘要】本智能车依据交流信号能够产生磁场(电磁感应)的原理,采用LC 谐振回路感应电磁信号寻迹方案,同时配合光电编码盘、电机、舵机、电池以及相关驱动电路来进行信息的处理,以达到路径识别的目的,并通过PID 方式对电机和舵机进行相关调节,最终以闭合回路的形式控制模型车高速稳定地在跑道上行驶。
【关键词】电磁感应 PID 路径识别闭环控制1引言本文以第六届全国大学生智能汽车竞赛为背景,为了保证智能汽车能够具有迅捷的速度、远而清晰的前瞻以及较高的灵敏度与稳定性,从硬件方面对系统进行了优化。
2智能汽车控制系统总体设计2.1总体设计思路。
依据电磁感应的原理我们用LC 谐振回路为传感器来采集信号,之后用运放对采集到的信号进行放大,最终将此信号送给单片机进行处理。
在控制策略方面,主要包括转向控制和速度控制。
对于舵机的转向控制,我们采取经典的位置式PD 算法。
对于电机的速度控制策略,采用PID 调节的同时引入反转制动刹车电路。
各个方面的之间的联系如图所示。
2.2系统硬件结构。
此智能车采用谐振回路定位系统来跟踪前方的赛道,通过谐振回路将检测到了信号进行放大,送给外部A/D 进行数据的处理,最后送给MC9S12XS128 进行相应的运算,然后将计算得到的数据送给舵机和电机,对其进行相应的控制。
其中所用的硬件结构包括:电源模块、MC9S12XS128 系统、传感器模块、电机驱动模块、无线模块。
3智能汽车机械系统调整与改造在对智能车几个月来的研究,我们发现在规则允许范围内,适当优化机械结构可以带来事半功倍的效果。
根据长期的调试,我们发现对于前轮倾角、悬挂、后轮的差速做调整会使车行驶时有更好的效果。
3.1前轮的调整。
根据汽车理论,对前轮的调整主要包括主销后倾,主销内倾,前轮外倾,前轮前束几个方面。
3.1.1主销后倾。
主销后倾角指主稍轴线与地面垂直线在汽车纵向平面内的夹角。
电磁循迹原理
电磁循迹原理电磁循迹原理是一种在电子设备中应用的循迹技术,可以让电子设备能够跟踪和记录信息。
它通过利用电磁波谱来检测、跟踪和记录电子设备的位置变化,以及跟踪这些电子设备的信息,从而实现电子设备的实时监控和定位技术。
电磁循迹原理的基本原理是“循迹”,即在电子设备移动的过程中,通过电子设备发出的电磁信号,测量出其位置和速度的变化,进而实现对其的位置监控和定位技术。
电磁循迹原理可以在一定程度上降低电子设备的位置变化距离,提高准确度。
它还可以实现在多个设备之间进行高速数据传输。
电磁循迹原理可以用于实现各种电子设备的运动检测、定位和监控,如移动设备的轨迹跟踪、车辆的GPS定位、节能电梯的位置跟踪等等。
电磁循迹原理也可以用于实现大规模的仪器测控、制导和控制技术。
电磁循迹原理在现在被广泛应用,在几乎所有的移动设备中,都使用了电磁循迹原理来跟踪和记录位置变化。
比如说智能手机,通过电磁循迹原理,它可以实时跟踪用户的位置,从而提供更好的服务。
电磁循迹原理还可以用于工业生产系统,跟踪和记录设备、机器人的位置变化,以及当前的工作状态,为企业的管理和控制提供有力的技术支撑。
电磁循迹原理一直在不断发展,面向未来,它将成为一个智能设备和工业自动化系统中不可缺少的技术手段。
它可以用于移动物体的跟踪,也可以更加有效地应用于工业自动化系统中,从而促进整体的发展和进步。
可以说,未来的电子设备和工业生产系统中,电磁循迹原理将成为一种极其重要的技术手段。
总之,电磁循迹原理是一种应用广泛的循迹技术,可以用于实现电子设备的实时监控和定位,也可以用于实现大规模的仪器测控、制导和控制技术。
它在未来也将被广泛应用于智能设备和工业自动化系统中,为企业和消费者提供更有效和更可靠的服务。
简易电磁循迹智能小车
应用场景
教育实验
作为教学实验设备,帮 助学生了解电磁感应、
自动控制等原理。
科研项目
作为研究平台,用于探 索智能车辆、传感器技
术等领域的研究。
自动化运输
在特定场景下,如工厂 、仓库等,用于物品的
自动运输和分拣。
娱乐设备
作为玩具或表演道具, 提供智能化的行驶体验
。
02
硬件组成
控制器
控制器是小车的核心部件,负 责接收指令并控制小车的运动 。
详细描述
在智能小车上安装无线接收模块,通过遥控器发送控制信号,实现对小车的远 程控制。遥控器可以控制小车的启动、停止、转向以及速度调节等操作。
THANKS
感谢观看
常见的电磁信号处理算法有滤波、阈值判断、波形识别等,它们可以根据实际情况 进行选择和调整。
电磁信号处理算法还需要考虑噪声和干扰的影响,以及不同材质和环境条件下的变 化,以确保智能小车的准确性和可靠性。
04
调试与优化
调试步骤
01
02
03
04
硬件检查
检查小车的硬件连接是否正确 ,包括电机、电池、传感器等
案例二:自动避障功能演示
总结词
智能小车在行驶过程中能够自动识别障碍物并实现避障。
详细描述
通过在小车前方安装红外或超声波传感器,当小车接近障碍 物时,传感器能够检测到障碍物的存在并发送信号给控制器 ,控制器根据接收到的信号调整小车的行驶方向,实现自动 避障功能。
案例三:无线控制功能演示
总结词
通过无线遥控器对智能小车进行远程控制。
。
软件编程
根据设计要求编写控制程序, 确保小车能够按照预设路径行
驶。
测试运行
基于Arduino控制的四驱智能循迹小车设计
• 124•利用电磁信号传感模块获取路径信息,并传送给开源硬件Arduino作为反馈信号,用于驱动左右双路直流电机以不同转速旋转,以转速差控制小车运动姿态并实现循迹行驶。
本设计使用Arduino 集成开发环境简化了程序代码,采用四轮全驱差速转向的形式简化了机械结构,运用模块化连接简化了电路,能够激发使用者学习编程语言的兴趣,并培养良好的实践动手能力。
编程控制技术使用场景非常丰富,但学习过程往往比较枯燥。
为了激发编程语言学习兴趣,拟设计一款竞速小车作为学习载体来进行Arduino 编程控制技术相关知识的学习。
1.整体设计Arduino UNO 控制板控制电机驱动模块,带动电机转动,使小车开始行驶。
而电磁循迹模块将感应路面上的电磁信号,传输到Arduino UNO 控制板来控制小车循迹,同时红外避障模块感应到前方有障碍物时,会传输信号给Arduino 控制小车停下,小车电机将停止转动。
降压模块则是给电池降压保护Arduino UNO 控制板。
系统结构框图如图1所示。
图1 系统结构框图2.硬件设计2.1 结构设计小车主要由Arduino UNO 控制板,微型直流减速电机,铝合金板,轮胎,直流电机驱动模块,E18-D80NK 红外避障模块,降压模块,10mH 工字电磁传感器,12.6V 电池,开关以及杜邦线等部件组成,其结构设计如图2所示。
图2 循迹小车结构设计图使用Arduino UNO 板为整个智能车控制系统的核心,通过杜邦线与各传感器连接,主要负责接收电磁传感器和红外避障模块传输来的信号,根据各传感器传送回来信号进行处理分析。
安装在小车左侧。
使用200*150*3mm 的铝合金板作为底盘支架,并将四个轮子和电机安装在两侧。
每个车轮由单独一个直流减速电机驱动,每个驱动电机外径25mm ,额定功率约7w ,减速比1:20,转速约980rpm 。
通过单独控制左右两侧电机的转速实现直行或转向。
驱动电机安装在铝板下方,通过连轴器与轮胎相连。
智能循迹小车
智能循迹小车随着科技的飞速发展,无人驾驶技术逐渐成为现代交通领域的重要组成部分。
其中,智能循迹小车作为一种先进的无人驾驶车辆,具有广泛的应用前景。
本文将介绍智能循迹小车的基本原理、系统构成、设计方法以及应用场景。
智能循迹小车通过传感器感知周围环境,包括道路标志、其他车辆、行人等信息,再通过控制系统对感知到的信息进行处理和分析,制定出相应的行驶策略,最终控制车辆的行驶。
其中,循迹小车通过特定的传感器识别道路标志,并沿着标志所指示的路径行驶,实现自动循迹。
传感器系统:用于感知周围环境,包括道路标志、其他车辆、行人等信息。
常见的传感器包括激光雷达、摄像头、超声波等。
控制系统:对传感器感知到的信息进行处理和分析,制定出相应的行驶策略,并控制车辆的行驶。
常用的控制系统包括基于规则的控制、模糊控制、神经网络等。
执行机构:根据控制系统的指令,控制车辆的行驶速度、方向等。
常见的执行机构包括电机、舵机等。
电源系统:提供电力支持,保证小车的正常运行。
常用的电源包括锂电池、超级电容器等。
硬件设计:根据需求选择合适的传感器、控制系统、执行机构和电源等硬件设备,并对其进行集成设计,保证各个设备之间的兼容性和稳定性。
软件设计:编写控制系统的程序,实现对车辆的控制。
常用的编程语言包括C++、Python等。
在软件设计中需要考虑如何处理传感器感知到的信息,如何制定行驶策略,以及如何控制执行机构等方面的问题。
调试与优化:通过实验测试小车的性能,发现问题并进行优化。
常见的调试和优化方法包括调整控制系统的参数、更换硬件设备等。
智能循迹小车具有广泛的应用前景,主要包括以下几个方面:交通管理:用于交通巡逻、交通管制等,提高交通管理效率。
应急救援:在灾难现场进行物资运输、人员疏散等任务,提高应急救援效率。
自动驾驶:作为无人驾驶车辆的样机进行研究和发展,推动自动驾驶技术的进步。
教育科研:用于高校和研究机构的科研项目,以及学生的实践和创新项目。
怎么实现循迹方案
怎么实现循迹方案简介循迹技术是指让机器人或车辆能够根据特定的线路进行移动或导航的技术。
循迹方案是机器人或车辆能够实现自动驾驶、路径规划和避障等功能的关键。
本文将介绍如何实现一个基于循迹的方案。
1. 传感器选择实现循迹方案的第一步是选择适合的传感器。
常用的传感器包括红外线传感器、光电传感器和摄像头等。
下面分别介绍这些传感器的特点和适用场景。
1.1 红外线传感器红外线传感器是一种经济实用的循迹传感器。
它可以通过测量地面上反射的红外线信号来检测机器人或车辆的位置。
它的工作原理是利用红外线发射器发射红外线,然后由红外线传感器接收并检测反射回来的红外线信号。
红外线传感器适用于室内或室外的光线较暗的环境。
1.2 光电传感器光电传感器是一种常用的循迹传感器。
它可以通过测量地面上的光线强度来检测机器人或车辆的位置。
光电传感器适用于室内或室外的光线较亮的环境。
与红外线传感器相比,光电传感器的精度更高,但成本较高。
1.3 摄像头摄像头是一种高级的循迹传感器。
它可以通过拍摄地面图像并进行图像处理来检测机器人或车辆的位置。
摄像头适用于复杂的环境和要求较高精度的应用场景。
但是,由于摄像头需要大量的计算资源,因此在资源受限的设备上使用时需要考虑计算性能。
2. 循迹算法选择合适的传感器后,下一步是实现循迹算法。
循迹算法的目标是根据传感器获取的数据确定机器人或车辆应该沿着的路径。
2.1 简单阈值算法简单阈值算法是一种基本的循迹算法。
它通过设定一个阈值来判断传感器数据是否超过或低于该阈值,从而确定机器人或车辆应该沿着哪个方向移动。
例如,可以通过红外线传感器检测到的红外线信号强度来判断机器人应该往左转、往右转还是直行。
2.2 PID控制算法PID控制算法是一种常用的循迹算法。
它通过比较期望的路径和当前位置的偏差来调整机器人或车辆的控制信号,从而实现精确的循迹。
PID控制算法由比例控制、积分控制和微分控制三部分组成。
通过调节这三部分的权重和参数,可以获得较好的循迹效果。
智能电磁循迹小车的硬件设计与实现
智能电磁循迹小车的硬件设计与实现【摘要】本智能车依据交流信号能够产生磁场(电磁感应)的原理,采用LC 谐振回路感应电磁信号寻迹方案,同时配合光电编码盘、电机、舵机、电池以及相关驱动电路来进行信息的处理,以达到路径识别的目的,并通过PID 方式对电机和舵机进行相关调节,最终以闭合回路的形式控制模型车高速稳定地在跑道上行驶。
【关键词】电磁感应PID 路径识别闭环控制1引言本文以第六届全国大学生智能汽车竞赛为背景,为了保证智能汽车能够具有迅捷的速度、远而清晰的前瞻以及较高的灵敏度与稳定性,从硬件方面对系统进行了优化。
2智能汽车控制系统总体设计2.1总体设计思路。
依据电磁感应的原理我们用LC 谐振回路为传感器来采集信号,之后用运放对采集到的信号进行放大,最终将此信号送给单片机进行处理。
在控制策略方面,主要包括转向控制和速度控制。
对于舵机的转向控制,我们采取经典的位置式PD 算法。
对于电机的速度控制策略,采用PID 调节的同时引入反转制动刹车电路。
各个方面的之间的联系如图所示。
2.2系统硬件结构。
此智能车采用谐振回路定位系统来跟踪前方的赛道,通过谐振回路将检测到了信号进行放大,送给外部A/D 进行数据的处理,最后送给MC9S12XS128 进行相应的运算,然后将计算得到的数据送给舵机和电机,对其进行相应的控制。
其中所用的硬件结构包括:电源模块、MC9S12XS128 系统、传感器模块、电机驱动模块、无线模块。
3智能汽车机械系统调整与改造在对智能车几个月来的研究,我们发现在规则允许范围内,适当优化机械结构可以带来事半功倍的效果。
根据长期的调试,我们发现对于前轮倾角、悬挂、后轮的差速做调整会使车行驶时有更好的效果。
3.1前轮的调整。
根据汽车理论,对前轮的调整主要包括主销后倾,主销内倾,前轮外倾,前轮前束几个方面。
3.1.1主销后倾。
主销后倾角指主稍轴线与地面垂直线在汽车纵向平面内的夹角。
有主销后倾角时汽车的车轮在车轮偏转后,车轮和地面的作用会使车轮产生一回正力矩,纠正车轮的偏转。
智能车电磁循迹原理
智能车电磁循迹原理
智能车电磁循迹原理是通过在车辆底部安装电磁传感器,利用电磁感应原理检测周围地面的磁场变化,从而实现车辆的循迹导航。
具体原理是,智能车底部的电磁传感器会感知地面磁场的变化。
当车辆在一条磁线上行驶时,该磁线产生的磁场会引起电磁传感器的感应器件产生电信号。
通过检测电信号的大小和变化,可以确定车辆相对于磁线的位置和方向。
智能车一般配备了多个电磁传感器,可以安装在车辆底部的不同位置,以便更好地感知地面上的磁场变化。
通过对多个传感器产生的电信号进行处理和分析,可以确定车辆的运动轨迹,从而实现循迹导航。
需要注意的是,智能车电磁循迹原理适用于在特定的磁场环境下进行循迹导航,因此需要提前在循迹路线上铺设磁线。
同时,由于地面磁场可能存在较大的干扰,智能车的电磁传感器需要具备一定的抗干扰能力,以提高循迹的准确性和稳定性。
基于单片机的电磁循迹智能车设计
基于单片机的电磁循迹智能车设计发布时间:2023-02-03T05:45:54.933Z 来源:《科技新时代》2022年第18期作者:吕俊杰1,李子俊1,付子豪1 [导读] 本文介绍电磁循迹越野车的设计方案。
车辆基于TC377处理器,采用AURIX开发环境。
吕俊杰1,李子俊1,付子豪1(1.湖北汽车工业学院汽车工程学院,湖北十堰 442002)摘要:本文介绍电磁循迹越野车的设计方案。
车辆基于TC377处理器,采用AURIX开发环境。
通过智能车机械结构调整,传感器电路设计,电池、传感器的选择以及起跑线的检测等完成小车的自主循迹,简单工作原理是TC377单片机通过AD口采集电感检测的拟量,并通过算法处理,然后返回的值用于舵机控制,根据编码器返回值进行电机的闭环控制。
为达到速度和转角协调控制的目的,采用模糊PID的方法,使小车能够平稳循迹选择合适的电池为小车提供强大的电力。
关键字:电磁循迹;模糊PID;机械结构;引言:近年来,智能车已经成为世界车辆工程领域研究的热点和汽车工业增长的新动力,很多发达国家都将其纳入到各自重点发展的智能交通系统当中。
竞赛要求在规定的汽车模型平台上,采用飞思卡尔半导体公司的8位、16位、32位微控制器作为核心控制单元,自主构思控制方案进行系统设计,包括传感器信号采集处理、电机驱动、转向舵机控制以及模糊控制算法和软件开发等,以TC377作为核心控制模块,制作完成一个能够自主识别道路的模型汽车。
参赛队员的目标是模型汽车需要按照规则以最短时间完成单圈赛道。
1 总体设计方案基于TC377单片机开发了电磁循迹小车,根据电磁传感器,编码器来获得小车的行驶数据,通过电机驱动模块以及直流电机驱动小车,采用蓝牙通信技术将数据远程发送可实时获取小车行驶过程中的重要参数,以此确定以及优化小车的行驶路线,通过舵机和电机调整车辆姿态,整体设计方案如图1。
图1 系统总体设计2小车姿态分析2.1电磁传感器工作原理假定导线中通有恒定电流 I,由物理知识可知,为方便讨论赛道中磁场的分布,在小车赛道上建立图3所示的坐标系。
循迹、避障、寻光小车实验报告
简易智能小车摘要:本系统基于自动控制原理,以MSP430为控制核心,用红外传感器、光敏三极管、霍尔传感器、接近开关之间相互配合,实现了小车的智能化,小车完成了自动寻迹、避障、寻光入库、计时、铁片检测、行程测量的功能。
本系统采用液晶LCD12864显示数据,良好的人机交流界面,显示小车行程的时间、铁片中心线离起始线的距离和铁片的个数。
整个系统控制灵活,反应灵敏。
关键词:MSP430 传感器 LCD12864目录一、方案论证与比较 (3)1、题目任务要求及相关指标的分析 (3)2、方案的比较与选择 (3)(1)控制单元的选择 (3)(2)直流电机驱动电路的选择 (3)(3)轨迹探测模块选择 (3)(4)金属片的探测 (3)(5)路程测量方案的选择 (4)(6)避障方案的选择 (4)(7)小车寻光方案的选择 (4)(8)电源的选择 (4)(9)刹车机构功能方案比较 (5)二、系统总体设计方案及实现方框图 (5)1、系统总体设计方案 (5)2、系统实现框图 (5)三、理论分析与计算 (5)1、铁片中心线距离的测量 (5)2、小车行程时间的测量 (5)四、主要功能电路设计 (6)1、小车循迹模块 (6)2、小车检测铁片模块 (6)3、小车测距模块 (6)4、小车避障模块 (6)5、小车寻光模块 (6)6、直流电机驱动模块 (7)五、系统软件的设计 (8)六、测试量数据与分析 (8)1、测量数据 (8)2、数据分析 (8)参考文献 (8)一、方案论证与比较1.题目任务要求及相关指标的分析题目要求小车按照规定的跑道行驶,同时检测在跑道下的铁片,在检测到最后一块铁片时小车会有连续的声光显示;后又可以准确的避开障碍,而且不与障碍物接触;最后,在光源的引导下,进入车库。
智能小车有显示功能,可以显示检测到铁片的数量,金属片距起点的距离,行驶的总时间。
整个行驶过程中的总时间不大于90秒,小车在行驶90秒后会自动停车。
2. 方案的比较与选择(1)控制单元的选择方案一:利用单片机与FPGA配合使用。
《多种方法实现机器人循迹》 教学设计
《多种方法实现机器人循迹》教学设计一、教学目标1、让学生了解机器人循迹的基本概念和原理。
2、使学生掌握多种机器人循迹的方法和技术。
3、培养学生的动手实践能力和创新思维。
4、增强学生对机器人技术的兴趣和探索精神。
二、教学重难点1、重点(1)理解机器人循迹的工作原理。
(2)掌握常见的机器人循迹方法,如光电传感器循迹、灰度传感器循迹等。
2、难点(1)如何根据不同的环境和任务要求,选择合适的循迹方法和传感器。
(2)如何对传感器采集的数据进行处理和分析,以实现准确的循迹控制。
三、教学方法1、讲授法:讲解机器人循迹的基本概念、原理和方法。
2、演示法:通过实际演示机器人的循迹过程,让学生直观地了解循迹的效果和特点。
3、实践法:让学生分组进行机器人循迹的实验和调试,培养学生的动手能力和问题解决能力。
四、教学过程1、导入(5 分钟)通过播放一段机器人在特定轨道上自动循迹行驶的视频,引起学生的兴趣和好奇心,然后提出问题:机器人是如何实现自动循迹的?引导学生思考和讨论。
2、知识讲解(20 分钟)(1)介绍机器人循迹的概念和应用领域,如工业生产、物流运输、智能家居等。
(2)讲解机器人循迹的原理,即通过传感器检测环境中的轨迹信息,然后将这些信息传输给控制器,控制器根据预设的算法和逻辑,控制机器人的运动方向和速度,从而实现循迹。
(3)详细介绍几种常见的机器人循迹方法和传感器:光电传感器循迹:利用光电传感器对不同颜色或亮度的物体进行检测,从而识别轨迹。
光电传感器通常由发光二极管和光敏三极管组成,当光线照射到物体上并反射回来被光敏三极管接收时,会产生电信号,根据电信号的强弱可以判断机器人是否偏离轨迹。
灰度传感器循迹:灰度传感器可以检测物体表面的灰度值,通过比较不同位置的灰度值差异来确定轨迹。
灰度传感器通常由一个发光二极管和一个光敏电阻组成,当光线照射到物体上时,光敏电阻的阻值会发生变化,从而产生不同的电压信号,根据电压信号的大小可以判断机器人的位置。
MMSE简易智能精神状态检查量表
MMSE简易智能精神状态检查量表MMSE简易智能精神状态检查量表是一种广泛使用的认知功能评估工具,它被设计用于帮助医生、研究人员和其他专业人士评估老年人的认知功能。
该量表涵盖了从简单定向反应到抽象思维能力的多个认知领域,包括注意力、记忆力、计算力、语言能力等。
MMSE简易智能精神状态检查量表的设计初衷是简便易行,可以在短时间内完成,适用于大规模筛查和流行病学研究。
这个量表具有很高的信度和效度,已被广泛应用于临床实践和研究中。
虽然MMSE简易智能精神状态检查量表是一种非常有效的认知功能评估工具,但是在实际应用中也需要注意一些问题。
该量表的评分标准比较主观,不同的人可能会有不同的评分结果。
因此,对于同一受试者,最好由同一位医生或专业人士进行评估。
该量表只能评估受试者的认知功能,不能用于诊断特定的神经退行性疾病或其他认知障碍。
对于一些受试者,特别是那些文化背景、教育程度或语言能力与量表设计者不同的受试者,可能需要调整评估方法和标准。
MMSE简易智能精神状态检查量表是一种非常有用的认知功能评估工具,可以帮助医生、研究人员和其他专业人士了解老年人的认知状况。
然而,在使用该量表时需要注意其局限性,并根据实际情况进行适当的调整和应用。
蒙特利尔认知评估量表与简易精神状态量表在评估外科老年患者认知功能中的得分转换及验证认知功能评估是老年医学领域的重要部分,对于外科老年患者,准确的认知评估有助于医生制定更适合个体的治疗方案和生活计划。
在这篇文章中,我们将重点介绍蒙特利尔认知评估量表(MoCA)和简易精神状态量表(MMSE)在认知功能评估中的应用,以及它们之间的得分转换和验证方法。
MoCA和MMSE都是广泛应用于认知功能评估的量表。
MoCA是一个较为全面的认知评估工具,包括注意力、执行力、记忆力、语言能力等多个方面,适用于评估轻度认知障碍和早期阿尔茨海默病患者。
MMSE则是一个简短的认知评估工具,主要涵盖了注意力、记忆力、定向力等基本认知领域,适用于大规模筛查和流行病学研究。
电磁直立循迹智能汽车毕业论文
摘要本文详细叙述了对两轮电磁寻迹直立智能车的运动控制设计过程。
随着科技技术迅猛发展和生活水平的提高,人们对于汽车的安全性、方便性要求也越来越高。
智能车辆的使用可以改善道路安全状况,提高道路的利用率。
对于智能汽车的传感技术和数据分析技术的研究能够有效地提高智能汽车对于复杂环境道路的通过性,从而让智能车的运用能够更加方便、快捷、安全的为我们服务。
“飞思卡尔智能车竞赛”是由教育部主办的全国大学生智能汽车竞赛,目前已经成功举办了六届。
该竞赛根据传感器的不同分别设立了:光电组,电磁车组和电磁组。
本文主要研究的是两轮寻迹电磁智能车。
两轮电磁寻迹直立智能车的原理是通过电磁传感器采集赛道信息,同时电子陀螺仪和加速度传感器采集直立智能车的当前车身信息,再交由单片机对路况信息进行识别、分析和信息处理,最后再交由单片机给出控制信号来控制车的双电机让小车在保证直立的状态下沿着指定路线行驶。
在工作中主要用到的编程环境使比赛组委会提供的CodeWarrior。
设计过程主要运用了汇编语言和单片机的相关知识以及PID控制算法。
关键词:智能车;单片机;两轮循迹直立电磁车;PID;陀螺仪;加速度传感器AbstractThis paper illustrate details of the design process of the upright two electromagnetic tracing smart car's motion control . With the rapid development of science and technology and the improvement of living standards,people's requirements of vehicle safety, convenience become higher and higher. The use of intelligent vehicles can improve road safety conditions and the utilization of the road. To study the smart car by testing sensing technology and data analysis techniques can effectively improve its ability for passing complex environment of the road , so that the use of smart cars can be more convenient, faster and safer for our services.Freescale Smart Car Competition "organized by the Ministry of Education of the National Smart car race has already hold for 6 sessions. The contest was set up according to the different sensors: photoelectric group, camera group and electromagnetic group. This paper studies the two tracing electromagnetic smart car.The principle of two electromagnetic tracing upright to intelligent vehicles is to track information collected through electromagnetic sensors, electronic gyroscopes and acceleration sensors collect current body upright smart car, then the microcontroller on the traffic information to the identification, analysis and information handling. Finally, the microcontroller gives the control signal to control the car motor car traveling along the designated route in the state to ensure vertical. The programming environment primarily used in the work so that the competition provided by the organizing committee of the CodeWarrior. The design process is the main use of assembly language and knowledge of the microcontroller and the PID control algorithm.Keywords: Smart car; microcontroller; two tracking upright electromagnetic vehicle; the PID; gyroscope; accelerometer.摘要 (1)Abstract (2)第一章绪论 (5)1.1 国外的发展趋势 (6)1.2 国内发展 (7)1.3 电磁循迹直立智能车的比赛特点 (7)1.4 课题意义 (9)1.5 本课题研究主要内容 (10)第二章电磁寻迹直立智能车的系统构建 (11)2.1 电磁寻迹原理 (11)2.2 电磁直立循迹智能车总体构成 (13)2.3 功能模块介绍 (14)2.3.1 加速度传感器 (14)2.3.2 电子陀螺仪 (17)2.3.3 电磁传感器 (18)2.3.4 编码器 (19)2.3.5 电机驱动电路 (20)第三章电磁寻迹直立智能车智能软件系统的设计 (21)3.1 智能控制概论 (21)3.1.1 模糊控制 (21)3.2 系统辨识的基本概念 (23)3.3 车直立系统的设计 (24)3.3.1 平衡思想 (24)3.3.2 直立系统中具体的控制过程 (25)3.4 采样方法和采样间隔的选择 (29)3.4.1 电磁传感器采样选择 (30)3.5 路径检测算法的设计 (30)3.6 路径算法的优化处理 (30)3.7 车行驶中直立控制策略 (31)3.8 两轮车转向系统设计 (31)3.9 PID控制 (33)3.9.1 不完全微分PID (34)3.9.2 微分先行PID (35)3.9.3 前馈控制的应用 (36)3.9.4 在速度控制中的应用 (37)3.10 调速控制策略与行车车速优化策略 (38)3.11 底层设置 (38)第四章调试说明 (38)4.1 调试策略及步骤 (38)4.1.1 调试参数 (38)4.1.2调试条件 (39)4.2 调试经验总结 (41)第五章总结与展望 (41)参考文献 (42)第一章绪论随着现代高新技术的迅速发展,信息化和智能化越来越多的应用到人类社会的生产、生活的各个方面,曾经只能在科普小说中看到的智能汽车已经不再是虚幻的,人们在不久的将来将能在现实中看见智能汽车。
摄像头智能车讲稿解析
2.光电式脉冲编码器
光电式脉冲编码器可将机械位移、转角或速度变化转换成 电脉冲输出,是精密数控采用的检测传感器。光电编码器的最 大特点是非接触式,此外还具有精度高、响应快、可靠性高等 特点。 光电编码器采用光电方法,将转角和位移转换为各种代码 形式的数字脉冲,如下图所示。
3.测速发电机
此种方法检测速度准确, 但测速电机体积过大且价 格昂贵,其安装也不易, 所以不常用这种方法。
PT7
转向舵机模块 S3010
智能车作为一个完全自主系统,首先要完成对路径信息和速度信息的获取 然后通过对舵机和直流驱动电机的控制,实现小车的自动行驶。整个系统 以MC9S12XS128 单片机为核心,辅以电源管理模块、路径识别模块、车速 采集模块、转向舵机模块、电机驱动模块构成。
摄像头寻迹智能车硬件模块设计
大多数车模选择 的是光电编码器。
硬件模块设计——电机驱动
智能车优劣评定的重要标准就是,直道、弯道应采取不同 的速度控制策略。直接用电池电源无法实现速度控制,因此需要 用到电机驱动控制电路。 MC9S12单片机集成有PWM输出单元,可以用来控制大功率晶 体管、全桥或半桥电路,实现对电机的速度控制。
H桥驱动电路
摄像头模型车采用图像传感器直接“观测” 赛道,进行信 息识别寻迹,其“面型检测阵列”远多于“线型检测阵列”所能 检测的信息,利用单片机进行视频信号采样处理,可有效识别出 导引线的位置,区分各种道路类型并提供足够远的预判距离。
电 磁 寻 迹 模 型 小 车
光电寻迹模型小车
摄 像 头 寻 迹 模 型 小 车
摄像头 传感器方案
1.检测前瞻距离远 2.检测范围宽 3.检测道路参数多 4.占用MCU端口资源少
摄像头寻迹智能车系统结构组成
电磁循迹
基于电磁感应的循迹小车的设计作者:陈一、硬件设计1、传感器模块由10mh的电感与6.8nf电容并联组成谐振电路用于检测轨道中的电线产生的交变磁场。
由于传感器转换得到的电信号为交流信号且较为微弱,难以被AD模块采集利用,所以需经过检波运放电路处理后输入AD模块再给单片机。
因为其信号频率为20kHz,因此可以采取包络检波将其峰值转换为直流信号,再经过LM358运算放大器进行电压放大(采用电压反馈放大)。
2、此次单片机选用51单片机,型号为stc89c52,其操作简单,价格低廉,性能也足以满足设计所需,但由于其片内资源有限,无自带AD模块,所以外加一个16位4路AD模块ADS1115。
3、电机驱动模块采用常见的LM298N用于驱动直流电机,并且给其12V供电可引出5v给单片机供电,解决电源问题。
检波放大电路图如下:单片机与AD模块连接图如下:二、软件设计即A1-A2<调试测得..\参考资料\ADS1115中文资料.pdf主要通过IIC时序读取返回值,需要配置三个寄存器,详见参考资料。
三、调试数码管显示返回数值,在跑道上纪录直道,左右转各自的数值范围,用于程序调试最终适应相关跑道。
(因完成的比较仓促,并未运用PID算法,在低速下足以循迹)四、附录电路仿真图:.实物图:参考程序:# include <reg52.h># include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit pwm_r = P2^0;sbit pwm_l = P2^1;sbit SDA = P1^0;sbit SCL = P1^1;sbit DU = P2^6; //数码管段选sbit WE = P2^7; //数码管位选uint widthL = 39;uint widthR = 37;uint fre = 40;int a;uchar code table[]={//0 1 2 3 4 5 6 7 80x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F,//9 A B C D E F - . 关显示0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71, 0x40, 0x80, 0x00};/*====================================数码管位选码====================================*///第1位2位3位4位5位6位7位8位uchar code T_COM[] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};//数码管位码/*5us延时*/void delay_5us(){_nop_();}/*1Ms延时*/void delay(uint z){uint x,y;for(x = z; x > 0; x--)for(y = 114; y > 0 ; y--);}void Display(uint Value){//------------------------------DU = 1;P0 = table[Value/10000];DU = 0;P0 = 0xff;WE = 1;P0 = T_COM[0];WE = 0;delay(3);//-------------------------------DU = 1;P0 = table[Value%10000/1000];DU = 0;P0 = 0xff;WE = 1;P0 = T_COM[1];WE = 0;delay(3);//-------------------------------DU = 1;P0 = table[Value%10000%1000/100];DU = 0;P0 = 0xff;WE = 1;P0 = T_COM[2];WE = 0;delay(3);//-------------------------------DU = 1;P0 = table[Value%10000%1000%100/10];DU = 0;P0 = 0xff;WE = 1;P0 = T_COM[3];WE = 0;delay(3);//-------------------------------DU = 1;P0 = table[Value%10000%1000%100%10];DU = 0;P0 = 0xff;WE = 1;P0 = T_COM[4];WE = 0;delay(3);}/*1Ms延时*//*void delay(uint z){uint x,y;for(x = z; x > 0; x--)for(y = 114; y > 0 ; y--);}*//*****************I2C部分********************//*I2C初始化*/void I2C_init(){SDA = 1;_nop_();SCL = 1;_nop_();}/*I2C起始信号*/void I2C_Start(){SCL = 1;_nop_();SDA = 1;delay_5us();SDA = 0;delay_5us();}/*I2C终止信号*/void I2C_Stop(){SDA = 0;_nop_();SCL = 1;delay_5us();SDA = 1;delay_5us();}void respons(){SCL=1;_nop_();SDA=0;_nop_();SCL=0;_nop_();}void norespons(){SCL=1;_nop_();SDA=1;_nop_();}/*发送一个字节*/void I2C_send_byte(uchar byte){uchar i;for(i = 0 ; i < 8 ; i++){SCL = 0;_nop_();if (byte & 0x80){SDA = 1;_nop_();}else{SDA = 0;_nop_();}SCL = 1;_nop_();byte <<= 1; // 0101 0100B}SCL = 0;_nop_();SDA = 1;_nop_();}/*I2C 读一字节*/uchar I2C_read_byte(){uchar dat,i;SDA=1;_nop_();SCL=0;_nop_();for(i=0;i<8;i++){SCL=1;_nop_();if(SDA)dat|=0x01;if(i<7)dat<<=1;SCL=0;_nop_();}return dat;}/*****************AD模块部分********************//*ADS1115写入数据*/void confige_write(){I2C_Start();I2C_send_byte(0x90);respons();I2C_send_byte(0x01);respons();I2C_send_byte(0x82);respons();I2C_send_byte(0xe3);respons();I2C_Stop();}void pointer(){I2C_Start();I2C_send_byte(0x90);respons();I2C_send_byte(0x00);respons();I2C_Stop();}/*ADS1115读取数据*/uint conversion_read(){uchar resulth,resultl;uint result;I2C_Start();I2C_send_byte(0x91);respons();resulth = I2C_read_byte();norespons();resultl = I2C_read_byte();norespons();result=resulth<<8|resultl;return result;}uint get_ad(){uint value;confige_write();delay_5us();pointer();delay_5us();value=conversion_read();return value;}/*****************初始化********************/void init() //2ms/40=0.05ms {TMOD = 0x02;TH0 =210;TL0 =210;ET0 = 1; //开定时器0中断TR0 = 1;//启动定时器0EA = 1; //开总中断}/*****************主函数********************/void main(){init();I2C_init();while(1){a=get_ad();if (~a>3000&&~a<30000){widthL = 0;widthR = 18;}else if (a>3000&&a<30000){widthL = 19;widthR = 0;}else {widthL = 25;widthR = 24;}}}/*****************定时器0中断,产生pwm********************/void t0_int() interrupt 1{static int count;count++;if(count > widthL)pwm_l = 0;if(count > widthR)pwm_r = 0;if(count == fre){count = 0;pwm_r = pwm_l =1;}}。
科技节小故事
科技节小故事科技节小故事(精选31篇)故事一般都和原始人类的生产生活有密切关系,他们迫切地希望认识自然,于是便以自身为依据,想象天地万物都像人一样,有着生命和意志。
以下是小编精心整理的,希望对大家有所帮助。
科技节小故事篇1你还记得那个在第十届全国大学生飞思卡尔智能车华东区预赛的激烈角逐中脱颖而出的电磁循迹智能小车么?你还记得在扣人心弦的决赛中荣摘桂冠的电磁组么?无论你记得或者不记得,记者都忘不了那个在科技节被围观点赞的电磁循迹智能小车,正因为被它的风采吸引,所以想带大家追寻一下小车背后的故事。
我们有幸采访到电磁组中的队长许俊伟,是他与队友刘丽、胡斌斌、吴奕男在导师冯伟的帮助下共同奋战,完成了他们的作品——电磁循迹智能小车。
据了解,他们从去年六月份开始组队,到今年六月份一直在做准备工作。
到后期更是反复揣摩,夜以继日才达到自己的理想要求。
他们在此期间也曾遇到过困难,从最开始使用超声波测距,但效果一般,经常误测误判,到后来经过完善,用了加有红外调制信号的超声波鸳鸯模块,并且将距离的误差用PID算法来修正,这才保证了双车距离的稳定。
另外,在一个团队中最不可缺少的就是团结,他们也曾针对某一个问题进行争论,各抒己见,但最后他们选择一一尝试每个人的想法,择优整合。
队长许俊伟会心地说:“通过这个比赛,我们把能将所学知识用于实践,并且与队友相互磨合学习的过程也是收获友谊的过程,这些都是宝贵的经历。
”最后他鼓励学弟学妹多动手实践,敢想敢做,那么一切的梦想皆有可能。
就是这个四人小团体,他们创造的电磁循迹智能小车在科技节上展现了独特的风采,吸引许多人驻足拍照,赞叹不已。
在收获了肯定的同时,许俊伟也向记者透露小车目前仍有改进的空间,遇到的最大的困难就是速度的提升,当速度达到一定值以后,小车其他元件的反应速度和处理速度就会跟不上。
比赛玩的就是速度,但是速度太大又会导致小车冲出赛道。
他表明他们会继续完善它,备战下一届的比赛。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于电磁感应的循迹小车的设计作者:陈一、硬件设计1、传感器模块由10mh的电感与电容并联组成谐振电路用于检测轨道中的电线产生的交变磁场。
由于传感器转换得到的电信号为交流信号且较为微弱,难以被AD模块采集利用,所以需经过检波运放电路处理后输入AD模块再给单片机。
因为其信号频率为20kHz,因此可以采取包络检波将其峰值转换为直流信号,再经过LM358运算放大器进行电压放大(采用电压反馈放大)。
2、此次单片机选用51单片机,型号为stc89c52,其操作简单,价格低廉,性能也足以满足设计所需,但由于其片内资源有限,无自带AD模块,所以外加一个16位4路AD模块ADS1115。
3、电机驱动模块采用常见的LM298N用于驱动直流电机,并且给其12V供电可引出5v给单片机供电,解决电源问题。
检波放大电路图如下:单片机与AD 模块连接图如下:二、 软件设计是即A1-A2<设定值调试测得 否是否 是开始IIC 协议读取左右两路AD 数字量A1、A2直行命令A1==A2 A1>A2A1<A2 右拐命令左拐命令..\参考资料\ADS1115中文资料.pdf主要通过IIC时序读取返回值,需要配置三个寄存器,详见参考资料。
三、调试数码管显示返回数值,在跑道上纪录直道,左右转各自的数值范围,用于程序调试最终适应相关跑道。
(因完成的比较仓促,并未运用PID算法,在低速下足以循迹)四、附录电路仿真图:实物图:参考程序:# include <># include <>#define uchar unsigned char#define uint unsigned intsbit pwm_r = P2^0;sbit pwm_l = P2^1;sbit SDA = P1^0;sbit SCL = P1^1;sbit DU = P2^6; 关显示0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71, 0x40, 0x80, 0x00};/*====================================数码管位选码====================================*///第1位2位 3位 4位 5位 6位 7位8位uchar code T_COM[] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};//数码管位码/*5us延时*/void delay_5us(){_nop_();}/*1Ms延时*/void delay(uint z){uint x,y;for(x = z; x > 0; x--)for(y = 114; y > 0 ; y--); }void Display(uint Value){//------------------------------DU = 1;P0 = table[Value/10000];DU = 0;P0 = 0xff;WE = 1;P0 = T_COM[0];WE = 0;delay(3);//-------------------------------DU = 1;P0 = table[Value%10000/1000];DU = 0;P0 = 0xff;WE = 1;P0 = T_COM[1];WE = 0;delay(3);//-------------------------------DU = 1;P0 = table[Value%10000%1000/100];DU = 0;P0 = 0xff;WE = 1;P0 = T_COM[2];WE = 0;delay(3);//-------------------------------DU = 1;P0 = table[Value%10000%1000%100/10];DU = 0;P0 = 0xff;WE = 1;P0 = T_COM[3];WE = 0;delay(3);//-------------------------------DU = 1;P0 = table[Value%10000%1000%100%10];DU = 0;P0 = 0xff;WE = 1;P0 = T_COM[4];WE = 0;delay(3);}/*1Ms延时*//*void delay(uint z){uint x,y;for(x = z; x > 0; x--)for(y = 114; y > 0 ; y--);}*//*****************I2C部分********************//*I2C初始化*/void I2C_init(){SDA = 1;_nop_();SCL = 1;_nop_();}/*I2C起始信号*/void I2C_Start(){SCL = 1;_nop_();SDA = 1;delay_5us();SDA = 0;delay_5us(); }/*I2C终止信号*/void I2C_Stop(){SDA = 0;_nop_();SCL = 1;delay_5us();SDA = 1;delay_5us();}void respons(){SCL=1;_nop_();SDA=0;_nop_();SCL=0;_nop_();}void norespons(){SCL=1;_nop_();SDA=1;_nop_();}/*发送一个字节*/void I2C_send_byte(uchar byte){uchar i;for(i = 0 ; i < 8 ; i++){SCL = 0;if (byte & 0x80){SDA = 1;_nop_();}else{SDA = 0;_nop_();}SCL = 1;_nop_();byte <<= 1; // 0101 0100B}SCL = 0;_nop_();SDA = 1;_nop_();}/*I2C 读一字节*/uchar I2C_read_byte(){uchar dat,i;SDA=1;SCL=0;_nop_();for(i=0;i<8;i++){SCL=1;_nop_();if(SDA)dat|=0x01;if(i<7)dat<<=1;SCL=0;_nop_();}return dat;}/*****************AD模块部分********************/ /*ADS1115写入数据*/void confige_write(){I2C_Start();I2C_send_byte(0x90);respons();I2C_send_byte(0x01);respons();I2C_send_byte(0x82);respons();I2C_send_byte(0xe3);respons();I2C_Stop();}void pointer(){I2C_Start();I2C_send_byte(0x90);respons();I2C_send_byte(0x00);respons();I2C_Stop();}/*ADS1115读取数据*/uint conversion_read(){uchar resulth,resultl;uint result;I2C_Start();I2C_send_byte(0x91);respons();resulth = I2C_read_byte();norespons();resultl = I2C_read_byte();norespons();result=resulth<<8|resultl; return result;}uint get_ad(){uint value;confige_write();delay_5us();pointer();delay_5us();value=conversion_read();return value;}/*****************初始化********************/void init() //2ms/40= {TMOD = 0x02;TH0 =210;TL0 =210;ET0 = 1; //开定时器0中断TR0 = 1;//启动定时器0EA = 1; //开总中断}/*****************主函数********************/void main(){init();I2C_init();while(1){a=get_ad();if (~a>3000&&~a<30000){widthL = 0;widthR = 18;}else if (a>3000&&a<30000){widthL = 19;widthR = 0;}else {widthL = 25;widthR = 24;}}}/*****************定时器0中断,产生pwm********************/void t0_int() interrupt 1{static int count;count++;if(count > widthL)pwm_l = 0;if(count > widthR)pwm_r = 0;if(count == fre){count = 0;pwm_r = pwm_l =1;}}。