Arduino软硬件均开源的策略,迅速拉拢了一大批忠实的拥簇,其中的极客们按照开放协议开发出的十数种不同类型的硬件板,又反过来扩展了Arduino的应用场景。借助这种良性交互,Arduino不断进步并凭借不断丰富的扩展性及适用性毫无争议的成为极客爱好者的首选平台。


优秀而开放的平台,也吸引了众多优秀的厂商,不论是makerblock还是mCookie,其产品都可基于Arduino编程,实现创意十足的功能。


Arduino越来越火,想学的人也越来越多,但当打开官方编程软件Arduino IDE,查看程序附带的例程,在快速似懂非懂的浏览完一行行的文本代码后,一下就头大了,这是要当程序员啊,于是又默默的把程序关掉了。


作为一款编程平台,Arduino文本编程对于很多没有编程基础的人来说,不是一道能轻松越过的坎。


好在我们有Mixly,从此编程就真的像搭积木一样简单。


简介


Mixly是一款由创客教育实验室傅骞教授团队基于Google的Blockly图形化编程框架开发的免费开源的图形化Arduino编程软件。

微信图片_20170719152838.jpg


优势


一提到Arduino图形化编程软件,大家首先想到的是官方发布的Ardublock及基于Scratch的S4A(Scratch for Arduino)。

微信图片_20170719152843.jpg

S4A、ardublock、mixly对比


无法脱机运行是S4A的硬伤(注1),我们将其排除,那为何我们要舍弃官方加持的Ardublock而选用第三方的Mixly?

微信图片_20170719152848.jpg

 ardublock  mixly对比


Mixly强大到让人无法拒绝。



界面


让我们来看下mixly的界面:

微信图片_20170719152853.jpg

编程界面简洁明快。

左侧区域为Blocks分类区;中部为编程区域;最右侧图标分别对应程序居中、程序块放大、缩小显示及删除;底部灰色工具栏为功能菜单;最下方为信息显示区域。



强大的预置模块


除了常见的if/else条件语句、for/while、数学运算、端口读写、布尔运算等基本程序操作外,Mixly相教于Ardublock,还支持:


1.完整类型的变量声明:

QQ截图20170719152909.png

2.完善的子程序(可返回数据):

QQ截图20170719152918.png

3.数组/列表支持:

QQ截图20170719152927.png

4.触发中断及定时中断:

QQ截图20170719152937.png

5.串口通讯(支持软串!):

QQ截图20170719152946.png

6.脉冲检测:

QQ截图20170719152956.png

7.扇出

QQ截图20170719153004.png


Mixly功能丰富到让人无法拒绝。


扩展


与Ardublock相似,Mixly也支持Makeblock、DFroboot、microduino、seeedstudio等一些列丰富的企业库扩展。

微信图片_20170719153008.jpg

丰富的扩展库

在实际使用中发现Ardublock的产品库虽数量多但会存在各家入门套件元件不全或不匹配的情况。对于图形化编程,若没有对应的元件block,则元件无法使用,直接限制用户的创意实现。而Mixly企业库虽数量少但各家入门套件中元件完整,非常适合初学者使用。



流畅的操作


微信图片_20170719153014.jpg

Mixly(左)与Ardublock(右)右键对比


  1. Mixly支持程序块向左拖出编程窗、拖拽至垃圾桶、delete键及右键delete四种删除方式,Ardublock仅支持第一种;


  2. Mixly支持不用的电池又见disable冻结,冻结的电池不会产生代码;当你需要对比测试不同思路方法或者一次编写多个对比程序时,感觉棒极了!

    微信图片_20170719153019.jpg
    左为正常程序,右为冻结程序,不会生成Arduino代码

  3. 支持程序折叠

    编写长程序或包含不同子程序模块的程序时,编写完成的程序折叠起来,程序清晰易读。

微信图片_20170719153024.jpg

右上角为折叠后的程序


例子


说了这么多,编个程序练练手,做一个Useless  machine


所谓Useless machine,就是你打开开关,机器自己关闭开关,往复循环,确实是Useless。


所需元件:

Arduino UNO       ×1

Arduino Shield     ×1

Servo                   ×1

Button                  ×1

Green  LED         ×1       

   微信图片_20170719153030.jpg

元件图


使用Mixly编程,将所需的各类blocks拖拽至编程区域,设定端口、循环等完成编程:

微信图片_20170719153035.jpg

Mixly程序及其生成的Arduino代码


上传到Arduino板子后,运行起来是这样的:

微信图片_20170719153040.gif


一个人消磨时间的利器。


结论


Mixly是目前功能最丰富,操作最流畅的Arduino图形化编程软件,几乎可以替代Arduino IDE编程工具(注2),如果你想入门Arduino又不想写代码,那就试试Mixly吧~


注1:Scratch最初软件设计时,并未考虑与硬件的通信,S4A的出现让Scratch可以通过串口与Arduino通信,而通信则意味着S4A全程充当的是信息中转,Scratch发出控制指令,预先写入Arduino板的程序解析指令执行并返回数据,因此S4A编写的程序,虽Scratch软件关闭而停止运行,无法写入Arduino板子独立运行。

国内厂商MakerBlock基于Scratch开发的mBlock可以实现类似Scratch编程,增加了自家产品元件控制模块,可实时生成Arduino代码并将生成的代码上传到Arduino板。考虑Arduino众多品牌外设产品通用性,并未将其列入对比。

注2:几乎是为了表示严谨,DM lab之前专题《当乐高遇见Arduino》中的程序都可以由Mixly完成。