Archive for 八月, 2009

22

*霍尔传感器简介

from:2008-04-24  人教网 江苏省洪泽中学 程如林

摘要:本文简略介绍霍尔传感器的工作原理、分类及其简单应用。

关键词:霍尔效应 霍尔元件 霍尔传感器 分类 特性 应用

霍尔传感器是一种磁传感器。用它可以检测磁场及其变化,可在各种与磁场有关的场合中使用。霍尔传感器以霍尔效应为其工作基础,是由霍尔元件和它的附属电路组成的集成传感器。霍尔传感器在工业生产、交通运输和日常生活中有着非常广泛的应用。

一、霍尔效应霍尔元件 霍尔传感器

(一)霍尔效应

如图1所示,在半导体薄片两端通以控制电流I,并在薄片的垂直方向施加磁感应强度为B的匀强磁场,则在垂直于电流和磁场的方向上,将产生电势差为UH的霍尔电压,

它们之间的关系为W020080424342893849350

W020080424342893849111

式中d 为薄片的厚度,k称为霍尔系数,它的大小与薄片的材料有关。

上述效应称为霍尔效应,它是德国物理学家霍尔于1879年研究载流导体在磁场中受力的性质时发现的。

(二)霍尔元件

根据霍尔效应,人们用半导体材料制成的元件叫霍尔元件。它具有对磁场敏感、结构简单、体积小、频率响应宽、输出电压变化大和使用寿命长等优点,因此,在测量、自动化、计算机和信息技术等领域得到广泛的应用。

(三)霍尔传感器

由于霍尔元件产生的电势差很小,故通常将霍尔元件与放大器电路、温度补偿电路及稳压电源电路等集成在一个芯片上,称之为霍尔传感器。

W020080424342893848427

霍尔传感器也称为霍尔集成电路,其外形较小,如图2所示,是其中一种型号的外形图。

二、霍尔传感器的分类

霍尔传感器分为线性型霍尔传感器和开关型霍尔传感器两种。

(一)线性型霍尔传感器由霍尔元件、线性放大器和射极跟随器组成,它输出模拟量。

(二)开关型霍尔传感器由稳压器、霍尔元件、差分放大器,斯密特触发器和输出级组成,它输出数字量。

三、霍尔传感器的特性

(一)线性型霍尔传感器的特性

W020080424342894000218

输出电压与外加磁场强度呈线性关系,如图3所示,可见,在B1~B2的磁感应强度范围内有较好的线性度,磁感应强度超出此范围时则呈现饱和状态。

(二)开关型霍尔传感器的特性

如图4所示,其中BOP为工作点“开”的磁感应强度,BRP为释放点“关”的磁感应强度。

W020080424342894005870

当外加的磁感应强度超过动作点Bop时,传感器输出低电平,当磁感应强度降到动作点Bop以下时,传感器输出电平不变,一直要降到释放点BRP时,传感器才由低电平跃变为高电平。BopBRP之间的滞后使开关动作更为可靠。

另外还有一种“锁键型”(或称“锁存型”)开关型霍尔传感器,其特性如图5所示。

W020080424342894006699

当磁感应强度超过动作点Bop时,传感器输出由高电平跃变为低电平,而在外磁场撤消后,其输出状态保持不变(即锁存状态),必须施加反向磁感应强度达到BRP时,才能使电平产生变化。

四、霍尔传感器的应用

按被检测对象的性质可将它们的应用分为:直接应用和间接应用。前者是直接检测受检对象本身的磁场或磁特性,后者是检测受检对象上人为设置的磁场,这个磁场是被检测的信息的载体,通过它,将许多非电、非磁的物理量,例如速度、加速度、角度、角速度、转数、转速以及工作状态发生变化的时间等,转变成电学量来进行检测和控制。

(一)线性型霍尔传感器主要用于一些物理量的测量。例如:

1.电流传感器

由于通电螺线管内部存在磁场,其大小与导线中的电流成正比,故可以利用霍尔传感器测量出磁场,从而确定导线中电流的大小。利用这一原理可以设计制成霍尔电流传感器。其优点是不与被测电路发生电接触,不影响被测电路,不消耗被测电源的功率,特别适合于大电流传感。

W020080424342894002161

霍尔电流传感器工作原理如图6所示,标准圆环铁芯有一个缺口,将霍尔传感器插入缺口中,圆环上绕有线圈,当电流通过线圈时产生磁场,则霍尔传感器有信号输出。

2.位移测量

如图7所示,两块永久磁铁同极性相对放置,将线性型霍尔传感器置于中间,其磁感应强度为零,这个点可作为位移的零点,当霍尔传感器在Z轴上作Z位移时,传感器有一个电压输出,电压大小与位移大小成正比。

W020080424342894000823

如果把拉力、压力等参数变成位移,便可测出拉力及压力的大小,如图8所示,是按这一原理制成的力传感器。

W020080424342894001103

(二)开关型霍尔传感器主要用于测转数、转速、风速、流速、接近开关、关门告知器、报警器、自动控制电路等。

1.测转速或转数

如图9所示,,在非磁性材料的圆盘边上粘一块磁钢,霍尔传感器放在靠近圆盘边缘处,圆盘旋转一周,霍尔传感器就输出一个脉冲,从而可测出转数(计数器),若接入频率计,便可测出转速。

W020080424342894004411

如果把开关型霍尔传感器按预定位置有规律地布置在轨道上,当装在运动车辆上的永磁体经过它时,可以从测量电路上测得脉冲信号。根据脉冲信号的分布可以测出车辆的运动速度。

2.各种实用电路

开关型霍尔传感器尺寸小、工作电压范围宽,工作可靠,价格便宜,因此获得极为广泛的应用。下面列举两个实用电路加以说明:

电路1  防盗报警器

W020080424342894001537

如图10所示,将小磁铁固定在门的边缘上,将霍尔传感器固定在门框的边缘上,让两者靠近,即门处于关闭状态时,磁铁靠近霍尔传感器,输出端3为低电平,当门被非法撬开时,霍尔传感器输出端3为高电平,非门输出端Y为低电平,继电器J吸合,Ja闭合,蜂鸣器得电后发出报警声音。

电路2  公共汽车门状态显示器

W020080424342894169491

使用霍尔传感器,只要再配置一块小永久磁铁就很容易做成车门是否关好的指示器,例如公共汽车的三个门必须关闭,司机才可开车。电路如图11所示,三片开关型霍尔传感器分别装在汽车的三个门框上,在车门适当位置各固定一块磁钢,当车门开着时,磁钢远离霍尔开关,输出端为高电平。若三个门中有一个未关好,则或非门输出为低电平,红灯亮,表示还有门未关好,若三个门都关好,则或非门输出为高电平,绿灯亮,表示车门关好,司机可放心开车。

参考文献:

[1]成辉.传感器的理论与设计基础及其应用.北京:国防工业出版社,1999

[2]霍尔传感器及应用电路.北京电子报1994合订本P.381

*  霍尔传感器的使用要点

