2022-11-17 11:22:55 [显示全部楼层]
4728浏览
查看: 4728|回复: 4

[项目] 信息技术与物理学科深度融合案例 用单摆测量重力加速度

[复制链接]
本帖最后由 云天 于 2022-11-17 11:25 编辑

信息技术与物理学科深度融合案例
实验:用单摆测量重力加速度
实验背景
“用单摆测量重力加速度”是人教版(2019)高中物理选择性必修第一册第二章第5节的内容。
本节课将通过利用DIS实验技术与传统的实验方法相结合进行“单摆法测重力加速度”。
在日常的中学物理教学中,引导学生建立物理概念和掌握物理规律是教师的主要工作,而以学生分组实验的形式进行教学是一种很好的手段,但是对于一些传统的学生分组实验,实验存在无法克服的系统误差,其实验的数据往往和理论值相差较大。这样,实验的说服力就较弱了,往往让授课教师的处境非常尴尬。在“单摆法测重力加速度”这个学生分组实验中,我们在结合传统的实验基础上,再利用DIS实验技术进行“单摆法测重力加速度”,这样可以取得更明显的实验效果。

                                                   
"DIS" 是英文"DigitalInformation System"的缩写,又称“数字化信息系统”。是由“传感器+数据采集器+实验软件包(教材专用软件、通用扩展软件)+计算机”构成的新型实验系统。在物理学中有很多物理量,如距离、位移、力、速度、温度、压强、电压、电流、等,都可以用DIS进行测量。该系统成功地克服了传统物理实验仪器的诸多弊端,有力地支持了信息技术与物理教学的全面整合。

课前准备
教师准备:本节课使用国产开源硬件“行空板”,在传统学生分组实验中,“行空板”做为秒表,学生利用此“秒表”手动记录单摆周期。在DIS实验中,采用行空板、光电传感器实验器材,使小球摆动时在最低点通过光电传感器,由行空板直接显示单摆周期,计算重力加速度,并可以将每个周期记录在电子表格中。
实验目的
1.测定单摆周期,验证单摆振动的等时性。
2.利用单摆测量当地的重力加速度。
3.了解光电传感器的使用,学习用行空板数字化信息系统获得数据并处理数据的方法。
实验原理
当摆角较小时(小于5°),单摆做简谐运动,单摆周期跟单摆的摆线长度和当地的重力加速度有关。根据单摆的周期公式:T=2π√(L/g) 。可得g=4π²L/T²其中,L为摆长。
实验仪器
实验架台、刻度尺、行空板、光电传感器、按钮、数据线、计算机、摆线、小球、量角器。
实验装置
做单摆:
让线的一端系在小球上,把线的上端结点与量角器中心对齐(用来测量摆角),让摆球自由下垂,在单摆平衡位置处安装光电传感器。
做行空板DIS:
实物图
加速度.png

加速度1.jpg

光电传感器接行空板引脚22,按钮1、按钮2分别接引脚21、引脚23。
电路图
电路图.png
物理量的测量
1.测摆长
(1)方法一:用刻度尺直接侧量小球球心与悬挂点之间的距离作为摆长l。
(2)方法二:用游标卡尺测量小球的直径d,用刻度尺测量悬挂点与小球上端之间的距离l′,则摆长l=l′+d/2。
(3)方法三:用刻度尺先测量悬挂点与小球上端之间的距离l1,再测量悬挂点与小球下端之间的距离l2,则可得摆长l=( l1+l2)/2。
测量本次实验摆线的长度L为0.5361米)。
2.测周期

         
(1)传统实验方法

