时间:2024-05-07
吴俊杰
创客项目的评价往往是一个很多人都关注的问题,我在教学中更加倾向于一个创客作品中成本和产出之间的差距、创客作品的可分享性和创客作品分享之后其他人的效仿情况。在2016年的全国电脑作品比赛中,中央电化教育馆首次引入了创客项目,其评审标准包括规范性、创新性、技术性和艺术性,其中规范性的一个重要指标就是这个作品是否有一个他人可以效仿的技术文档。Mixly开源项目设计的写作过程也是一个比较规范的技术文档的写作过程,就像语文教材中的名家名篇和标准范文告诉学生如何用文字来叙事状物一样,创客教材中的文字能够帮助学生写好一篇规范、逻辑清晰、叙述清楚的技术文档,如果能够融合适当的个人风格就更好了。本次,我们将做一个很简单的创客项目——新旧电池检测器。
● 制作:信息的输入
在UNO控制板的规范中,USB口向上,右侧为数字输出,左侧为电源和模拟输入,电源区常用的端口为5V和GND,5V代表USB输出电压,也是板子上端口的最高电压,之前我们点亮一个LED时,会将LED的正极的电压升高到5V,但是数字输出引脚的电流输出能力很弱,不能驱动像舵机一类的大电流元器件,这时需要使用电源区的5V引脚,GND表示0V。模拟输入区有A0、A1、A2、A3、A4、A5共计6个模拟输入引脚,每个孔相当于一个电压表,其输入范围为0~1023的整数,0对应0V电压,1023对应5V电压,具体的对应关系,我会在玩转环节中具体介绍。
像普通的电压表一样,我们需要连接一个正极的红色夹子和负极的黑色夹子。用一个夹子夹住另一个夹子,拨去夹子的绝缘套,在夹子的孔中穿入导线,穿两圈,拧紧导线,再将绝缘套套回。导线的长度大约为45cm,一端连接夹子,另一端连接控制板,需要提前拨线,如图1、图2所示。
红色导线相当于电压表的正极(红表笔)将其连接到A0上,黑色导线相当于电压表的负极(黑表笔)将其连接到GND上,连接需要使用两头长排针和绕线棒(如图3)。
实验发现,在黑表笔接电池负极、红表笔接电池正极的情况下,当电池为新电池时,图3中的LED亮;当电池为旧电池时,LED不亮。这样我们就完成了一个初步的新旧电池检测器的研发工作(如图4)。
● 改装:增加指示灯
从系统的美观和安全性的角度考虑,最好不要把电路板裸露在外,可以将LED引出在盒子上,这样更加美观,还可以在盒子上写出新旧电池检测器的使用方式。在此之前,我们一般将LED直接插在数字输出端口上,但是从更加专业的角度来看,应该在LED的正极或者负极一端串联一个保护电阻,这样能够让LED的使用寿命更长,电阻又起到限制电流的作用。一般来说,绿色LED的工作电压为2V,D13端口电压为5V,LED的工作电流为10mA即0.01A,这样保护电阻两端的电压就是5V-2V=3V,其通过的电流也是0.01A,通过欧姆定律可以测算出保护电阻的阻值为其两端的电压除以通过它的电流,数值为3V/0.01A=300欧姆(如图5)。这体现出,在创客项目中需要综合利用各个学科的知识特别是物理学的知识的特点。
电阻和LED的负极相连,需要用一段导线将针脚串联起来,保护电阻的另一端接GND,LED的正极接D13端口,这样我们就将LED固定在了盒子上(如图6)。
● 玩转:“如果……否则……”结构
我们在使用通讯菜单中的“打印串口(自动换行)”指令时,可以查看A0端口的数值(如图7)。
在串口查看器中我们注意到A0端口的数值在不断变化,这种变化是由空气中的随机电磁干扰造成的(如图8)。
但是我们在将A0端口和5V端口连接的时候,会发现串口监视器的数值变为1023,并且处于稳定输出状态(如下页图9)。
既然要判断电池的电压是否大于1.5V,我们可以将一节电池放在A0端口上,实验发现数据始终保持在320左右,而旧电池在300以下。这个现象可以解释为:A0端口的数值和输入电压成正比,1.5V可以换算为(1.5V/5V)×1023=306.9,由于A0端口输入值为整数,我们可以判断当A0端口数值大于307的时候13号灯亮,否则13号灯灭(如图10)。
在Mixly中使用如果指令时需要在如果指令中添加否则结构,这就需要点击如果菜单中的齿轮按钮添加否则指令。在“如果……否则……”结构中设定逻辑判断值为真时,端口13数值为高,LED灯亮,逻辑判断值为假时,端口13的数值设为低,LED熄灭(如图11)。这样就完成了LED的设置,可以用于检测电池的新旧。
● 分享:在网络上寻找问题的答案
我在实验中发现,不做测量时LED一直都在闪烁,产生这个现象的原因是在A0端口空载时,数值会受到空气中随机电磁干扰的影响,一直变化,数值有时大于307,有时小于307,所以LED会闪烁。分享本身并不总是告诉他人一个已经很完整的问题解决方案,一个有待解决的问题也是非常值得分享的,它能够细致而规范地描述这个问题。大家可以参考www.dfrobot.com.cn上的各种社区上的帖子,看一看有没有人提过类似的问题,或者向他人提问寻找答案,这些经历都是非常重要的学习过程(如图12)。
至此,我们已从数字输出端口的学习,转向数字输入端口的学习,并且通过程序逻辑将输入和输出结合起来,虽然这只是一个比较简单的“如果……否则……”结构,但是已经能够看出一个项目学习的雏形,接下来有必要改进这个设计,一是解决LED闪烁的问题,二是希望提高测量的精度,真正做一个电压表。我们在这个过程中不断地发现问题和解决问题,同时这个过程是积极主动的,是创客教育中非常独特的一种学习体验,而且估算成本以后,我们可以发现“新旧电池检测器”是一个很实用的“市场空白”,此时解决这个问题的动力就更大了。
亲爱的读者,您能解决这个问题吗?答案见下期。
本案例的分享视频将会在以下公众号中陆续登载。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!