霍尔传感器是根据霍尔效应制作的一种磁场传感器。霍尔效应是磁电效应的一种,这一现象是霍尔(A.H.Hall,1855—1938)于1879年在研究金属的导电机构时发现的。后来发现半导体、导电流体等也有这种效应,而半导体的霍尔效应比金属强得多,利用这现象制成的各种霍尔元件,广泛地应用于工业自动化技术、检测技术及信息处理等方面。霍尔效应是研究半导体材料性能的基本方法。通过霍尔效应实验测定的霍尔系数,能够判断半导体材料的导电类型、载流子浓度及载流子迁移率等重要参数。
流体中的霍尔效应是研究“磁流体发电”的理论基础。
(1)电流传感器必须根据被测电流的额定有效值适当选用不同的规格的产品。被测电流长时间超额,会损坏末极功放管(指磁补偿式),一般情况下,2倍的过载电流持续时间不得超过1分钟。
(2)电压传感器必须按产品说明在原边串入一个限流电阻R1,以使原边得到额定电流,在一般情况下,2倍的过压持续时间不得超过1分钟。
(3)电流电压传感器的最佳精度是在原边额定值条件下得到的,所以当被测电流高于电流传感器的额定值时,应选用相应大的传感器;当被测电压高于电压传感器的额定值时,应重新调整限流电阻。当被测电流低于额定值1/2以下时,为了得到最佳精度,可以使用多绕圈数的办法。
(4)绝缘耐压为3KV的传感器可以长期正常工作在1KV及以下交流系统和1.5KV及以下直流系统中,6KV的传感器可以长期正常工作在2KV及以下交流系统和2.5KV及以下直流系统中,注意不要超压使用。
(5)在要求得到良好动态特性的装置上使用时,最好用单根铜铝母排并与孔径吻合,以大代小或多绕圈数,均会影响动态特性。
(6)在大电流直流系统中使用时,因某种原因造成工作电源开路或故障,则铁心产生较大剩磁,是值得注意的。剩磁影响精度。退磁的方法是不加工作电源,在原边通一交流并逐渐减小其值。
(7)传感器抗外磁场能力为:距离传感器5~10cm一个超过传感器原边电流值2倍的电流,所产生的磁场干扰可以抵抗。三相大电流布线时,相间距离应大于5~10cm。
(8)为了使传感器工作在最佳测量状态,应使用图1-10介绍的简易典型稳压电源。
(9)传感器的磁饱和点和电路饱和点,使其有很强的过载能力,但过载能力是有时间限制的,试验过载能力时,2倍以上的过载电流不得超过1分钟。
(10)原边电流母线温度不得超过85℃,这是ABS工程塑料的特性决定的,用户有特殊要求,可选高温塑料做外壳。

from:网络

Category : 单片机开发 | 电子设计 | Blog
22

1.光电编码器的工作原理
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。这是目前应用最多的传感器, 光电编码器是由光栅盘和光电检测装置组成。光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,其原理示意图如图1所示;通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。此外,为判断旋转方向,码盘还可提供相位相差90º的两路脉冲信号。

200782292459681

根据检测原理,编码器可分为光学式、磁式、感应式和电容式。根据其刻度方法及信号输出形式,可分为增量式、绝对式以及混合式三种。
1.1增量式编码器
增量式编码器是直接利用光电转换原理输出三组方波脉冲A、B和Z相;A、B两组脉冲相位差90º,从而可方便地判断出旋转方向,而Z相为每转一个脉冲,用于基准点定位。它的优点是原理构造简单,机械平均寿命可在几万小时以上,抗干扰能力强,可靠性高,适合于长距离传输。其缺点是无法输出轴转动的绝对位置信息。
1.2绝对式编码器
绝对编码器是直接输出数字量的传感器,在它的圆形码盘上沿径向有若干同心码道,每条道上由透光和不透光的扇形区相间组成,相邻码道的扇区数目是双倍关系,码盘上的码道数就是它的二进制数码的位数,在码盘的一侧是光源,另一侧对应每一码道有一光敏元件;当码盘处于不同位置时,各光敏元件根据受光照与否转换出相应的电平信号,形成二进制数。这种编码器的特点是不要计数器,在转轴的任意位置都可 读出一个固定的与位置相对应的数字码。显然,码道越多,分辨率就越高,对于一个具有 N位二进制分辨率的编码器,其码盘必须有N条码道。目前国内已有16位的绝对编码器产品。
绝对式编码器是利用自然二进制或循环二进制(葛莱码)方式进行光电转换的。绝对式编码器与增量式编码器不同之处在于圆盘上透光、不透光的线条图形,绝对编码器可有若干编码,根据读出码盘上的编码,检测绝对位置。编码的设计可采用二进制码、循环码、二进制补码等。它的特点是:
1.2.1可以直接读出角度坐标的绝对值;
1.2.2没有累积误差;
1.2.3电源切除后位置信息不会丢失。但是分辨率是由二进制的位数来决定的,也就是说精度取决于位数,目前有10位、14位等多种。
1.3混合式绝对值编码器
混合式绝对值编码器,它输出两组信息:一组信息用于检测磁极位置,带有绝对信息功能;另一组则完全同增量式编码器的输出信息。
光电编码器是一种角度(角速度)检测装置,它将输入给轴的角度量,利用光电转换原理 转换成相应的电脉冲或数字量,具有体积小,精度高,工作可靠,接口数字化等优点。它广泛应用于数控机床、回转台、伺服传动、机器人、雷达、军事目标测定等需要检测角度的装置和设备中。
2. 光电编码器的应用电路
2.1 EPC-755A光电编码器的应用
EPC-755A光电编码器具备良好的使用性能,在角度测量、位移测量时抗干扰能力很强,并具有稳定可靠的输出脉冲信号,且该脉冲信号经计数后可得到被测量的数字信号。因此,我们在研制汽车驾驶模拟器时,对方向盘旋转角度的测量选用EPC-755A光电编码器作为传感器,其输出电路选用集电极开路型,输出分辨率选用360个脉冲/圈,考虑到汽车方向盘转动是双向的,既可顺时针旋转,也可逆时针旋转,需要对编码器的输出信号鉴相后才能计数。图2给出了光电编码器实际使用的鉴相与双向计数电路,鉴相电路用1个D触发器和2个与非门组成,计数电路用3片74LS193组成。

200782292443682

