【通过USB鼠标直接采集测速信号实现流量测验智能化】USB鼠标

  摘要:作为计算机输入设备的鼠标其按键是触点式无源信号,而水文测验使用的流速仪的属性和工作原理恰恰与之相同。通过简单改装鼠标便成为流量测验的信号装置,是实现计算机直接采集测速信号最简单有效的方法,使记载表格、计算器、音响器、停表等测具均由便携式计算机一机代替的现代化工作模式成为现实。本文给出改装鼠标的方法及其程序控制的设计思路,并以笔者开发的“河道流量测验与成果管理系统”支持该鼠标为例,介绍水面、流速仪、河底3路信号的获取,以及程序高效智能化判断处理,消除了以往的流量测验系统的操作人员人工设定测点数量、岸边系数和机械故障等带来的困惑,实现了同步分析断面流量,达到同《河流流量测验规范》完全一致,在河北省多年的引黄输水监测中发挥了很好的作用,也在实践中得到了完善和成熟。
  关键词:鼠标;流速仪;信号;智能化;便携式计算机;引黄输水监测
  Abstract:As computer input device mouse buttons is the touch dottype passive signal, but hydrological use anemometer attributes and working principle of the just and same. Through simple modification mouse became flow test signal devices, It "s to realize the computer directly acquisition speed signal the most simple and effective methods.It make record form, calculator, audio device, such as a measurement are stopped by portable computer work mode of modern machine instead of becoming a reality. In this paper, we give the method and procedure of modified the mouse control design, and author of “river flow test development and achievement management system”support the mouse for example. Introduction to surface, flow meter, the 3 signal acquisition, and program efficiency intelligent judgment processing, eliminating the previous flow test system operator to manually set point number, the coefficient and mechanical failure and caused confusion, realizes the synchronous analysis flow, to achieve the same“river flow test norms” exactly the same. In Hebei province for many years the river water monitoring plays a very good role, also in practice has been perfect and mature.
  Key words:mouse;anemometer;signal;intelligent;portable computer ;the river water monitoring
  中图分类号:TP391 文献标识码:A 文章编号:
  
  1引言
  河流流量测验与整编是水文最基本的工作内容。半个多世纪以来,流速仪法一直是流量测验最基本的测速方法,各类新的测速仪器乃至多普勒流量计ADCP的出现,仍然在多数测验条件下不能代替传统的流速仪。广大水文科技人员为提高测验质量不断改进计数、计时装置,还研制出能够直接连接流速仪的流速测算仪并能够同计算机通讯。但毋庸置疑,不能直接连接计算机或脱离计算机系统控制的任何先进设施,因受其灵活性和可开发性所限,其自动化、智能化、信息化水平的提高必然会受到局限,而且信息的采集与处理即测验与整编是脱节的。今天便携式计算机的普及标志着手提计算机到断面测验的条件已经成熟,而开发利用这一资源的瓶颈是如何以最简单的方式使计算机直接采集测速信号。
  在现有流速仪测速信号工作原理的基础上,使用单片机同计算机串口通讯,显然可以设计一个由发射―接收―处理3级工作站式的有线或无线信号系统,笔者也经过实验并获成功。但是,对于流速仪测速装置和实际中很多船测、桥测作业的简单性,给计算机增加硬件设施无疑又会使测验过程复杂化,必须考虑利用计算机自带的输入设备才是最简单和最佳选择,而便携式计算机最便于利用的设备是USB接口的鼠标。
  2鼠标的简单改装
  2.1鼠标代替信号器的可行性
  作为计算机输入设备的鼠标其按键是触点式无源信号,而流速仪的属性和工作原理恰恰与之相同,测验中需要的水面、河底信号也无外乎是通过连接/断开来得到。理论上通过连接鼠标的按键触点来使计算机得到测速信号是可行的,而且鼠标的高灵敏度足以确保信号的可靠性。一个标准的普通型的鼠标外部由左中右3个按键组成,内部是一块主板,除向计算机传送3个按键信号外,还有一路取自计算机的5v电源。其左键和右键均担负着众多输入任务,唯有中键几乎是个闲置资源,显然可以用导线连接鼠标主板的这两个引脚来用于获取测速信号,计算机软件操控这一路信号完全可以完成测速、计算及其他分析工作,而且软件的开发来实现其智能化将不再受到其他任何资源的限制,可以充分弥补传统信号系统的任何缺陷和不足。
  2.2改装鼠标的方法
  如果测速装置都做好绝缘处理即不考虑水的导电性,则借用鼠标中键引出两根导线直接连接测速装置的水面、流速仪和河底信号源即可。但现有大部分测速装置还是不绝缘的接线方式,这也无妨,可以接一个DC 12v的继电器,其工作电源同样可连接鼠标主板的USB电源引脚,也可外置9v电池供给(有的便携式计算机的USB口不支持或会导致鼠标不能正常工作),则实现了由继电器触点代替鼠标触点且屏蔽了水的导电性。还要考虑利用水的导电性来获得水面信号,需使用一个双刀双置(DPDT)开关用于线路通过继电器和直接引线之间的人工转换,以分别获得水面和流速仪、河底信号,电路图如图1。
  
  图1.改装鼠标电路图
  Fig.1The diagram of modified mouse
  该鼠标的优点是:①简单且成本极其低廉,无需投资生产测验“专用鼠标”,测验人员完全可以自行改装,如果不涉及侵犯品牌鼠标厂家的利益则无需另配机壳,而且对已做绝缘处理的测速装置采用直接引线的方式即可;②实验表明,对电导率在400~9000μs/cm之间的水体即所有的天然水都能正常工作;③可实线连接测速装置,也可连接现有无线信号装置的接收端,鼠标输入信号的灵敏程度足以保证测速信号不被丢失,而且对流速仪信号抖动可通过程序逻辑判断处理,足以保证测速信号不被重复。不足的是,水面、流速仪和河底3路信号只能通过一路传输,计算机不能区分而只能给出一种提示,当然凭测验人员的主观经验是很容易分辨的。
  3程序设计思路
  3.1取得信号
  测速信号的接通相当于鼠标中键的按下,就会触发一个Key事件,多数软件开发工具都为对象预定义了Key事件,如果没有定义也可以自定义一个用户事件,事件ID选择mbuttondown,不可采用mbuttonclick,因为测速信号的接通其特征是按下而不是单击。在该事件驱动下,每接通一次就可以取得一个信号,在一个存储单元中累加得到信号总数。当然软件开发的空间是无限的,在这一个事件中通过判断可以获得一系列有意义的信号,例如,通过mbuttondown得到入水信号,就可以通过mbuttonup得到出水信号;得到时间间隔过于短的流速仪信号就可以判断流速仪触点工作异常而忽略掉,等等。
  3.2输出信号
  每取得一个信号利用预设的电脑音效模拟传统音响器给予提示,并设计一个计数控件用于显示信号数;利用CPU震荡频率(一般可采用软件开发工具的定时操作函数)设计一个计时控件,按要求设计成为一个保留一位小数的停表,在设定了最短测速历时(60s或100s)后,很容易实现取得第一个信号自动开始和取得最后一个信号自动结束。
  3.3计算流速和断面流量
  每个测点测速结束后,程序很容易自动按预设的流速仪信号间的转数和公式计算输出该测点流速,但是,由河道、水流态和行业规范要求的复杂性决定了程序分析垂线平均流速、断面流量以及分析各特征值的复杂性,编程涉及复式河槽的识别、岸边、死水、回流、多点法以及“四舍六入”数字修约方法、不确定度和系统误差分析等若干问题。需要一定的数据组织和数据结构理论基础及丰富的编程经验和技巧,还要善于借鉴同行们长期积累的成果,更需要在长期实践中不断完善维护逐步成熟而达到较高的自动化、智能化水平。
  4实际应用介绍
  这里介绍笔者使用PB工具开发的“河道流量测验与成果管理系统”。其软件部分已在多个省份水文部门应用近20年,经过多年的完善性维护,已经是集流量沙量智能分析计算、不确定度和系统误差分析、日均量计算及资料整编成果管理等于一体的软件系统,最大的优点是它对《河流流量测验规范》、《水文资料整编规范》和流速仪工作原理的理解的全面性、严谨性以及作业中的简单性和智能化、人性化水平。在此重点叙述其中为改装鼠标提供平台和控制完成测验、自动计算分析流量部分的程序设计思路。如图2,是系统的流量、输沙率测验信息采集与分析计算用户程序界面。
  
  图2. 流量、输沙率测验信息采集与智能分析计算用户界面
  Fig.2The user interface of flow and sand transport rate test information collection and analysis
  4.1界面设计
  ①采用“蓝天绿地”且渐变的颜色,充分考虑在户外作业有一个最佳视觉效果。
  ②输入输出在这同一界面实现,给菜单操作增加控件和快捷键,最大限度弥补户外工作条件差的问题。
  4.2测速过程设计
  制作一个停表控件,其实就是1个可供点击控制启动/停止的图片框加2个用于显示流速仪转数lsy_n和测速历时t_time的文本框,使其启动/停止由一个boolean 型变量tf_watch控制,按照设定的最短测速历时控制取得第一个信号时启动和取得最后一个信号自动停止。在Timer事件(有的开发工具是timer函数的形式)和鼠标中键的Key事件驱动程序的配合下完成一个测点的测速。这里给出2个事件的PowerScript脚本,并以代码注释的形式代替文字说明。
  ①Timer事件,时间周期要小于0.1s,这里取0.055s。
  if lsy_n>0 then//取得第1个信号开始计时
  t_time=round((CPU()-begin_time)/1000,1)
  st_time.text = string(round(t_time,1))//取CPU工作时间的精确时钟(停表)
  if t_time=30 or t_time=60 or t_time=100 then
  //到30、60或100s时也给个音效提示
  playsound(curdir+"\音效\30_60_100s提示.wav",1,1)
  end if
  end if
  ②Key事件,可以面向其中任意一个对象,但界面上的其它对象也须映射该事件,以保证对所有对象都有效,才能保证信号不会丢失。
  if KeyDown(KeyMiddleButton!) then//判断鼠标中键信号
  if cbx_mo.checked then//判断鼠标在工作
  if tf_watch then//判断停表在工作
  t_time2=CPU()//得到CPU当前时间
  if t_time2-t_time1>990 or lsy_n=0 then
  lsy_n=lsy_n+1//信号间隔超0.99s视为有效
   t_time1=t_time2
  else
   t_time1=t_time2
   playsound(curdir+"\音效\无效信号.wav",1,1)
   return//视为水流不稳或仪器故障,提示后舍弃
   end if
  st_lsy_n.text=string(lsy_n-1)//按习惯从0开始计数
  if lsy_n=1 then begin_time=CPU()//从第1信号开始计时
  playsound(curdir+"\音效\流速仪信号.wav",1,1)
  if dec(ddlb_zls.text)>0 and t_time>=dec(ddlb_zls.text) then
  //超过设定的60、100s最后一次信号触发停表停止并处理
  phl_watch.TriggerEvent(Clicked!)
   end if
  else//停表未工作即测速前的信号,用于判断水面和河底
  playsound(curdir+"\音效\测速前信号.wav",1,1)
  end if
  end if
  end if
  这里只给出了必要的实现过程,本系统中各种提示均设计为可由用户自定义的类似手机铃声选择的任意音效,还为用户提供了实时语音播报测验数据和计算结果的功能,测验人员佩戴无线耳机完全可以在无人值守计算机的情况下完成整个断面测验。
  4.3流量智能分析计算
  突出两个原则,一是执行行业规范的严谨性,即计算结果的正确性和规范化;二是最大限度地满足人的习惯和方便性,即人性化和智能化。以下列举几个程序处理很让人满意并在长期实践中得到充分完善的地方。
  ①施测起止时间的自动添加。第一垂线测速开始和最后测点测速结束,分别提取计算机的系统日期时间并计算平均施测时间。
  ②测深、测速、测沙垂线编号的自动完成;常用流速仪测速相对位置0.6之类数据的免用户选择;一键式帮助用户写入“左水边”“右水边”等汉字。
  ③借用用户自己建立的实测大断面数据同当前水位建立关系,自动给出相应水深供参考或直接借用,对没有实测大断面数据的临时断面,可以根据某精测水深的测次为用户构造一份大断面数据;也可以将某一典型测次的测验成果设置为模板,供新的测次调用并在此基础上修改。
  ④程序自动分析表格中全部数据,从中智能判断岸边、闸边、死水边、复式河槽的存在并给予默认的系数和正确计算河面宽等;每条垂线都按多点法(包括一点法)处理,按照《河流流量测验规范》要求给予两点、三点、五点、六点(冰期)和十一点法相应的垂线平均流速计算公式,而中间过渡的四点、七点等可以以算术平均值作为过渡,避免操作人员人工设定测点数量带来的繁琐和困惑;判断是否存在仅测深未测速垂线,以正确计算测速垂线间断面面积;判断是否存在其它方法如小浮标、电波流速仪等测速垂线并正确处理。
  ⑤采用PB的EditChanged事件驱动实现即时分析计算,严格对各列和结果的计算方法及数字修约要求,用户随时看到同人工计算一样的规范的“部分流速”、“部分面积”、“部分流量”,直到得到正确的“全部”,实现了测验结束和计算完成的绝对同步。每个测点施测结束后自动跳转到下一个测点或垂线,语音播报当前断面流量情况和下一个测点起点距、水深等数据,保证测验人员在人机分离的情况下掌握测验过程。
  ⑥用户随时可以查看断面各垂线流速分布情况,如图3,这里设计了一个透明的弹出图文框,供用户同时查看顶层图和底层表。
  
  图3. 断面各垂线流速分布图
  Fig.3The vertical velocity distribution of cross section
  ⑦对任一测次可以进行流量不确定度和系统误差分析,如图4,程序自动统计本测次各参数并进行相应精度的误差分析,也允许人工虚拟测速垂线数m等影响因子,形成了优化本断面测验方案的模型。
  
  图4. 流量不确定度和系统误差分析
  Fig.4Flow uncertainty and system error analysis
  ⑧建立数据库,规范化管理各流量测次,包括测站及测验断面管理、流速仪管理等。推求日平均流量、实测流量成果统计、数据共享等系统功能不是本文讨论的内容,这里不予详述。
  5结语
  一个计算机自带的鼠标充当了同流速仪连接的媒介,形成了流量测验与管理的软硬件系统,使传统的测验手段实现了现代化的作业模式,使记载表格、计算器、音响器、停表等测具均由便携式计算机一机代替,一般测验条件下一个人能够轻松完成测验任务,实测流量资料的积累也会自动形成规范的流量整编资料成果。其简单性和智能化程度是任何流速测算仪无法与之相比的,特别是在多年的冬季引黄输水监测作业应用中其实用性和方便性得到充分发挥,受到广大基层测报人员和资料整编人员的信赖,有效地解决了:①冬季测验人员在户外手工计时、记录和计算的困难;②流量数据的最快测到和最快报出;③实测数据直接进入整编系统,信息化程度大大提高。唯一的不足是:笔记本电脑的工作受到了环境温度的限制,气温低于0℃将会对电脑屏幕和电池造成伤害,气温过低会使电脑不能正常工作和死机,因此,须尽量使电脑在车内或缆道室内作业。
  便携式计算机的普及和日趋小巧更为这一作业模式创造了有利条件,相信会成为水文巡测车、测船、缆道室等必备的工具。当然受水平所限,肯定还有许多需改进和完善的地方,旨在抛砖引玉,启发同仁有更好的思路和方法。
  
  
  参考文献:
  [1] GB 50179-93,河流流量测验规范 [S].(GB 50179-93, River Flow test Specification[S].(in Chinese))
  [2] SL247-1999,水文资料整编规范[S].(SL247-1999, Code for Hydrologic Data Compilation[S] .(in Chinese))
  [3] 张英骏.巧用自定义函数解决水文资料中的“四舍六入”[J].水文,2005,(1).(ZHANG Yin-jun,Solution for the Problem of “Rounding off to the Nearest Whole Number”in Hydrologic Data with UCD[J]. Hydrologic,2005,(1) .(in Chinese))
  
  
  
  作者简介:张英骏(1967-),男,河北黄骅人,高级工程师,主要从事水文资料整编和水情信息管理工作。
   注:文章内所有公式及图表请用PDF形式查看。

推荐访问:鼠标 智能化 测验 采集