我为什么喜欢mBlock-Like的Arduino软件?

先说观点,很多人问我开始学习Arduino的时候,用什么编码软件学习?我一般推荐mBlock软件——虽然我不喜欢MakeBlock的硬件——mBlock这个软件还是很好用的。

目前比较流行的Arduino开源硬件图形化编程有mBlock、魔爪、咔哒爸爸、Mixly、ArduBlock、Mind+等软件,非图形化的编程软件一般就是Arduino、Processing、Sublime+Arduino插件,甚至是Vim都是可以的。

mBlock
咔哒爸爸
Mixly
ArduBlock
Mind+感觉有些反人类
Arduino界面
Processing界面

但是我一般强烈推荐mBlock——MakeBlock不给我一分钱——因为mBlock是基于Scratch 2.0开发的,能够实现物理计算Physical Computing,小学生现在逐步将熟悉Scratch,学习Scratch之后再使用mBlock来对Arduino编程,衔接非常紧密,最重要的是mBlock可以实现传感器与舞台的互动——其实就是上位机程序——可以实现更多创意,而这时Mixly、ArduBlock等不具备的。

开源硬件编程软件的分类

从编程的形式上分:

  • 纯粹的文本编程软件,比如Arduino、Processing等,纯粹使用c语言进行编程,对于初高中生,有编程基础的人来说开发效率高,编程速度快
  • 图形化的编程软件,但是不带舞台,以Mixly、ArduBlock(我从未见过如此之丑的软件)为代表,实现了图形化的开源硬件编程,但是无法实现传感器与舞台的互动,或者说无法实现类似S4A——上位机——程序。
  • 类Scratch的图形化编程软件,如mBlock、魔爪:mBlock可以看做是Scratch 2.0时代的S4A,举个简单的例子,Scratch里面有当角色被单击、或者某个键被按下的时候,可以控制硬件的LED灯。这些是指利用在线编程模式,就是先烧录一个固件到硬件,然后实时修改代码块,硬件体现变化。
更详细的说,mBlock类似的软件,在线编程模式下,是可以使用外观代码块的

这样小学生们就可以有很多丰富的创意,把软硬件结合起来,这是我最看重的

开源硬件编程软件的另外一种分类

根据上面的分类,开源硬件编程软件其实就分为两类:

  • 带舞台的,可以实现Arduino控制器、传感器和舞台角色的互动
  • 不带舞台的,从这个角度来说,Mixly、ArduBlock和Arduino、Processing是同一类的软件

其实mBlock吧,对于开源硬件的支持是很有限的,远不如Mixly支持的传感器多,Mixly支持的厂家和传感器都多,但是小学生阶段并不需要太复杂的传感器,很简单的舵机、电机、LED、声音传感器、光敏传感器等用mBlock提供的Arduino基本编程功能都可以实现的,基本上就是读、写IO引脚的状态,或者读取值。

就像只要顺序、判断、循环可以实现复杂的程序一样,Arduino只需要有限的代码块,也可以实现很多开源硬件的编程。

当然如果Mixly下一步如果实现了舞台功能,我肯定会拥抱Mixly的。

Mixly还有个问题是,基于Blockly编程,设计思路并不是很接近小学生,对于中学生是没有问题的,作为中学生开源软件编程入门,然后转c是可以的。

当前国内的图形化编程软件很多,有的是不开源,免费使用的,有的是免费使用的,虽然都是图形化编程,有的是基于Scratch 2.0的,比如mBlock和魔爪;有的是基于Blockly的,比如Mixly和AppInventor;还有的是基于Scratch 3.0的,也就是Scratch Blocks;然后就是有的公司提前开始行动,基于Google和MIT媒体实验室合作的Scratch Blocks开发的软件;然后目前Google Blockly Games现在也比较流行;再就是有基于伯克利大学的Snap来开发的,比如树上科技的ScratchPi软件,跟Scratch非常类似,比较好用呢。

基于伯克利Snap开发的ScratchPi界面

在mBlock或者说Scratch 2.0的基础上,很多公司开发定制了自己的软件,比如咔哒爸爸——据说是一个工程师爸爸为儿子开发的——kBlock软件;KittenBot等,包括美科的软件。

这些在Scratch 2.0基础上开发的软件,有的是自己重新实现了固件,比如mBlock自己写了底层,自己定义了协议;

mBlock自己实现的固件

很多别的公司也是在Scratch 2.0基础上开发了自己的固件,然后实现了在线编程;甚至还有的公司直接在mBlock基础上二次开发,仅仅是自己组了一些套件,然后根据Scratch的标准来写扩展,实现了自己的代码包:

mBlock扩展
咔哒爸爸模块

而且可以自己设计硬件,然后写固件硬件,定义自己的接口,每家的硬件无论是MakeBlock自己家的,咔哒爸爸,还是张晓胜老师的桌面试验箱,都是自己定义了固件,接口,自己做了适配

咔哒爸爸

实际上还有一种方式,就是在浏览器里对Arduino尽心改变成,需要安装Scratch官方的插件,作为中介通信;像诺丁科技做的东西是在线云编译。

其实像Mind+、ArduBlock这些开源软件,后来都不维护了,是很可惜的,当然自己用的也少。

这种

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • “好读书;不求甚解;每有会意;便欣然忘食。”——晋·陶潜《五柳先生传》作者:少儿创客帮转载请注明出处:[http:...
    少儿创客阅读 9,425评论 2 7
  • 开源硬件门槛高,受众群体小,价格高,但是在国外购买力强,资源稀缺; 一般来说,开源硬件公司的商业模式,主要有三种:...
    方弟阅读 2,757评论 0 4
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,476评论 25 708
  • Scratch少儿趣味编程 [日] 阿部和广 著;陶旭 译 Scratch是麻省理工学院设计开发的一款编程工具,是...
    少儿创客阅读 8,141评论 0 9
  • 今天下午老板过来开会,请了我们线路板厂供应商的一对夫妇。 会议开始请小吴讲了关于销售的一些事,我领会到的有以下几个...
    Amay鱼小美阅读 139评论 0 0