2022-11-11 10:29:02 [显示全部楼层]
13141浏览
查看: 13141|回复: 2

[教程] 【行空板图形化Python入门教程】第10课:肺活量测量仪

[复制链接]
第10课 肺活量测量仪

肺活量测量是用来检测心肺功能的项目,测量的时候通常要求人深吸一口气然后对着呼气口吹气,通过检测呼出气体的体积反应心肺功能。今天我们就用行空板来模拟一个肺活量测量仪,一起来看看如何制作吧。

【行空板图形化Python入门教程】第10课:肺活量测量仪图1



任务目标

按下A键,开始测量,通过对着行空板呼气模拟肺活量的检测过程,同时进度条实时显示你的肺活量达标情况;多次测量肺活量后,会显示最后三个测量数据。

注意:肺活量测量仪只是对肺活量测量过程和效果的简单模拟,并不能真的用于测量肺活量。



知识点

1. 掌握程序中的列表的基础使用

2. 认识程序中的条件循环语句

3. 认识程序中的多分支条件语句

4. 掌握行空板上绘制线段的方法

5. 掌握行空板获取声音强度的方法


材料清单

1. 硬件清单

【行空板图形化Python入门教程】第10课:肺活量测量仪图2

行空板x1


【行空板图形化Python入门教程】第10课:肺活量测量仪图3

Type-C&Micro二合一USB线x1


2. 软件使用

Mind+编程软件x1,下载地址:https://www.mindplus.cc

【行空板图形化Python入门教程】第10课:肺活量测量仪图4


动手实践

肺活量测量仪的主要功能是通过统计呼气时长来显示肺活量情况,自动记录测量数据。接下来我们就分两个任务来制作吧。

任务一:获得肺活量数据

在此任务中,我们将学习利用行空板麦克风,模拟肺活量的测量,同时通过进度条显示肺活量达标情况。

任务二:自动记录测量数据

基于已统计的肺活量数据,我们将学习列表的基本操作,记录并显示多次测量数据。


任务一:获得肺活量数据

1. 硬件搭建

使用USB连接线将行空板连接到计算机。

【行空板图形化Python入门教程】第10课:肺活量测量仪图5


2. 软件准备

打开Mind+,按照下面图示完成软件准备过程。

【行空板图形化Python入门教程】第10课:肺活量测量仪图6


3. 编写程序

肺活量测试的过程中需要手持测量仪并吹气,那么用行空板如何检测吹气,并获得肺活量数据呢,接下来我们一起看看吧。

(1) 获得肺活量数据

(a)判断吹气

我们是通过获取声音强度来判断人是否在吹气的,获取麦克风响度数值指令为 读取麦克风声音强度 ,你可以在指令区“行空板”分类下的“板载传感器”里寻找该指令。

注意:行空板正对你时,麦克风位于行空板上方左侧(如下图)。关于行空板麦克风知识,参见“知识园地”

【行空板图形化Python入门教程】第10课:肺活量测量仪图7


【行空板图形化Python入门教程】第10课:肺活量测量仪图8


找到后,可以直接在行空板屏幕上实时显示麦克风声音强度数值,观察吹气与否的数值变化。

【行空板图形化Python入门教程】第10课:肺活量测量仪图9


注意:你可以使用远程桌面连接行空板,方便观察数据变化。

【行空板图形化Python入门教程】第10课:肺活量测量仪图10


数据方面,在没有吹气时,你看到的是当前环境声音强度;接着,你可以对着行空板上方有话筒图标的地方吹气,观察声音强度数值,基本上都在40以上。

【行空板图形化Python入门教程】第10课:肺活量测量仪图11


没有吹气,环境声音强度

【行空板图形化Python入门教程】第10课:肺活量测量仪图12


吹气,声音强度明显增加

因此,我们可以通过声音强度数值来判断现在是否有人吹气。

(b)获得肺活量数据

肺活量数据是通过人持续吹气获得,于是需要使用变量来记录持续吹气的状态,它的实现过程就变成了开始吹气后,变量持续增加,直到吹气停止。也就是说,可以通过 重复执行直到 控制 肺活量数据变量 ,持续增加,直到声音强度小于40停止收集数据。

注意: 重复执行直到 是条件循环语句,它位于指令区的“控制”分类下。关于该指令的介绍,详见“知识园地”

【行空板图形化Python入门教程】第10课:肺活量测量仪图13


至于按下A键开始测量,本节课我们要使用到的是 按钮A被按下 ,它在指令区“行空板”分类下的“板载传感器”里,如果 按钮A被按下,那么开始测量肺活量。

【行空板图形化Python入门教程】第10课:肺活量测量仪图14


(2) 显示达标情况

在实际测量肺活量过程中,根据不同的年龄对应着不同的及格标准。本课项目中使用进度条来显示肺活量情况,并加入“达标线”提示测试者是否达标,下图展示了进度条的组成情况。

【行空板图形化Python入门教程】第10课:肺活量测量仪图15


达标线要使用行空板“显示线段”指令 对象名 显示线段起点X0Y0终点X240Y320线宽1颜色蓝 ,在“显示矩形”指令上方,你也可以通过“线段”关键字找到它。