学生分组实验,用行空板秒表测量单摆的周期。将单摆从平衡位置拉开一个角度,且满足偏角小于5°,然后释放摆球,当单摆摆动稳定后,用行空板秒表测量单摆完成30次(或50次)全振动的时间t。计算出平均摆动一次的时间T=t/n,即为单摆的振动周期T。改变摆长,重复实验多次。将每次实验得到的T代入公式g=4π²L/T²,计算重力加速度。
1.jpg
行空板秒表图形化程序
秒表程序.png
利用行空板实时显示秒表时间,点击引脚23上按钮记录周期时间,并将周期时间保存到列表中。点击引脚21上按钮,可回看保存的周期时间。
行空板秒表Python程序

  1. #  -*- coding: UTF-8 -*-

  2. # MindPlus
  3. # Python
  4. from pinpong.extension.unihiker import *
  5. from pinpong.board import Board,Pin
  6. from unihiker import GUI
  7. import time
  8. import math

  9. # 自定义函数
  10. def JieMianChuShiHua():
  11.     global 时钟,分,秒,毫秒,序号
  12.     时钟=u_gui.fill_clock(x=120,y=200,r=100,color="#FF0000",fill="#FFFF00")
  13.     分=u_gui.draw_digit(text="00",x=10,y=20,font_size=40, color="#0000FF")
  14.     标签1=u_gui.draw_digit(text=":",x=50,y=20,font_size=40, color="#0000FF")
  15.     秒=u_gui.draw_digit(text="00",x=90,y=20,font_size=40, color="#0000FF")
  16.     标签2=u_gui.draw_digit(text=":",x=130,y=20,font_size=40, color="#0000FF")
  17.     毫秒=u_gui.draw_digit(text="00",x=170,y=20,font_size=40, color="#0000FF")
  18.     时钟.config(h=0,m=0,s=0)
  19.     序号=u_gui.draw_text(text="",x=190,y=70,font_size=20, color="#000000")
  20. def ShiJianXianShiFuWei():
  21.     时钟.config(h=0,m=0,s=0)
  22.     分.config(text="00")
  23.     秒.config(text="00")
  24.     毫秒.config(text="00")
  25. def ShiJianXianShi():
  26.     global YunXingShiJian,HaoMiao,Miao,FenZhong
  27.     HaoMiao = ((time.time() - YunXingShiJian) * 100)
  28.     毫秒.config(text=(math.floor(HaoMiao)))
  29.     if (HaoMiao > 99):
  30.         YunXingShiJian = time.time()
  31.         Miao = (Miao + 1)
  32.         if (Miao < 10):
  33.             秒.config(text=(str("0") + str(Miao)))
  34.         else:
  35.             秒.config(text=Miao)
  36.         时钟.config(h=0,m=FenZhong,s=Miao)
  37.         if (Miao == 60):
  38.             Miao = 0
  39.             FenZhong = (FenZhong + 1)
  40.             if (FenZhong < 10):
  41.                 分.config(text=(str("0") + str(FenZhong)))
  42.             else:
  43.                 分.config(text=FenZhong)
  44.             时钟.config(h=0,m=FenZhong,s=Miao)
  45. def HuiXianShiJian():
  46.     global JiLuXuHao
  47.     if (JiLuXuHao > (len(LieBiaoFenZhong) - 1)):
  48.         JiLuXuHao = 0
  49.     序号.config(text=(JiLuXuHao + 1))
  50.     LinShiFenZhong = (int(float((LieBiaoFenZhong[JiLuXuHao]))))
  51.     LinShiMiao = (int(float((LieBiaoMiao[JiLuXuHao]))))
  52.     LinShiHaoMiao = (LieBiaoHaoMiao[JiLuXuHao])
  53.     毫秒.config(text=LinShiHaoMiao)
  54.     if (LinShiMiao < 10):
  55.         秒.config(text=(str("0") + str(LinShiMiao)))
  56.     else:
  57.         秒.config(text=LinShiMiao)
  58.     if (LinShiFenZhong < 10):
  59.         分.config(text=(str("0") + str(LinShiFenZhong)))
  60.     else:
  61.         分.config(text=LinShiFenZhong)
  62.     时钟.config(h=0,m=LinShiFenZhong,s=LinShiMiao)
  63.     JiLuXuHao = (JiLuXuHao + 1)


  64. Board().begin()
  65. u_gui=GUI()
  66. p_p23_in=Pin(Pin.P23, Pin.IN)
  67. p_p21_in=Pin(Pin.P21, Pin.IN)
  68. QiDongBiaoShi = 0
  69. HuiKanBiaoShi = 0
  70. JiLuXuHao = 0
  71. HaoMiao = 0
  72. Miao = 0
  73. FenZhong = 0
  74. LieBiaoFenZhong = []
  75. LieBiaoMiao = []
  76. LieBiaoHaoMiao = []
  77. JieMianChuShiHua()

  78. while True:
  79.     if (p_p23_in.read_digital()==True):
  80.         if (QiDongBiaoShi == 0):
  81.             ShiJianXianShiFuWei()
  82.             QiDongBiaoShi = 1
  83.             YunXingShiJian = time.time()
  84.         else:
  85.             ShiJianXianShi()
  86.     else:
  87.         if (QiDongBiaoShi == 1):
  88.             LieBiaoFenZhong.append(FenZhong)
  89.             LieBiaoMiao.append(Miao)
  90.             LieBiaoHaoMiao.append((math.floor(HaoMiao)))
  91.             序号.config(text=(JiLuXuHao + 1))
  92.             JiLuXuHao = (JiLuXuHao + 1)
  93.             QiDongBiaoShi = 0
  94.             HaoMiao = 0
  95.             Miao = 0
  96.     if (p_p21_in.read_digital()==True):
  97.         if (HuiKanBiaoShi == 0):
  98.             HuiKanBiaoShi = 1
  99.             HuiXianShiJian()
  100.     else:
  101.         if (HuiKanBiaoShi == 1):
  102.             HuiKanBiaoShi = 0
  103.             HuiXianShiJian()

