如何让Dgif动画特效制作软件效中间没有节点

动效原型工具Form指南
作品分类:
发布时间:
版权信息:
动效原型工具Form指南
学习RelativeWave发布的交互设计工具 √可交互 √可上机预览 √动画表现力强 √可能是Google要力推的动画原型工具(安卓动画师请自行脑补)
最近我想学习RelativeWave的From,所以我分解了几个官方案例,然后原创了几个原型。下面就是我制作这些原型过程中的一些经验心得。一、首先,回答几个问题Form是什么Form现在已经免费 &是由RelativeWave开发的交互设计工具(最近已经被Google收购了).这是一款OS X应用,设计思想基于模块连接(Node),非常类似Quartz Composer。Form现在已经免费了,QC制作界面(广告插入:QC学习可关注译者罗列的 &学习路线)Form制作界面&效果而其他的原型工具(比如FramerJS和一些Web原型工具),只能提供桌面端预览器或通过手机浏览器来浏览原型。Form原型设计的优点在于:通过Form的预览应用Form Viewer,可以在iOS上原生运行原型。Form Viewer是Form在iOS端协同应用 我需要拥有iOS设备吗?就目前来说,必须通过iOS设备来预览原型。但是谷歌的插足,让我觉得安卓设备有戏。你对于其他原型工具的使用经验丰富吗?Form交互动画的设计思想基于节点连接,和Quartz Composer+Origami非常相似,但是作者我很少使用QC,使用Form是我第一次体验节点类交互工具。我之前选择&来制作交互原型——我对Javascript非常熟悉,这是我备选的原型制作工具,我首先的原型制作工具是直接编码。节点连接软件提供了很好的程序逻辑和交互逻辑,因此了解节点类交互工具原理非常重要,也能在协同工作时,让我能够更好的理解别人的工作。本文涵盖了什么?本文主要分解了RelativeWave的案例。在每一节,我会尝试根据所学来构建一个原型。为何要撰写本文?我经常听&,的一些东西触动了我,他认为就教学来说,经验丰富的专家并不一定是最好的老师。刚刚入门的新手才是,因为新手更能体会到在学习过程中的障碍,而且因为新鲜感,也能产生一些意想不到的想法。而专家往往不具备这种洞察力。撰写本文可以帮助我巩固知识,同时在以后,也能帮助那些遇到相似问题的初学者。二、初次运行Form的模块库让你可以很方便的浏览所有模块。并附带了模块的描述,但是在网上没有提供模块描述文档。按住command + enter&可以快速打开模块库,以助于快速插入模块。基于模块库,我可以快速添加模块,然后连接输入点和输出点。三、学习一下官方教程RelativeWave官方的提供了Form的快速介绍,并对功能进行了简短描述,提供了使用方法的视频。而更多的教程可以在RelativeWave的中找到。以及&.这些教程真的能提高使用经验,加快制作速度。一开始我没把这些教程当回事,直接上来久长时分解一些案例来自学。最后我还是停了下来,仔细学习了这些教程,并从他们回答中学到了很多。一些体会1.直接在设备上感受交互的体验非常棒。我之前用Framer的时候,就曾使用第三方提供的无界面浏览器来深入体验交互。2.第二,我发现桌面端预览器的好处在于。可以非常方便的调节参数,观摩效果。这样我的视线就不用一直在显示器和手机之间迁移了。我相信桌面预览器肯定已经存在于RelativeWave的产品路线图中。3.利用Git和Github,可以非常方便的对Form工程文件进行版本控制,而OS X自带的版本控制,也可以非常方便的恢复文件。4.还无法实现放大和缩小,但我觉得这不太算是个问题。如果发现原型出了问题,那么通常会提供通知,这样我就可以清理连线,重新组织模块。5.可以编组模块,但是无法取消编组,只能复制出来。6.iOS上切换应用会关闭Mac与iPhone的连接,此时需要重新连接。因此在制作过程中,我会关闭一些社交软件的通知。7.Form和Sketch的配合体验很好,直接Cmd+C Cmd+V便可以实现图形的添加。————————————————————————————————————————————————————(下面这一小段文字提供了我所构建的原型,基于RelativeWave官方学习页面,我构建了这些原型。这些文件放在了Github上面,后缀是.form,并附带简短描述。我本打算附带一些截图,来进行教程分解,可惜时间不多,只能如此。)作者构建的原型一:色块弹跳视图(Color View)本教程涵盖的内容不止如此。但是每种变成语言入门的第一件事都是构建“Hello,World”,这个原型就是“Hello,World”水平相当的原型。这个带有几个色块的视图,点击便发生弹性效果。(以下为译者分析步骤)1.构建3个Color View视图,调节尺寸(Size)和位置(Position)。2.Touch Interaction提供交互功能,Down为按下交互3.Spring的设置中,维度(Dimensions)降为1,Spring提供弹性动画效果4.Transition控制变化量,注意View Patch中的起始量,设置结束量5.Down按下时,逻辑值为1,松手后,逻辑值为0,Down连接Rest,可以提供按下-&放大,松手-&缩小的效果。————————————————————————————————————————————————————四、开始案例分解Parteek Saran制作的iPhone地图照片原型我们来看看别人是怎么解决问题的。RealativeWave的提供了很多Form源文件下载,我们可以通过这些案例来学习form.在编程学习中同理,阅读别人的源码可以帮助进步,提供思路。学习这些Form源文件具有同样的功效。这里直接把这个案例的源文件放出:我们要学习的这个案例来自&&(他是RelativeWave研发团队的一员) ,这个案例提供了地图上的照片陈列功能。看起来很棒,使用体验也很棒。因此我们来看看工程文件。用来构建上面动图的模块。Root View里面包含了3个模块组,里面还有更多的模块。我第一次打开这个工程文件的时候,我的想法是:“就这么点Patch?”后来我发现还有3个模块组。(译者注:下文非原文陈述顺序,为方便各位梳理逻辑,自己重新进行了图文编排,添加了译者的一些理解)Root View里面的Image Grid模块组,我发现里面还有3个比较有用的模块组——一个图片组来放置出现的4张图片素材,一个Y Position变量组,一个Opacity变量组。——这些用来控制交互触发后,4张图片的出现效果(如下图)而通过Root View的Map.png的Width和Height来构建Image View的高度和宽度,同时实现Map.png的贴图。然后在ImageView中构建绿色小圆点的脉冲效果。(如下图)最后通过Root View的Transitions模块组,来实现按压效果(这个工程看似可以拖动,但实际上触发通过按压来开关效果)中Y变量 Z变量 X旋转变量和比例变量的变化,从而实现地图的X轴旋转效果,为图片腾出地方。(如下图)从效果梳理,其实就是一个自带的脉冲效果+按下手势出发后的地图X轴旋转和图片出现动画(如下图)五、Image View这是在父级中的Image ViewImage Views是一个模块组,我花了点时间来理解这个模块。这个Image View不但可以实现Map.png的显示,而且作为容器里面还可以涵盖3个子 Image Views:Blue Pulse(脉冲效果),Pin(蓝色圆点),Pin Shadow(阴影).进入Image View后,发现里面还涵盖了3个Image Views.圆点和阴影看来是直接拖进来的,未做改变——可以直接拖动图像到Form中,如下图。直接拖动图像到Form中蓝色圆点和阴影很好理解,拖进来就是了,我们再来分析一下蓝色脉冲Blue PulseBlue Pulse (Image View模块组)我复制粘贴了蓝色脉冲那一大坨模块到新工程文件中,预览后,我的iPhone上立马出现了脉冲效果。蓝色脉冲主模块搭配蓝色脉冲Pulse子模块搭配这里我来讲述下这些模块的工作原理——其实就是重复了一下模块库中的描述Blue Pulse蓝色脉冲 (Image View)Image View模块可将图像渲染到屏幕上,而配合其他模块,可以精确定义图像渲染的方式。pinradius.png (Image)这个png文件就是要渲染的对象。直接将图像拖进Form,就可以同时构建出Image View和ImageScale比例 (Transition)改变Image View比例的模块,这个Transition模块接收数据,并根据设置,将转化的数据输出,我们可以设置最大输出值和最小输出值。这里我要提醒一下各位,“Scale”这个名字是用户所命名的,Transition所能改变的不仅仅是比例。所以Transition模块的含义是“改变输出值”Opacity 不透明度(Transition)改变不透明度的模块,这个模块改变了Image View的不透明度,范围0到1Pulse 脉冲(Group)这个模块组只具备输出,控制了脉冲图片的比例和不透明度,它让比例增大,不透明度降低,从ing而出现脉冲效果。本质上是一个计时器,我们来看看脉冲模块的连线脉冲模块,计时器模块组Pulse模块组的构成(Input Splitter输入分离器)输入分离器接收输入值,然后等量输出输入值。起先,我觉得这玩意没有用。但是后来我发现这玩意主要应用于模块组。(译者注:在QC中,Splitter一般用于连接Root View和子View的输入输出)据我所知,当想要把子模块的输出输出到上一层中,Input Spillter便起了作用。在Pulse模块中,我们想要向外输出Stop Watch模块,但是StopWatch的Time输出已经连接了另外一个输出闭环(条件判定&=模块),为了再分出一个输出,我们就建立了一个Input Spillter(Conditional条件判定)条件判定会比较输入值是否符合条件,从而提供真假逻辑值。在这里,主要判定Stopwatch的时间是否大于等于1(译者注:原理上类似If/Else语句)(LFO低频振荡器)LFO可以很方便的构建出正弦波 余弦波和方波(译者注:LFO可提供的波形还有很多,如下图)这个工程中,我们主要使用方波,来让输出值在0到1之间徘徊,与stopwatch构成了间隔定时。(State Input & State Output状态输入和状态输出)这个组合有点让人费解。状态输入的信号连接到状态输出的信号,从我们的交互逻辑里面分析,似乎这两个模块没有什么用。为什么不可以直接把Conditionla的输出连接到Stopwatch得Stop/Reset上呢?非要加这两个模块呢?&我自己试验了一把,结果iOS预览器立马崩溃。在RelativeWave社区上有更详尽的解答&. 在他们的案例中,他们用Math模块连接状态输入和状态输出模块。这样在预览器显示时,能够每一帧获取一次数值变化量。(Stopwatch秒表)输出时间值,在这个工程中,我们每隔一秒会重设一次。下面就是这些模块连接的结果。Stopwatch输出0到1的时间值。Conditional Patch中,如果&1,那么逻辑值为假,便不进行重设,如果&=1,逻辑值为真,立即重设,重设时会将真逻辑值传输到State Input,然后再传到Sate Output,再传到Stopwatch进行重设。似乎间隔定时器构建起来很麻烦,不过有了先例,现在我们可以进行复用了。双击连线,可以显示逻辑值和变量值的动态变化,最开始的时候,我通过Console Log控制台日志来观测数值变化量,这种观测方法看起来非常的沉闷(在文章末尾,请看关于控制台日志的相关陈述)————————————————————————————————————————————————————作者构建的原型二:通过延迟控制实现富有层次感的动画这个原型也很基本,我通过控制延迟时间,构建了富有运动层次感的动画。(译者分析步骤如下:)1.先通过Touch Area构建一个全屏的可点击区域。2.Switch Delay2 Delay3 Delay4 的延迟分别是 0 0.2 0.4 0.63.在每个Dealy 模块组中,首先判定是否在按压状态。如果不是,那么重设不计时,如果是在按压状态,计时,当时间大于&=所规定的时间时,通过输出分离器输出逻辑值1(也就是构建成了延迟效果)。4.实际上,这个动画控制的是色块不透明度从1到0的层次变化,每个Spring的Rest根据延迟时间接收到逻辑值1之后,接入Transition,实现1到0变化。(似乎Mapping那个Transition Patch没什么用)—————————————————————————————————————————————————六、Image Grid (Replicator 模块组)Image Grid模块组本质上是Replicator重复符Replicator重复符可以构建视图里面所有模块的副本。在Form社区里面可以找到它的教程&&这个教程提供了很详细的,由Laurel Wagstaff撰写 (RelativeWave团队的一员).在这个案例中,Replicator创建了4张照片的副本照片网格以及用来创建4张照片的Image Grid Replicator&跟上面一样,我们来分析下各个模块(Replicator Variables 重复符变量)这个模块让我们可以使用索引号Index,位置Position,以及其他副本变量。在译者的理解里,似乎Replicator Variables打通了Y Position、X Position、Opacity与Image的链接,让各个索引号的数值变量对应到各个索引号的图片上Replicator Variables的Position的数值在0到1之间浮动——我估计如果有10个副本,那么就是从0.1,0.2再到1Rest (Input Splitter输入分离器)在这里的输入分离器,主要用来接收Root View中Touch Interaction的开关信号(逻辑值0-1)这个模块命名为Rest因为它能够控制Transition模块组中的弹性量,是0倍 1倍 ,还是多少倍(但是由于最顶层的控制来自Down手势,因此只能是1倍或者0倍)X Position, Y Position, Opacity, Image (Multiplexers多路复用器)多路复用器可以接收多路数值,再分配给对应的索引号。在这个案例中,我们从Transition模块组中接收多路索引输出,然后输入到对应的1 2 3 4 张图片上。在这里,每张图片的Y Position的变化量取决于Transition的输出。当然,你也可以手动输入每个索引的输入值,来分配给对应索引号的对应变量上。因为这个效果中,X Position不变,因此可以选择手动输入。Transitions (模块组) 和 Images (模块组) —下面我们来看看这两个模块组Images (Group)第一张图:Images模块组中的文件 第二张图:Images模块组与Image多路复用器的连接。如上图Images模块组被有序的组织了起来。每个图像的Image输出都连接了输出分离器。这样就方便在上一级View中实现对多路复用器的连接。Transitions (模块组)这里有2个Transitions模块组 (一个控制Y Position变量,一个控制不透明度变量) ,这两个模块组看起来一样。Strength, Damping 力,阻尼 (Input Splitters输入分离器)在这里,这2个输入分离器的数值是自己设置的,分别对应连接了Spring的力和阻尼输入点上,来控制弹性效果,通过输入分离器,可以方便的一次调节4个Spring模块的2个属性参数。(Spring) x4Spring模块的输出值介于0到1.而Rest的输入来自Touch Interaction,由Down手势提供,进而判定是否触发变量的弹性趋势变化。Top Left, Top Right, Bottom Left, Bottom Right (Transitions模块)Transition 模块同样控制了Y Position和 Opacity模块的数值变化,对应设置即可。还有一点非常有趣,就是所有的Spring模块都彼此相连,也即是,触发了第一个左上角图片的弹性效果,就会产生其余3张图片的连锁弹性效果反应。这很好的构建出了层次感效果。我们可以看到最末端的数值和最顶端的数值变化相比,稍稍有些延迟。在第二个我制作的原型中,我也构建了延迟动画。但是方法不同,我那个方法可以更精确地构建延迟。————————————————————————————————————————————————————作者构建的原型三:Image Grid和相机模块这里我尝试使用了重复符Replicator, 用来自动排列多组元素。同事尝试了相机预览模块Camera Preview patch. 虽然无法保存,但是和web原型工具比还是很有趣的(译者注:这个打不开,就不分析了,提供一个摄像保存的思路,使用Sample & Hold模块)————————————————————————————————————————————————————七、返回到Root View我们再来看看Root View的模块,以及整体动画效果。剩下的这些模块,如上图,实现了地图的3D效果,我们继续分析一下各个模块map.png (Image模块)这张PNG图定义了Image View,形成了容器,而Image View的蓝色脉冲作为它的子集存在。(Touch Interaction触摸交互模块)Touch Interaction 连接到Image View的输出端(没错,输出端)我们仅仅使用Down按下手势,这种连接让整个Image View都变成了可交互区域,点击即触发。(Switch开关模块)Switch开关模块设置了开关功能,这样输出可以在Yes和No之间切换。Image View自己的效果和Image Grid的效果都通过Switch对Spring的控制来实现。(Spring弹性效果)所有的Transition模块之前都连接了Spring模块,提供了动画曲线,用来让动画流畅不突兀Transitions (模块组)这个Transiton模块组可比Image Grid里面的容易多了,因为这次我们只需要控制一个对象Image View的参数变化。通过Y Position,Z Positon,Scale,X Rotation的变化,实现了3D效果。下图中,我删除了Image Grid和蓝色脉冲,请大家具体看下这些属性是怎么实现3D效果的。Y-Position:&&-20 -&350, 让地图下移Z-Position:&0-&-500, 让地图缩小X-Rotation:&0-&55,让地图沿着X轴旋转,营造退后的感觉。Scale:&1-&0.9 轻微缩小地图————————————————————————————————————————————————————作者制作的原型四: Pivot!灵感来自. Mike Rundle写了一本书叫&,讲述了代码实现方法。我曾经用&重构了这个动画,这里我用Form再画一次,进而比较两个工具。译者注:由于作者使用的机型和本人的5s不适配,看了下Patch,大致分析一下。1.点击地图图标,触发三组动作 地图的出现+模糊层缩小+图片层的缩小,而模糊层和图片层效果相同,因此用了一个Transition模块组来一次搞定,最后另行定制了地图弹出效果2.作者在Blurry Picture 的Image View(就是上图名称未显示全的蓝色模块)中构建了一个尺寸大致和图片尺寸差不多的Color View(但是尺寸不要覆盖到地图图标),来作为可点击区域,用Touch Interaction来接受此点击区域的交互输出,从而实现了点击模糊层时的透明效果。————————————————————————————————————————————————————八、结论这就是全部的案例分析。我们分析了这个案例中每个使用到的模块,我希望本文对你有所帮助,让你能够理解工作原理。更重要的是,我现在开始明白为什么很多人更愿意做一个连线的Noder,而不是编码的Coder可以大致体验交互,模块化制作因为具备视觉预览界面,可以很方便的大致体验交互,如果效果不好,可以Cmd+Z很方便的调整。模块化的优点,在于可复用。如果看到了很好的原型案例,复制就可以使用。可交互原型可以测试,可以交互,可以用来学习产品的不足,进而帮助我们构建产品。编码的弊端在于,若想编码简洁高效,需要花费大量时间。而且Form的表现性能十足(译者:仅次于AE、QC,优于FramerJS和Web原型工具),甚至表现力要超过了可抛弃型代码。编码,灵活性,表现力这篇文章&&中,作者讨论了Quartz Composer/Origami,FramerJS和Objective-CQuartz Composer最美妙的地方在于,它能够实现多种多样的交互。工具不同,高保真程度不同,定位不同,效果自然也不同。Scott在文章中指出,Sketch/Photoshop是一种极端,提供了最优异的图形绘制能力,而其他工具又是另外一种极端。工具的选在在于灵活,如果设计者直接从零代码模式跳到全代码模式,不但不灵活,而且学习成本大。对于设计师来说,提供一些静态素材并不难,用QC制作简洁的交互原型也不算太难。用Framer制作交互有点学习成本,而直接上码,用OC制作Native 原型,成本未免太大。基于此,基于Form目前的表现,我认为它和QC是一个等量级的原型工具特别感谢非常乐意听取读者的反馈,我的Twitter:.我的个人网站.我要回去搞原形了——接下来我会分享我制作的原型。附录A:控制台日志模块,未知的探索控制台模块可以观测数值变化。Form正在计划推出控制台预览器,但是我们需要同时使用控制台和效果预览器在Form的用户支持站点和Facebook小组中,讨论了苹果iPhone的配置Utility,这个工具最近被抛弃了。最近又出来一个 Apple Configurator, 能够让你看到设备的控制台日志,但是不好用。我Google了一下iPhoneConfigUtility.dmg我阅读了一下使用手册,我发现现在可以动态获取控制台日志了。也可以双击连接线来添加标记,显示动态数值。希望这对你有所帮助。附录B资源Form 社区Form 支持页面&Form 案例和DemoFacebook Form社区小组Pasquale D’Silva — 可依据情景的放大原型Pasquale D’Silva — Form让我感到很兴奋最下方打包了作者的4个原型和Form官网的Demo,各位自行下载最后贡献一个译者原创的Form动画源文件,戳——&
打开微信“扫一扫”,将本文章分享到朋友圈
前身为。国内最专业的UI设计平台!
七年来一直为UI设计师做最好的服务而不断努力着!维库欢迎您!
微信扫一扫关注我们
当前位置:&>>&&>>&&>>&无线传感器网络的TOF测距方法研究
&&&& 无线网络是指由大量随机分布的集成了传感器单元、数据处理单元、通信单元和单元的微小节点并通过自组织方式构成的分布式网络,其目的是借助于微小节点内置的各种传感器来远程监测所感兴趣的目标或对象,以进行任务感知、数据采集和处理。
  网络技术的发展使得大规模的传感器网络成为了可能。但是随之带来的是网络的可靠性降低了,特别是网络节点的位置信息不好确定,对于大多数应用来说,不知道传感器节点位置而感知的数据是没有意义的,节点的自定位功能被认为是系统的基本功能之一。因此,无线传感器网络中节点定位技术的研究非常重要,并且已成为无线传感器网络的基础支撑技术。
  一般而言,无线传感器网络的定位技术分为基于距离的定位和非基于距离的定位。基于距离的无线传感器节点定位技术一般分为两个阶段:首先是测量无线传感器网络中节点间的距离; 然后根据节点间的距离和现有的传感器节点定位算法,如三边测量法等计算出无线传感器网络中某节点的位置。因此,节点测距技术是无线传感器网络中基于距离的节点定位技术的基础。
  本文通过研究国内外无线传感器网络定位技术的发展现状,提出采用T OF 测距技术实现节点测距,从而提高基于距离的节点自定位技术的定位精度。
  1&& 无线传感器网络中的测距方法
  在无线传感器网络中,常用的测量节点间距离的方法主要有TOA( Time of Arrival) ,TDOA( Time Dif ference of Arrival ) 、超声波、RSSI ( Received Sig nalStrength Indicator) 和TOF( Time of Light ) 等。
  TOA 和TDOA 测距技术都是通过信号的传播时间和信号的速度两个参数来计算距离的,无线信号传输速率大,时间测量上很小的误差就可能导致距离上很大的误差,并且TOA 需要昂贵的设备来保持时间同步,能量消耗大。TOA 测距涉及到信号传输时间的测量,以此来估算两个节点间的距离。它能够运行在高多路径环境,并且提供分米级的测距精度。
  方法是指当发射节点发射的超声波遇到障碍物时就会发生反射,反射波可由接收器接收,这样只要测出超声波从发送点到反射回来的时间间隔△t,就能测距。因此,超生波从发射处到障碍物之间的距离为c△t/ 2( c 为超声波在介质中的传播速度) 。利用超声波测距很精确,测量误差只有10 cm,但由于超声波是一种声波,而声速c 受环境温度、湿度等因素的影响。另外,测距时需要额外的硬件支持,增加了节点的硬件成本和尺寸。
  RSSI 是最基本的测距方法,基本不需要额外的硬件设备,实现方法简单。在基于接收信号强度指示RSSI的测距中,已知发射节点的发射信号强度,接收节点根据收到的信号强度计算出信号的传播损耗,利用理论和经验模型将传输损耗转化为节点间的距离。其理论模型为:
  式中:p ( d) 表示在距离d 处的信号强度; n 表示路径长度和路径损耗之间的比例因子,范围在2~ 4 之间; p ( d0 )表示在距离d0 处的信号强度; d 表示需要计算的节点与基站间的距离; d0 表示参考节点与基站间的距离 。因传感器节点本身具有无线通信能力,故它是一种低功率、廉价的测距技术,RADAR 等项目中使用了该技术。
  虽然在实验环境中RSSI 表现出良好的特性,但是在实际环境中,它易受温度、无线信号的反射、障碍物( 如陆地建筑物) 、传播模式等诸多因素的影响,因此该技术在实际应用中仍存在困难,通常将其看作为一种粗糙的测距技术,有可能产生± 50% 的测距误差。
  TOF 测距技术可以理解为飞行时差测距( Time ofFlight Measurement ) 方法,传统的测距技术分为双向测距技术( Two Way Rang ing ) 和单向测距技术( OneWay Ranging) 。T OF 测距方法属于双向测距技术,它主要利用信号在两个异步收发机( Transceiver) 之间往返的飞行时间来测量节点间的距离。在信号电平比较好调制或在非视距视线环境下,基于RSSI 测距方法估算的结果比较理想; 在视距视线环境下,基于T OF 测距方法估算的结果比较理想,是随距离呈线性关系的。因此,基于TOF 距离估算方法能够弥补基于RSSI 距离估算方法的不足。另外,具体应用时可以联合使用两种方法来提高定位系统的精确度。
  TOF 测距方法是D. McCrady 提出的,然而该技术只侧重于直接序列扩频( DSSS) 的通信系统。接下来,M. Ciur ana 也对T OF 测距技术有所研究,他首次在IEEE 802. 11b 的无线局域网中使用T OF 测距技术, 然而需要额外的硬件帮助。在无线传感器网络中,也有许多学者对TOF 测距技术进行了研究。然而,他们侧重于无线传感器网络中某个特殊的典型现场,如可编程门阵列( FPGA) 的实现,并且需要一个专门的基础设施,而这个基础设施也不能广泛应用于IEEE 8021. 11( 无线) 网络中。
  在本文中,考虑用窄带的T OF 测距方法及标准的IEEE 802. 11b 来完成无线传感网络准确估计点到点之间的距离。
  2&& TOF 测距方法原理
  在T OF 测距时,本地节点A 向远程节点B 发送一个数据包,当B 节点收到数据包时,会自动发送一个确认来响应这个数据包。执行过程如图1 所示。