当光电编码器顺时针旋转时,通道A输出波形超前通道B输出波形90°,D触发器输出Q(波形W1)为高电平,Q(波形W2)为低电平,上面与非门打开,计数脉冲通过(波形W3),送至双向计数器74LS193的加脉冲输入端CU,进行加法计数;此时,下面与非门关闭,其输出为高电平(波形W4)。当光电编码器逆时针旋转时,通道A输出波形比通道B输出波形延迟90°,D触发器输出Q(波形W1)为低电平,Q(波形W2)为高电平,上面与非门关闭,其输出为高电平(波形W3);此时,下面与非门打开,计数脉冲通过(波形W4),送至双向计数器74LS193的减脉冲输入端CD,进行减法计数。
汽车方向盘顺时针和逆时针旋转时,其最大旋转角度均为两圈半,选用分辨率为360个脉冲/圈的编码器,其最大输出脉冲数为900个;实际使用的计数电路用3片74LS193组成,在系统上电初始化时,先对其进行复位(CLR信号),再将其初值设为800H,即2048(LD信号);如此,当方向盘顺时针旋转时,计数电路的输出范围为2048~2948,当方向盘逆时针旋转时,计数电路的输出范围为2048~1148;计数电路的数据输出D0~D11送至数据处理电路。
实际使用时,方向盘频繁地进行顺时针和逆时针转动,由于存在量化误差,工作较长一段时间后,方向盘回中时计数电路输出可能不是2048,而是有几个字的偏差;为解决这一问题,我们增加了一个方向盘回中检测电路,系统工作后,数据处理电路在模拟器处于非操作状态时,系统检测回中检测电路,若方向盘处于回中状态,而计数电路的数据输出不是2048,可对计数电路进行复位,并重新设置初值。
2.2 光电编码器在重力测量仪中的应用
采用旋转式光电编码器,把它的转轴与重力测量仪中补偿旋钮轴相连。重力测量仪中补偿旋钮的角位移量转化为某种电信号量;旋转式光电编码器分两种,绝对编码器和增量编码器。
增量编码器是以脉冲形式输出的传感器,其码盘比绝对编码器码盘要简单得多且分辨率更高 。一般只需要三条码道,这里的码道实际上已不具有绝对编码器码道的意义,而是产生计数 脉冲。它的码盘的外道和中间道有数目相同均匀分布的透光和不透光的扇形区(光栅),但 是两道扇区相互错开半个区。当码盘转动时,它的输出信号是相位差为90°的A相和B相脉冲 信号以及只有一条透光狭缝的第三码道所产生的脉冲信号(它作为码盘的基准位置,给计数 系统提供一个初始的零位信号)。从A,B两个输出信号的相位关系(超前或滞后)可判断旋转的方向。由图3(a)可见,当码盘正转时,A道脉冲波形比B道超前π/2,而反转时 ,A道脉冲比B道滞后π/2。图3(b)是一实际电路,用A道整形波的下沿触发单稳态 产生的正脉冲与B道整形波相‘与’,当码盘正转时只有正向口脉冲输出,反之,只有逆向口脉冲输出。因此,增量编码器是根据输出脉冲源和脉冲计数来确定码盘 的转动方向和相对角位移量。通常,若编码器有N个(码道)输出信号,其相位差为π/ N,可计数脉冲为2N倍光栅数,现在N=2。图3电路的缺点是有时会产生误记脉冲造成误差, 这种情况出现在当某一道信号处于‘高’或‘低’电平状态,而另一道信号正处于‘高’和 ‘低’之间的往返变化状态,此时码盘虽然未产生位移,但是会产生单方向的输出脉冲。例如,码盘发生抖动或手动对准位置时(下面可以看到,在重力仪测量时就会有这种情况)。

200782292554866200782292614967

图4是一个既能防止误脉冲又能提高分辨率的四倍频细分电路。在这里,采用了有记忆功能 的D型触发器和时钟发生电路。由图4可见,每一道有两个D触发器串接,这样,在时钟脉 冲的间隔中,两个Q端(如对应B道的74LS175的第2、7引脚)保持前两个时钟期的输入 状态,若两者相同,则表示时钟间隔中无变化;否则,可以根据两者关系判断出它的变化方 向,从而产生‘正向’或‘反向’输出脉冲。当某道由于振动在‘高’、‘低’间往复变化 时,将交替产生‘正向’和‘反向’脉冲,这在对两个计数器取代数和时就可消除它们的影 响(下面仪器的读数也将涉及这点)。由此可见,时钟发生器的频率应大于振动频率的可能 最大值。由图4还可看出,在原一个脉冲信号的周期内,得到了四个计数脉冲。例如,原每 圈脉冲数为1000的编码器可产生4倍频的脉冲数是4000个,其分辨率为0.09°。实际上 ,目前这类传感器产品都将光敏元件输出信号的放大整形等电路与传感检测元件封装在一起 ,所以只要加上细分与计数电路就可以组成一个角位移测量系统(74159是4-16译码器)。
3.应用中问题分析及改进措施
3.1应用中问题分析
光电检测装置的发射和接收装置都安装在生产现场,在使用中暴露出许多缺陷,其有内在因素也有外在因素,主要表现在以下几个方面:
3.1.1发射装置或接受装置因机械震动等原因而引起的移位或偏移,导致接收装置不能可靠的接收到光信号,而不能产生电信号。例如;光电编码器应用在轧钢调速系统中,因光电编码器是直接用螺栓固定在电动机的外壳上,光电编码器的轴通过较硬的弹簧片和电动机转轴相连接,因电动机所带负载是冲击性负载,当轧机过钢时会引起电动机转轴和外壳的振动。经测定;过钢时光电编码器振动速度为2.6mm/s,这样的振动速度会损坏光电编码器的内部功能。造成误发脉冲,从而导致控制系统不稳定或误动作,导致事故发生。
3.1.2因光电检测装置安装在生产现场,受生产现场环境因素影响导致光电检测装置不能可靠的工作。如安装部位温度高、湿度大,导致光电检测装置内部的电子元件特性改变或损坏。例如在连铸机送引锭跟踪系统,由于光电检测装置安装的位置靠近铸坯,环境温度高而导致光电检测装置误发出信号或损坏,而引发生产或人身事故。
3.1.3生产现场的各种电磁干扰源,对光电检测装置产生的干扰,导致光电检测装置输出波形发生畸变失真,使系统误动或引发生产事故。例如;光电检测装置安装在生产设备本体,其信号经电缆传输至控制系统的距离一般在20—100米,传输电缆虽然一般都选用多芯屏蔽电缆,但由于电缆的导线电阻及线间电容的影响再加上和其它电缆同在一起敷设,极易受到各种电磁干扰的影响,因此引起波形失真,从而使反馈到调速系统的信号与实际值的偏差,而导致系统精度下降。
3.2改进措施
3.2.1改变光电编码器的安装方式。光电编码器不在安装在电动机外壳上,而是在电动机的基础上制作一固定支架来独立安装光电编码器,光电编码器轴与电动机轴中心必须处于同一水平高度,两轴采用软橡胶或尼龙软管相连接,以减轻电动机冲击负载对光电编码器的机械冲击。采用此方式后经测振仪检测,其振动速度降至1.2mm/s。
3.2.2合理选择光电检测装置输出信号传输介质,采用双绞屏蔽电缆取代普通屏蔽电缆。双绞屏蔽电缆具有两个重要的技术特性,一是对电缆受到的电磁干扰具有较强的防护能力,因为空间电磁场在线上产生的干扰电流可以互相抵消。双绞屏蔽电缆的另一个技术特点是互绞后两线间距很小,两线对干扰线路的距离基本相等,两线对屏蔽网的分布电容也基本相同,这对抑制共模干扰效果更加明显。
3.2.3利用PLC软件监控或干涉。在连铸生产的送引锭过程要求光电检测装置产生有时序性的电信号,同时,该信号与整个过程不同阶段相对应。如图5。

