查看: 2793|回复: 1

[项目分享] 解决一个学生题目:使用microbit作为气温计

[复制链接]
本帖最后由 pATAq 于 2018-6-15 20:12 编辑

前言

原创文章,转载引用务必注明链接。水平有限,如有疏漏,欢迎指正。

本文缘起一个群友学生家长问我一个作业,

作业要求:将温度转化为数字并且用led的数量显示

比如:前两排代表十位数,之后两排代表个位数,最后一排代表正负。

及格标准:能把代表温度的两位数分离为两个一位数并在led屏幕上显示出来。

1、需求及难点分析

想一想现在的初中生作业挺厉害哇,我那时候初中还是win98/dos系统,哪有这些东西玩。想了一下,主要涉及温度获取——数据拆分——生成矩阵——led显示。初步使用MakeCode来完成,最后把各部分组合起来就行了。

需要处理的知识:

  • 读取温度值,mb获取的是两位整数且无小数部分(超过99℃的估计mb已经不能运行了)。根据省电原则,若低于0℃则第5行(y=5)全亮,并且温度值取反|取绝对值
  • 将温度的绝对值赋值给temp,分别取得其高位和低位值,MakeCode里没有直接提供取整只有取余函数,需要我们自己转换一下或者用JavaScript写。
  • 每行5个灯,适配了10进制,但是大于5的就要进行处理到下一行
  • 使用for循环点灯,类似于电视的逐行扫描

代码如下:

https://makecode.microbit.org/_LT0gR5Wr24Vh

需要注意的点

  • 每次调用温度函数都会进行一次读取,所以我们读取一次进行判断
  • 不要调用基本里面的显示LED来显示一行并试图拼接,会覆盖剩下的led点亮
  • 自定义实现取整函数要注意 % 10以获得个位数
  • 超过5的值要记得减去5在次行显示

2、总结

  • 使用Blocks拖拽真的非常繁琐,好在MakeCode提供手写函数和直接JavaScript进行辩解
  • 入门JavaScript可以看看w3school.com.cn
  • 因为熟悉Python,后期可以使用microPython进行编程


截图201806152012399971.png

gada888  版主

发表于 2019-5-29 07:07:13

可以做课件了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail