更多线程、更多精彩
——测评Mind+多线程功能模块福建省晋江市永和镇群英小学、群英创客空间 李和洽一、测试背景哈罗,大家好,我是福建省晋江市永和镇群英小学的教导、群英创客空间负责人李和洽老师。我们现在主要面向小学三至六年级开展创客教育活动,课程内容有Scratch创意编程、Micro:bit、Arduino、3D打印、激光切割课程。自单片机的C语言开始,我一直在寻找一种面向硬件、操作简便的编程软件进行教学使用,后来的Mblock和Mixly的出现都曾经让我欣喜若狂。而近几年来更容易入门且功能强大的Micro:bit的出现又带来了巨大的冲击,仿佛一下子所有的图像化编程软件都“长出”了Micro:bit的编程模块,可是体验过后觉得这些软件的操作要么功能简单,实现不了太多创意,要么界面和操作不够友好,即便是Micro:bit的官网也不例外,在教学使用时不是很趁手。这个困境直到Mind+的出现得以解脱。不可否认,Mind+是我目前用过的,适合新手自学、教师课堂教学使用的优秀的图形化编程工具,它将常用的编程代码模块、面向硬件的功能模块、控制板变换、丰富的传感器、强大的系统功能集于一身,通过简单的点击、拖拽、填空的方式便可完成多种硬件混合的编程工作,实在便捷。在这一学期的教学实践中证明,它的功能和操作设计深受孩子们喜欢,大大减轻了教学难度,提高了教学效率。近一年来,我时刻关注着Mind+的迭代消息,几乎每一个版本都安装和试用过,也和晋江教师创客团队的伙伴一起测评过,把我们的一些想法跟Mind+的技术人员进行反馈,在交流过程中,逐渐与李亮、云鹏、春秋等DF的技术和培训大咖熟络起来,在他们的指导下更加熟悉Mind+与配套器材的“功夫“和”脾气“。非常高兴的是,我们反馈的一些需求在后来Mind+的迭代中渐渐变成了一块块可爱的积木,大大的方便了我们的教学和创作。感谢Mind+团队给我们提供了一个简便、好用的编程工具。多线程这个功能需求其实源于小孩子的编程习惯。我们学校自2014年起成为晋江市首批Scratch创意编程试点学校,孩子们从小学四年级开始学习Scratch创意编程。Scratch这种面向角色的积木式编程方式深受孩子喜爱,其操作的简便,效果的即时显示和灵活、随意的编写风格恰恰符合小孩子的学习特征,使得他们可以自由的通过脚本和角色实现自己的想法,获得学习和创作上的满足感,从而爱上编程,爱上创作。在这个过程中Scratch软件“当绿旗被点击“、”当克隆体启动时“这类启动模块的多次复用习惯逐渐在学生身上根深蒂固了,他们很喜欢,也习惯把同时要做而时序上又不能互相干扰的事情放在多个“当绿旗被点击“、”当克隆体启动时“中编写,这样既可以快速实现想法,又很有效。不过,这种习惯在我们这学期创客空间建立,孩子们开始进入开源硬件领域的学习时带来了负面影响。我们知道孩子的想象力是无限的,甚至很多时候是“贪心”的,他们在学习开源硬件的过程中喜欢“榨干”硬件的性能,让硬件可以同时做更多的事情,比如让Micro:bit一边显示他们绘制的图案,一边用运动传感器探测人是否靠近来实现自动打开、关闭灯光的功能。这类需要并发处理的创作需求,总是在他们摩拳擦掌、跃跃欲试时被Mind+和其它图像化编程软件无情的泼了冷水——想得美!终于盼望着,盼望着,新年的脚步近了,Mind+的新功能模块——多线程功能模块产生了。二、多线程功能测试收到这个带有多线程功能的内测版软件,我不禁要为开发团队点一千个赞。我可以激动的告诉孩子们:欢呼吧,造起来吧。你们曾经无奈丢掉的创意,现在可以实现了。让我们赶紧来一睹为快吧!
(一)添加“多线程“功能模块
1.点击”扩展“按钮,再点击“功能模块“就可以看到”多线程“功能模块
2.点击” 多线程“,将其加载到软件主界面中
3.在主界面的” 功能模块“中,我们可以看到多线程模块的三个功能积木。
(二)测试任务设计本次测试为了验证多线程模块在多个并发事件中的独立、稳定和可靠性,我设计了以下几个任务交给不同的启动模块来运行。1.当无线接收到数据时让Micro:bit显示显示”zuo”或”you”。2.当无线接收到数据时让舵机转到相应角度。3.当按钮按下时开或关闭LED灯。4.使用旋钮实时控制电机(风扇)转动速度。5.当声音传感器探测到声音数值大于600时,关闭LED灯。在以上任务中最为关键的是第1个任务会占用Micor:bit控制板的运行时间,如果没有打开其它线程,那么任务3至任务5将不能实时有效的进行,而是必须等到控制板显示的空隙时间才能运行。任务2也可以看作系统本身的一个线程,将它纳入到测试中可以更加全面的测试控制板运行多线程脚本,进行并行处理的可靠性。
(三)测试器材准备本次测试准备的器材有Micro:bit控制板、扩展板、按钮、旋钮、模拟声音传感器、红色LED灯、风扇(电机)、舵机,为了电源的稳定,需要给扩展板供电,供电电流最好大于等于1A。
(四)测试脚本编写1.Mciro:bit主程序开始
2.当无线接收到数据实时改变舵机角度
3.子线程1:通过按钮实时开、关灯
4.子线程2:通过旋钮实时控制风扇速度
5.子线程3:根据无线接收到的数据显示“zuo“或”you“
6.子线程4:如果声音模拟值超过600就关闭LED灯
(五)用自定义函数替换子线程的对比测试脚本编写1.Mciro:bit主程序开始,定义四个函数。
2.当无线接收到数据实时改变舵机角度
3.开关灯函数替换子线程1,试验通过按钮实时开、关灯
4. 控制风扇函数替换子线程2,试验通过旋钮实时控制风扇速度
5.显示接收到数据函数替换子线程3,试验根据无线接收到的数据显示“zuo“或”you“
6.吹灭灯函数替换子线程4,试验声音模拟值超过600就关闭LED灯
三、测试结果
(一) 测试视频1.使用多线程功能模块的子线程进行试验的视频http://v.youku.com/v_show/id_XMzk2NTc0ODU1Ng==.html?x&sharefrom=android&sharekey=f34752a23be729e3ced24171ea9117036
http://v.youku.com/v_show/id_XMzk2NTc0ODU1Ng==.html?x&sharefrom=android&sharekey=f34752a23be729e3ced24171ea9117036
2.使用自定义函数替换子线程进行试验的视频http://v.youku.com/v_show/id_XMzk2NTc0OTY2OA==.html?x&sharefrom=android&sharekey=055b8cb18db71214321d86468ac63b4e7
http://v.youku.com/v_show/id_XMzk2NTc0OTY2OA==.html?x&sharefrom=android&sharekey=055b8cb18db71214321d86468ac63b4e7
(二) 测试结论1.使用多线程功能模块的子线程可以正常、顺利完成5个测试任务。测试中Micro:bit主程序脚本、当接收到无线数据脚本、4个子线程脚本均运行正常,能独立处理各自任务,无肉眼能发现的时序上互相干扰情况。控制板在显示“zuo“、”you“字母时需要进行滚动显示,会影响本子线程的运行进度,但丝毫不影响舵机实时接收数据来改变角度,也不影响按钮实时开关LED灯,不影响旋钮实时改变风扇速度。在硬件方面,各传感器工作正常,控制板运行正常,无卡顿、断电现象。以上结果表明,多线程功能模块在并发处理多任务上有稳定、可靠的品质,是Mind+又一个出色的新功能模块。我相信这项功能必将对孩子发散思维、实现创意有很大的帮助。2.使用自定义函数代替子线程不能全部正常完成5个测试任务。除了任务2,其它任务均受控制板显示字母影响,必须等到显示空隙才能运行其它函数脚本,完全达不到独立、并发、实时的需求。
四、其它建议1、建议添加积木功能介绍。当鼠标移动到积木时,能以标签的方式提示这块积木的使用帮助信息,帮助学生理解和掌握积木的用法。2.建议添加积木自动纠错功能。当用户把一块类型不符合的积木拖到不恰当的位置时,应该出现错误提示,提示信息应包含正确用法的介绍。3.期待如上传模式般功能强大的实时模式尽快开发出来,这样让学生能制作出更多有趣的软件、硬件互动作品。
页:
[1]