

英语原文共 9 页,剩余内容已隐藏,支付完成后下载完整资料
摘要:
一些典型的心理生理机能实验经常要求精确控制多路输入输出信号。这些信号通常通过电脑软件或者其他专门硬件产生或记录。专门用于此类实验的硬件通常比较昂贵,并且需要专门的软件来控制其行为。在本文中,我介绍了一些基于低成本、开源I/O口的Arduino系列开发板的准确的测试,此类开发板在实验室环境下是很有用的。Arduino的一大优点是它能够将实验脚本加载到开发板的存储器中,不需要有接口连接到电脑或外部软件,就可以运行。因此,它完全独立,便于携带,精确度高。此外,一个围绕Arduino的大社区已经形成,社区中提供了很多硬件插件和上百种不同项目的免费脚本文件。精确的实验表明,对于心理和生理实验而言,Arduino开发板可能并不昂贵。
关键词:
I/O开发板,便宜的实验室器材,控制实验,Arduino,TTL读,TTL写
介绍:
每一个行为研究的实验都要使用很多类型的器件和软件来实现对实验的控制。其目的在于记录行为和心理事件并产生信号来控制和同步不同器件设备。例如一些案例中的任务要求毫秒级别的准确度,所以需要特别注意,而现代的操作系统并不是按照真实时间和这样的准确度来设计操作的。因此需要使用很多不同的方法,例如,通过专门并且最优化的软件包对实验
的I/O任务进行编程,或者将重要的任务转交给专门的软件,这种软件内部有高精度的时钟。在这些案例中,解决方式都比较昂贵,尤其是外部的开发板,这种范围内的不标准性很大程度上取决于操作系统的精确度或者是具体实验的合适度。操作系统的精确度9支持所有的实验控制软件。当对多个参与对象同时测试或者实验要求便携、无线和低功耗的设备时,后
一点是正确的。
然而在一些案例中,很多低水平的I/O工作并不需要具体的软件包或者昂贵的开发板。例如,当一些传感器像接触传感器或者压力传感器等发现了某一事件时,如果实验者希望改事件被触发,那么就没有必要使用昂贵的硬件或软件。实际上,简单且成本低廉的微控制器开发板能够解决很多此类的I/O实验工作。这些开发板是物理计算平台,并且是在一个简易的微
控制器和用于编写软件的开发环境的基础上实现的。这装置可以用于开发交互产品,也可以接收来自各种开关和传感器的信息,还可以控制各种灯光、发动机和其他的物理输出器件。此类工程通常是独立的,或者与电脑上运行的软件通信。这一类开发板在最近几年不断完善,不同开发板之间的结构类似,主要区别在于不同的处理器的结构,有ARM,ATMEL等,不同的编程语言,有C/C ,BASIC等,还有其他不同,例如I/O口的数量和模拟信道等。一些制造商已经提出了非常受欢迎的解决方式,例如Parallax Inc,Coridium Corporation,FTDI,Picaxe,Arduino等。所有这些开发板的花费大约在50法郎左右。然而这些开发板的编程非常复杂,使用者需要至少掌握一些基本的电学知识。因此,这些开发板在心理和生理实验中
推广的最大困难在于其夸张的学习曲线。
相比之下,Arduino开发板的一个关键优势是其硬件和软件的开源体系,它有很多非专业的社区,利用这些社区可以很好地丰富Arduino的概念。谷歌的一份研究报告显示,对其社区规模的粗略估计,Arduino的点击量大约为1.2亿次。实际上,巨大的使用者基数和不断增长的市场使Arduino概念的兴趣不断提高。根据具体的需求,有上百种可以使用或者修改的开源工程项目。很多网络辅导材料包含基本的编程和电学问题,以及用于帮助的活跃的论坛等。因此,与其他生产厂商的类似产品相比,Arduino开发板更容易学习。在Arduino社区中能够得到很多支持,甚至一些有编程电学背景的研究学者也会考虑使用Arduino开发板,而不是其他类似的产品。
Arduino硬件是使用Atmel AVR处理器的开放硬件设计,Arduino开发板可以预先安装购买,但是对于想要搭建和修改开发板的人而言,硬件设计信息也是很有必要的。更多信息可以在网站http://arduino.cc中找到。一些第三方制造商生产了Shields,对Arduino的基本功能进行了扩展,其更新列表在网站http://shieldist.org/中可以找到。值得一提的是,Motor Control Shield能够实现对直流发动机的控制并读取编译器信息。Xbee模块能够实现多个Arduino开发板之间的无线通信,Critical Velocity Accelerometer Shield整合了一个3轴加速计。另外,第三方发布了一些Arduino概念上的变化。他们是使用Arduino软件搭建开发板的公司,所生产的开发板有更好的说明和更低廉的价格。软件包括一种标准的编程语言和在开发板上运行的固件。在IDE上对Arduino硬件进行编程,编程所使用的语言是简易版的C ,然后对软件进行编译并传送到开发板上。Arduino开发板与Flash,Processing,MaxMSP,MATLAB相互兼容,而且几行代码就能够实现强大的功能。详情请看http://arduino.cc/en/Reference/HomePage。Arduino最基本的编程结构包括两部分:设置和循环。设置部分最先运行并且只运行一次,该部分包括引脚模式的设置,通信顺序和变量的声明等。第二部分在循环中运行,该部分能够对脚本文件进行修改响应,并对Arduino开发板进行控制。在声明变量之后,Arduino的控制还包括典型的控制结构,像for,if else,if等,还包括计算运算符( ,-,*,/等),比较运算符(lt;,gt;等)或者布尔体系(AND,OR等)。还有一系列数字模拟读写的命令,例如digitalwrite()或digitalread()。此外,其他的命令可以设置毫秒级别的时间延时,进行简单的数学和三角运算,像min/max,absolute
value,square root,sine,cosine等,还能够产生随机数。如果想要传达更多的信息,可以参考网络教程或官方文件。
有这样一个实际使用的案例,实验参与者接触并抓住物体,研究者则希望在物体接触后的100ms触发另一个装置。该方案的典型解决方法是使用电脑上的软件编程,通过平行端口与触摸传感器进行通信。软件用于检测状态改变,设置延迟,并在逻辑电路和平行端口之间传递信息。该方案需要PC和软件的介入,可能会带来时间准确度的问题,除此之外,该方案是无可指责的。就像前文提到的,简单的I/O工作只需要很少的几行代码和少量的与Arduino开发板或其他类似产品相关的的电学知识就可以处理信息而不需要PC。这种方法有可能避免时间精确度问题,因为代码以很快的速度编译和运行并且没有其他后台运行的进程干涉。实际上,在读取传感器数据,通过传送或接收TTL脉冲来控制发动机等方面,Arduino开发板被证明是很有用的。
另外,这些低水平的I/O任务对于一些非常规的设置还是有必要的,这些设置需要额外的硬件,编程技能和一些灵活的解决方法。例如,开放工程中很短的列表在生理和心理实验中可能非常有用。在一项行为研究中曾经对触摸传感器的使用进行了检测,该传感器价格低廉且容易搭建。该项研究包括对参与者接触和触摸物体的反应时间的测量。另一个项目展现了如
何创建图像,例如,可以用于检测屏幕上对刺激的描述。最后,另一个项目展现了引入对任何输入消除抖动的能力。大多数开关都会产生噪声信号,防抖动是筛选正确的RT的必要步骤。然而,对实验者而言,时间精确度是最先考虑的方面,即使它很昂贵。在脚本文件完成编译并传送至开发板寄存器之后,原则上,Arduino开发板具有很高的精确度。因此,一但编译好的脚本文件完成上传,其运行不会受到任何其他OS干涉或通信的影响,因此能够避免延迟和对精确度的干扰。由于嵌入式微处理器有自己的时钟并且只需要运行已经下载好的脚本文件,所以精确的时间得以保证。不过,常规的实验设置必须提供严密的时间精确度测试,并通过外部可靠的研究等级硬件来控制数据。在本文的研究中,在一系列常规的评估时间精确度的I/O实验中,Arduino开发板的精确度已经得以证实。
方法与成果
Arduino开发板
Arduino UNO开发板是一款基于ATmega328的微处理器开发板,它有14个数字输入输出引脚,其中6个用于脉宽调制(PMW)输出。因此,它有6个模拟输入引脚,一个16MHz的晶振,一个USB接口,一个电源插口等。Arduino UNO可以通过USB连接供电,或者使用外部电源供电,像9V的电池等。电源可以自动选择。开发板在外部供电为6--20V时可以工作。
ATmega328有32KB,其中0.5KB用于引导装载模式,还有2KB用于SRAM,1KB用于EEPROM,后者可以用EEPROM库进行读写。
UNO上的14个数字引脚都可以通过使用pinMode(),digitalWrite(),和digitalWrite()等函数进行读写。它们在5V电压下正常运行。每一个引脚接收或提供的电流的最大值为40mA,其内部有20--50k的上拉电阻,默认为不连接。此外,一些引脚还有特定的功能:0和1号引脚可用于接收(RX)或者传递(TX)TTL连续的数据;2和3引脚可用于在低电平,上升沿或下降沿,电平变化时触发中断;最后,3,,5,6,9,10,11引脚可以调用analogWrite()函数实现8位PWM输出。UNO有6个模拟输入,记为A0--A5,每一个都提供10位的分辨率,即1024个不同变量。虽然可以使用AREF引脚和analogReference()函数来改变幅度的最大值,但默认情况下,其检测范围是0到5V。
精确度的检测与测试
外部配置了高精度时钟的I/O开发板会同步记录Arduino UNO开发板所有的输入和输出,这些输入和输出还会受到Signal软件的控制。抽样频率设置为10KHz,数据以ASCII的形式输出并加载到MATLAB中做进一步处理分析。设计了六次复杂度逐渐增加的测试来验证时间精确度。附录A中包括所有测试中使用的代码,图2,4,6是对每一个的图片描述。
测试1:
第一个TTL测试,旨在验证整个系统基本的时间能力。开发板产生900ms的信号,有100ms的时间间隔。编译的脚本文件有1116个字节,此次测试有1000个脉冲。分析的内容有测试方法以及TTL长度和间隔的标准误差。
由测试1可见,一个TTL的平均长度为0.9004s,参考值为900ms,TTL起始端之间的延时为1.0006s,参考值为1000ms。标准误差分别为0.000048和0.000048,因此,此次实验体现了微不足道的误差和极其微小的变化。
测试2:4个TTL
第二个测试在之前测试的基础上扩大至四个同步输出,该测试的目的在于验证多路同步信道的使用是否会降低时间准确度。同时也有肯测量通过信道的同步误差。见图2。编译后的脚本文件有1176个字节。测试中每个信道有1000个脉冲。分析的内容包括测量每个信道中TTL长度和TTL起始端间隔的平均误差和标准误差。因此,检测了同步通过信道的TTL起始端,并记录为累计的平均错误和标准误差。
测试2中每个信道都有比较好的实验结果。四个信道中TTL的长度均为0.9004s,参考值为900ms,而TTL起始端的延时分别为1.0007s,1.0008s,1.0008s,1.0008s,参考值为1000ms。TTL长度的标准误差为0.000043,0.000043,0.000042和0.000042。四个输出信道的TTL起始端延时的标准误差为0.000043,0.000043,0.000042和0.000042。因此,信道数量从两个增加到四个并不会影响整个系统的准确度。此外,TTL起始端通过信道的同步误差平均只有0.000037s,标准误差有0.000107,所以,几乎没有输出的同步误差。
测试3:重叠TTL
第三个测试使用了四个输出信道,就相当于用同步的方式测试两个信道。该项测试进一步检测了系统的时间精确度。每一个TTL持续1000ms,其中有100ms与后续TTL重叠。这个工作更加复杂, 因为它测试了多个输出,而且这些输出有各种起始端和终止端,见图3。编译后的脚本文件有1248个字节,测试包含800个脉冲,每个信道200个脉冲。分析的内容主要是每个信道中TTL长度测得的平均和标准误差。此外还有第一个TTL起始端与最
后一个TTL终止端之间测得的平均延时和标准误差。
测试3测得的四个信道TTL的平均长度分别为为1.0005s,1.0005s,1.0005s和1.0005s,参考值为1000ms,标准误差分别为0.000045,0.00005,0.000049和0.000046。从信道1的起始端到心到的终止端整个重叠TTL的周期持续了3.7019s,参考值为3.7s,见图4。标准误差为
0.000049,就2ms而言是很小并且非常稳定的误差。
测试4:循环重叠TTL
第四个测试与前一个比较类似,只是编程结构不同。此处使用了更加简洁有效的FOR结构来测试不同编程风格对时间准确度的影响。编译后的脚本文件有1212个字符,整个测试包含800个脉冲,每个信道200个脉冲,具体分析与测试3类相同。
测试4使用不同的编程风格重复了前一个测试。四个信道测得的平均TTL长度分别为1.0005s,1.0005s,1.0005s和1.0005s。参考值为1000ms。标准误差分别为0.000028,0.000036,0.00003,0.00002.从信道1的起始端到信道4的终止端整个重叠TTL周期持续了3.7019s。参考值为3.7s,见图4。标准误差为0.000049,就2ms而言是很小并且非常稳定的误差。
测试5:读按键写TTL
测试5中,我们使用了更加实际的方案,参与者的按键按压之后开始时间事件流。这个测试同样重要,因为它模拟了一个典型的输出与输入相关的I/O工作。实际上,在按键按压后200m
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[150472],资料为PDF文档或Word文档,PDF文档可免费转换为Word
您可能感兴趣的文章
- 饮用水微生物群:一个全面的时空研究,以监测巴黎供水系统的水质外文翻译资料
- 步进电机控制和摩擦模型对复杂机械系统精确定位的影响外文翻译资料
- 具有温湿度控制的开式阴极PEM燃料电池性能的提升外文翻译资料
- 警报定时系统对驾驶员行为的影响:调查驾驶员信任的差异以及根据警报定时对警报的响应外文翻译资料
- 门禁系统的零知识认证解决方案外文翻译资料
- 车辆废气及室外环境中悬浮微粒中有机磷的含量—-个案研究外文翻译资料
- ZigBee协议对城市风力涡轮机的无线监控: 支持应用软件和传感器模块外文翻译资料
- ZigBee系统在医疗保健中提供位置信息和传感器数据传输的方案外文翻译资料
- 基于PLC的模糊控制器在污水处理系统中的应用外文翻译资料
- 光伏并联最大功率点跟踪系统独立应用程序外文翻译资料
