16567| 1
|
[M10教程] 【行空板图形化Python入门教程】第09课:健身打卡追踪器 |
第09课 健身打卡追踪器 众所周知,经常健身可以塑形,保持身体健康,在众多健身方式中,跑步作为一种简单又有效的健身方式被人们所喜爱。然而,健身最难的是坚持,今天我们就使用行空板制作一个健身打卡追踪器,设定一个目标,让行空板记录你的跑步情况吧。 任务目标 跑步时晃动行空板,行空板屏幕实时显示当前跑步步数,以及达到给定目标的进度情况。 知识点 1. 掌握绘制进度条的方法 2. 掌握行空板加速传感器的使用方法 材料清单 1. 硬件清单 行空板x1 Type-C&Micro二合一USB线x1 2. 软件使用 Mind+编程软件x1,下载地址:https://www.mindplus.cc 动手实践 健身打卡追踪器的主要功能是统计步数,并根据目标步数显示达成进度。接下来我们就分两个任务来制作吧。 任务一:获得实际步数 在此任务中,我们将学习加速度传感器的使用方法,并利用加速度传感器完成跑步步数的统计和显示。 任务二:显示目标完成进度 基于已统计的步数,我们将结合给定的目标,学习利用矩形制作进度条,实时显示运动目标的达成情况。 任务一:获得实际步数 1. 硬件搭建 使用USB连接线将行空板连接到计算机。 2. 软件准备 打开Mind+,按照下面图示完成软件准备过程。 3. 编写程序 你一定听说过微信运动里的计步功能,它是通过检测手机的晃动来完成计步的,这与行空板计步原理相似,那具体如何实现呢,接下来我们就一起学习一下。 (1) 检测晃动 行空板晃动实际上是行空板由静止突然移动再静止的过程,需要使用行空板自带的加速度传感器,通过它的数值变化判断行空板是否被晃动。获取加速度数值指令是 读取加速度的值x ,你可以在“行空板”的“板载传感器”分类下找到并拖出指令,然后切换“x”为“强度”。 注意:关于加速度传感器的知识,参见“知识园地”。 现在你可以把获得的加速度数值实时显示在行空板屏幕上,并使用 等待 指令让数据变化慢一点,方便观察晃动前后的数据。 当行空板静止时,数据为1左右,且不会有太大的变化;当行空板晃动时,数据会出现大于1.5的情况。 行空板静止 晃动行空板 因此,我们可以选择大于1.5的数值作为行空板晃动的判断依据,也就是说,如果加速度传感器强度数值大于1.5,就可以计步数加一。 (2) 统计步数 我们已经知道如何去判断行空板晃动了,现在就来完成步数统计和显示吧。 首先,建立 实际步数变量 ,并在程序开始处将 实际步数变量设为 为0。然后只要在判断晃动条件满足后,显示并增加变量即可。 为了更清楚的说明数据含义,你可以在实际步数数值上方加一行文字说明,并对显示内容如坐标、字体等进行一定的调整,完整参考代码如下: 4. 程序运行 点击运行,显示“已完成步数”和实际步数数值0,晃动行空板实际步数增加。 任务二:显示目标完成进度 1. 编写程序 通过上一个任务,我们已经可以成功统计实际步数,接下来就来根据给定的运动目标,显示目标达成进度吧。 为了更好的展示目标达成情况,项目中增加了一个进度条。进度条是由一个空心矩形外框和实心矩形构成。 这里的矩形外框宽度表示目标步数,而进度条的宽度表示实际步数,当实际步数越来越多时,进度条会不断变长,直到达到目标步数。所以,在设置进度条坐标的时候,要注意矩形外框和实心进度条的坐标一致,另外,开始的时候实心进度条宽度为0。 至于进度条矩形的宽度变化,需要根据目标步数的完成比例来处理,而完成比例=实际步数/目标步数,进度条的当前宽度=完成比例*进度框的宽度,若设定目标步数为1000,则有:进度条的当前宽度=完成比例*160。现在我们建立 完成比例变量 ,然后通过计算并更新进度条宽度即可。 另外,在进度条宽度变化的过程中,还有一种情况就是如果实际步数超过了目标进度,进度条就会超出矩形外框。 此时,我们可以判断目标和实际步数的关系,如果实际步数超过1000(目标步数),进度条宽度固定为160,否则遵循按比例显示宽度。 至此,我们就已经完成了案例的核心功能,完整示例代码如下: 2. 程序运行 检查行空板连接情况,点击运行,晃动行空板,观察实际步数和进度条的变化。 3. 试一试 现在你已经可以显示实际步数和目标达成进度了,请你试一试动手丰富健身打卡追踪器的页面和功能 : (1) 你可以参考下图,或者自己设计一个健身打卡追踪器背景页并适当调整文字内容、颜色等,让它看起来更好看吧; (2) 你可以参考下图设计一个目标设定页,使用加减号按钮修改目标步数值,确定按钮进入计步页面开始计步。 知识园地 1. 加速度传感器 加速度传感器,顾名思义是用来测量加速度的传感器,因为加速度是有大小和方向的,所以加速度传感器的数值也会有大小和正负变化,测量加速度的方向也可以有更多的情况,如竖直方向,水平方向。 行空板上内置了一个加速度传感器,它位于行空板背面。 行空板上的加速度传感器是一个三轴加速度传感器,它可以测量X,Y,Z三个方向的加速度。当行空板屏幕向上水平放置时,X轴正方向为金手指一侧的方向,Y轴正方向为Home按键一侧的方向,Z轴垂直于板子,正方向为屏幕背面一侧的方向。 我们通常使用 读取加速度的值x 来获得加速度传感器的数值,指令下拉菜单中的“强度”,表示的是x、y、z三轴加速度器数值的平方和再开方的结果。 加速度传感器的具体数值变化,是以重力加速度为参考的。以x轴加速度为例,我们将x轴加速度数值显示在行空板屏幕上,观察数值变化。 当你竖着拿行空板,金手指朝下时,x轴方向上只受到竖直向下的重力影响,屏幕上显示数值大小接近于1;金手指朝上时,受到的竖直向下的重力会指向光线传感器一边,屏幕上显示数值大小接近于-1。 当你将行空板水平放在桌面上,由于x轴方向没有重力加速度的影响,所以行空板屏幕上显示数值大小接近于0。 2. 指令学习 本项目主要使用了学习了行空板加速度传感器指令,接下来我们就详细学习一下。 该指令用于获得加速度传感器的数值,在下拉菜单中可以选择获取的是x、y、z轴或强度数值。 挑战自我 请你设计一个小球移动游戏,开始小球出现在上下左右任意一个位置,通过转动行空板,控制小球上下左右移动,比如,当小球出现在最右边,你需要向左转动行空板屏幕(如下图),控制小球向左移动。最终,小球移到屏幕中间,游戏胜利。 提示:小球随机出现的实现要使用到随机数指令,它在“数字”分类下,你可以找到 在1到10间取随机整数 ,并修改为1到4之间。 然后将小球的四个位置坐标分别与数字相对应,你可以参考下图来进行实现。 附件下载 第九课 健身打卡追踪器.zip |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed