基于Jupyter编写数字化实验的交互式教材

    张敬云

    

    

    

    随着开源硬件的广泛应用和不断发展,其与实验教学深度融合,开展数字化实验教学变得更加容易。因为除了计算机,只要再给学生一些通用的传感器、主板,他们便能利用信息化手段、数字化设备自由地创造性地完成一些实验项目,而不再只是单纯地利用配套的资源重复教材中的实验。目前,高中信息技术教材选择的编程语言是Python语言,那么如何开展利用Python给开源硬件编程进行数字化实验的教学呢?Jupyter的应用给我们提供了一种新的思路。笔者认为,基于Jupyter来编写数字化实验的交互式教材进行教学大可一试。

    ● Jupyter简介

    Jupyter这个名字是它要服务的Julia、Python和R三种语言的缩写,但目前能使用的语言Jupyter都支持。Jupyter全称为Jupyter Notebook。它是一款免费、开源的交互式Web工具,它能够让用户将软件代码、运行结果、说明文本和多媒体资源组合在一个易于共享的文档中。换句话说,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。

    ● Jupyter教学优势分析

    用Jupyter Notebook进行教学的主要优势如下:

    ①集各功能于一体,适合实验数据分析。Jupyter Notebook能将所有需要处理的程序、呈现的内容收归一处,还支持导出HTML、Markdown、PDF等多种格式的文档。

    ②交互式展现。页面结构是以Cell形式组织的,每个Cell都是独立的单元,能够实现文字、图像、表格、程序代码等混排格式。在交互式插件的支持下,它还可以呈现一些互动的可视化内容,如缩放的地图或者旋转的三维模型等。

    ● 基于Jupyter编写的单摆测重力加速度的实验案例

    1.实验说明

    单摆测重力加速度是高中阶段的物理实验,该实验对掌握单摆测周期等物理知识有重要的意义。传统物理实验需要借助秒表工具,并通过手动计数以及手动计算来完成,不仅费时费力,而且存在一定的人为误差。因此,笔者利用Arduino和周边的电子模块,制作一个自动化的单摆测重力加速度的实验装置,使用这款装置,无需手动计数及计算便可通过计算机及时得到所需数据。

    2.实验目的

    学会利用开源硬件及周边电子模块自制实验装置,配合单摆测重力加速度;培养学生实践动手能力。

    3.实验原理

    单摆在摆角小于5度的震动是简谐运动,其固有周期T=2π√L/g,根据这个公式可以换算出g=4π2L/T2。可见,测出单摆的摆长L和周期T,就可以求出重力加速度。

    4.实验方案设计

    使用Arduino配合单摆测重力加速度的设计并不复杂。最主要的是让学生在理解单摆实验原理的基础上,确定使用何种传感器检测小球,从而开始自动计时及记录单摆摆动的次数。综合考虑实验目的及课堂时间,笔者设计了如上表所示的实验方案。

    5.硬件搭建

    红外数字避障传感器也称红外接近开关,是一种集发射与接收于一体的光电开关传感器。传感器在接收到信号后,会引起后侧指示灯的亮灭。这款传感器背面有一个电位器,可以根据需要调节障碍的检测距离。当探头前方无障碍时,红外数字避障传感器输出高电平,有障碍时则相反。

    硬件搭建的实物图略,接线图如下图所示,本实验将红外数字避障传感器接在了8号数字针脚。

    6.编写程序

    程序编写需解决两个问题:一是要记录单摆来回摆动的次数和时间;二是根据检测到的次数和时间计算单摆的周期,从而计算重力加速度的值并输出。由于单摆刚开始摆动时不是很稳定,所以有必要略过前几次摆动的次数及时间,这里笔者从单摆摆动的第三次开始计时和计数。测出需要的摆动次数和时间后,就可用总时间除以总次数求出单摆的周期,进而计算重力加速度的值。需要注意的是,每次传感器检测到小球经过最低点时,是经过了半个周期,因此,在计算单摆周期时,需将次数除以2,具体程序扫描下方二维码。(摆长=摆线长+小球半径,本实验摆长L设为1米)。

    7.效果测试

    运行程序,等待计算机与Arduino通过串口完成通信连接。然后释放小球,待红外避障传感器第63次检测到小球时,周期及重力加速度的值便自动输出,本次实验测试的结果约为9.8与实际数值完全一样,运行结果扫描下方二维码。

    ● 数字化实验的交互式教材设计

    物理、化学、生物等学科的实验项目很多,拿物理学科来讲,可以利用红外避障传感器测单摆周期及重力加速度,利用声音传感器探究噪声的波形,利用光线传感器探究不同物质的透光性能等。

    利用开源软件和开源硬件中的各类传感器進行实验教学,不仅加强了学生实验探究和工程实践的结合,同时也激发了学生的创造性思维,提升了学生数字化学习能力和科学素养。这是进行数字化实验教学的一种新的尝试,本文主要对物理实验做了研究,我们期待更多不同学科的教师能够参与其中。

    参考文献:

    [1]刘征,郭君红.探究Jupyter Notebook编程工具在项目式学习中的应用[J].教育科技应用,2020(07):29-33.

    [2]吴建惠,黄凯宇.基于arduino开源项目的自主开发物理数字化实验室[J].中学物理,2017(10):29-31.