200782292632427

①送引锭过程启动前,光电信号1为“1”。
②送引锭过程启动后,在A阶段,辊道启动,引锭杆上送。当引锭杆挡住光电装置发射出的红外光时,光电信号为“0”;当红外光透过引锭杆中部2个小圆孔时,光电装置发出信号2和3,均为“1”。
③送引锭过程在B阶段,光电信号为“0”,辊道停下,引锭杆暂停上送,扇形10段压下,启动拉矫机和“同步1”,引锭杆继续上送。
④送引锭过程在C阶段,引锭杆上送,并不再挡住红外光,光电信号4为“1”,启动“同步2”,停下“同步1”,引锭杆继续上送。至此光电装置工作过程结束。
根据光检测电装置的工作过程,只要现场测定送引锭过程中各个光电信号发生的时间,结合送引锭过程与光电信号的关系,利用PLC应用程序中的相关数据,编制符合要求的PLC程序,将PLC程序输出信号输入至PLC的输入模块,替代原光电信号的输入信号。其程序框图如图6所示。

200782292648598

4.结语
光电检测装置本身是由电子元器件构成,它对安装环境有一定的技术要求,特别是在较恶劣环境下使用,要采取相应的保护措施,以使光电检测装置工作在其产品要求的技术条件下,才能发挥装置的技术性能。否则光电检测装置的使用寿命及其工作的可靠性都将受到不同程度的影响。结合光电检测装置在生产过程控制中的应用实践,在控制系统设计中;不宜采用光电检测装置的信号作为重要的控制信号,以避免光电装置突然损坏或工作不稳定(环境高温、湿度大、机械振动、外力碰创等)引起其它设备事故。在控制系统中应用PLC程序实适进行过程控制的监控或干涉,以克服了因系统中采用光电装置而存在的各种缺陷,是提高系统可靠性的有效途径。

来源:转载

Category : 单片机开发 | 电子设计 | Blog
20

邮件问题是很头痛的,我搞了N天,首先就是肯定用不了自带的mail()函数来发注册邮件和评论回复等,那么就要用一个插件了,比较出名的就那两三了。
首先说,wp-mail-smtp,若主机没开openssl,可以使用其他的如QQ、163等支持SMTP的邮箱。但是我用了,它测试可以成功发送邮件,就是注册邮件也可以收到,但是评论回复就不行了。我用的评论回复插件是 Mail to Commenter  。据说,WordPress带验证机制,要把管理员的邮箱和wp mail smtp设置的邮箱一样就可以了。这个我不知道是否是真的,反正我设置了也没成功。不过换了一个插件,有成功了,不知道与此有关没有。
我换的另一个smtp插件是:configure smtp 。okay,可以发送回复邮件了。此插件的使用要点就是发件人名称要和邮箱里面的名称一样。

Category : WordPress | Blog
15

线迷宫如下图所示,存在一些直道、弯道、丁字路口、十字路口、死胡同等多种情况。在“左手法则”下,如何合理的处理每种道路情况,以让机器人能以最快时间或最短路程从起点走到终点,是我们探讨的主要内容。

文中内容结合了自己在机器人开发中的一些体验,并重点参考了国外Richard T-Vannoy教授有关机器人控制材料而完成这篇文章的。

好,下面就让我们进入机器人的迷宫世界吧。

1、线迷宫简介

1.1 线迷宫的类型

线迷宫从结构上看一般又可以分为赛道式和迷宫式,如下图所示:

0J866.400

p1.0 赛道式线迷宫

0J878.300

p1.1 迷宫式线迷宫

赛道式由不同形状的曲线组合而成。这类迷宫的特点是,赛道连贯性强,岔道少(或没有岔道),方便机器人对赛道的判断。但赛道方向不规则的变化也为机器人寻迹增加了很多难度。

迷宫式则是由不同长度的直线组合而成。这类迷宫的特点是,赛道复杂、赛道岔道多、机器人运动路线不唯一。如何准确判断岔道类型,并作出合理判断,是走这类迷宫时机器人遇到的难题。

从颜色看,线迷宫一般又可分为白底黑线和黑底白线两种类型(但鉴于很多赛道采用电胶带粘贴而成,所以白底黑线的情况较为多见)。

但无论是哪种类型的线迷宫,都有一个共同特点就是:要有起点和终点

机器人从起点开始,沿着赛道前进,在终点停止。整个过程中,最快的速度或最短的时间是每位机器人设计者追求的目标,也是迷宫机器人比赛的评判标准。

1.2 线迷宫的技术难点

对于赛道式的线迷宫,技术难点在于如何让机器人在高速运动的状态下,能事先判断赛道变化趋势,以更好的沿着赛道运动;尤其是在弯道上,不会出现偏离或冲出赛道的情况。这里面除了赛道探测传感器的选用外,控制方法也是不可或缺的因素。现在国内的“飞思卡尔智能车比赛”重点考核的就是这个技术难点。

对于迷宫式的线迷宫,机器人如何准确的判断赛道岔路类型,是技术难点。在这类线迷宫中,赛道岔道一般可以分为左转路口、右转路口、丁字路口、十字路口、前进或左转路口、前进或右转路口、死胡同、赛道终点等八种类型。还有些线迷宫带有封闭赛道,更增添了机器人判断的难度。如何让机器人具备自我学习能力,能够发现并记住不能通行的岔道,以期使机器人在第二次穿越时,可以用最短的距离走完线迷宫,是机器人设计的难点。

showimg

p1.2 线迷宫机机器人可能遇到的八种情形

showimg(1)

p1.3 带有封闭赛道的线迷宫

我们这片文章就重点就这第二类迷宫式线迷宫做探讨。

2、机器人控制策略

2.1 左手法则(Left Hand Rule)

  • 机器人执行左转的优先级高于直行或右转;
  • 机器人执行直行的优先级高于右转;

即机器人在线迷宫中,如果遇到“十字路口”(即有左转、直行和右转),机器人会左转;如果遇到“直行或右转路口”,机器人会直行;只有遇到“右转路口”,机器人才右转。一句话就是,执行左手法则的机器人永远是沿着左侧走。如果线迷宫不存在向p1.3图所示的封闭赛道,都可以顺利的从起点走到终点。

2.2 右手法则(Right Hand Rule)

  • 机器人执行右转的优先级高于直行或左转;
  • 机器人执行直行的优先级高于左转;

即机器人在线迷宫中,遇到右转路口,一定右转。如果遇到“十字路口”(即有左转、直行和右转),机器人会右转;如果遇到“直行或左转路口”,机器人会直行;只有遇到“左转路口”,机器人才左转。一句话就是,执行右手法则的机器人永远是沿着右侧走。

2.3 我们的选择

很多初学者在机器人控制时,会为是选择“左手法则”还是选择“右手法则”而矛盾。

这没有任何关系!

无论是左手法则还是右手法则都可以让你的机器人顺利的从起点走到终点,完成迷宫穿越。选用哪种方法纯粹是个人爱好问题。

3、寻线传感器

3.1 寻线传感器类型

