较为传统的高中物理实验一般是通过使用打点计时器来实现“重力加速度的测量”。或像高中物理“匀变速直线运动的研究”中“用手机测自由落体加速度”提及的“安装能显示加速度情况的应用程序”,借助于智能手机中的加速度传感器进行的“直观”测量。

而在“机械振动”中“用单摆测量重力加速度”实验,则是先测量出单摆周期及摆长再通过公式 计算出重力加速度的大小。除此之外,还有其他使用弹簧秤、圆锥摆、气垫导轨等设备进行测量和计算的方法。

如果将“重力加速度的测量”这一课题拿到“编程创客”实践活动中,我们可以通过改进版的“滴水法”、手机Phyphox双线摆、掌控板mPython X 图形化编程和树莓派Python代码编程等多种方式来进行探究。

一、改进版的“滴水法”测量重力加速度

1.实验器材及软件

自来水、水盆、米尺、手机的“秒表”、电子表格Excel。

2.实验过程

首先,将水盆底部朝上、放置于自来水的水龙头正下方;接着,轻微打开并小心调整阀门,控制水滴以“一滴、一滴”自然滴下的状态做自由落体运动,最好是上一滴水刚滴落到盆底发出声音的同时,下一滴水恰好从水龙头中刚开始滴落,分别进行两组共6次测量,使用手机的“秒表”来计时50个水滴的滴落总时长,即从第1次水滴撞击盆底发声至第51次“发声”为止(如图1)。

第一组实验,在水盆下方水平垫入约0.1m高的木板,用米尺测得从水龙头滴出水滴处至盆底的高度h为1.160m;三次测量出50个水滴自由落体运动的周期时长分别为24.20s、24.36s和24.74s,需要特别注意手指的触动“秒表”动作必须迅速,将结果输入Excel表格;

第二组实验,撤掉水盆下方的木板,测量新的高度值h为1.255m,三次测量的周期时长分别为25.32s、25.42s和25.68s,输入Excel表格中。

在Excel中先计算出一滴水滴的平均周期值(即除以50),接着在单元格E2根据公式进行重力加速度g值大小的计算:“(2*B2)/(D2*D2)”,然后向下拖动计算出其余5个g值的大小,分别是9.903695103m/s2、9.774024552 m/s2、9.476077479 m/s2、9.787827966 m/s2、9.710970565 m/s2和9.515326423 m/s2;另外,六次实验测量和计算得到的重力加速度平均值是9.69465368144189m/s2,这是一个比较理想的实验结果(如图2)。

3.实验优缺点

改进版的“滴水法”测量重力加速度借助手机的“秒表”来测量周期,可以有效替代传统的秒表;借助Excel表格进行数据的处理,计算速度和精度均优于使用计算器,且计算的结果便于存储。缺点是测量高度仍然使用了米尺,且手机的“秒表”受人为因素影响较大。

二、Phyphox测量重力加速度

1.实验器材及软件

铁架台、米尺、安装有Phyphox软件(中文译为“手机物理工坊”)的智能手机、铁夹两支、细绳、软布(比如:擦眼镜布)。

2.实验过程

目前的智能手机均内置有MEMS(微电子机械系统),通常包括光线传感器、加速度传感器和磁力传感器等。作为针对物理学实验而打造的Phyphox软件,提供了直接访问手机传感器测量数据的功能,并且可以对实验数据进行即时分析计算以得出相关物理量(比如重力加速度)的数值,计算公式为:。

首先用软布包住手机中部,两侧用铁夹固定;调整好铁架台的水平,用2条细绳穿过铁夹尾部,上方系于铁架台横梁,组成一个“双线摆”;调整好平衡,让手机能够平稳地进行小幅度(小于5°)的摆动(如图3)。