【行空板图形化Python入门教程】第10课:肺活量测量仪图16


【行空板图形化Python入门教程】第10课:肺活量测量仪图17


然后,通过进度条的组成和位置计算矩形相关参数和线段起终点坐标。需要说明的是,达标线可以根据比例来设置位置,比如表示60%的刻度,参考下图即可完成计算。

【行空板图形化Python入门教程】第10课:肺活量测量仪图18


现在你就可以根据肺活量数据和进度条宽度,调整进度条的变化,当然也可以适当加入一些提示内容,完整参考代码如下:

【行空板图形化Python入门教程】第10课:肺活量测量仪图19


4. 程序运行

点击运行,显示“肺活量数据”和0;按下A键,提示音响起,开始对着行空板麦克风吹气,观察进度条变化。

【行空板图形化Python入门教程】第10课:肺活量测量仪图20


5. 试一试

我们现在已知进度条外框宽度为200,假设对应的肺活量数据为2000,请你动手设置当肺活量数据超过2000时,进度条不要超出外框。

【行空板图形化Python入门教程】第10课:肺活量测量仪图21



任务二:自动记录测量数据

1. 编写程序

在任务一中,你已经可以测量肺活量数据,那如何把测量过的数据记录并显示出来呢?一起来学习吧。

(1) 记录测量数据

记录测试过的数据,可以使用“列表”变量来完成,你可以把“列表”理解成程序中的“表格”,相关操作指令在指令区“列表”分类下。

注意:关于“列表”知识的介绍,参见“知识园地”

【行空板图形化Python入门教程】第10课:肺活量测量仪图22


把历史数据记录进“列表”,需要先建立一个空的“列表”变量,即建立 数据表变量 并赋值为 初始化列表[] ,记得删去指令中的内容。

【行空板图形化Python入门教程】第10课:肺活量测量仪图23


然后,在肺活量数据测量完成之后,将肺活量数据加入到列表。向列表加入数据的指令为 列表[]将0添加到末尾 ,使用时,将 变量数据表变量肺活量数据分别填入即可。

【行空板图形化Python入门教程】第10课:肺活量测量仪图24


(2) 显示测量数据

首先先建立好三个显示测试数据的对象。

【行空板图形化Python入门教程】第10课:肺活量测量仪图25


接下来显示的数据内容,其实就是把列表里的数据取出来,要使用指令 列表[]索引0的值 来完成,需要说明的是,列表的索引就是列表的第几个元素,其中第一个的索引是0。

【行空板图形化Python入门教程】第10课:肺活量测量仪图26


显示测量数据,一共有三种情况,第一次测量只显示第一个数据,索引为0;第二次测量显示前两个数据,索引分别为0和1;三次及以上的测量则显示最后三个数据。

具体实现上,需要使用 列表[]的长度 指令,帮助判断当前列表有几个数据,并对应更新列表数据内容。

【行空板图形化Python入门教程】第10课:肺活量测量仪图27


【行空板图形化Python入门教程】第10课:肺活量测量仪图28


对于第三种情况,显示列表的最后三个数据,这三个数据的索引是 列表长度 分别减1,减2,减3,你可以使用 列表[]的长度 指令获取并更新数据显示对象。

【行空板图形化Python入门教程】第10课:肺活量测量仪图29


三种情况的判断需要使用可变分支条件语句 如果那么执行(带“+”号),点击两次加号,即可完成多条件语句的设置。

【行空板图形化Python入门教程】第10课:肺活量测量仪图30


注意:关于多分支条件语句介绍,参见“知识园地”。

最后,完善三种情况的数据显示并给对应数据加上提示信息,本节课的案例就完成啦。完整参考代码如下:

【行空板图形化Python入门教程】第10课:肺活量测量仪图31


2. 程序运行

按下A键测量肺活量,多次测量后显示最后的三个测量数据。

【行空板图形化Python入门教程】第10课:肺活量测量仪图32



知识园地

1. 程序中的列表知识


列表(List)是用来存储多个数据的数据类型,其中每个数据都有一个“索引”来表示它在列表中的位置。你可以类比生活中的表格,对列表进行读取、添加、删除、修改等操作,但不同于表格的是,对于有元素的列表,通常第一个数据元素索引为0。

【行空板图形化Python入门教程】第10课:肺活量测量仪图33


在Python中,列表是由“[]”构成,里面什么都没有,叫做“空列表”;若有两个或以上的数据元素,元素与元素之间需要用英文“,”间隔起来,如[0,”Mind+”,12.5,”行空板”]。

另外,列表和数字都是Python中基础的数据类型,关于Python的其它基础数据类型,如字符串、字典等,我们将在后面的课程中继续介绍。

在图形化指令中,你可以在指令区“列表”分类下找到 操作列表的指令 。比如,创建列表指令 初始化列表[] ,向后添加元素指令 列表[]将0添加到末尾 等等,你可以自己尝试或者上网查询这些指令的含义和用法。

【行空板图形化Python入门教程】第10课:肺活量测量仪图34


2. 程序中的条件循环语句

