HEATS 发表于 2010-9-13 21:34:32

角度传感器

-角度传感器</A>,顾名思义,是用来检测角度的。它的身体中有一个孔,可以配合乐高的轴。当连结到RCX上时,轴每转过1/16圈,角度传感器就会计数一次。往一个方向转动时,计数增加,转动方向改变时,计数减少。计数与角度传感器的初始位置有关。当初始化角度传感器时,它的计数值被设置为0,如果需要,你可以用编程把它重新复位。<BR>通过计算旋转的角度,你可以很容易的测出位置和速度。当在机器人身上连接上轮子(或通过齿轮传动来移动机器人)时,可以依据旋转的角度和轮子圆周数来推断机器人移动的距离。然后就可以把距离转换成速度,你也可以用它除以所用时间。实际上,计算距离的基本方程式为:<BR>距离=速度×时间<BR>由此可以得到:<BR>速度=距离/时间<BR>如果把角度传感器连接到马达和轮子之间的任何一根传动轴上,必须将正确的传动比算入所读的数据。举一个有关计算的例子。在你的机器人身上,马达以3:1的传动比与主轮连接。角度传感器直接连接在马达上。所以它与主动轮的传动比也是3:1。也就是说,角度传感器转三周,主动轮转一周。角度传感器每旋转一周计16个单位,所以16*3=48个增量相当于主动轮旋转一周。现在,我们需要知道齿轮的圆周来计算行进距离。幸运地是,每一个LEGO齿轮的轮胎上面都会标有自身的直径。我们选择了体积最大的有轴的轮子,直径是81.6CM(乐高使用的是公制单位),因此它的周长是81.6×π=81.6×3.14≈256.22CM。现在已知量都有了:齿轮的运行距离由48除角度所记录的增量然后再乘以256。我们总结一下。称R为角度传感器的分辨率(每旋转一周计数值),G是角度传感器和齿轮之间的传动比率。我们定义I为轮子旋转一周角度传感器的增量。即:<BR>I=G×R<BR>在例子中,G为3,对于乐高角度-传感器</A>来说,R一直为16.因此,我们可以得到:<BR>I=3×16=48<BR>每旋转一次,齿轮所经过的距离正是它的周长C,应用这个方程式,利用其直径,你可以得出这个结论。<BR>C=D×π<BR>在我们的例子中:<BR>C=81.6×3.14=256.22<BR>最后一步是将传感器所记录的数据-S转换成轮子运动的距离-T,使用下面等式:<BR>T=S×C/I<BR>如果光电传感器读取的数值为296,你可以计算出相应的距离:<BR>T=296×256.22/48=1580&nbsp;&nbsp;距离(T)的单位与轮子直径单位是相同的.<BR>实际上,在程序不仅仅会用到乘法和除法的数学运算,还有更多的需要多留心(有关内容我们将在第12章进行进一步的讨论)。<BR>使用角度传感器来控制你的轮子可以间接的发现障碍物。原理非常简单:如果马达运转,而齿轮不转,说明你的机器已经被障碍物给挡住了。此技术使用起来非常简单,而且非常有效;唯一要求就是运动的轮子不能在地板上打滑(或者说打滑次数太多),否则你将无法检测到障碍物。如果是一个空转的齿轮连接到马达上就可以避免这个问题,这个轮子不是由马达驱动而是通过装置的运动带动它:在驱动轮旋转的过程中,如果惰轮停止了,说明你碰到障碍物了。<BR>在许多情况下角度传感器是非常有用的:控制手臂,头部和其它可移动部位的位置。值的注意的是,当运行速度太慢或太快时,RCX在精确的检测和计数方面会受到影响。事实上,问题并不是出在RCX身上,而是它的操作系统,如果速度超出了其指定范围,RCX就会丢失一些数据。Steve Baker用实验证明过,转速在每分钟50到300转之间是一个比较合适的范围,在此之内不会有数据丢失的问题。然而,在低于12rpm或超过1400rm的范围内,就会有部分数据出现丢失的问题。而在12rpm至50rpm或者300rpm至1400rpm的范围内时,RCX也偶会出现数据丢失的问题。<BR>
               
页: [1]
查看完整版本: 角度传感器

中国磨床技术论坛
论 坛 声 明 郑重声明:本论坛属技术交流,非盈利性论坛。本论坛言论纯属发表者个人意见,与“中国磨削技术论坛”立场无关。 涉及政治言论一律删除,请所有会员注意.论坛资源由会员从网上收集整理所得,版权属于原作者. 论坛所有资源是进行学习和科研测试之用,请在下载后24小时删除, 本站出于学习和科研的目的进行交流和讨论,如有侵犯原作者的版权, 请来信告知,我们将立即做出整改,并给予相应的答复,谢谢合作!

中国磨削网