运行Phyphox,点击“力学”下的“摆”项目,这样你的手机作为摆的同时又可以确定重力常数;点击右上角的选项设置(三个竖点),在弹出的菜单项中先将“定时运行”项勾选,其默认设置是将“启动延迟”3秒、“实验时长”10秒,目的是“过滤”开始3秒的不稳定时间段;然后勾选“允许远程控制”,启用远程访问功能,这样可以通过浏览电脑浏览器的网页(http://192.168.1.105:8080/)来即时访问Phyphox的实验过程(如图4)。

点击切换至“G”重力加速度测量项,调整摆线的长度并使用米尺测量摆长,输入至Phyphox的“摆长”项中(cm);然后小幅度启动双线摆,在网页中点击“开始”按钮启动实验,很快就显示有周期、频率以及计算出的重力加速度的数值。继续调节摆线的长度,共进行六次实验,测得摆长分别为:41.60cm、45.70cm、48.50cm、51.50cm、55.00cm和57.59cm,得到的重力加速度值分别为:9.64 m/s2、9.71m/s2、9.52m/s2、9.87m/s2、9.76m/s2和9.68m/s2。六次平均值是9.69666666666667m/s2,也是一个比较理想的实验结果(如图5)。

3.实验优缺点

借助于手机中的MEMS加速度传感器系统和Phyphox软件进行重力加速度的测量实验非常方便,只须测量出不同的摆长下的数据即可计算出接近于当地重力加速度值的数据,省去了实验者的计算过程。

缺点是受限于智能手机内置的传感器精度,米尺测量的摆长需要估算智能手机的中心点位置而产生的误差,最终都会在一定程度上影响到重力加速度的测量。

三、掌控板mPython X图形化编程测量重力加速度

1.实验器材及软件

掌控板、百灵鸽扩展板、数据线、mPython X编辑器。

2.实验过程

掌控板内部集成的加速度传感器可以通过多种软件编程的方式进行数据的读取,包括X、Y和Z三个轴的单向加速度值。

将百灵鸽扩展板与掌控板连接好,连接电脑的USB接口;在电脑上运行mPython X,进行图形化编程。通过循环结构控制先后8次读取掌控板的三轴加速度值,相邻两次间的时间间隔为0.01秒。

需要注意的是,要将掌控板中读取的“X轴加速度”、“Y轴加速度”和“Z轴加速度”三个数据先求平方和再开平方根,而且再进行单位换算(乘以10),即:g=10×,单位是m/s2;建立变量my_list存储8个重力加速度的测量值,最终在掌控板的OLED显示屏上输出(如图6)。

将程序刷入掌控板并运行,很快就测量得到8个重力加速度数据:9.812777、9.819073、9.806555、9.851265、9.812699、9.883816、9.845144、和9.851265,分别输出显示在电脑的mPython X编程界面和掌控板的OLED显示屏上;8次的平均值是9.83532425m/s2,这是一个非常理想的实验结果(如图7)。

3.实验优缺点

使用掌控板的优点是器材简单,连接非常方便,而且得到的实验数据精度也比较高;缺点是实验数据的获取过程不太直观,较高集成度的“智能化”剥夺通过实验感知重力加速度的过程。

四、树莓派Python测量重力加速度

1.实验器材及软件

树莓派、古德微扩展板、铁架台、摆球、细绳、米尺、游标卡尺、红外线传感器、Python程序编辑器Spyder。

2.实验过程

物理“机械振动”的“实验:用单摆测量重力加速度”中,为了精确地测量出当地的g值,我们必须要尽可能地减小实验过程和数据计算处理过程中的各种误差。比如在使用秒表测量单摆周期T值时,通常是先记下摆球做50次全振动所用的总时长t,然后通过T=t/50取平均值。如果是在树莓派上通过Python编程来做同样的实验,借助红外线传感器实时监测摆球每次到达平衡位置的时刻并进行记录存储,同样也是记录几十个周期后取平均值;然后通过公式计算出重力加速度的大小,同时也可以根据实验数据做出T2-l图象并进行描点拟合。

在本次的单摆测量重力加速度实验中,我们需要使用对环境光线适应能力较强的红外线传感器,其有效检测的距离范围约为2-30cm,通过顶端的一对红外线发射与接收管来检测摆球是否到达平衡位置。

第1步:实验器材的连接与调试

首先将摆球通过细绳连接至铁架台,使用游标卡尺测量出摆球的直径;然后将红外线传感器插入树莓派扩展板的24号插孔;接着,调节好红外线传感器与摆球的位置,使其顶端正对着摆球静止时的平衡位置;最后,给树莓派通电启动操作系统,并且让摆球正常摆动起来,观察红外线传感器的输出指示灯是否会在其到达平衡位置时闪亮,指示灯如果能在摆球到达平衡位置时发光,说明可以进行实验检测(如图8)。

第2步:Python编程测量单摆的周期T

在电脑上通过Windows的“远程桌面程序”登录树莓派,进入Python IDE编程环境,编写程序进行单摆周期数据的采集。

第一次实验设计采集50个周期总时长,语句“for i in range(101)”控制红外传感器监测摆球到达平衡位置的次数为101次,每次均使用“time.time()”记录下该时刻的“时间戳”;语句“time.sleep(0.7)”的作用是消除摆球“途经”红外线传感器时的短暂停留期(可根据实际情况进行调节),防止摆球在同一次到达平衡位置时采集了多个时刻数据;最开始记录的一次时刻t0是实验的起始值,它与最后一个时刻间的总时长(t100-t0)再除以50,即得到该次实验所测得的周期T。

按照实验要求,控制摆球在小于5°的范围内开始摆动后,运行Python程序进行数据的采集;结束后,程序输出“T is: 1.4047615098953248”,单位是秒(如图9)。

第3步:Python编程计算重力加速度g

返回Windows中启动Spyder进行Python编程,计算重力加速度g。

语句“import math”的作用是导入数学库,变量math.pi即为圆周期率π,值为3.141592653589793;本次实验测量的摆长l值为0.4896m,即摆线部分与小球半径之和;语句“g = (4*math.pi**2*l)/(T**2)”的作用是计算g的大小(“*”表示乘法运算,“T**2”表示周期的平方),这是公式在Python编程中的表达式书写方法。

运行程序,得到结果:“第一次测试的g数值为:9.79480845649939”,单位为m/s2(如图10)。

第4步:再测量并获取五组实验数据

第一次实验结束之后,继续再做五次实验,调节并测量摆线的长度l分别为0.6386 m、0.7206 m、0.7376 m、0.8076 m和0.9796 m;在树莓派中通过Python程序测量的对应周期T分别为1.6047531366348267 s、1.7047476148605347 s、1.7246245098114015 s、1.8050039768218995 s和1.9851537227630616 s。

将对应数据分别在Windows的Python环境中进行运算,得到五次实验的重力加速度值分别是:9.789763143321407 m/s2、9.788898187722923 m/s2、9.790199394007589 m/s2、9.785876280226173 m/s2和9.813416423616557 m/s2。

第5步:Python编程作T2-l图象

六次实验完成之后,将测量的摆长l和周期T数据(包括通过公式计算得到的重力加速度g数据)填入表格

摆长l(m)

周期T(s)

重力加速度g(m/s2)

第1次实验

第2次实验

第3次实验

第4次实验

第5次实验

第6次实验

在Python中导入numpy、matplotlib等库模块和进行必要的作图设置之后,将六次实验的摆长l和周期T数据分别存储至列表,其中的周期T还要通过一次循环计算得到平方值,最后进行数据点显示和拟合,得到T2-l图象(如图11)。

从图象上可以看到,六次实验的数据“散点”(以蓝色*表示)在经过拟合后,非常接近于过原点(0,0)的一条直线,其拟合曲线y=kx+b表示为:y=4.028x+0.001868。由于,直线在T2-l图象中的斜率k,所以重力加速度g;如果忽略拟合时的“0.001868”极小误差值,并且将k值(4.028)代入,则有g≈9.800997419155273 m/s2(同样可在Python中编程求解),这就是六次实验测量和计算的结果;六次实验测量和计算得到的重力加速度值取平均值,结果是9.793826980899006 m/s2,一个非常理想的结果。

3.实验优缺点

使用树莓派进行Python代码编程测量重力加速度的实验优点是,不管是周期T的测量、圆周率π的取值及计算重力加速度g,数据均精确至小数点后16位数字,尤其是使用红外线传感器监测记录摆球到达平衡位置的时刻数据,精确度要远远高于使用秒表来测量周期,实验的误差小得多。通过查询各地的重力加速度数据,青岛(北纬35°35′~37°09′)的重力加速度值约为9.7985 m/s2,而笔者所在地是烟台(北纬36°16′~38°23′),理论上的重力加速度值应该是稍大于青岛地区9.7985 m/s2的,与实验结果吻合。

而且,通过Python代码编程来进行最终实验数据的分析及图象拟合展示,都极具说服力。缺点是实验较复杂,包括器材的连接以及Python代码编程,适合于高中生进行小组协作式项目探究,还需要信息技术老师的协助。