查看: 1558|回复: 5

[入门教程] Mind+ 掌控板入门教程12 电子秒表

[复制链接]
本帖最后由 EVE 于 2019-5-9 09:50 编辑

【Mind+】掌控入门 项目十二 电子秒表

-DFRobot官方出品
上一篇:【Mind+】掌控入门 项目十五 家庭噪音数据分析

下一篇:敬请期待

      在运动会上,很多体育项目需要裁判记录时间来代表运动员的成绩,秒表就是一种常用的测时仪器。秒表主要有机械秒表电子秒表两大类,由于电子秒表具有显示直观、读取便利、精度高等优点,所以使用更为广泛。

      利用掌控板不仅可以做出一个可以计时的电子秒表,还可以结合按钮实现分次计时,让我们一起来动手试试吧!

12-1.png 12-2.png   

项目示例

      电子秒表显示时间的格式为60进制的“00:00.00”,表示分(00-59)秒(00-59)精度(00-99)。秒后保留两位小数代表时间精度为0.01秒。读取秒表的方法非常简便,如下图可读为5分28秒36或5分28.36秒。

12-3.png

      电子秒表上一般会有3-4个按键,控制秒表的启动、暂停、复位和分次计时。本项目中,我们将利用掌控板上的按扭A控制启动或暂停按扭B控制分次计时,掌控板背部自带的复位按键实现复位

    可通过以下三个小任务进行实践:

  • 任务一:以“00:00.00”格式显示时间

  • 任务二:按下按钮A控制计时的启动、暂停

  • 任务三:按下按扭B进行分次计时

任务一:显示时间

      在掌控板屏幕中央以以下格式显示计时中的时间。

12-4.png

      输入以下程序,并将程序上传。

12-5.png

* 程序中对变量“分”、“秒”的计算其实就是将10进制数转换为60进制,关于进制转换的知识见本文知识拓展。

运行结果:屏幕中央显示实时计时时间。

12-6.jpg

      程序中设置了“分”“秒”“精度”三个变量,对应掌控板上的“00:00.00”。我们知道1分钟有60秒,1秒钟有100个0.01秒。所以需要将指令 12-7a.png 获得的实时时间进行一些数学运算得到三个变量的数值。

      如下表,当 12-15.png 为11685231毫秒时,转换为60进制的时间为3小时14分钟45秒23。

12-7b.png

小试牛刀:尝试在屏幕中央显示当前系统运行时间,效果如下。

12-8.png

任务二:启动与暂停

      接下来,我们将学习使用按钮A控制秒表的启动和暂停。参考程序:
12-9.png
12-10.png


      运行结果:程序运行后,屏幕中央显示00:00.00。当按下A键,开始计时,再次按下A键,计时停止。如此循环往复。

任务三:分次计时

      按下按钮B进行分次计时,并将分次计时时间显示在掌控板上。参考程序:

12-11.png
12-12.png
12-13.png
运行结果:

12-14.png


知识拓展

软件知识

1、系统运行时间

      在Mind+中,指令 12-15.png 表示掌控板上程序开始运行后的实时时间。读取的时间单位为毫秒。分别输入下面两个程序,观察运行结果。

程序一:
12-16.png

程序二:
12-17.png

      运行程序一,屏幕左上角可看到不断变化的“系统运行时间”的数值。

      运行程序二,屏幕显示为空,当按下按钮A,屏幕左下角可看到当前的“系统运行时间”值。

      对比上面两个程序,可以发现“系统运行时间”只与程序什么时候开始执行有关系,与程序中的输入、输出无关。

2、进制

      进制是人为定义的一种带进位的计数方式。

      生活中描述身高185公分、钱10元、学生56个,采用的都是十进制,十进制是逢10进1的计数方法,每一位的数值为0-9。钟表计时中,1个小时为60分钟,1分钟为60秒,为六十进制计数方法,逢60进1,每一位的数值为0-59

      此外,一天24小时,逢24进1,就是二十四进制;一星期7天,逢7进1,就是七进制;一年12个月,逢12进1,就是十二进制;而计算机中的数据只有 0 和 1,逢2进1,就是二进制

12-18a.png

3、进制转换

      不同进制之间的数可以相互转换,比如将六十进制的1小时25分钟可转换为十进制的85分钟(1*60+25=85)、十进制的30个月可转换为十二进制的2年6个月(30/12=2余6)。

      本项目的核心难点就在于将十进制 12-15.png 转换为六十进制的钟表时间。所以接下来,我们将举例说明十进制转换为六十进制的方法。可以采用除余法,过程如下:

12-18b.png

     12345秒(十进制)可转换为3小时25分45秒(六十进制)。

4、数字类型变量

      在Mind+中,所有的数字类型变量默认保留小数点后两位,如果设置变量值为1,在软件底层这个值为1.00。

12-18c.png

      下图为任务一中部分程序截图,作用是将小于10的变量“精度”补零后显示在屏幕上。

12-18d.png

      例如,当系统运行时间为35毫秒时,变量“精度”为3.00秒,补零过程如下:

12-18e.png

12-18f.png 中,“屏幕显示文字”指令会自动处理掉变量中小数部分的“.00”,以整数形式显示,所以不用考虑。

5、指令汇总
12-19.png
项目小结
  • 掌握 12-20.png 指令的意义和用法

  • 学习通过数学方法处理数据

  • 掌握计时器的编程实现

  • 了解进制、进制转换的概念

挑战一下

1、尝试将掌控板变成一个智能手表,在屏幕上显示时间、日期和星期几。

12-21.png

2、尝试用掌控板制作一个倒计时器。用户可以自定义倒计时时间,在屏幕上显示倒计时时间,倒计时完成后,发出警报声音,全部LED灯显示为红色呼吸灯。
12-16.png

电子秒表程序.zip

151.46 KB, 下载次数: 42, 下载积分: 创造力 -1

138347640882018  学徒

发表于 2019-4-24 16:38:56

运行出错!不对
回复 支持 反对

使用道具 举报

EVE  初级技匠
 楼主|

发表于 2019-4-24 18:09:35


刚刚在帖子里附了程序,可以下载运行看看,这个项目的程序有很多数据类型的转换,比如把字符串转成数字等等,如果不注意的话容易出错,希望可以帮到你哟
回复 支持 反对

使用道具 举报

138347640882018  学徒

发表于 2019-4-24 19:40:37

注意空格的清空作用就对了
回复 支持 反对

使用道具 举报

33  见习技师

发表于 2019-7-8 08:50:54

运行出错,怎么回事
回复 支持 反对

使用道具 举报

EVE  初级技匠
 楼主|

发表于 2019-7-8 09:42:51

33 发表于 2019-7-8 08:50
运行出错,怎么回事

下载压缩包程序试试看
回复 支持 反对

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

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

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

mail