一、项目背景
1.义务教育课程标准支持使用开源硬件协助开展物理实验教学
2022年的义务教育课程标准指出物理物理课程资源是利用的所有资源,包括文本资源、实验室资源、多媒体资源和社会资源等。作为教育机构,要创造各种优质教育资源为教师的课前准备、课堂教学、课后作业与考试评价等环节服务。学校要根据本校实际,结合学生发展的需要,推荐、指导选择或开发适合学生发展所需要的各种学习材料,充实学生的学习资源。教师要吸收与整合各种优质资源组织教学。
2.使用micro:bit优点多
物理是一门以实验为主的学科,重视实验教学和实验数据。而micro:bit的使用,可以获得大量的数据。
micro:bit小巧、灵活、编程简单,再物理实验教学中非常的实用。
使用传感器可以大大节省实验教学花费的时间,并且可以控制实验数据量以及可视化实验数据。
二、项目器材
电热水壶、水自备。
三、线路连接
将温度传感器连接到micro:bit扩展板的P8口;需要注意以下内容:
1.不能将温度传感器连接到扩展板的P0-P2口,出现获取温度失败的情况。
2.18B20 数字温度防水传感器需要连接可插拔传感器转接器实现Plugable Terminal转接器数字口增加了上拉电阻。方法:使用跳线帽切换使用。
3.Terminal转接器3线接口:分为A型和B型,接线之前请注意您的传感器接口。
类型A:红线(VCC), 黑线(GND),黄线(DATA)
类型B:红线(VCC),黄线(GND),绿线(DATA)
严格按照以上接口将传感器接入即可,不可接反。
四、程序代码编写
打算使用OBLOQ - IoT物联网模块将18B20 温度传感器的数据接入,然后使用物联网的可视化功能。但是温度传感器与物联网OBLOQ - IoT物联网模块出现不兼容的情况。使得温度传感器的数据无法上传到物联网中。
舍弃物联网模块,在单机上实现数据的可视化功能。当然打算使用mind+的micro:bit上传模式,结果在上传模式中并没有数据可视化功能的这个模块。
于是打算使用Python模式。在使用前首先安装pinpong库和matplotlib库。
程序代码如下:
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做水的沸腾实验不仅节省了时间,实验结论非常明显,可以完美支持结论。
电热水壶通电后,水温度升高
水沸腾时,水温保持不变
终端显示加热时间和温度,用于制作数据表格
六、传统实验以及使用micro:bit实验的比较
七、本实验不足之处和改进措施
1.没有外壳的电子原件不够好看,后期设计实用的3d打印外壳或者激光切割做的外壳。
2.实验中需要让同学们看到水沸腾的现象,应该使用透明的电热水壶;还可以方便查看温度传感头是否接触了容器底部。
3.电热水壶具有水开自动断电功能,持续加热时需要按着开始加热按钮。
附件
评论