这个小节我们介绍一下寻线传感器。可以说机器人的最终走迷宫效果如何,很大程度和寻线传感器有关系。机器人只有通过寻线传感器准确的判断了当前所处赛道的位置,机器人控制机构才可以根据赛道状况做出准确的反应。

寻线传感器模块是多个传感器阵列。从组合方式上主要有两种类型:一字型和八字型(具体看下图所示)。八字形和一字型相比较,前部突出的传感器,让机器人具有了预判断功能。(如果赛道具有丁字路口、十字路口,八字型寻线传感器模块将会使机器人判断工作变得简单)

GS-C5A1
p3.1八字型寻线传感器

showimg(2)

p3.2 一字型寻线传感器

从数量上来说,有3个、4个、5个,乃至更多传感器组合。

一般说,3个的寻线传感器适合做赛道式线迷宫寻线(如图p1.0),不适合迷宫式寻线场合;

传感器数量多于3个时,则可以做迷宫式寻线。数量越多越便于机器人对线路做出预判(这也是为什么我们在看飞思卡尔智能车比赛时,很多小车前头都加了长长一排的寻线传感器,十多个之多的原因)。

从输出信号类型分类,又有模拟信号输出传感器模组和开关量输出传感器模组。这些由于对我们后续的介绍没有太大关系,就不多做分析(当然在我们实际控制上,开关量传感器模组相对简单一些。传感器信号直接送给单片机IO即可;如果是模拟量输出,则还要通过AD模数转换后才可以。但模拟量输出传感器也有其自身的好处,那就是可以准确判断场地灰度值,可以做防坠落功能)。

在我们接下来介绍的机器人走迷宫的内容中,为了介绍方便,我们选用“一字型5通道寻线传感器模组”作为讲解对象。

3.2 寻线传感器工作原理

寻线传感器一般是由光电对管组成,一个发射,一个接收。根据发射光(分可见光和红外光)对赛道介质的反射参数的差别,来判断传感器下面是赛道还是场地。

我们都在物理课本中学过,颜色越深的物体,吸收光线的能力就越强;颜色越浅的物体,发射光线的能力就越强。

当光电对管通过深颜色物体时,由于发射光被吸收很多,能反射出来的光线就小,能被接收管收到的光线就更少;反之,当光电滴灌通过浅颜色物体时,由于发射光被吸收较少,能反射出来的光线就多,能被接收管接收到的光线也随之增多。而光电接收管会随着接收光线的多少而发生电压或电流变化,我们根据这些电参数变化就可以知道传感器碰到的是深颜色物体还是浅颜色物体。赛道之所以要做成黑底白线,或白底黑线,就是为了让电参数变化差异增大,更便于我们判断。

为了方便介绍,在机器人走迷宫时,我们这里设定,遇到黑色,传感器输出“1”高电平;遇到白线,传感器输出“0”低电平。

3.3 寻线传感器的使用

showimg(3)

p3.3 机器人在寻线时的传感器的显示

当机器人沿着线走时(在图中自下向上行驶),处于不同情形时,传感器会有不同的显示。这里列出了5种常见情形:

  • 10000=机器人严重向右偏离赛道(在控制上我们就要让机器人在前进的同时向左做大幅度转动)
  • 01000=机器人轻微向右偏离赛道(在控制上我们就要让机器人在前进的同时向左做轻微转动)
  • 00100=机器人正处在赛道上(在控制上我们就要让机器人继续直线前进)
  • 00010=机器人轻微向左偏离赛道(在控制上我们就要让机器人在前进的同时向右做轻微转动)
  • 00001=机器人严重向左偏离赛道(在控制上我们就要让机器人在前进的同时向右做大幅度转动)

通过传感器对不同情形的反馈,就可以确保机器人准确的沿着赛道前进。

4、机器人对岔路口的处理方法

4.1 机器人走迷宫过程分析

机器人在走线迷宫时,常用的控制方法无非是以下几个步骤:

(1)、机器人沿着当前赛道前进(following the line);前进同时检测前方是否有岔路口。

(2)、一旦检测到岔路口,机器人要判断岔路口的类型;

(3)、确定岔路口类型后,在一定的控制法则下完成转弯。

整个流程在机器人走迷宫时将会循环作用,直到机器人到达迷宫重点。简单用流程图示意一下就是下图:

showimg(4)

p4.1 机器人走迷宫示意图

PS.当然上面的流程图中并没有涉及到后面我们所要讲到的“机器人自主学习功能”。这块功能将单拉出来讲解。

4.2 机器人寻线方法(following the line)

机器人寻线相对而言还是比较简单的,我们只需根据传感器数调整机器人左右转速就可以了。这里提供一个简单的控制代码范例:

Select Case Pattern                              //选择可能的模式;请参考3.3寻线传感器的使用;
Case Pattern = %00100                   //这种模式表示机器人处于赛道正上方,则全速前进;
leftMotor=fast; rightMotor=fast        //即左侧电机和右侧电机都快速前进;
Case Pattern = %01000                  //这种模式表示机器人轻微向右偏离赛道;
leftMotor=medium; rightMotor=fast  //针对这种状况,左侧电机中速转动,右侧电机快递转动,

//通过两侧轮子转速差减少机器人向右偏移;
Case Pattern= %10000                   //这种模式表示机器人已经严重向右偏离赛道;
leftMotor=slow; rightMotor=fast      //针对这种状况,左侧电机慢速转动,右侧电机快速转动,

//以快速纠正机器人。
…and so on

以上范例代码中,慢速、中速和快速只是根据机器人偏离赛道程度大小而使用的描述词语。在实践中,机器人电机转动的速度需要你不断实验、尝试,才能使机器人有更好的寻线效果。(在控制上,这加入了反馈,属于闭环控制。建议去尝试着了解一下闭环控制理论中PID算法的介绍,这将对机器人的速度控制有很大帮助)

4.3 赛道路口的识别和处理。

有了4.2中介绍的内容,我们的机器人就可以沿着赛道走了,但这个时候它还不会判断岔路口,更不知道遇到岔路口应该如何操作。这一小节就重点介绍岔路口的识别和对应操作。

让我们再次去回顾一下1.2小节中“P1.2线迷宫机机器人可能遇到的八种情形”的图片,我们就对图中的八种状况做分析。

showimg[3]

说到这里,我们要重点强调一个概念:岔路口。

至少到现在为止,岔路口的概念还不会对我们介绍的内容造成理解上的偏差。但后面小节要介绍“机器人的自主学习能力”,如果不对这一概念做澄清,会影响后续内容的开展:

岔道口:机器人可以有一个以上行进方向的路口。

按照上面的定义,下图中的两个路口就不能再成为岔路口了。虽然在这两个路口,机器人要执行转向的操作,但在方向选择,显然机器人不必要思考的,左转或右转时他们唯一的选择。同样不能作为岔路口的还有“死胡同”。

showimg(5)

p4.2 不是岔路口的路口

弄明白了这个概念对下一小节的内容就容易理解了。下面就切入本小节的正题:路口的识别和处理。

4.3.1 死胡同的识别和处理

