重新认识mblock-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 25132|回复: 6

重新认识mblock

[复制链接]
发表于 2017-3-1 17:14 | 显示全部楼层 |阅读模式
本帖最后由 iArduion 于 2017-3-1 17:15 编辑

“好读书;不求甚解;每有会意;便欣然忘食。”
——晋·陶潜《五柳先生传》
作者:少儿创客帮
转载请注明出处
欢迎大家关注微信公众号:少儿创客帮

青岛市信息技术教材五年级下册

但是对于一款软件来说,如果不深入去研究和挖掘,往往不能发掘其全部功能,"众里寻他千百度,蓦然回首,那人却在灯火阑珊处",其实有可能你需要的功能,软件已经实现了,只是你不曾研究,不成知道罢了.,而且如果不深入了解软件会绕弯子的,至于为什么往下看就知道了.
使用mblock的第一重境界——初识mblock

什么是mblock

作为一名信息技术教师,或多或少都接触过Scratch,但是Scratch访问速度太慢,国内类似的网站界面太丑,我尝试过编程边玩,编程猫等在线编程平台,作为Scratch或者类Scratch的编辑器还是不错的,至于离线版本的Scratch Editor,官方的不能够输入中文,使用多有不便,后来就认识了mblock,界面简洁大方,而且可以调整界面字体大小,感觉很不错.

Scratch首页


编程猫首页


编程边玩首页

我想这就是使用mblock的第一重境界:单纯的把mblock当做一个离线的Scratch编辑器
使用mblock的第二重境界——Arduino开源硬件

你好,Arduino


给Arduino编程

目前中小学普遍开展创客活动,小学生也开始学习Arduino等开源硬件,我们知道让小学生用Arduino设计一些智能硬件难度偏高,不利于普及,而mblock允许我们利用图形化的编程方式来对Arduino进行编程,尤其是学习过Scratch之后,用Scratch给Arduino编程相对比较容易。

Arduino界面


mblock界面


Arduino代码块


把图形化编程语言转换成c代码

mblock能够把图形化的代码转换成c代码,并且编译下载到Arduino,这样,Arduino只要供电就可以离线运行程序,便于参加比赛;使得基于arduino的小车或者机器人更具有可玩儿性
Arduino图形化编程软件
实际上,当前Arduino图形化编程软件有很多,比如mblock,mixly,mind+,吴俊杰老师正在推广的Ardublock等等,而且Scratch官方也推出了xscratch.org网站,通过扩展来进行图形化编程。

mblock界面


mixly界面


ArduBlock界面巨丑,不喜欢


Mind+界面,漂亮,喜欢

这些软件都可以满足我们的目标,但是因为我们小学阶段编程教育以Scratch为主,这就导致了mblock在这里面是亲和度最高的软件。当然以上提到的软件都是免费的。
mblock的路子是软件免费,硬件收费,兼容市面上常见的Arduino硬件和传感器,当然自家的产品肯定有着最好的支持,何况makeblock还推出了ipad版本的mblocky和makeblock软件,通过ipad用蓝牙给自家产品编程。


成本不只是钱,像mblock提供的这些良好的使用体验


高度的可玩性,已经社区等等,是自己用散件所不能代替的.
如果是要低成本开展创客教学,mblock软件是最好的选择,因为mblock对自家产品之外的开源Arduino等硬件支持较好。
还有个比较好的软件是树上科技的ScratchPi,相当好用,配合他家的ScratchPi硬件,做东西非常方便,过年的时候我拿到了一套试用,带着小学一年级的外甥女玩儿,外甥女非常喜欢,活泼好动的外甥女可以连续3个小时不停的搭积木,按照scratchPi官方的教程,然后我在写入程序,充分的让外甥女领略到了科技的魅力。

ScratchPi


买来给自己加的小朋友还是不错的,而且可以让家里闲置的乐高积木重新利用,结合提供的传感器来创作更加好玩的作品.

利用ScratchPi制作只能风扇

官方有一个例子是智能风扇,通过检测距离的原因控制风扇的转速,我略微改了一下,改成声控的,于是小外甥女对着小风扇不停的大喊大叫,喊声越大,风扇转动的越快,外甥女玩儿的不亦乐乎。感谢树上科技的编程小王子耿胜红提供的试用的机会,也感谢随身科技杨峰和树上科技子大可小孙祺让我有接触ScratchPi的机会,感谢他们带给小外甥女的快乐。
言归正传,使用mblock的第二重境界就是,把mblock当做是一个免费的Arduino图形化编程软件.
第三重境界:Makeblock自家的硬件产品

青岛市小学信息技术教材五年级下册

前阵子,青岛金正方科技有限公司的小伙伴们给我了一套mBot小车把玩,我尝试刷入mBot官方的固件,然后玩儿的不亦乐乎,makeblock的产品真的一分钱一分货,同时跟makeblock辞职出来的一个小伙伴聊,对makeblock有了更深一步的认识,虽然他从makeblock离职,但是仍然认为makeblock促进了国内创客以及创客教育的发展,makeblock没有采用乐高作为结构件,而是自己设计生产了金属件,拓展了玩儿,使得制作3d打印机,绘图机器人成为了可能.
之所以把把玩makeblock自家的产品作为第三重,是以为从这里开始,我加深了对mblock的理解,自此,如果你让我推荐一款免费的Scratch离线编辑器和Arduino图形化编程软件,我一定推荐mblock.
第四重境界:Scratch 2.0时代的S4A

编程小白的玩具S4A,我们从来不曾真正掌握