复制代码

(2)DIS实验过程
1)将光电门传感器固定在单摆的平衡位置处并将其接入行空板22引脚。
2)在行空板主菜单使用“切换运行程序”,点击“单摆测重力加速度”程序。
3)逐步调整传感器的位置和单摆摆长,使摆球通过传感器并能够顺利挡光。
4)用手使摆球摆动,点击连接行空板引脚23的按钮,屏幕显示“已启动”,此时,行空板将会自动记录单摆的周期,每一组记录20个周期。
3.jpg
再次点击“按钮”,行空板会在完成记录当前组的20个周期后,停止记录数据。
4.jpg
显示平均周期及重力加速度,并将数据保存到电子表格文件“单摆测重力加速度.xls”。
ThuNovember-202211175312..png
5)比较实验中测得的重力加速度与当地实际重力加速度值的差别。(实验地:河北张家口,9.800)
行空板DIS系统图形化程序
DIS程序.png
通过光电传感器,判断小球经过最低点,记录单摆周期。并通过扩展xlwt将周期时间记录在电子表格中。
行空板DIS系统Python程序

  1. #  -*- coding: UTF-8 -*-

  2. # MindPlus
  3. # Python
  4. from pinpong.extension.unihiker import *
  5. from pinpong.board import Board,Pin
  6. from unihiker import GUI
  7. import time
  8. import math

  9. # 自定义函数
  10. def ZhouQiBaoCun():
  11.     global XingHao
  12.     global LieHao
  13.     global JiShu
  14.     global QiDongBiaoShi
  15.     global ChuanGanQiBiaoShi
  16.     global ZhouQiLeiJi
  17.     if ((QiDongBiaoShi == 1) or ((LieHao > 0) and (LieHao < 20))):
  18.         if (p_p22_in.read_digital()==True):
  19.             if (ChuanGanQiBiaoShi == 0):
  20.                 ChuanGanQiBiaoShi = 1
  21.                 JiShu = (JiShu + 1)
  22.                 if (JiShu == 2):
  23.                     JiShu = 0
  24.                     ZhouQiJiSuan()
  25.         else:
  26.             ChuanGanQiBiaoShi = 0
  27.     else:
  28.         if (QiDongBiaoShi == 2):
  29.             启动.config(text="已完成")
  30.             组别.config(text="")
  31.             次数.config(text="")
  32.             ZuiZhongZhouQi = round((ZhouQiLeiJi / (XingHao * 20)),2)
  33.             最终周期=u_gui.draw_digit(text=ZuiZhongZhouQi,x=10,y=200,font_size=30, color="#0000FF")
  34.             ZhongLiJiaSuDu = round((((4 * (math.pi**2)) * 0.5361) / (ZuiZhongZhouQi**2)),4)
  35.             重力加速度=u_gui.draw_digit(text=ZhongLiJiaSuDu,x=120,y=240,font_size=30, color="#FF0000")
  36.             fp.save("重力加速度.xls")
  37. def QiDongPanDuan():
  38.     global QiDongBiaoShi
  39.     if (p_p23_in.read_digital()==True):
  40.         if (QiDongBiaoShi == 0):
  41.             启动.config(text="已启动")
  42.             组别.config(text="第1组")
  43.             QiDongBiaoShi = 1
  44.     else:
  45.         if (QiDongBiaoShi == 1):
  46.             QiDongBiaoShi = 2
  47. def ZhouQiJiSuan():
  48.     global YunXingShiJian,ZhouQiShiJian,ZhouQiLeiJi,XingHao,LieHao
  49.     if (YunXingShiJian == 0):
  50.         YunXingShiJian = time.time()
  51.     else:
  52.         ZhouQiShiJian = (time.time() - YunXingShiJian)
  53.         ZhouQiLeiJi = (ZhouQiLeiJi + ZhouQiShiJian)
  54.         周期.config(text=round(ZhouQiShiJian,2))
  55.         YunXingShiJian = time.time()
  56.         table.write(XingHao, LieHao, ZhouQiShiJian, style=mindStyle)
  57.         LieHao = (LieHao + 1)
  58.         次数.config(text=(str("第") + str((str(LieHao) + str("个")))))
  59.         if (LieHao > 19):
  60.             XingHao = (XingHao + 1)
  61.             LieHao = 0
  62.             组别.config(text=(str("第") + str((str((XingHao + 1)) + str("组")))))


  63. u_gui=GUI()
  64. Board().begin()
  65. import xlwt
  66. p_p22_in=Pin(Pin.P22, Pin.IN)
  67. p_p23_in=Pin(Pin.P23, Pin.IN)
  68. YangShi = "font: name Times New Roman, color-index red, bold on"
  69. fp = xlwt.Workbook(encoding="ascii")
  70. mindStyle = xlwt.easyxf(strg_to_parse=YangShi, num_format_str="0.0000")
  71. table = fp.add_sheet(sheetname="重力加速度", cell_overwrite_ok=True)
  72. YunXingShiJian = 0
  73. JiShu = 0
  74. ZhouQiLeiJi = 0
  75. ChuanGanQiBiaoShi = 0
  76. QiDongBiaoShi = 0
  77. XingHao = 0
  78. LieHao = 0
  79. 标签1=u_gui.draw_text(text="实时周期:",x=5,y=20,font_size=20, color="#0000FF")
  80. 周期=u_gui.draw_text(text="",x=140,y=20,font_size=20, color="#0000FF")
  81. 启动=u_gui.draw_text(text="未启动",x=80,y=280,font_size=20, color="#0000FF")
  82. 标签2=u_gui.draw_text(text="当前组别:",x=5,y=80,font_size=20, color="#0000FF")
  83. 组别=u_gui.draw_text(text="",x=140,y=80,font_size=20, color="#0000FF")
  84. 标签3=u_gui.draw_text(text="当前次数:",x=5,y=120,font_size=20, color="#0000FF")
  85. 次数=u_gui.draw_text(text="",x=140,y=120,font_size=20, color="#0000FF")

  86. while True:
  87.     QiDongPanDuan()
  88.     ZhouQiBaoCun()

