3411| 5
|
[入门教程] 【掌控未来智造营】掌控“哈雷”曲线测量 |
众所周知的【掌控板】是用来教学的,和哈雷摩托车有什么关系呢,旺仔爸爸你在开玩笑吧 不不不,旺仔爸爸觉得并没有开玩笑,本次分享的案列作品确实像一辆摩托车呢,不信你瞧上图 只不过我们这次的任务可不是骑上它去兜风,而是要完成一个曲线测量的任务哦 具体怎么做到的呢 噔噔噔,又到了我们科学探索课堂的时间了 #掌控板科学实验系列课程 课程五:曲线距离测量 本课程适用于八年级物理上册第一章《机械运动》中第1节《长度和时间的测量》的内容教学,用于测量不同物体的长度 一、知识背景(知识背景不喜欢的可以直接看下一章节) 在生产、生活和科学研究中,经常要比较距离的远近,时间的长短,温度的高低......人们常常用自己的眼睛,鼻子,耳朵等感觉器官去感知外界的情况。但是,仅凭感觉去判断,不一定正确,更谈不上准确 为了正确的认知世界,准确的把握事物的特点,人们发明了很多仪器和工具,这些仪器和工具帮助我们进行准确的测量。尺子,钟表,温度计等,都是我们熟悉的测量仪器和工具 长度的单位 测量任何物理量都必须首先规定它的单位。长度的基本单位是米(metre)。物理量的单位都有国际通用的符号,国际单位制中,米的符号是m。比米大的单位有千米(km),也叫公里,比米小的单位有分米(dm),厘米(cm),毫米(mm),微米(um),纳米(nm)等。它们同米的关系如下图 长度的测量 为了准确测量长度,人们设计,制造出来各种测量长度的工具,我们可以根据对测量结果的要求选择不同的测量工具。下图为一些常用的测量工具 测量工具都具有以下特征 零刻度线 量程(测量的范围) 分度值(相邻两刻度线之间的长度,它决定测量的精确程度) 如果需要对物体进行更加精确的测量,需要选用精确度更高的测量工具,如游标卡尺,螺旋测微器 误差 在测量长度、时间以及其他物理量时,受所用仪器和测量方法的限制,测量值与真实值之间总会有差别,这就是误差。我们不能消除误差,但应尽量减少误差。多次测量求平均值、选用精密的测量工具、改进测量方法,都可以减小误差 误差不是错误,测量错误是由于不遵守仪器的使用规则、读数时粗心造成的,是不该发生的,是可以避免的 通过以上知识背景了解了长度单位和测量工具后,选用合适的工具就可以测量不同物体的长度 在生活还有一些这样的场合需要测量长度或者距离,如绕水塘一圈的长度,一个硬币的周长,弯曲的水管的长度等等,它们都有共同的特点是测量的长度为曲线,我们暂且把这些情况下的距离测量称之为曲线距离测量,如果被测物体的长度为曲线时,用尺子测量就显得比较困难,特别是测量细长的曲线段(例如测地图上各种曲线段)就更无能为力了 要想测量曲线距离就需要一些特殊的工具,我们先来看看生活中都有哪些方法可以测量曲线距离 利用没有弹性的绳子测量曲线距离是一种比较快捷方便的方法,如下图 通过网络查找资料,找到一篇比旺仔爸爸年龄还大的文章,1982年《天津教育》刊登的关于长度测量的一些特殊方法中提到用“滚尺”测量曲线的长度 那么“滚尺”到底是什么样的测量工具呢,网络查找资料找到如下图片 滚尺是用一精度较高的、不易变形的滚轮作长度基准器,重复使用滚轮的周长去测量物体的长度,通过计数器数轮上的数字显示出在测过程中的数值来 原来很早之前就有了这样的测量工具,顿时对前辈们产生敬意 在本次的科学探究课堂中如果我们能够利用数字化的工具和开源硬件实现“滚尺”的原理,就达到了本次课程目的,下面我们就来尝试一下实验方案的可行性 二、实验方案确定通过上述分析,我们可以知道“滚尺”可以实现距离测量的原理是通过计数器的计数值与滚轮周长的乘积得到所行驶的距离,公式大概是这样 距离=圈数X滚轮周长(周长=3.14X直径) “滚尺”每次走完的路程不一定是整圈,还可以进一步细化,圈数=总计数值(count)/每圈的脉冲数 距离=总计数值(count)/每圈的脉冲数X滚轮周长(周长=3.14X直径) 不理解没关系后面会展开分析 从公式中可以知道,最关键的两个数值是滚轮周长和计数值,滚轮周长可以通过直径求出,计数值需要通过传感器来求出 分析到目前为止,方案确定的关键在于传感器的选型,通过DF商城查找,找到如下器材 传感器选型需要满足的特点是能够实现360度旋转,能够计数并且可以分辨是顺时针还是逆时针旋转,这样就把常用的电位器排除在外了,可以选用的器材有360度的旋转编码器,带编码器的直流减速电机 本着有什么用什么的原则,从经济成本和实现难易程度上综合考虑,最后决定选用手上就有的360旋转编码器,特点就是成本比较低,几元钱的成本大部分老师都可以接受,性能基本可以满足实验需求,而且大部分老师对电位器的使用都驾轻就熟了,对旋转编码器还不太熟练,正好通过此案例给大家进行一次分享 本次实验方案的主控板可以选择Arduino和掌控板,本次比赛要求使用掌控板,当然原理都是一样的,我们可以先利用arduino去实现功能,然后再移植到掌控板上会更加有效率一点 基本方案确定后,我们来看一下完成本次实验所使用的教具 以下是教具的简介 三、教具使用简介1、教具的特色a.低成本,简单易用; b.可编程,有丰富的创造空间 c. 实时保存实验数据,保证了数据的准确性; 2、教具的制作方法a.制作教具所需材料 b.设计接线组装 1)利用cad设计图纸,采用激光切割加工3mm奥松板,设计亮点在于突出了掌控板的声音,光线,触摸【Y】【O】引脚以及RGB灯,尤其是两个触摸引脚,在外壳上就可以直接使用,图纸与实物如图 需要注意的是,图纸设计时将滚轮的刻度盘、旋转编码器的安装孔位提前预留好 3、线路连接 如下图所示为传感器接线图和开关充电电路,360旋转编码器接掌控板p14,p15,p16引脚 4、零件组装 本次实验教具的外形结构基本没变,只是增加了旋转编码器,如下图为旋转编码器的滚轮和安装局部细节图,本次滚轮的直径为5cm 下面为本次实验教具的整体外观图 5、原理分析、测试、程序源代码 ###下面内容很关键,很关键,一定要看,对掌握360度旋转编码器有帮助 (1) 原理分析 旋转编码器的引脚功能测试 说到旋转编码器,单纯看外形会觉得陌生,其实在生活中都可以看到,比如十几年前的台式机CRT显示器,调整显示器的时候用一个圆盘转动和点击的方法就可以实现选择菜单和修改设置项的值,比多个按钮的方式方便很多,有没有勾起满满的回忆 最常见的还有大部分人用的鼠标滚轮,也是这种操作方法,旋转+点击,只是方向不同,也是旋转编码器 下面就来介绍一下我这个旋转编码器 旋转编码器模块有5个引脚,分别是VCC, GND, SW, CLK, DT。其中VCC和GND用来接电源和地,按缩写SW是Switch(开关)、CLK是Clock(时钟)、DT是Data(数据) 旋转编码器的操作是旋转和按压转轴,在按下转轴的时候SW引脚的电平会变化,旋转的时候每转动一步CLK和DT的电平是有规律的变化,在只接电源的情况下先测一下各种操作时引脚电平的变化,没有示波器只好用万用表测电压 (2) 测试过程 旋转编码器SW引脚测试 万用表红线接SW,黑线接GND,SW按下和松开按钮没有任何变化,换作红线接VCC,黑线接SW,SW松开时低电平,按下时高电平。据此可以推测SW平时为高阻态,按下时接地 万用表测量过后用Arduino进行检测 方法是设置连接SW的引脚为INPUT并上拉输出高电平,检测到引脚为低电平则表示按钮按下,以下程序可以正确检测出按钮的变化 旋转编码器SW接arduino nano 3号数字引脚 结果:SW按下时的状态为0,松开时的状态为1 旋转编码器CLK,DT引脚测试 万用表红线接CLK,黑线接GND,每旋转一次(和方向无关),电平转换一次 万用表红线DT,黑线接GND,变化情况和上面情况一致,并且CLK和DT的电平保持一致 万用表红线接VCC,黑线接CLK,万用表红线VCC,黑线接DT也是同样的情况 万用表红线CLK,黑线接DT或者CLK(黑)+DT(红)时,每次旋转(和方向无关)指针都会轻微摆动然后归零,并且相邻两步指针的摆动方向相反 结论:每次旋转CLK和DT引脚的电平都会变化,电平变化有时间差,但无法区分往哪个方向旋转 编写程序进行测试,读取CLK和DT的值: 旋转编码器SW引脚接3号数字引脚,CLK接2号数字引脚,DT接4号数字引脚,程序中为了方便记录旋转时的电平值,利用中断来检测电平值 下图为 测试电路接线图 下图为顺时针旋转时的测试结果 下图为逆时针旋转时的测试结果 根据以上测试结果看出,每旋转一次触发的中断次数不一致,可能是硬件本身抖动引起的,多次测试之后,查看每次变化的最后一组值,顺时针旋转时CLK和DT的值不一致,逆时针旋转时CLK和DT的值一致 从电平数值中总结一下就是 顺时针,01开始,10结束 逆时针,00开始,11结束 通过简单的测试大致上可以知道编码器的工作原理是判断CLK和DT引脚的电平值来确定是顺时针还是逆时针旋转,在此基础上进行计数也是没有问题的 接下来是时候展示真正的波形图了 旋转编码器的官方给的波形图如上图所示,相信很多人不愿意看这东西,没关系,这个不重要,看不懂就不看 下图为顺时针的波形图,01开始,10结束 下图为逆时针的波形图,00开始,11结束 通过上面两幅图应该会很好理解了,接着我们修改程序,顺时针时对计数值加1,逆时针时对计数值减1,按下按钮时计数值清零(注:这里的顺时针和逆时针是个人理解,观察的角度不同,方向就不同,尝试的时候可以按照自己的习惯调整) 下图分别为顺时针和逆时针测试的结果 旋转编码器SW按钮按下后会清零 通过上述测试发现发现大多数时候可以正确输出,偶尔会出现跳动的情况 分析原因,应该是旋转编码器转动一下,就会产生多次中断事件,所以才造成上述程序测试时的值跳动或者多次变动,查找其中的规律,如果是逆时针时,检测到0,0就可以认为是开始转动,接下来的数据中如果有1,1,则认为正在转动,后面的数据中如果有0,0就认为上一个转动结束,开始下一个转动,顺时针的规律类似 根据分析编写最终的程序为: 最后测试结果显示,如下图所示基本准确,可以尝试移植到掌控板中进行测试了 (3) 程序源代码 掌控板程序同样由【mixly】编写,需要注意的是,掌控板的中断引脚选用的是P14,旋转编码器SW连接掌控板P15引脚,CLK连接掌控板P14引脚,DT连接掌控板P16引脚 如果要知道具体的引脚IO口信息,也可以看下面的芯片引脚定义图,p14号引脚对应19号IO口,了解IO信息有助于代码编程 掌控板的最终程序如下图,这里用到了之前提到的一个公式 距离=总计数值(count)/每圈的脉冲数X滚轮周长(周长=3.14X直径) 旋转编码器传感器官方提供的数据,每圈的脉冲数为20,脉冲也就是上面提到的方波,通俗的讲就是旋转编码器每转一圈会记录20个数据,已知滚轮的直径,每圈的脉冲数和总计数值就可以求出距离,本次滚轮的直径为5cm 四、实验展示教具使用方法课程导入 同学们在学习生活中用过各种各样的尺子来测量长度,在生活中还会有一些特殊的几何形状物体,由曲线,曲面,锥体,圆柱体等组成,比如如果想要知道家中炒菜用的铁锅,锅边到锅底这段圆弧的长度,直尺测量就比较困难了 再比如测量一个“8”字形的巡线轨迹图纸,同样也需要特殊的测量工具 为了方便、准确的知道这部分特殊形状物体的长度,我们可以采用类似于滚尺的数字化测量工具来完成实验 如下图为实验教具展示 下面来具体展示一下实验教具使用的案例 实验活动:利用360旋转编码器测量曲线距离 实验准备: 准备带【掌控板】和360旋转编码器的实验教具,巡线图纸一张 实验步骤: 1)掌控板上传程序,掌控板连接360度旋转编码器 2)将实验教具的滚轮0刻度线对准要测量的物体 3)匀速推动测量教具,当0刻度线经过物体末端时拿起测量教具 4)记录OLED屏幕上显示的数据 5)重复上述步骤多测几次取平均值 结果演示: 下图为顺时针曲线测量功能演示,哈哈,是不是像一个哈雷摩托车驰骋在马路上 下图为测量结束后清零功能演示 实验演示视频: 实验结论: 为了得到准确的实验数据,对测量物体多次测量取平均值 实验中某次结果如下图: 通过以上实验可以得出结论: 在一些非精确要求测量的场合360度旋转编码器可以实现曲线长度测量 课堂讨论:在实验测量的过程中存在哪些误差?可以采取什么的方法避免这样的误差来提高实验数据的准确性 五、结论(教具的演示结果的准确性;教具的可推广性)本实验装置使用了掌控板和廉价的传感器,和其他测量装置相比,成本低,结构器材采用激光切割的木板材料,可操作性强,实验操作简单快捷,数据采集方便直观,实验效果明显,可进行数据展示,可使用与教室演示和学生自主探究,有利于学生对本章节内容的学习和理解。 #总结#在本次实验过程中偶尔会出现数据跳动后清零的现象,推测可能是行驶过程中滚轮触发了SW按钮的原因,结构设计还有待改进的空间 本次传感器的选择本着低成本的原则,后续改进还可以选择更加精确一点的测量传感器,提高数据的准确性 另外本次利用360旋转编码器测量曲线距离的实验是作为科学课堂实验教具的创新,不作为真实场景的测量工具 造物让生活更美好 关注旺仔爸爸造物社公众号查看更多科学探究实验课程 联系请假旺仔爸爸18752544995 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed