对单摆测重力加速度实验的改进
2023-03-02周洪亮
周洪亮
(江苏电子信息职业学院素质教育部,江苏 淮安 223003)
0 引言
单摆测重力加速度是物理实验中的常规项目。一根不可伸缩的细线,上端固定,下端悬挂一个重球。当细线质量比重球质量小很多,球的直径比细线长度短很多时,可以把重球看作是一个不计细线质量的质点[1]。将摆球自平衡位置拉至一边(保持摆角θ<5°)然后释放,摆球将在平衡位置左右作周期性摆动,即做简谐振动,这种装置称为单摆(如图1 所示)。
图1 单摆受力分析图
分析摆球受力情况,θ为摆角,l为摆长,T为摆动周期,x为摆球到转动平衡位置的距离。根据平衡条件有ma=-mgsinθ,a=-gsinθ取一阶泰勒展开,a=-g(θ-o(θ)),在摆角很小时,忽略高阶无穷小余项此时符合简谐运动特征,解得利用周期T和摆长l可以测量重力加速度:
单摆是一种简化模型,摆角过大、摆长改变和阻尼导致力学模型的近似条件破坏产生误差,但这个误差可以忽略。主要影响来自摆长l和时间T的误差。g的相对不确定度摆长l的相对不确定度影响小,并且可以修正,周期T的不确定度影响更大,总测量不确定度主要来自周期T,应尽量减小周期测量的误差。
单摆实验传统上使用商品数字计时器,采用光电门和挡光杆计时。商品计时器功能固化在CPU,只能按设定功能进行实验,难以拓展用途,仪器仅能显示数据而无法处理,也不符合数据可视化、信息化教学的要求,另外价格高,体积大。商品计时器还有一个缺陷,光电门会受到自然光干扰,并且挡光杆容易无效动作,产生重复计数或者漏计数,导致测量错误。设想对该实验在数据采集、数据传输和数据处理几个方面进行改进,设计一种体积小巧、使用方便、高精度、低成本的数字计时器,利用霍尔传感器产生脉冲信号并发送给单片机,单片机接收信号并计时,利用蓝牙串口通信将数据传输给电脑和手机,实时显示测量结果并分析处理和存储数据。
1 实现方案
主要包括硬件设计:霍尔元件、单片机、蓝牙、电脑、手机设备的连接,单片机的中断和串口,蓝牙的无线通信。软件设计:单片机的中断处理和计时、串口通信、电脑和手机的数据记录和处理(如图2 所示)。
图2 实现思路
1.1 信号采集
1.1.1 A3144型霍尔开关传感器模块
霍尔效应,在垂直磁场的方向通电流,因洛伦兹力产生的电荷积累,形成与电流和磁场方向相互垂直的霍尔电压。A3144 是利用硅集成电路工艺将霍尔元件和测量线路集成在一起的一种传感器。集成了电平处理,实现了材料、元件、电路三位一体。集成霍尔传感器与分立相比,由于减少了焊点,因此显著地提高了可靠性。此外,它具有体积小、重量轻、功耗低、成本低等优点。该模块有三个脚,接单片机的VCC、GND 和外部中断(如图3、图4 所示)。
图3 霍尔开关模块
图4 霍尔模块、单摆示意图
按图4 方式将霍尔元件置于磁性摆球下方,并连接到单片机的外部中断接口,当传感器切割磁场时,输出单片机可识别的低电平信号。
1.1.2 STC89C52RC单片机
由宏晶公司推出的一种小型51 系列单片机,具有8 位并行I/O 和8 位处理器,带两个十六位定时/计数器、五个中断源,两级中断优先级;带片内存储RAM、32 位双向输入输出线;可进行串口通信的单片机;片内有4k 字节在线可重复编程快擦写程序存储器;工作范围0 Hz~24 MHz;一个全双工的异步串行口;优点是抗干扰、超低功耗,价格低,在线通过USB 下载调试程序非常方便(如图5、图6 所示)。
图5 STC 单片机
图6 蓝牙模块示意图
本装置主要使用的是定时器、外部中断源、串口输出几个功能。除单片机最小系统之外,外围线路比较简洁,安装数码管和锁存器用于板上显示,通过UBS 转TTL 串口连接电脑,连接上蓝牙串口模块实现无线通信。
1.2 信号传输
1.2.1 HC06蓝牙从机和HC05蓝牙主机
蓝牙HC05 是主从一体的蓝牙串口模块,与HC06 从机模块对应,功能类似。简单地说,当蓝牙设备与蓝牙设备配对连接成功后,我们可以忽视蓝牙内部的通信协议,直接将蓝牙当作串口用。建立连接时,两设备共同使用一通道也就是同一个串口,一个设备发送数据到通道中,另外一个设备便可以接收通道中的数据。当然,对于建立这种通道连接是有一定条件,那就是对蓝牙设置好能进行配对连接的AT 模式。
蓝牙串口模块引脚主要有:RX——接收端;TX——发送端;VCC——模块供电正极(5V);GND——模块接地。
HC05、HC06 蓝牙模块使用AT 指令修改名称、密码、波特率等参数。HC05 的设置稍复杂,并且与HC06的AT 命令格式不同,HC05 的AT 句尾要加上 不然不识别。HC06 不需要 。二者的波特率也有区别。
当HC05 主机与HC06 从机相连时,HC05 要设置为主机。如果密码都是默认的1234,则可自动连接。连接成功后蓝牙信号指示灯红色常亮。
1.2.2 蓝牙串口模块与电脑的连接
蓝牙通信方便可靠,只需将主机与电脑相连、从机与单片机相连,相当于用一根导线将电脑和单片机对接,但这种连接是无线的,可以摆脱导线的束缚,更加方便,在近距离内利用电脑软件观测实验数据(如图7、图8 所示)。
图7 蓝牙与电脑连接示意图
图8 手机蓝牙连接示意图
1.2.3 单片机与手机的无线连接
将HC06 蓝牙串口模块的RX、TX 连接到单片机的TX 和RX,以及电源正VCC 和接地GND,仅需4 根线,就能将单片机测量的信号发送到手机蓝牙,采用无线信号连接单片机和手机,这种方式更加灵活,利用手机强大的数据处理功能,有效地管理实验数据。将测量和数据处理分开,可以设计更丰富的拓展功能,避免了单一产品功能固化在设备中,无法升级的缺点。
2 程序开发调试
2.1 单片机工作流程
主要功能为单片机读取中断和串口通信,存储数据,电脑端或手机端与单片机的蓝牙通信(如图9 所示)。
图9 程序流程简概
单片机程序分为主程序和定时器初始化、定时器中断,外部中断、延时、数值转换、数码管显示、串口发送等子程序。
中断寄存器的设置非常重要。中断允许控制寄存器(IE)——控制各中断的开放和屏蔽,定时器/计数器控制寄存器(TCON)——定时器和外部中断的控制,中断TMOD 寄存器——定时器和中断工作方式,串行口控制寄存器(SCON)——串行中断的控制。
定时器的操作是一个关键。定时器高位寄存器TH0和低位TL0,由于单片机的晶振为11.0592 Mhz,取12 分频,所以一个时钟周期t=120/110592=5/4608≈0.001085 069444ms,约为1μs,即低位增加1 的时间,当时间t=(256-TH0_SET)*(256-TL0_SET)*120/110592 ms 发生一次定时器中断,例如取高位预设TH0_SET=22,低位预设TL0_SET=0,高位增加1 的时间为256 个时钟周期,t=5/18≈0.28 ms,计算得每65 ms 发生一次定时中断。
单片机选择11.0592 Mhz 外置晶振的原因跟时钟周期有关,采用11.0592 Mhz 晶振,能被1024 整除,在时间计算上是整数运算,不产生截断误差。同时,整数的运算效率更高。若使用12 Mhz 晶振,时间计算将出现浮点数,产生累积误差,并且工作效率下降。在编程时也应考虑整除的问题,例如1/3*3 就出现了误差,调整乘除计算顺序,改成1*3/3,避免出现不能整除的结果。
在外部中断1接上霍尔元件的信号输出端,设置寄存器IT1=1,外部中断1触发方式设为电平下降沿触发,霍尔元件每次接近磁铁产生低电平时,单片机发生外部中断,记录定时器中断次数并计算两次外部中断的时间间隔,存入数组中。
数据经串口发送的寄存器设置较复杂,包括TH1、TL1——设置计时器1 的重载值并决定波特率大小,PCON——波特率倍增模式,SCON——设置工作方式,ES——开启串口接收中断等等。串口发送程序示例:
串口通信设置,若选择常用的串口波特率9600 bps,寄存器SMOD=0 时,需将定时器重载设置为256-11059200/12/32/9600=256-3=0xfd,这也是选11.0592 Mhz 晶振的原因。若选择12M 晶振,在设置定时器重载值时256-12000000/12/32/9600=252.7488……,无法取得整数,取整的截断误差将产生累积误差,使得时间总误差可能超过1%。
在数字转化为字符部分使用一个循环,利用整除和余数来将要显示的数值转化为单个字符,
数码管的显示用段码和位码设置,先定义段码和位码的数组,用查表法计算出数值,控制各二极管的亮灭,来达到显示数字的功能,例如0x06=0b00000110,即显示字符“1”。
可见单片机的编程需熟悉进制、整除、求余、逻辑与、逻辑或、逻辑非、位与、位或、异或、按位取反等等运算。
将c 语言源程序编译成hex 文件,用stcisp 下载到单片机上,安装好霍尔模块,将磁铁靠近霍尔模块,每当霍尔模块切割磁场时,模块上指示灯亮起,数码管显示时间,发送数据。
2.2 电脑端程序
在电脑开发图形界面,用Visual Studio 集成平台,开发串口通讯图形界面,使用HC05 蓝牙主机模块,通过CH340 转接口(USB 转TTL)连接电脑USB,构成无线串口通信,接收数据,保存历史数据方便统计分析(如图10 所示)。
图10 电脑调试界面
2.3 手机界面
手机App 用Android Studio 平台采用java 语言设计图形界面,编写运算逻辑,下载安装程序后,手机开启蓝牙,连接单片机的HC06 蓝牙从机模块,无线接收数据,显示和计算结果。这样将测量和处理分开,复杂的数据运算使用手机完成,功能可以设计的更丰富,历史数据、可视化、误差分析等等都可以写进程序,具备一定编程基础就可自主更新软件功能(如图11 所示)。
图11 手机界面
3 结论
3.1 误差分析
单摆测重力加速度的测量误差主要来源之一是时间。单片机的晶振频率和精度决定了时钟周期的精度。随着温度变化和时间,晶振的频率会产生误差,一般在ppm 级别,即使达到200 ppm,这个误差对单摆实验忽略不计。单片机的时钟周期非常短,执行指令、读写寄存器或者其他动作耗时产生的计时误差忽略不计。
经测试,一组测量时间的35 个数据,t=[1.415,1.415,1.416,1.416,1.415,1.415,1.416,1.415,1.416,1.415,1.415,1.415,1.416,1.415,1.415,1.415,1.415,1.415,1.415,1.415,1.414,1.416,1.414,1.415,1.414,1.416,1.415,1.414,1.415,1.414,1.415,1.414,1.415,1.414,1.414],样本均值=1.4 15s,样本均值的标准误差SET=0.001s,相对不确定度
这个结论证明时间测量的标准差很小,数据在平均值附近高度集中。另一组数据采用手机App 直接计算得重力加速度为g=9.859m/s2,当地标准值为g0=9.798m/s2,绝对误差Δg=0.061m/s2,相对误差
说明在时间测量误差小时,测量结果良好。因摆长为转轴到摆球质心的距离,测量摆长也会造成误差,为了减小摆长测量的误差,还可以改进实验方法。等间距取不同摆长l1、l2...ln进行n次测量,得周期T1、T2...Tn,利用对T2和l利用线性回归,算出系数K即可求出g。
这些复杂的数据处理单片机难以完成,需要在电脑或者手机开发程序进行运算。
3.2 装置特点
该装置使用STC89C52 单片机系统,运用霍尔模块A3144 输出信号,用蓝牙串口传输数据,将数据无线传输到手机和电脑并进行处理,体积小,结构简单,成本低,使用方便。用5V 电源供电,耗电很低,发热少,可长期稳定工作。
使用霍尔元件和单片机进行计时,动作可靠,响应时间短,抗干扰能力强,测量精度高,相对误差小于1%。
4 结语
随着物联网、大数据、云计算技术的发展,以及实验教学的数字化转型,更多地数据需要在云服务器存储、运算和展示,使用单机版已经不能满足要求,更合理的方式是建立云服务器,实验数据直接发送到数据库存储,手机、电脑从云服务器读取不同学生的实验数据,进行运算、可视化,利用大数据分析和改进实验教学。一种设想是建立服务器,利用物联网协议传送数据,Mysql 数据库存储数据,Python 脚本做后台数据处理,利用Python 强大的数据功能,充分发掘数据价值。