死胡同是8种路口中最简单的一个。当寻线传感器数值从“00100”变化为“00000”时,我们就可以认为机器人是遇到了死胡同。

showimg(6)

p4.3 死胡同

当机器人遇到死胡同时,机器人的动作应该是掉头(make a U-turn)。示意程序代码为:

If Pattern = %00000  then  gosub  U-Turn   //当遇到死胡同,机器人直行掉头的子函数。

4.3.2 “右转路口”和“右转或直行路口”识别和处理

当机器人遇到这两种路口时,传感器输出模式都是“00111”。这个时候机器人如何做选择呢?

showimg(7)

p4.4 右转路口和右转或直行路口

解决方式是,我们编写一个子程序,假设名字是inch(),执行的操作是让机器人再前进一点(一英寸)。当传感器越过赛道后,如果寻线传感器显示数值为“00000”,那么这个路口就一定是“右转路口”;如果寻线传感器显示数值为“00100”,那么这个路口就一定是“右转或直行路口”。

那接下来机器人该如果动作呢?

如果机器人使用的是“左手法则”,在“右转路口”只能有一种选择——右转;在“右转或直行路口”,机器人就要执行“直行”的动作;

如果机器人使用的是“右手法则”,在“右转路口”显然要——右转;在“右转或直行路口”,机器人就要执行“右转”的动作;

4.3.3 “左转路口”和“左转或直行路口”识别和处理

当机器人遇到这两种路口时,传感器输出模式都是“11100”。这个时候机器人如何做选择呢?

showimg(8)

p4.5 左转路口和左转或直行路口

同样我们也是借助子函数inch(),让机器人再前进一点(一英寸)。当传感器越过赛道后,如果寻线传感器显示数值为“00000”,那么这个路口就一定是“左转路口”;如果寻线传感器显示数值为“00100”,那么这个路口就一定是“左转或直行路口”。

那接下来机器人该如果动作呢?

如果机器人使用的是“左手法则”,在“左转路口”显然要——左转;在“左转或直行路口”,机器人就要执行“左转”的动作;

如果机器人使用的是“右手法则”,在“左转路口”只能——左转;在“左转或直行路口”,机器人就要执行“直行”的动作;

4.3.4 “丁字路口”、“十字路口”和“终点路口”识别和处理

当机器人遇到这三种路口时,传感器输出模式都是“11111”。这个时候机器人如何做选择呢?

showimg(9)

p4.6 其他路口

我们还是利用inch()函数,让机器人再前进一点距离,这将帮助我们分辨这三种路口:

如果寻线传感器数值是“00000”,那么这个路口就是丁字路口;

如果寻线传感器数值是“00100”,那么这个路口就是十字路口;

如果寻线传感器数值是“11111”,那么这个路口就是迷宫终点了。

针对不同路口的判断,我们这里提供一个程序范例:

Gosub inch()                                        //机器人再前进一点的子函数(距离越过赛道宽度就可以)
ReadSensors()                                      //读取寻线传感器数值
If Pattern = “00000” then
?Found the T intersection                   //如果数值是“00000”,遇到丁字路口
Elseif Pattern = “11111” then
?Found the end of the maze –STOP!    //如果数值是“11111”,到达了迷宫重点;
Else
?At a four-way intersection                 //如果是其他情况,则是遇到了十字路口。
Endif

PS.在这篇文章中,我们使用的是一字型寻线传感器。如果我们使用八字型寻线传感器的话,由于传感器是分前后两排分布的,这样在判断岔路口方面就非常方便,无需借助inch()函数,就可以直接识别。八字型传感器的识别方法,留给读者自己解决。

当我们准确的判断出每个路口的类型后,机器人就可以在一定的走迷宫法则指导下完成走迷宫任务。

但我们发现,在线迷宫中,有很多死胡同是不必要走的,有些弯路也是可以省略的,对于机器人,它们应该如何选择一条最短的距离呢?下一小节我们就重点介绍机器人的自学习能力。

5、机器人自主学习算法

5.1 机器人自主学习功能介绍

下面我们通过一个简易线迷宫来介绍机器人的自主学习功能。

在这个迷宫中,有十字路口、直行或右转路口、直行或左转路口、死胡同等,从图中可以看出,有些线路是无效线路,如死胡同,就是可以绕过的。但机器人并不知道那些路口时有效路口,哪些路口是无效的。

我们使用“左手法则”进行穿越线迷宫,图中的蓝色的线,就是其穿越路径。可以看出绕了很大的圈。机器人的自主学习功能就是机器人在经过第一次穿越后,能够发现并记住所经过的无效线路,从而在第二次穿越时,自动绕过那些无效路口,实现最短距离穿越线迷宫,如图中绿线所示路径。

showimg(10)
p5.1 机器人穿越线迷宫路径

5.3 机器人自主学习算法

不要嫌作者啰嗦,这里我们再次强调一下上小节中介绍的“岔路口”的概念:机器人可以有一个以上行进方向的路口称之为岔路口。好了,有了这个概念,就容易了。当机器人穿越线迷宫时,每穿越一个“岔路口”,我们就让机器人在存储器中记录一个字符:如果是直行就保存一个“S”;如果是左转就保存一个“L”;如果是右转就保存一个“R”;如果是掉头,就保存一个“U”。只要是岔路口,就要记录一次。

PS.右转路口和左转路口不属于我们所说的岔路口概念,机器人经过时不要记录。有了这个共识,我们就开始下面的算法介绍!

showimg(11)
p5.2 第一个转弯

我们就借助上面的建议线迷宫,分步介绍机器人的自主学习过程的。机器人第一次穿越线迷宫时,我们采用“左手法则”来进行。沿途将有一些“岔路口”,我们需要记录。

机器人开始从起点出发了,然后就遇到了第一个“岔路口”——直行或右转路口。根据“左手法则”,机器人将直行。这时候,机器人将在存储器中记录一个直行的标示符“S”,如p5.2所示。

showimg(12)
p5.3 第二个转弯

机器人继续前进,这时就遇到第二个“岔路口”——死胡同。这个时候机器人需要掉头回来。这时候,机器人将在存储器中记录一个掉头的标示符“U”,如图p5.3所示。这样存储器中的标示符就变成了“SU”

PS.从图中可以看出机器人每记录一个死胡同类型的岔路口,就意味着机器人走了错误路线。在任何线迷宫中,最佳或最短路线都不包括死胡同线路。所以遇到死胡同类型的岔路口就是告诉我们在前一个路口的转向时不正确的,我们需要更正。

当机器人掉头回到第一个岔道口(也是机器人行进过程中的第三个岔路口),根据左手法则,机器人将会左转,如图p5.4所示。这时候,机器人将在存储器中记录一个左转的标示符“L”。这样存储器中的标示符就变成了“SUL”。从上面的介绍中可以知道死胡同类型的岔路口将不会在机器人穿越迷宫的路径中,所以机器人应该在第一个岔路口向右转“R”,才可以避免经过死胡同。

从以上分析我们就可以得出:SUL=R(即机器人直行、掉头、左转就相当于机器人直接右转)。这样在存储器中”SUL”就被标示符“R”取代。这就代表着当机器人再次穿越这个线迷宫时,遇到第一个岔路口直接右转。

