盛玉娇 DFRobot资深课程设计工程师,设计开发了“掌控板入门教程”“掌控板进阶教程”等科创类教程百余篇,收获超10万浏览量,曾荣获首届掌控板教学应用设计大赛三等奖。
教学背景
晾衣服是我们每个人家庭生活的日常。阳光是天然的消毒剂,紫外线可以杀灭螨虫、细菌和病毒等多种有害生物。晾晒衣物的最佳时间是上午10点到下午4点,尤其是中午12点到下午3点,此时紫外线最强,晾晒效果最好。而且衣物的晾晒时间不宜过长,一般3个小时就能起到作用。但是很多人将衣服洗完后,直接挂到太阳下长时间暴晒,这样可能会损害其正常寿命。另外,若是衣服晾在室外忘记收回,天气突变时会被打湿。这时,衣服又需要重新洗涤晾晒,费时费力。因此,我们需要一个智能化的晾衣架,能够在天气变化和晾衣结束时自动将衣物收进来。
教学目标
1.根据连线图进行实物连接,理解不同执行器的使用和接线方法。
2.理解舵机与电机的区别。
3.掌握邏辑运算符or和自定义函数的使用方法。
4.能够完成智能晾衣架程序的编写。
教学重难点
教学重点 掌握多条件判断函数的应用。
教学难点 掌握自定义函数的复用,并能够独立完成代码的调试。
教学准备
micro:bit、扩展板、舵机、水分传感器、光线传感器。
教学过程
一、情境导入
师:由于天气变化多端,我们在晾晒衣服时可能会碰到下雨的情况,衣服很容易被淋湿。白天晒出去的衣服晚上有时忘记收了,也会被第二天早上的露水打湿。除此之外,晾衣时间过长会导致衣服出现变黄或褪色等问题。同学们是否遇到过这种情况?你知道不正确的晾衣方法也会影响衣物寿命吗?
学生参与讨论,上网查阅资料并记录结果,进行分享:晾晒衣物的最佳时间段是上午10点到下午4点,尤其是中午12点到下午3点,此时紫外线功效最强。衣物的晾晒时间不用过长,一般3个小时就能起到作用。另外还要经常开窗,保持室内通风、透光、干燥。
教师总结:不正确的晾衣方法既浪费时间,又会折损衣物的寿命。所以我们要尽量避免这种情况,科学晾衣。
师:怎样科学晾衣呢?如果能有一个智能化的晾衣架就好了,能够在天气变化和晾衣结束时自动将衣物收进来。
学生回顾算法知识,思考本项目要通过哪种算法来实现。
二、项目实践
教师将学生分为三人一组,共同完成项目任务。
1.问题分解
师:请大家借助思维导图工具,对项目进行问题分解。
学生利用思维导图工具,分析装置的功能需求和设计需求。
教师总结:首先考虑智能晾衣架的必要功能,即自动晾衣,想一想自动晾衣有哪些条件可以在此条目下继续拆分;其次,为了实现自动晾衣的功能就需要有检测功能,需要检测的条件可以在此条目下继续拆分;再思考一下是否有补充功能,如手动操作的功能等,然后对拆分出的项目进行分析,并完成思维导图,如图1。
2.学习硬件知识
师:我们需要使用什么工具来实现衣架的伸出和收回呢?
教师引导学生讨论,引入舵机:舵机是一种可以指定控制位置(角度)的电机,可以通过程序指定控制舵机旋转的角度。
师:那么我们如何检测天气是否适合晾晒衣服?
学生小组讨论,教师提示:可使用水分传感器。水分传感器是一个利用湿度方式检测有没有水分的传感器,通过检测可知有没有下雨。将传感器放置在室外,当有雨水滴到花瓣状检测面上时,湿度增大,随之电压升高,我们便可以通过主控板得知室外下雨了。
师:白天和晚上有什么差别?如何检测白天和晚上呢?
学生小组讨论,教师提示:白天光线充足,晚上比较昏暗,所以我们可以通过光线的变化来判断白天和夜晚。这需要用到光线传感器。基于PT550环保型光敏二极管的光线传感器,可以用来对环境光线的强度进行检测。
学生以小组为单位,按照接线图将模块利用连接线组装好,如图2。
3.编写程序
师:调用示例程序“07.servo.py”就能控制舵机。在BXY软件中,依次点击“文件—示例—Basic—07.servo.py”即可打开示例程序。注意本项目中舵机接的引脚为P8,要将程序中的“Servo(pin0)”改为“Servo(pin8)”。
学生小组合作完成舵机转动程序的导入及修改,并测试其功能。
(注:使用舵机时,需要外接电源,从扩展板上电源接口供电,否则可能会出现舵机不转或者程序无法烧录的情况。)
师:使用示例程序“02.analogRead.py”即可读取水分传感器或光线传感器的数值。在BXY软件中,依次点击“文件—示例—Basic—02.analogRead.py”打开示例程序。
学生小组合作导入获取水分值和光线值的程序,并测试其功能效果:将湿纸巾放在水分传感器的金属花朵检测头上,在串口区会看到水分值变大;用手遮挡光线传感器的透明检测头,在串口区会看到光线值变小。
(注:使用水分传感器时,只有金属花朵部分可以接触水,如图3,其他部位不可接触水,否则可能会烧毁硬件。)
4.算法设计
师:水分值数据在什么区间时,我们该触发智能晾衣架的收回功能呢?请大家用纸巾吸水后滴到水分传感器上,模拟测试下雨时读取到的数值。使用时需要注意不要将水滴到除了水分传感器表面的其他地方,否则会导致短路烧坏模块。
学生将测试得到的结果进行分享,综合对比得出合适的数值。同理,请学生们测出光线值的区间,然后进行算法设计,并画出逻辑框图,如图4。
学生根据逻辑框图完成程序修改及调试。
运行测试实现效果:当水分值小于200(没有下雨),光线值大于100(白天),无需按下A键(没有人为控制按键)时,放出衣架;当水分值大于或等于200(可能下雨了)时,收回衣架;当光线值小于100(可能天黑了)时,收回衣架;当按下A键(人为控制按键按下)时,收回衣架。
师:如果大家在运行测试时,发现了问题或者不好的部分,可以对设计的方案进行迭代,直到完善。
学生完成测试并迭代完善程序。
三、小结与点评
展示交流大家的作品,并分享小组设计的算法内容。
教师小结:本节课,我们将之前所学的算法知识进行了实践,学习了可复用的代码并巩固学习了如何利用编程的方式实现算法并解决问题,熟练掌握了利用计算思维解决问题的方法论。
四、延伸拓展
师:对比其他小组设计的程序,考虑下你们小组设计的作品有哪些没考虑到的功能?请大家归纳总结并完善算法设计。如果想要精确控制和调整舵机的角度,我们就要不断地上传程序,这样很不方便,那么有没有什么办法可以通过某个传感器来精确控制呢?
学生思考讨论。
师:其实大家可以使用角度传感器,它是一款模拟信号输入设备,能基于电位器的旋转角度,非常容易实现通过旋转的角度来驱动其他设备。大家课后可以拓展延伸一下,如果使用角度传感器,我们的程序该怎么设计?
教学反思
本项目通过智能晾衣架的制作过程,带领学生学习计算思维解决问题的方法论,利用这套方法论进行项目的问题发散与功能分解,并借助思维导图工具,分析出具体的功能需求,最终实现项目。在教学过程中,将生活科学与信息技术联合起来,通过“以问设答”的教学互动,引发学生自主思考,在提升学生科学素养和创新素养的同时,也培养了学生良好的学习习惯。(本课件由DF创客社区推荐)