机器人教育资料展示一个温度数字时,读者需要知道它是刚取得的读数,还是先前记录保留下来的最高或最低值。micro:bit的Max-min temperature logger公开课程,将currentTemp、max和min三个变量分别说明,并把后两项写入文本文件。这种安排让数据的时间范围成为具体学习对象。
currentTemp是来自板上内置传感器的当前温度读数。max只有在当前读数大于已有max时才获得新值,min则只有在当前读数小于已有min时更新。因此,新的当前读数出现,并不一定同时改写最高和最低记录。三项变量可以在同一个程序里比较,所表达的历史范围却不同。
用一组纯数学示意理解:假定此前最高值是八、最低值是二,随后当前值为五。这一个五没有超过八,也没有低于二,所以只凭当前读数已经改变,不能说两项极值也都改变。这些数字是本文自拟的比较,不是测温记录,不带真实环境或器件结果,也不提供控制程序。
课程另把极值保存于min.txt与max.txt两个文本文件。非易失储存的含义,是电源移除后内容仍保留。这里保留的是已有数据,不是说明断电期间传感器还在不断产生新读数。重新读到一项旧极值,与证明整个断电时段都被连续观察,是两种不同证据。
数值与文本也各有用途。文档解释,读出的文字转成整数后可以与当前温度比较,数值转成文本后可以写入文件。这个往返让变量比较与文件存储连接起来,却没有使它们成为同一种表示。文件里能够留下字符,仍需知道那些字符在程序中被当作哪个量解释。
首次没有已保存文件时,原课程将max和min初始化为当前温度。缺少文件因而不等于真实历史最高或最低为零;它只说明此前没有可读取的那份保存内容。课程还介绍读写错误处理,本文不转写代码或按钮动作,只保留数据来源与初始化的概念关系。
读数对象也不能扩大。原页提醒,温度传感器在处理器内部,通常读数高于周围空气。本文不据此给偏移修正或布置测量方法,更不将课程读数用作健康、安全或环境合格判断。所读正式页面首发未知,没有下载、烧录或运行实物。对课程资料整理,区分当前值、历史极值与持久保存,可以让一个数字说明自己究竟记录了什么。
信息来源
本文基于上述公开资料整理,未使用来源页面的图片、视频或嵌入媒体。