showimg(13)
p5.4 第三个转弯

机器人继续前进,就遇到了十字路口类型的岔路口,根据左手法则,机器人将会左转,如图p5.5所示。这时候,机器人将在存储器中记录一个左转的标示符”L”。这样存储器中的标示符就变成了“RL”。

showimg(14)

p5.5 第四个转弯

机器人继续前进将遇到“右转路口”,前面介绍过,这种只有一种方向选择的路口不属于我们定义的“岔路口”,所以这里机器人不记录转弯标示符“R”。接下来又是死胡同类型的岔路口,机器人仍旧做掉头动作。同时在存储器中记录一个掉头标示符“U”,这个时候存储器中的标示符就变成了“RLU”。如图p5.6所示。

showimg(15)

p5.6 第四个转弯

机器人掉头回来,再次遇到“十字路口”,根据左手法则,机器人将做左转。同时,机器人将在存储器中记录一个左转标示符“L”。这样存储器中的标示符就变成了“RLUL”。

从图p5.7可以看出,A和B之间又是一个死胡同,在机器人路径上时是要避免通过的,所以机器人在第一遇到十字路口时不应该左转,而是应该前进”S”,这样才可以避免死胡同。

从以上分析我们可以得出:LUL=S。这样在存储器中“LUL”就被标示符”S’所取代,这就代表机器人再次穿越这个线迷宫时,遇到第一个十字路口将直行。这个时候机器人存储器中的标示符将变为“RS”

showimg(16)

p5.7 第五个转弯

机器人左转后又遇到一个死胡同,同样的在存储器中将记录一个标示符“U”,这样存储器中的标示符就变为“RSU”,如图p5.8所示。

showimg(17)

p5.8 第六个转弯

机器人掉头后,根据左手法则,再次遇到十字路口,将左转。同样机器人在存储器中记录一个标示符“L”。这样存储器中的标示符就变为“RSUL”。 根据前面介绍的,SUL=R。这样存储器中的RSUL标示符就被RR所替代。如图p5.9

showimg(18)

p5.9 第七个转弯

机器人经过十字路口后,又将遇到“左转路口”,同样这不属于岔路口,机器人不在存储器中做左转记录。机器人继续前进,就遇到“左转或直行路口”。根据左手法则,机器人将左转。同时在存储器中记录一个标示符“L”。到现在,机器人已经走到了线迷宫的终点。

我们回顾一下机器人存储器中的标示符:RRL。如图p5.10所示。

showimg(19)

p5.10 第八个转弯

当机器人再次穿越这个线迷宫时,机器人就不再遵循左手法则,而且按照存储器中的标示符的提示来完成转弯,如图p5.11所示。这路径是整个迷宫中最短的路径。那些死胡同则可以得到避免。我们就可以得到本小节视频中机器人的自主学习功能了。

showimg(20)

p5.11 机器人第二次穿越迷宫的路径

在穿越这个简易线迷宫的过程中,我们可以得到两个公式:

  • LUL=S(左转+掉头+左转=直行)
  • SUL=R(直行+掉头+左转=右转)

文章来源于科技伊甸园论坛

Category : 单片机开发 | Blog
13

脉冲宽度调制(PWM)波形常用于闭环反馈和控制应用,例如:控制加热单元的开关状态以调节DWDM(波分复用)系统中激光器的温度。在某些应用中可编程计数器阵列(PCA)的内建8位PWM方式不能提供任务所需要的足够的分辨率。本应用笔记介绍如何用PCA的‘高速输出’方式和最小的软件开销来产生一个16位分辨率的PWM波形。
用于闭环控制应用的PWM信号的频率并不重要,只要波形足够快就可以了,象控制系统的阶跃响应时间就应远远小于PWM信号的周期。信号所携带的的信息用波形的占空度来编码,占空度是波形为高电平的时间与PWM信号的周期之比。对于一个PWM实现来说,其输入是一个数值,通常为整数,该数值与所要求的输出波形的占空度成正比。
在一个基于8051的设计中,有很多方法用于产生PWM波形:软件循环,查询或中断驱动的定时器等.本应用笔记中的例子使用可编程计数器阵列PCA.相对于任何查询机制基于软件或定时器而言,使用PCA产生PWM可以大大降低所需要的CPU带宽,并可以消除在中断驱动的基于定时器的设计中因中断延迟不一致而产生的时序抖动。
PCA包含一个16位的计数器/定时器和5个捕捉/比较模块如图2所示计数器/定时器有一个16位的计数器/定时器寄存器PCA0H:PCA0L一个用于选择时间基准的方式寄存器PCA0MD和一个包含计数器/定时器运行控制及各模块捕捉/比较标志的控制寄存器PCA0CN每个捕捉/比较模块有一个用于选择模块工作方式边沿触发捕捉软件定时器高速输出或PWM的配置寄存器PCA0CPMx和一个16位的捕捉/比较寄存器。
PCA0CPHn:PCA0CPLn由于所有的捕捉/比较模块共享一个时间基准因此它们同步工作例如在电机控制应用中可以提供锁相激励波形另外由于每个模块有其自己的控制和捕捉/比较寄存器因此每一个模块工作上又独立于其它模块只要任何一个模块的服务程序都不影响共享的时间基准停止或重新设置计数器/定时器改变计数器/定时器的时钟源本应用笔记中的例子将PCA配置为独立工作每个模块的服务程序只影响该模块的配置寄存器和捕捉/比较寄存器PCA方式寄存器设置一次后不再改变让计数器/定时器寄存器PCA0H: PCA0L自由运行。
PCA包含一个16位的计数器/定时器和5个捕捉/比较模块。计数器/定时器有一个16位的计数器/定时器寄存器PCA0H:PCA0L、一个用于选择时间基准的方式寄存器PCA0MD和一个包含计数器/定时器运行控制及各模块捕捉/比较标志的控制寄存器PCA0CN。每个捕捉/比较模块有一个用于选择模块工作方式(边沿触发、捕捉软件、定时器高速输出或PWM)的配置寄存器PCA0CPMx和一个16位的捕捉/比较寄存器PCA0CPHn:PCA0CPLn。
由于所有的捕捉/比较模块共享一个时间基准,因此它们同步工作,例如在电机控制应用中可以提供锁相激励波形。另外,由于每个模块有其自己的控制和捕捉/比较寄存器,因此每一个模块工作上又独立于其它模块,只要任何一个模块的服务程序都不影响共享的时间基准(停止或重新设置计数器/定时器、改变计数器/定时器的时钟源)。
PCA的时基信号可以是下述四个时钟源之一SYSCLK/12、SYSCLK/4、定时器0溢出、或出现在一个外部引脚ECI上的下降沿。
用PCA产生16位PWM 为了产生一个具有16位精度的PWM波形,我们将PCA模块配置为高速输出方式。在该方式下,每当主定时器/计数器的寄存器PCA0H:PCA0L与模块的捕捉/比较寄存器PCA0CPHn:PCA0CPLn相匹配时CEXn引脚发生电平转换并可以选择产生中断。