很多接触Scratch比较早的朋友都知道,Scratch 1.4时代有个软件叫做s4a可以方便开发一些互动性的作品,实现硬件与屏幕角色之间的交互,比如做一个接苹果的游戏,用滑动变阻器来操控水果篮,允许我们通过硬件以及各种传感器操作程序世界的虚拟角色.那么Scratch 2.0时代呢,很长一段时间我都被这个问题所困扰,知道最近这个问题才得到圆满的解决.从2016年10月份开始,我一直在试图寻找一个Scratch 2.0的类似S4A的软件,一直无果,后来虽然接触到了ScratchPi,但是对于Arduino不够友好,以为他家的接口是自定义的,虽然软件本身是个好软件;而诺丁科技/啃萝卜等都是基于浏览器的解决方案(啃萝卜提供了离线的pc版本,还没有使用过,基于浏览器的方案也是,感觉需要一定的时间才能看到程序执行的结果),我一直很是苦恼.
用mblock给arduino硬件编程
青岛小学信息技术教材第五册下使用了mblock作为编程软件,但是makeblock的产品价格相对较高,不适合普适性教育,于是就面者如何用mblock对arduino编程,但是还是要联机运行.更改实时生效.就像makeblock自己加的mBot小车一样.
当时我既要程序跟教材的一致,同时硬件还得完全采用开源的,中间经历了种种不表,单说,把mblock针对Arduino固件刷入到Arduino硬件,就可以实现联机调试.这个我就震惊了.

Scratch模式

这个有什么用呢?我们知道mixly下载程序是巨慢无比的,mblock相对较快,而Arduino IDE最快,但是即便如此,学生在上课的时候修改了程序还是要等待一段下载的时间(通常几十秒左右),才能够看到效果,宝贵的上课时间就在修改→下载→在修改→再下载中浪费掉了.而如果学生修改了程序马上看到效果,那就棒棒哒了.而这个模式就是实现了这个效果.当然这里存在的一个问题是,你的程序要重新点一下绿旗运行,或者双击代码执行重新执行程序才能够生效,但是也比下载快多了(这一点上,ScratchPi就好多了,真正的及时修改即时生效).大班教学的情境下,要让软件的使用,程序的运行尽可能方便才好,毕竟帮别人节省时间,并且帮人把节省下来的时间更好的利用是一件很美好的事情呢.
这样,mblock的Scratch模式允许代码所见即所得,修改了马上看到效果,而且可以与舞台上的角色交互,学生经过上学期Scratch的学习,结合这学期的传感器可以做出更多富有创意的产品.我认为,创客的核心在于创意,学生不一定学习非常复杂的传感器和编程技术,重要的他们充满童趣和创意的作品,并且他们乐在其中,享受科技和变成带来的乐趣,在心里种下一棵种子,这个才是最重要的.

智能台灯


课本上的例子比较简单,当然我们可以进行扩展,作为普适性的教学大部分学生完成课本上的例子就好了,然而,我们可以制作一些比较复杂的例子,让学友余力的同学完成,既让学生吃饱,又让学生吃好.
同时Arduino模式允许我们离线烧录代码,便于进行比赛和现场作品展示.
所以我们在上课的的时候要教会孩子们用这两种方式实现,Scratch看做很多创意效果,真正的做物理计算或者创意编程,而arduino模式也要掌握,并且理解之间的差别.
关于Scartch模式的说明
一般情况下我们是直接把程序刷入Arduino执行,而在线调试模式是,就是你写一个程序到Arduino,但是这个程序可以跟mblock通信.
刷入Arduino就好比我们自己到游乐场去玩儿.我们就好比是程序.
而在线模式就好比,我们远程操控一个机器人,在游乐场玩儿,这个机器人就相当于固件.
第五重境界:买更多的makeblock的全系列的产品来玩儿
当然这个需要花钱,而且可以跳过
第六重境界:利用mblock对任意arduino以及传感器编程

扩展开发

mblock提供了扩展机制,你可以根据自己需要来写扩展,实现需要的代码块,理论上只要c可以的,mblock也可以,只要你扩展写的合理,问题在于当你可以写扩展的时候意味着你对arduino以及c有着很深入的理解,更多的是简化代码来方便别人使用,*我为人人,人人为我,开源共享,体现互联网精神.
第七重:创意无限
做你喜欢的,你心动,你想做的作品吧.
ps:以上几重其实是玩笑话大家不要当真,看看就好.怎么感觉写的啰里啰嗦,翻来覆去...感觉不像是一篇气势磅礴的长文呢

发表于 2018-2-24 12:01 | 显示全部楼层
一直在找这个文档,朋友分析得很对啊。最好私下可以聊聊
发表于 2017-6-10 19:31 来自手机 | 显示全部楼层
我觉得我终于找到知音了。我一直在寻找能把scratch与arduino结合在一起的办法,也发现了Mblock是目前最好的编辑器,只是有许多地方还(比如说深入的循环)无法很好的加载到arduno上去执行。自己对IDE编辑又不太懂,好希望有人能给出解决的办法。希望与楼主多交流。谢谢。
发表于 2017-6-10 19:34 来自手机 | 显示全部楼层
玩arduino的,都在IDE,不会去考虑玩孩子们喜爱的scratch,研究scratch的,又很少有人去玩硬件。想学好Mblock与arduino的结合运用,希望楼主给予帮助。
发表于 2018-7-21 19:37 | 显示全部楼层
为什么mBlock 提示没有undefinedxx
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 08:36 , Processed in 0.090981 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表