复制代码
注意事项
1.摆线应选择细、轻而且不易伸长的,长度为1m左右的,不要过长或过短,太长测量不方便,太短摆动太快,不易计数。小球应选体积小、密度大的金属球,这样可以减小空气阻力的影响。
2.单摆摆线的上端应夹紧,不能卷在铁夹的杆上,以免造成悬点不固定,摆长变化的现象。
3.摆长要悬挂好摆球后再测,不要先测摆长再系小球,因为悬挂摆球后细绳会发生形变。测量摆长时应注意是悬点到球心的距离,等于摆线长加上小球半径。注意摆线长与摆长的区别。
4.要使单摆在竖直平面内摆动,不要形成圆锥摆。摆角要小于5°(中学阶段实验时不要超过15°),不要过大,因为摆角过大,单摆的振动不再是简谐运动,公式就不再适用。
5.计算单摆的振动次数时,应从小球通过最低位置(平衡位置)时开始计时,同方向再次通过最低位置时累加计数。
实践活动
师:同学们分组合作讨论,自己设计一个测重力加速度的DIS实验。
生:根据自由落体公式:h=1/2gt²,得g=2h/t²。在铁架台顶固定电磁铁吸引金属小球,行空板控制电磁铁断电记时,当小球撞击地面,利用行空板声音传感器接收信号,并停止记时,得自由落体时间t,再结合已测量的下落高度h,根据公式计算重力加速度g。
生:结合打点记时器测重力加速度的方法,利用行空板连接USB摄像头,以相同的时间间隔拍摄小球下落过程(背景放置刻度尺),利用图处理技术,将所有照片叠加在一起。根据打点计时器加速度的公式△x=aT²,计算重力加速度。
课后反思
DIS实验技术可以准确地描述各个物理量之间的关系,体现现代科学技术准确性高的特点,是以后中学物理教学的常见模式。同时,我们也不可以全盘否定传统的物理实验,本节课就是尝试着将二者相互结合,使二者互相补充。既使学生加深了对实验原理的理解,也提高了实验数据处理的准确性。
演示视频

木子呢  NPC

发表于 2022-11-17 11:51:02

神速!!!!!
回复

使用道具 举报

rzegkly  版主

发表于 2022-11-19 09:17:43

很好的案例,学习
回复

使用道具 举报

派大星ym  初级技匠

发表于 2022-11-22 09:25:08

行空板不吃灰系列
回复

使用道具 举报

白凡  高级技师

发表于 2022-11-24 09:16:34

666666
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail