Arduino课题研究记录

时间:2022-06-20 14:10:09 浏览量:

 Arduino 课题研究记录 一、

  课题设计 试用了各传感器后想设计一个能读取数据并做出反应,具有交互性的装置.因为传感器测量速度普遍很快,假如人为有意识地改变某个物理量,被测量后能做出反应,这个”测量”过程就可以说是”操作”,过程.而需要频繁地测量-反应的装置中,游戏机是一个合适的选项.所购器材中超声波测距传感器是比较好控制测量结果的,而手持障碍物前后移动改变距离的动作与打球有几分相似,便拟定了”模拟乒乓球”的课题. 所购器材中8*8点阵是最合适的显示装置.因为8*8空间有限,拟定球拍为同一直线上三个相邻点,在点阵第一与第八行左右移动,实时采集手持障碍物到传感器距离并以一定转化关系确定球拍位置.球则设定为一个亮点,在第二至七行运动.设定碰撞条件,根据未碰球拍、碰球拍边缘、碰球拍中心进行不同的记分与反弹过程.之后便是编程与传感器的调试. 二、

 实验过程 先按 8*8 点阵规则接线,控制各行、列的接口按顺序放入一个数组中,以便调用.超声波模块正常接线,注意点阵 16 个接口、两个超声波模块各 4 个接口超过 20 个接口总数,则两个超声波模块共用火线、地线与 Trig 接口,即并联与一个 Trig 信号同时控制两个模块发射超声波脉冲.由于两个模块分别测距,Echo 接口不能共用,则去掉一个点阵列接口使用. 超声波模块的使用方法即给模块输入Trig信号发射超声波,模块接受回波后发出 Echo 信号,记录 Trig 发出与 Echo 接受的时间差,结合声速即可测量.考虑到实际操作时并不能精确控制手持障碍物的距离而更多依靠体感,本装置对距离的精确值要求不高,用 340m/s 声速即可.所用

 US-015 模块与 HC-SR04模块使用方法上并无区别,精度分别为0.1cm与0.2cm.超声波模块精度带来测量值波动会使球拍显示在手持障碍物处于位置判定距离临界处时出现位置频繁变化的情况,则控制位置判定距离间隔远大于测量波动幅度以尽量减少影响.实际位置判定间隔距离设定为 2cm. 显示功能设计思路采用发射一次Trig信号,完成两个球拍的距离测量与定位即显示一次球拍与球的方法.综合测量与显示过程,每一次显示约为 40ms,即位置判定改变球拍位置的时间间隔.若每一次显示球均移动一格对人的反应来说太快.解决方法为多次显示后球再移动一格.尽管单次测量时间短会出现来不及反应的情况,每一格球的运动都有多次控制球拍的机会, 使球的运动速度相对于球拍不会太快,提升操作性.实际设定为显示三次球运动一格.

 实际操作中,由于超声波模块测距的波动,球拍位置的判定会出现波动而造成操作不便.读取测距结果可知两种模块的波动均在 0.1cm 到 0.2cm 之间.从判定条件入手可以增大位置判定距离间隔而减小波动的影响.从程序设计本身入手有两种方法.一种方法是计算此次距离测量值与上次测量值的差,若小于 0.2cm 则球拍位置不变动.这种方法对玩家来说会明显感到球拍反应迟钝.由于手部的细微动作与抖动球拍位置的波动仍有存在,但体感上较改动之前明显减少.另一种方法每次位置判定均多次测量取平均值以减少波动影响.实际编程中采用连续三次测距取平均.这次改动体感上也出现反应变迟钝,但在玩家反应接受范围内,且球拍位置的波动情况也明显减少.目前来看针对球拍位置波动引起操作不便的问题,比较前后测量值以排除测距波动影响与多次测量取平均的方法均可解决,就编写程序的复杂度来说多次测量取平均的方法更为简单. 三、

 结果和分析 目前乒乓游戏可以良好运行,操作体验良好,没有失控情况发生,基本成功.本装置接线组装较为复杂,点阵的显示性能与接口占有不尽人意,可以替换为更高性能的显示器.

相关热词搜索: 课题研究 记录 Arduino