条件循环语句是指 重复执行直到 ,它是循环结构语句中的一个,它的执行过程是,先判断“直到”后面的条件是否满足,如果满足就停止执行“重复执行”里的语句,它的代码执行流程可以被描述成下面右边的图片。

【行空板图形化Python入门教程】第10课:肺活量测量仪图35


3. 程序中的多分支条件语句

多分支条件语句是 如果 那么执行 否则如果 那么执行 否则 语句,是条件判断语句中的一种。它通常被用来做两个以上可能性的判断,你可以点击“+”号增加判断情况,也可以点击“-”号减少判断情况。

以三种情况的判断为例,下图左边的执行过程是:判断条件1是否成立,成立就执行代码语句1,否则判断条件2是否成立,成立就执行代码语句2,否则执行代码语句3,它的代码执行流程可以被描述成下面右边的图片。

【行空板图形化Python入门教程】第10课:肺活量测量仪图36


4. 行空板板载麦克风

当行空板正对你的时候,行空板板载麦克风位于行空板上方左侧。它是电容硅麦克风,小巧且灵敏度较高,可以用来获取环境中的声音。

【行空板图形化Python入门教程】第10课:肺活量测量仪图37


行空板板载麦克风和加速度传感器、光线强度传感器一样,都属于板载传感器,所以你可以在“行空板”“板载传感器”分类中找到 读取麦克风声音强度 指令,获取环境音量数值。

【行空板图形化Python入门教程】第10课:肺活量测量仪图38


麦克风强度数值是一个百分比值,范围为0-100。这个数值和电脑麦克风音量值一样,根据麦克风灵敏度,录入的音频响度会有一个范围,最小的可录入音量对应0,最大对应100,如果超过最大音量依然会按最大音量录入。需要说明的是,行空板板载麦克风,只可以通过百分比定性的分析音量的大小。

【行空板图形化Python入门教程】第10课:肺活量测量仪图39


5. 指令学习

本项目主要使用了学习了行空板麦克风声音强度、列表操作等指令,接下来我们就详细学习一下。

【行空板图形化Python入门教程】第10课:肺活量测量仪图40


该指令用于获取板载麦克风接收的声音强度数值。



【行空板图形化Python入门教程】第10课:肺活量测量仪图41


该指令用于判断行空板A/B键是否被按下。



【行空板图形化Python入门教程】第10课:肺活量测量仪图42


该指令用于在行空板屏幕显示线段对象,在指令中可以设置对象名、线段起终点坐标、线宽以及颜色。



【行空板图形化Python入门教程】第10课:肺活量测量仪图43


该指令用于建立并初始化一个列表。



【行空板图形化Python入门教程】第10课:肺活量测量仪图44


该指令用于获取列表的长度。



【行空板图形化Python入门教程】第10课:肺活量测量仪图45


该指令用于在列表的尾部添加元素数据。



【行空板图形化Python入门教程】第10课:肺活量测量仪图46


该指令用于获取列表第“索引”个数据。使用时需要写明列表和索引内容,其中索引0为第一个数据,索引不能超过列表长度。



【行空板图形化Python入门教程】第10课:肺活量测量仪图47


该指令用于设置条件语句,点击“+”号,可增加判断的情况;出现多种情况后,点击“-”号,可减少判断情况。


06

挑战自我


在本项目中你已经完成了肺活量测量和历史数据显示,但在班级场景下的肺活量测量通常需要记录每个同学的测量数据,现在请你自己动手丰富你的肺活量测量仪,完成以下任务:

(1) 为你的肺活量测量仪设计一个开始页面,此页面包括选择学号部分,点击“+”“-”按钮选择学号,以及操作文字说明,你可以参考下图设计;

【行空板图形化Python入门教程】第10课:肺活量测量仪图48


(2) 多次测量任务,按下A键,开始测量,进入测量页面,包含进度条和学号及对应历史数据;按下B键,屏幕返回学号选择页面,重新开始选定测量学生;

【行空板图形化Python入门教程】第10课:肺活量测量仪图49


按下A提示音响起,开始测量页面显示进度条和历史数据


【行空板图形化Python入门教程】第10课:肺活量测量仪图50


按下B上传数据,返回学号选择页

附件下载
下载附件第十课 肺活量测量仪.zip

jenniferya  学徒

发表于 前天 14:41

1.肺活量用声音传感器准确吗?为什么不是用压力传感器 2.肺活量的值是循环里面每次加1  而不是加当前声音值  这样我测试的结果偏小 我每次只有300-400
回复

使用道具 举报

ki123456  中级技师

发表于 前天 14:50

本帖最后由 ki123456 于 2024-4-24 14:52 编辑
jenniferya 发表于 2024-4-24 14:41
1.肺活量用声音传感器准确吗?为什么不是用压力传感器 2.肺活量的值是循环里面每次加1  而不是加当前声音值  ...

这是一个针对板载传感器的练习,你可以把它当作一个模拟游戏,并不能正确显示肺活量。压力传感器也是一种可以用于模拟的方式。这里变量加1,是用来统计呼气时长的,你也可以试试加当前声音值(响度代表吹起力度)。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail