美文网首页儿童编程arduinoarduino scratch创客教育
我为什么喜欢mBlock-Like的Arduino软件?

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

作者: 少儿创客 | 来源:发表于2017-05-13 10:51 被阅读605次

    先说观点,很多人问我开始学习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这些开源软件,后来都不维护了,是很可惜的,当然自己用的也少。

    这种

    相关文章

      网友评论

      • Robot_Li:vs code 也是一个选择
        少儿创客:@Robot_Li vs code?没用过呢?
      • 270c95a62199:您好。我是刚接触mblock ,有一个很大的问题是,无法不知道如何成功上传我的机器模块的Arduino的程序,。串口也连接了。固件也更新了,望解答。
        少儿创客: @小寻_d0dd 明白了你是不是没有添加开始arduino的那个代码块啊
        270c95a62199:@小寻_d0dd 可是板子闪烁了,我之前有用米思奇和s4A,板子和驱动应该不是问题。我百度别人说mblock是离线程序什么之类的。最最关键的是Arduino模式也没有把我的程序转换为C语言,我不知道我该缺了什么步骤,程序部分的都是空的。所以上传到Arduino,也没用。
        少儿创客:@小寻_d0dd 你用的是Arduino吗,你是否安装了Arduino驱动,你买的Arduino是正版的还是山寨的,驱动不同的

      本文标题:我为什么喜欢mBlock-Like的Arduino软件?

      本文链接:https://www.haomeiwen.com/subject/ybcxxxtx.html