图1&& TOF 测距过程
  A 节点测量出从发送数据包到接收确认的时间,这段消耗总时间记为TT OT 时间; B 记录了B 从收到数据包到B 回应确认消息的这个时间段的时间,记为TT AT 。用T TOT 总时间减去周转时间TT AT 就是双方的数据包在飞行中度过的往返时间,记为TRTT 时间。假定在每个方向发生的飞行时间TTO F 等于50% 的往返时间,如式( 2) 所示:
  当计算出TT OF 后,根据D = T c( T 代表T TOF ; c 代表光速,为3×108 ms- 1 ) 可以计算出节点间的距离。
  TOF 测距方法有两个关键的约束:一是发送设备和接收设备必须始终同步; 二是接收设备提供信号的传输时间的长短。为了实现时钟同步,TOF 测距方法采用了时钟偏移量来解决时钟同步问题。但由于T OF测距方法的时间依赖于本地和远程节点,测距精度容易受两端节点中时钟偏移量的影响。为了减少此类错误的影响,这里采用反向测量方法,即远程节点发送数据包,本地节点接收数据包,并自动响应,通过平均在正向和反向所得的平均值,减少对任何时钟偏移量的影响,从而减少测距误差。
  3&& TOF 测距实验
  3. 1&& 实验准备
  实验时,采用了Jennic JN5148 EK010 开发平台作为实验平台来完成TOF 测距试验。JN5148 通信模块具有超低功耗、高性能,完全兼容IEEE 802. 15. 4 等特点。它集成了32 b 的RSIC MCU 内核、高性能的2. 4 GH z IEEE 802. 15. 4 收发器,主要应用在ZigBeePRO 的无线传感器网络中[ 12] 。
  Jennic 的JN5148 无线包括一个硬件的飞行时间( TOF) 引擎,能够测量2. 4 GHz 的无线电信号在两个节点之间的飞行时间。由于飞行时间与传输距离成正比,故可以用来估算节点间的距离。
  3. 2&& 实验描述
  选择两个JN 5148 节点,分别为A 节点和B 节点。A 节点作为Coordinator 节点,B 节点作为EndDevice节点。其中,B 节点通过串口与PC 机相连,在PC 机通过串口调试软件来查看相关信息; A 节点作为移动节点,用来改变节点间的实际距离。通过实际测量结果与TOF 测距结果的对比来验证测距方法的有效性。
  根据不同的实验环境和测试距离,设计了4 种类型的实验,分别为Line o f Sight ( LOS) ,No Line of Sight( NLOS) ,Indoo r,走廊等测距实验。其中,LOS 表示视线可达的区域,在一个无障碍的麦地进行测试; NLOS 表示视线不可达的区域,在果园里进行测试,在两个节点直线距离中间有建筑物、树木等障碍物; Indoor测距实验被安排在实验室进行测试; 走廊实验在某栋楼的走廊进行测试,障碍墙厚度为30 cm,走廊宽为3 m,长约30 m。
  3. 3&& 实验结果
  为了减少测距的误差,采用多次测距求平均值的方法来估算距离。在10. 5 m 的室内测距实验中,EndDev ice 节点放在一个房间内,而Coor dinator 节点放在走廊内,中间隔着一堵墙,测量结果如图2 所示,测量60 次( 一个点3 次,共20 个测量点) 样本数据的平均误差在1. 94 m,最大误差距离为3. 55 m。在26 m 的走廊测距实验中,测量60 次样本数据的平均误差在2. 01 m,最大误差距离为5. 1 m,样本数据如图3 所示。
  在100 m 的LOS 测距试验中,测量60 次样本数据的平均误差在3. 62 m,最大误差距离为11. 2 m,样本数据如图4 所示。在100 m 的NLOS 测距试验中,测量60 次样本数据的平均误差在4. 47 m,最大误差距离为19. 6 m,样本数据如图5 所示。实验结果证明,TOF 的精度较高,可以满足WSN 定位技术的要求。