void SysClkInit(void)//配置系统时钟
 
{
 int n = 0;
 OSCXCN = 0x67;
 for (n = 0; n < 255; n++) ;
 while ( (OSCXCN & 0x80) == 0 );
 OSCICN = 0x0C;
}
 
void SystemInit(void)//系统配置
{
WDTCN = 0xDE;   // 关闭 WDT
WDTCN = 0xAD;
}
 
void PortInit(void)//端口配置
{
//交叉开关配置
 XBR0 = 0x10;
 XBR1 = 0x00;
 XBR2 = 0x40;
 // P0 口分配状况
 // P0.0 = CEX0
 // P0.1 = CEX0
}
 
void PCA_Init(void)
{
 EIE1 |= 0x08;
 PCA0MD = 0X01;//系统时钟的12分频
 PCA0L = 0x00;
 PCA0H = 0x00;
 PCA0CPM0 = 0xcb;
 PCA0CPM1 = 0xcb;
 PCA0CPM0 |= 0x40; //开启CCFn中断
 PCA0CPM1 |= 0x40; //开启CCFn中断
 //PWM频率计算:系统时钟/12/计数=22118400/12/65536=28.125
 
}
 
void PCA_CPHL0(unsigned int PWM)
 
{
 PCA0CN &= ~0x40;
 PCA0CPL0 = (0xff &  PWM);
 PCA0CPH0 = (0xff & (PWM >> 8));
 PCA0CN |= 0x40;
}
 
void PCA_CPHL1(unsigned int PWM)
 
{
 PCA0CN &= ~0x40;
 PCA0CPL1 = (0xff & PWM);
 PCA0CPH1 = (0xff &(PWM >> 8));
 PCA0CN |= 0x40;
}
 
void PCA_ISR(void) interrupt 9
{
 if (CCF0) {
 CCF0 = 0;
 } else if (CCF1) {
 CCF1 = 0;
 } else if (CF) {
 CF = 0;
 }
}
Category : 8051f020 | Blog
9

在小车的前左、前右、右方各放置障碍物检测电路,当小车遇到障碍物时,可以由检测电路向单片机发出电压信号,使小车能够根据信号的不同做出相应的反应,从而实现避开障碍物。

采用红外避障传感器E18-D80NK。这是一种集发射与接收于一体的光电传感器。检测距离可以根据要求进行调节。该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多场合。

该光电传感器为NPN常开型反射式传感器,自发自收。工作电压为5V,工作电流为100mA。有效测量距离为0-80cm。可以通过调节传感器后面的旋丝进行距离调整。易于装配,使用方便,可以很方便的实现小车的避障等功能。

应用领域: 避障; 记数等

<Digimax S500 / Kenox S500 / Digimax Cyber 530>

红外避障传感器实物图

clip_image003

红外避障单元电路

安装:小车前面安装两个,右边安装一个。

下面做简单判断:

前左 前右 状态 下一步运行
1 1 0 右边障碍 转左
1 0 0 右前方障碍 转左
0 1 1 左前方障碍 转右
0 0 1 正前方障碍 转右
Category : 电子设计 | Blog
8

利用金属接近开关传感器E3-D4NK可以检测到铁皮向单片机发送出信号,使单片机可以记录铁块的数目。

clip_image002

金属探测传感器实物图

电容式接近开关亦属于一种具有开关量输出的位置传感器,它的测量头通常是构成电容器的一个极板,而另一个极板是物体的本身,当物体移向接近开关时,物体和接近开关的介电常数发生变化,使得和测量头相连的电路状态也随之发生变化,由此便可控制开关的接通和关断。这种接近开关的检测物体,并不限于金属导体,也可以是绝缘的液体或粉状物体

产品参数如下:

工作电压:10-30VDC

工作电流:300mA

探测距离:4mm(毫米)

产品直径:10mm(毫米)

应用领域:
金属目标物的探测;可以应用在小车寻找铁块的设计中。

clip_image004

Category : 电子设计 | Blog
8

当采样时间很短时,可用一阶差分代替一阶微分,用累加代替积分。连续时间的离散化,即 t=KT (K=0,1,2,…,n)

1.离散的PID表达式积分用累加求和近似得

clip_image002[4] (1)

微分用一阶差分近似得

clip_image004 (2)

T ——为采样周期;k——为采样序号,k=0,1,2,…;e(k)——系统在第次采样时刻的偏差值;e(k-1)——为系统在第k-1次采样时刻的偏差值。

clip_image006 (3)

将式(1)和式(2)代入式(3),则可得到离散的PID表达式

clip_image008clip_image010 (4)

2.物理模型

pid_wzs

式(4)表示的控制算法提供了执行机构的位置u(k)(如阀门开度),即输出值与阀门开度一一对应,所以称为位置式PID控制算法。

3.离散化的PID位置式控制算法的编程表达式对于式(4),令

clip_image012

clip_image014称为积分系数,clip_image016称为微分系数

则离散化的PID位置式控制算法的编程表达式为

clip_image018

由式可以看出,每次输出与过去的状态有关,要想计算u(k),不仅涉及到e(k-1)和e(k-2),且须将历次相加。

上式计算复杂,浪费内存。考虑到第次采样时有

clip_image020

两式相减,得

clip_image022

clip_image024

其中clip_image026

上式是PID的递推形式,是编程时常用的形式之一。

4.软件算法流程图流程图如图所示。其中系数α0、α1、α2可以预先算出。

pid_wzsp

Category : 单片机开发 | Blog
7

今天排名又更新了。

alexa2_1

alexa2_2

Category : 生活随记 | Blog
6

所谓增量式PID是指数字控制器的输出只是控制量的增量kuΔ。当执行机构需要的控制量是增量,而不是位置量的绝对数值时,可以使用增量式PID控制算法进行控制。
增量式PID控制算法可以通过(式1)推导出。

shi1 式1

由(式1)可以得到控制器的第k-1个采样时刻的输出值为:

shi2 式2

将(式1)与(式2)相减并整理,就可以得到增量式PID控制算法公式为:

shi3 式3

其中:

shi3-1

由(式3)可以看出,如果计算机控制系统采用恒定的采样周期T,一旦确定A、B、C,只要使用前后三次测量的偏差值,就可以由(式3)求出控制量。
增量式PID控制算法与位置式PID算法(式1)相比,计算量小的多,因此在实际中得到广泛的应用。
而位置式PID控制算法也可以通过增量式控制算法推出递推计算公式:

shi4 式4

上式就是目前在计算机控制中广泛应用的数字递推PID控制算法。

物理模型:

tu1

软件算法流程图流程图

tu2 

在实际编程时α0、α1、α2可预先算出,存入预先固定的单元,设初值e(k-1)、e(k-2)为0。

增量式PID算法的优点(1)位置式算法每次输出与整个过去状态有关,计算式中要用到过去偏差的累加值,容易产生较大的积累误差。而增量式只需计算增量,当存在计算误差或精度不足时,对控制量计算的影响较小。

Category : 单片机开发 | Blog
Page 1 of 212