开源硬件X物理实验(一) - 自由落体运动测重力加速度
本帖最后由 gx 于 2021-8-23 23:54 编辑1590年伽利略在比萨斜塔上扔下两个质量不等的小球,结果小球同时落地,通过这个实验推翻了亚里士多德,物体越重下落越快的观点。
实验目标:通过使用Arduino主控板与一些传感器,测得自由落体运动中一些物理量(下落高度及下落时间),实验数据将被收集至上位机,通过一些常用的python数据处理的方式计算求得重力加速度。(模式一:无上位机,直接记录数据即可)
(模式二:数据通过串口上传至电脑,通过python来做数据处理)
实验介绍:自由落体定义,物体的最初状态是静止的,物体下落中假定除了重力外不受其它力(如:空气阻力)的作用。它下落的路程的长度h与经过的时间t关系为h=1/2gt^2在这个实验中,我们将测量在不同的高度h下的下落时间t,可以通过多组数据作出h-t^2图像,拟合得到的直线斜率k=1/2g,从而求出重力加速度g=2k。(根据h-t^2图像求得斜率k,g=2k)
(实验装置细节一)
(实验装置细节二)
实验装置介绍及接线方式:- 主控板,Romeo BLE mini (可以换成其他arduino主控)- 按键,数字大按钮模块 - D3- LCD,LCD1602 RGB彩色背光液晶屏(可选,如果不需要python做处理数据和分析,可直接通过LCD记录数据。)- I2C- 超声波,URM37 超声波测距传感器(可选,调节高度后可以用米尺来测距。)- ECHO-10 TRIG- 11- 震动传感器,压电陶瓷震动传感器。(安装在一个EVA泡沫中,用于增大碰撞面积。)-D2- 夹持器(自制,导电铜箔胶带)-D8
(实验装置细节三)
在这个实验中,有两个时间点需要记录,小球释放的时间点和小球落地时间。小球落地时间点是通过振动传感器检测撞击。小球释放的时间点是通过检测夹持器上的信号。具体原理如下, 夹持器夹具两端贴有导电铜箔胶带,一端连信号线(D8),另一段连接GND。小球为金属材质,具有导电性。D8引脚被设置为了输入上拉(input pull-up)模式,因此当金属球没有被放置时,处于高电平。加持小球时,由于金属小球具有导电性,类似于一根导线,信号端D8直连GND,信号从高电平变为低电平。释放小球后,夹持器两端D8和GND断开,D8引脚信号从低电平变为高电平。(小球释放的信号,此刻的时间点会被记录下来。)
实验原理: 1. 超声波传感器用于测量当前的高度(h)。2. 夹持器用于检测金属球是否被释放。当金属球被释放后开始计时(记录释放时间t1)。3. 震动传感器用于检测金属球的撞击,当金属球撞击到震动传感器后,停止计时(记录撞击时间t2)。4. LCD显示下落高度h及下落时间(t2-t1),同时数据通过串口传给电脑。电脑端的程序会以csv的格式保存,记录下落高度和下落时间。(如果不需要通过电脑来做数据拟合,可以直接通过LCD获取高度和下落时间,然后通过手工作图来求斜率)(采集的数据可能会存在一些比较离谱数值,需要通过预处理的方式将离群点去除,这里不展开讲,直接使用的是预处理好的数据通过线性回归来计算得到斜率)
(电脑端的程序会以csv的格式保存)
5. 导入以下几个常用的库文件,LinearRegression是sklearn中线性回归模型。6. 绘制出height-time散点图,我们可以大概的看出是一条曲线。
7. 通过线性回归的方式,拟合出一条最好的直线。而这条直线的斜率k = 1/2g。8. 计算得到斜率k后,我们就可以求出重力加速度g了,由于记录数据的单位为厘米,因此需要转化为米。
8错 非常详细,点赞{:5_190:} Pthon处理数据,OK {:6_213:}66666,牛哇! 非常实用的项目! 666,收藏了! 太牛了
大佬 python能用模块化编程实现吗 哇!!!!!!!! 厉害厉害厉害 值得学习! 6666666666 非常实用!{:6_215:} 非常详细。赞赞赞!
页:
[1]