图2& 室内测距样本图
图3&& 走廊测距样本图
图4&& LOS 测距样本图
 图5&& NLOS 测距样本图
  4&& 结& 论
  介绍了基于T OF 的节点测距技术。通过实验证明,用时钟偏移量方法可以有效实现时间同步,用求正反方向的T OF 平均值的方法可以有效减少误差。
  TOF 测距实验在室内、室外进行了多种测试。实验结果表明,在10. 5 m 的室内,测量样本数据的平均误差在1. 94 在26 m 的走廊,测量样本数据的平均误差在2. 01 在100 m 的LOS,测量样本数据的平均误差在3. 62 在100 m 的NLOS,测量样本数据的平均误差在4. 47 m。上面的实验数据显示,不同的实验环境,误差大小也不同,这主要受信号传输路径的影响。因为在信号的传播过程中,由于受地面或水面反射和大气折射的影响,接收到的信号有可能不是单一路径来的,而是由许多路径来的众多反射波合成的,因此测量信号的传输时间就会有误差,从而影响估算距离的精确度。
  总之,结果表明,T OF 是一种精确度较高的测距方法,适用于无线传感器网络,能够得到广泛应用。&&来源:
技术资料出处:sharpchang
该文章仅供学习参考使用,版权归作者所有。
因本网站内容较多,未能及时联系上的作者,请按本网站显示的方式与我们联系。
【】【】【】【】
上一篇:下一篇:
本文已有(0)篇评论
发表技术资料评论,请使用文明用语
字符数不能超过255
暂且没有评论!
12345678910
12345678910
  对于buck电路的成本,很多人认为与三级电路相比其优势并不明显。但实际上,从性能、尺寸、可靠性上来说,buck电路都要优于三级电路。纠结于成本问题的设计者有可能是因为实践机会较少,对成本的了解不够深刻,所以出现了高估的现象。[][][][][][][][][][]

我要回帖

更多关于 gif动画特效制作软件 的文章

 

随机推荐