回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

基于micro bit的初中物理数字化可视化实验---探究水在沸腾前后温度的变化特点 简单

头像 _深蓝_ 2024.03.28 55 0

一、项目背景


1.义务教育课程标准支持使用开源硬件协助开展物理实验教学


2022年的义务教育课程标准指出物理物理课程资源是利用的所有资源,包括文本资源、实验室资源、多媒体资源和社会资源等。作为教育机构,要创造各种优质教育资源为教师的课前准备、课堂教学、课后作业与考试评价等环节服务。学校要根据本校实际,结合学生发展的需要,推荐、指导选择或开发适合学生发展所需要的各种学习材料,充实学生的学习资源。教师要吸收与整合各种优质资源组织教学。

图片.png
图片.png
图片.png

 

2.使用micro:bit优点多


物理是一门以实验为主的学科,重视实验教学和实验数据。而micro:bit的使用,可以获得大量的数据。
micro:bit小巧、灵活、编程简单,再物理实验教学中非常的实用。
使用传感器可以大大节省实验教学花费的时间,并且可以控制实验数据量以及可视化实验数据。

 

二、项目器材

 

 

材料清单

  • micro:bit X1 链接
  • micro:bit掌控I/O扩展板 X1 链接
  • Gravity: 18B20 防水温度传感器套件 X1 链接

电热水壶、水自备。

 

三、线路连接

 

将温度传感器连接到micro:bit扩展板的P8口;需要注意以下内容:
1.不能将温度传感器连接到扩展板的P0-P2口,出现获取温度失败的情况。
2.18B20 数字温度防水传感器需要连接可插拔传感器转接器实现Plugable Terminal转接器数字口增加了上拉电阻。方法:使用跳线帽切换使用。
3.Terminal转接器3线接口:分为A型和B型,接线之前请注意您的传感器接口。
类型A:红线(VCC), 黑线(GND),黄线(DATA)
类型B:红线(VCC),黄线(GND),绿线(DATA)
严格按照以上接口将传感器接入即可,不可接反。


 线路链接.jpg

 

四、程序代码编写

 

打算使用OBLOQ - IoT物联网模块将18B20 温度传感器的数据接入,然后使用物联网的可视化功能。但是温度传感器与物联网OBLOQ - IoT物联网模块出现不兼容的情况。使得温度传感器的数据无法上传到物联网中。

舍弃物联网模块,在单机上实现数据的可视化功能。当然打算使用mind+的micro:bit上传模式,结果在上传模式中并没有数据可视化功能的这个模块。

于是打算使用Python模式。在使用前首先安装pinpong库和matplotlib库。

图片.png

图片.png
程序代码如下:

代码
from matplotlib import pyplot as plt
from matplotlib.animation import FuncAnimation
import matplotlib.animation as animation
import datetime as dt
import time
from pinpong.board import Board,Pin,ADC  #导入ADC类实现模拟输入
from pinpong.board import DS18B20

Board("microbit").begin()  #初始化,选择板型和端口号,不输入端口号则进行自动识别
#Board("microbit","COM14").begin()   #windows下指定端口初始化
#Board("uno","/dev/ttyACM0").begin()   #linux下指定端口初始化
#Board("uno","/dev/cu.usbmodem14101").begin()   #mac下指定端口初始化

plt.style.use('seaborn-pastel')#   修改图标样式,可以使用print(plt.style.available) 打印样式列表
fig = plt.figure()  #创建图像fig
ax = fig.add_subplot(1, 1, 1) #增加1x1子图

#创建两个列表对应折线图的x、y轴数据
xs = []
ys = []

#定义动画函数
def animate(i, xs, ys):
    ds1=DS18B20(Pin(Pin.P8))
    temp_c1=ds1.temp_c()
    print(dt.datetime.now().strftime('%H:%M:%S'),":",temp_c1)
	
	#将x、y轴坐标数据添加到xs、ys列表中
    xs.append(dt.datetime.now().strftime('%H:%M:%S'))#x轴显示时间戳,时分秒
    ys.append(temp_c1)#y轴显示温度值

    # 限定xs和ys列表数据范围
    xs = xs[-50:]
    ys = ys[-50:]

    # 根据xs,ys绘制折线
    ax.clear()
    ax.plot(xs, ys)

    # 图像格式
    plt.xticks(rotation=45, ha='right')#坐标数值倾斜45°,数据沿x轴正无穷方向偏移
    plt.subplots_adjust(bottom=0.30)#限制图标的区域边界
    plt.title('temperature monitoring')#图标标题
    plt.ylabel('temperature ')#y轴坐标

#调用animation方法,对象:画布fig,动画函数:animate,函数调用数值:(xs, ys),数据更新频率interval=1000 ms
ani = animation.FuncAnimation(fig, animate, fargs=(xs, ys), interval=5000)
#画布显示
plt.show()

五、实验现象与结论


如图所示,我们可以看到随着电热水器的加热,水温逐渐升高、当水开始沸腾时,水温保持一定的温度不变,这个温度我们称之为水的沸点。
改进使用micro:bit做水的沸腾实验不仅节省了时间,实验结论非常明显,可以完美支持结论。

升温中.png

电热水壶通电后,水温度升高

水的沸腾实验.png

水沸腾时,水温保持不变

 

终端显示温度.png

终端显示加热时间和温度,用于制作数据表格

 


 

六、传统实验以及使用micro:bit实验的比较

实验比较.png

七、本实验不足之处和改进措施

 

1.没有外壳的电子原件不够好看,后期设计实用的3d打印外壳或者激光切割做的外壳。


2.实验中需要让同学们看到水沸腾的现象,应该使用透明的电热水壶;还可以方便查看温度传感头是否接触了容器底部。


3.电热水壶具有水开自动断电功能,持续加热时需要按着开始加热按钮。

 

评论

user-avatar