10610| 4
|
[教程] Mind+Python编程进阶系列课程—01 趣味数字电导仪 |
本帖最后由 木子呢 于 2021-11-9 16:52 编辑 第一课、趣味数字电导仪 课程目录: 一、实践情境 雷雨天气,我们常常被要求在路上行走时尽量远离电线杆和积水地段,这是因为水和电线能都够导电,而雷电和大风易使电线落入水中进而使积水带电引起触电危险。那么他们的导电能力如何呢?在这节课上,我们将设计一个数字导电仪,来对生活一些常见物质的导电能力探一探究竟! 二、实践目标 本实践项目运用micro:bit作为智能终端,通过土壤湿度传感器采集数据,来探究比较,水与铜片的导电性能强弱。 三、知识目标 1、掌握运用micro:bit作为智能终端,通过Python编程采集传感器数据的方法; 2、掌握通过 Python 编程对数据进行可视化处理的方法; 3、认识micro:bit开发板与I/O扩展板,掌握两者的连接方法; 4、认识土壤湿度传感器,了解土壤湿度传感器的工作原理和使用。 四、实践准备 硬件清单: 软件使用:mind+编程软件x1 其他: 1、一杯土壤(湿润) 2、一杯水(常温) 3、一块铜片(铜质材料即可)
五、实践过程 在本项目中,我们将利用土壤湿度传感器的工作原理,分两步设计一个趣味数字电导仪,来探究一下水与铜片的导电性能强弱。 1、实时检测土壤湿度进而检测水、铜导电性能。 2、对数据进行可视化处理。 任务1:土壤湿度实时检测 在这个任务中,我们将在20℃的环境室温下,对杯子中的土壤进行湿度检测。为此,我们将分四步进行。首先是分析设计,接着进行硬件的搭建,之后通过软件编写程序,最后对实验进行调试修改。 1.分析设计 本实践任务主要是通过扩展板将土壤湿度传感器与micro:bit开发板相连接,实时获取土壤的湿度,并将检测到的数据信息显示在点阵屏上,同时,当数值大于一定值时,蜂鸣器发声以作提示。 2.硬件搭建 由于micro:bit上有很多无法直接使用的扩展引脚,因而我们需要借助I/O扩展板可以将这些划分的很细的引脚引出来使用,从而支持更多输入输出设备拓展。 这里,我们将分步骤使土壤湿度传感器先通过扩展板连接上micro:bit,再将micro:bit接入计算机。 STEP1:将micro:bit开发板插入I/O扩展板,注意正反,LED点阵屏朝扩展板的“micro:bit”图标方向 STEP2:通过传感器连接线将土壤湿度传感器连在扩展板的P1端口。其中,红线和黑线分别对应电源正极和负极,蓝线对应信号线,用来传输信号。 STEP3:通过USB连接线将micro:bit接到计算机。 3.软件编写 在连接好各个硬件之后,我们还无法使他们实现功能。这个时候我们需要给硬件编写程序来控制他们运行。而在首次编程时,我们将先对软件进行设置,之后再编写Python程序来检测土壤湿度。 软件设置: 在Mind+软件中,我们需要手动创建项目文件、python文件并安装一些库文件以便编写程序。项目文件对应我们的项目,程序文件中存储的是编写的python代码,在一个项目文件中,可以有一个或多个python程序文件。具体操作流程如下, STEP1:创建与保存项目文件 (1)启动Mind+软件,点击右上角的“Python模式”, (2)点击左上角“代码”选择编程方式, 之后我们会看到下面这样的屏幕,右侧是文件目录区,左侧分别是代码编写区和终端区。 (3)创建完成后,点击左上方项目菜单中的“另存项目”, (4)在弹出的界面中选择保存位置,输入文件名“m趣味数字电导仪”,保存类型“mind+” Tips:文件名称可自取,上述文件名中的“m”指代“micro:bit”。 STEP2:创建与保存python文件 (1)点击“文件系统”, 之后会显示出文件目录,也就是python程序文件所保存的区域, (2)点击“项目中的文件”栏中的加号, 之后,会弹出一个空白输入框, (3)在弹出的输入框中写入“任务1土壤湿度检测.py”并回车确认,如下左图, 这样我们就成功创建一个名为“任务1土壤湿度检测.py”的python程序文件了, Tips:python程序文件一定要以“.py”格式结尾才能进行编程,否则无法打开。 (4)打开文件 创建完成后,我们双击“土壤湿度检测.py”文件即可对该文件在程序编写区内进行编程,图示如下。 STEP3:安装pinpong库 pinpong库是一套用来控制开源硬件的Python库。 (1)点击库管理 (2)安装pinpong库 程序编写、运行及回顾: STEP1:编写Python程序
STEP2:运行程序并观察效果 (1)在运行程序之前,我们需要先手握土壤湿度传感器未镀金部分,将其插入土壤中,并打开I/O扩展板的蜂鸣器开关。 (2)点击右上方的运行按钮 首次运行后,mind+会自动给micro:bit板子烧录一段特定的程序,我们称之为固件。通过给micro:bit板子烧录固件能够将硬件设备与软件连接起来,继而依靠软件程序控制硬件运行。 (3)观察效果 我们可以听到扩展板先发出滴的一声,随后在micro:bit点阵屏上显示出数值0,并且在软件终端界面中同样显示一个数值0。之后,每隔5秒重复一次。这里的“0”,就是输出的电信号对应的模拟值。初始值为0是因为传感器执行检测的程序需要一定的时间,并不表示土壤中无水分。 STEP3:回顾程序 我们用 python 代码实现了项目功能,现在让我们一起来回顾一下,看看程序是如何工作的吧。
4.调试修改 通过上述实验,我们已经成功实现了每隔五秒对土壤的湿度进行一次检测。并且我们已经知道,传感器之所以能检测到电流,归根结底是因为土壤中的水分能够导电,使得土壤与传感器之间形成了电路。因此,倘若将土壤替换成同样能够导电的物质,例如铜片,我们依旧能够检测此时的电流强度,也就能以此来比较一下不同物质的导电能力到底孰强孰弱了。 STEP1:将土壤湿度传感器的镀金端插入水中,观察数据的变化。 STEP2:自建一个Excel文件,将上述数据记录下来,并以csv格式保存。如下图, STEP3:将土壤湿度传感器金属端压在铜片上,使其充分接触,观察数据的变化并记录在上述表格中。 任务2:数据可视化 由于记录的表格数据并不能非常直观得呈现水和铜的导电能力强弱,因此,在这个任务中,我们将对上述检测到的数值可视化处理,进而分析两者的导电能力强弱。这里,我们将数据以折线图形式呈现即可。 1.数据可视化与分析 软件设置: STEP1:创建与保存python文件 创建一个python程序文件“任务2数据可视化.py”,双击打开。 STEP2:安装库 (1)点击库管理 (2)安装matplotlib库 (3)安装pandas库 STEP3:导入数据文件(见附录2) 将自己记录的表格数据文件存放入python程序文件所在文件夹,使其在同一目录下。 程序分析、编写及运行: STEP1:分析程序 我们知道常见的数据采集方式有传感器采集和网络采集两种,这里我们已借助土壤湿度传感器,采集到了水与铜片的数值并记录在表格文件中,而为了便于对数据进行读取和分析,我们依旧通过编写程序使其以图表形式呈现出来。(程序中使用的参考数据表格见附录2) 这里,我们将采用顺序结构的方式编写程序。具体流程如下, STEP2:编写Python程序
STEP3:运行程序并分析数据 (1)运行程序,我们看到csv表格中的数据以图表的形式呈现了出来。 (2)观察上图,我们可以清楚地发现,在20℃的温度下,随着检测时间的增加,水与铜片的模拟值逐渐趋于稳定,并且金属铜的模拟值大于水的模拟值。因此我们可以得出结论,在相同的条件下,铜的导电能力强于水。 六、巩固提高 1.项目小结 本节课我们以micro:bit、扩展板及土壤湿度传感器为器件自制了一个电导仪,探究分析了水与铜的导电性能强弱。首先通过土壤湿度传感器检测土壤的湿度模拟值,之后以此方式采集水和铜片的数据,最后将测得的数据以折线图的形式可视化出来并加以分析。 2.项目拓展 经过上述的实验探究,我们已知在相同的条件下,水的导电能力是弱于金属铜的。这也变相解释了为何生活中常见的一些电缆线里面的材料往往是铜丝。不仅因为铜这种金属易得,更因为它的导电能力强。 那么对于水来说,是否可以通过变化外在的一些条件,使其导电能力增加呢?比如,改变水温。让我们按下列步骤完成第一个拓展探究吧! STEP1:在烧杯中倒入30ml接近100℃的开水,将传感器金属端轻轻插入其中,观察结果并记录在下表, STEP2:将开水替换为50℃左右的温水,重复上述操作,观察结果并作记录, STEP3:将温水替换为接近0℃的冰水,重复上述操作,观察结果并作记录。 想一想,上述结果形成的原因是怎样的呢?!而除了水和铜之外,宇宙中还有什么自然物质或人造物质能够导电呢?拿上我们的数字电导仪,对生活中常见的一些物质进行一次检测吧!看看他们的导电性能如何呢?!(如:木头、石头、硬币) 附录 附录1
附录2 数据文件 链接:https://pan.baidu.com/s/1uhJ-dbUmO1UNCQ8qjFqKYg 提取码:wmvc |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed