自平衡机器人458009.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《自平衡机器人458009.docx》由会员分享,可在线阅读,更多相关《自平衡机器人458009.docx(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、乐高机器人教程4默认分类 2008-06-24 21:56:39 阅读1383 评论1 字号:大中小订阅 认识传感器 本章所包含的内内容:n 触动传感器器n 光电传感器器n 角度传感器器n 温度传感器器n 传感器的使使用方法与技技巧n 其他传感器器4.1简介马达通过齿轮和和滑轮传动,可可以让你搭建建的机器人动动起来,他们们就如同是移移动机器人腿腿和手臂的肌肌肉。同时,你你还可以使用用传感器来装装备你的机器器人,它们就就如同是机器器人的眼睛、耳耳朵和手指。 机器人人套装中包含含两种传感器器:触动传感感器(两种)和和光电传感器器。在本章中中,我们主要要是描述它们们的特性,对对于其它的传传感器你可以
2、以单独购买,如如:角度传感感器和温度传传感器。每一一个设备都有有其特定的作作用,你将会会因为它们的的功能强大和和所能涉及的的范围之广而而感到惊讶。当当然也包括这这种情况,可以用一种种传感器仿效效另一种传感感器,以用来来代替不能使使用的传感器器。利用RCCX上的红外外光电,使用用一些小技巧巧,你可以把把把你的光电电传感器变成成一个雷达。 在阅读本本章的过程中中,我们希望望你能把机器器人套装放在在身边,这样你可以以跟随我们的的例子亲自动动手去做。为为了保持其完完整性,我们们还会讲一些些机器人套装装的扩展套装装和技术套装装的内容。若若你现在还没没有这些也不不要担心,这这不会影响到到你搭建体积积较大的
3、机器器人。4.2触动传感感器 触动传感感器(图4.1)是乐高高传感器大家家庭中最简单单、最直观的的一种。它的的工作方式非非常像是你家家门铃上的按按钮:当它被被按下时,电电路接通,电电流就会通过过,RCX就能够够检测到这个个数据流,你你的程序就会会读取触动传传感器的当前前状态:开或或者关。图4.1 触动动传感器如果你已经开始始使用机器人人套装,阅读读了Consstructtopediia,并搭建建了一些模型型,你可能对对传感器的一一般用途比较较熟悉,如缓缓冲器。缓冲冲器是与周围围环境相互作作用的一种简简单方式,当当你的机器人人遇到障碍物物时,可以用用它们来进行行检测,并由由此而改变运运动状态。典
4、型的缓冲器是是一个重量较较轻的可移动动装置,事实实上,当它碰碰到障碍物时时会把冲击力力传递给触动动传感器并使使之关闭。你你也可以发明明出很多种缓缓冲器,但它它们的外形应应该能够反映映机器人的外外形,而且还还能反映出环环境中障碍物物的外形。如如图4.2中所示示一个非常简简单的缓冲器器,可以很容容易发现墙壁壁,假如房间间里有像椅子子一样等复杂杂障碍物,它它的效果就不不好了。在这这种情况下,我我们建议你通通过实验来进进行。为机器器人设计一个个缓冲器,在在房间的周围围离地板适当当高度的地方方移动它,检检查它是否能能够发现所有有可能的碰撞撞点。如果你你的缓冲结构构较大,当它它用最佳部位位撞击到障碍碍物并
5、按下触触动传感器时时,不要以为为这就是正确确的。图例44.2是一个个不太好的缓缓冲器,因为为当碰撞发生生时,它几乎乎不能用横轴轴的边缘来关关闭触动传感感器,说它是是一个不好的的缓冲器是因因为它把整个个碰撞产生的的力直线传输输给了传感器器,也就是说说,在机器人人身上安装一一个非常稳固固的支架对传传感器的安装装是非常有必必要的。图4.2简单的的缓冲器 根据经验验,应该尝试试不同的碰撞撞来看看缓冲冲器在各个位位置是否能很很好的工作。你你可以编写一一个无限循环环的小程序,当当传感器被按按下时,发出出一声蜂鸣声声用来测试你你的缓冲器。 谈起缓冲器器,人们往往往会想到当遇遇到障碍物时时开关会被按按下。这样
6、说说似乎有点绝绝对,在发生生碰撞的时候候同样可以松松开开关。看看一下图4.3,橡胶皮皮筋可以使积积木轻压着传传感器,当缓缓冲器的前面面部分接触到到物体时,开开关就会被释释放。图4.3 平平常压下的缓缓冲器实际上,向你推推荐这种缓冲冲器有这样几几个重要的原原因:l 冲击力力不可能直接接传递给传感感器,传感器器与标准的乐乐高积木相比比更容易受损损坏,因此应应避免不必要要的撞击。l 橡皮皮圈可以吸收收撞击力,这这对你的传感感器和机器人人来说都会起起到保护作用用,当你的机机器人速度非非常快,或者者重量大,或或者反应比较较慢,或者具具备其中的一一个因素时,这这种保护作用用显得尤其重重要。缓冲器是一个非非
7、常重要的装装置,而且触触动传感器的的应用也非常常广泛。当你你想告之RCCX一个事件件发生时,你你可以使用按按钮一样人为为的把它按下下去。你能想想象出类似的的情况吗?事事实上,有很很多。比方说说,你可以按按下铵钮告诉诉RCX”现在在读取光电传传感器的值”,从而进行行读取校准(我我们将在以后后的部分进行行讨论)。 另一个常用的作作用就是把触触动传感器作作为一个位置置控制器来用用。如图4.4,机器人人向前看时(图图4.4b)就就关闭了头部部(图4.44a)的触动动传感器。通通过编程可以以在水平面上上实时的控制制头部的旋转转(向左或向向右),当传传感器被按下下时,机器人人的头部就能能转回到正确确的位置
8、,值值的注意的是是,我们在这这个例子中用用到的凸齿轮轮在与触动传传感器相配合合时是非常的的有用,你可可以让轴通过过三个十字孔孔个中的一个个来选择合适适的距离去关关闭触动传感感器。图4.4 用用触动传感器器定位在本书的第三部部分我们还会会介绍位置控控制的其它一一些应用。事事实上,在搭搭建你的机器器人之前需要要你去研究一一些不同的方方法。我们再举几个事事例来说明传传感器的应用用。假如你想想搭建一个电电梯。你希望望电梯可以在在任何一层都都能停下。首首先你会想到到在每一层安安放一个触动动传感器,当当按下其中一一个时,电梯梯室会在那一一层停下。这这是一个好方方法,但这里里有一个小问问题;你仅有有两个触动
9、传传感器,对你你来说,一个个电梯仅有二二层不是非常常实际,你可可以再买一个个触动传感器器,但这只能能再加高一层层,并没有解决决实质性的问问题。此时,RCX的三个输入端口已经全部被占用。突然,你会想到一个办法:为什么不把传感器放在电梯厢上而不是外面呢?在电梯厢上固定一个传感器,这样只需一个传感器就可以加高更多的楼层了。从最初的方案到现在更好的方案,两个系统是完全相同的吗?答案是否定的。首先,你需要决定厢的绝对位置,当它在第二层时,你仅是可以知道它的相对位置。那么,你需要一个初始点,从起始点开始计算就可以推断出厢的位置.或者程序运行时,需要厢体在一个特定的位置,或者用第二个传感器来探测一个特定的楼
10、层。例如,在最底层放置一个传感器,因此程序一开始就降下电梯到最底层。那样就可以计算出厢体的绝对位置了。 现在,电电梯就能够准准确的升降了了。但你还有有最后一个问问题需要解决决:如何告诉诉你的电梯它它应该去哪一一层呢?在每每一楼层放置置一个传感器器去提示电梯梯是不切合实实际的。在RRCX上只剩剩下一个输入入端口了。你你要用这一个个触动传感器器来做什么呢呢?你还可以以采用以前的的方法吗?可可以,你可以以计算一个触触动传感器被被按下的次数数。比如说,被被按下三次表表示是三楼,依依次类推。现现在你就可以以去搭建你的的电梯了。 方法与技巧计算按下次数下面这个例子是是用伪代码来来编写的,一一个代码并不不与
11、实际编写写语言相对应应,而是界于程序序语言和机器器语言之间。使使用伪代码编编程在专业程程序员中是一一种非常普遍遍的做法。计算触动传感器器被按下多少少次需要一些些小窃门。假如你你写了一些简简单的代码,如如下:Counterr =0repeat if Sensoor1 iss on tthen Countter = Couunter +1 end ifend rrepeatt当你保持触动传传感器被按下下很短的间隔隔内,你的程程序代码就会会在你的RCCX上飞快的的执行。然而而,在记录下下一个新的按按下之前,需需要松开触动动传感器:Counterr = 00repeat if Senssor1 is
12、oon theen CCounteer =Coounterr+1 wwait uuntil Senssor1 is offfend ifend reppeat现在,你编写的的代码正确地地记录了从断断开到闭合的的变化。在你你的代码中,有有一个重要的的特点需要介介绍一下:当当它在一段时时间内接收不不到触动信息息时,你希望望你的计数程程序停止。为为了实现这一一点,你需要要使用一个计计时器用来测测量上一次按按下时间与最最后一次时间间的间隔:Counterr=0intervaal = reset TTimerrepeat if Senssor1 is onn thenn Counnter = Counn
13、ter + 1wait unntil SSensorr1 iss off or unntil TTimer if grreaterr thenn Inteerval rreset Timerrend ifuntil TTimer is grreaterr thenn Inttervall假如你的时间间间隔是两秒。当当计数程序开开始时,计时时器和计数器器首先复位为为0,然后开始始检测传感器器的状态。如如果两秒内没没有按下触动动传感器,它它仍将保持复复位状态,如如果有触动传传感器被按下下,此动作将将被记下并等等待使用者释释放按钮,计计时器复位为为零, 在程序停止止运行之前,使使用者可以在在两秒内第
14、二二次按下触动动传感器。4.3光电传感感器用”看”来形容容光电传感器器的功能有点点夸大其辞。实实际上它只是是用来检测光光并测量其强强度。尽管受受到限制,但但其应用范围围仍比较广。图4.5 光电电传感器光电传感器和触触动传感器的的最大区别是是,后者返回回的是一些数数值而不是单单纯的开/关状态。你你所读到的数数值由光电传传感器在那个个时候所检测测到的光强所所决定。这些些数值以0至100的百分分数的形式返返回,光值越越大,百分数数就越大。你你可以用光电电传感器来做做什么呢?你你可以用它搭搭建一个由光光电传感器所所驱动的机器器人,我们称称之为光的追追随者,它可可以检测周围围的环境,找找到一个强光光源(
15、或者是是最亮的)并并朝着它前进进。在一间足足够暗的房间间里进行,以以免产生干扰扰,你也可以以用手电筒来来控制你的机机器人。检测外部光源的的功能是非常常有趣的,但但是或许你不不能用它来做做最令人惊奇奇的事情。我我们介绍一下下光电传感器器的另一个用用途:它不但但可以用来检检测光强,而而且还可以自自身发光。提提供稳定光源源的是一个红红色的发光二二极管,因此此你可以用来来测量反射光光并传给传感感器。当你用来测量反反射光时,你你必须去避免免一些来自其其它光源的干干扰。需要注注意的是光电电传感器对IIR所发出的的光也非常敏敏感,像典型型的远距离控控制器发出的的红外光,如如摄像机;或或者是乐高红红外发射器。
16、 设计与计划读取周围的光值值乐高光电传感器器并不适合于于测量外部光光源来说,因因为其灵敏度度比较弱。红红色发光二极极管所所发出出的光太靠近近检光器以致于过多的的影响了光值值的读取。如如果你想测外外部光源,你你应该考虑尽尽可能的去减减少红色发光光二极管的影影响。一个简简单的办法就就是在光电传传感器的前部部放一个12的单孔积积木块,.更多的行之之有效的办法法需要你对光光电传感器有有些细微的改改动。在Raalph HHempell的网站中,他他提到了如何何对光电传感感器作修改,既既不是永久的的改变也不会会损害你的光光电传感器。(见见附录A)光在表面的反射射率取决于许许多因素,主主要是表面的的颜色,质
17、地地和它距光源源的远近。黑黑色物体的反反射能力要弱弱于白色物体体;黑色光滑滑表面的反射射能力要强于于黑色不光滑滑表面。另外外,距离光电电传感器越远远,光电传感感器所检测到到的反射光就就会越少。这些因素都是相相互依赖的,通通过光感读取取的值,并不不能说明是由由哪个因素引引起的。但你你可以保持其其它因素不便便,而让一个个变化,这样样就可以通过过读取的数值值来推断出环环境的一些变变化。例如,如如果你的光电电传感器经常常对着同一个个物体,或者者相同质地和和颜色的物体体,你能够用用它去测出它它的相对距离离。另一方面面,你可以把把不同的物体体放置在光电电传感器的前前面,在恒定定的距离内分分辨出它们的的颜色
18、。4.3.1测量量反射光值 为了举例说明测测量反射光的的原理,我们们来做一个实实验。拿一个个RCX并打开开其电源,在在任意一个输输入端口连接接一个光电传传感器,在你你的程序中正正确的设置其其端口(红色色发光二极管管应该发光)。准准备一间光线线较暗的房间间,RCX有个控控制模式,可可以实时查看看光感读取的的值。按RCCX上的VIEWW键,当小箭箭头正确显示示在传感器所所接的输入端端口位置。在在显示屏上会会显示出读取取的光线值。接接下去你把光光感放到桌上上,在桌上以以一定间隔(0.5cm,1cm,1.5cm)并排放置不同颜色的积木块,保证积木之间的间距相等。查看数据,得到的是不同颜色的积木反射的光
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 平衡 机器人 458009
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内