ARDUINO 积木式编辑器整理

原文地址:https://blog.everlearn.tw/arduino/arduino-%E7%A9%8D%E6%9C%A8%E5%BC%8F%E7%B7%A8%E8%BC%AF%E5%99%A8%E7%B8%BD%E6%95%B4%E7%90%86web

前言

虽然Arduino问世以久,可是身为这波自创浪潮的元老之一,Arduino仍有至关的重要性。Arduino官方虽然一直都有提供功能完整的IDE,然而由于使用C++作为开发语言,所以形成很多人上手时的门槛。尤为对非英语系国家的青少年来讲,在学习的路上更是难上加难。也所以,这几年陆陆续续发展出了许多不一样的积木式编辑器,可作为学习时的敲门砖,甚至用来开发通常的项目也不成问题。网络

在这篇文章中,我将讨论选择编辑器的考察事项,并对市面上众多的积木式编辑器作一个摘要与整理,以做为选择时的参考。编辑器

考察事项

Scratch是否并不重要,一切回到需求

在这些众多的编辑器当中,有很多跟Scratch有必定程度的关系,无论是透过外挂的方式、改写、甚至是受到启发。不过身为一个使用者,这倒不是咱们最需在乎的一点。虽然对于学习过Scratch的人来讲,直接在熟悉的环境或操做方式下操控Arduino是很符合直觉的选择,可是其实这些编辑器大多与Scratch有相似的设计方式,不至于须要太多熟悉的转换时间。反却是编辑器自己可否知足咱们的需求才是最值得考察的重点。学习

教学vs项目制做

既然知足需求才是选择编辑器的最主要考察,那咱们就来看看需求是甚么。ui

若是是以教学或学习为出发点,固然就是尽可能以积木功能以及支持周边元件的数量为主要考察。此外,中文化与否、安装复杂度、以及稳定性也是很重要的考察项目。对于某些现场教学来讲,是否支持离线版可能也是必须考察的重点。url

若是是项目制做呢?固然就是先把项目所需的功能与元件完整列出来,而后找寻最为匹配的编辑器。基本上,通常模拟、数位脚位的输出入功能都是必备的积木,因此重点应放在须要特殊处理的周边元件的支持度。举例来讲,若是项目须要用到RGB Led灯泡,那么直接提供RGB Led灯泡控制积木的编辑器就会是比较方便的选择。固然,RGB Led灯泡的控制其实不难,直接控制不一样脚位的输出就能够达到一样的目的,因此实务上不必定要如此考察,每每直接使用最为熟悉的编辑器便可。不过有时候某些硬件须要搭配特定的编辑器,此时咱们就没有太多的选择。好在这些编辑器的设计方式都大同小异,只要有相关操做经验,在程序编辑上不会有太多的困难。比较麻烦是安装步骤差距甚大,甚至很容易卡关。spa

独立与否很重要

除了周边元件是否直接支持外,还有一个经常被忽略却更为重要的考察,那就是是否支持程序刻录的选项。简单来讲,Arduino的程序设计可分为两大分类,一类是操控Arduino时必须由两个程序搭配而成,一个是执行在Arduino的特殊固件程序,另一个则是执行在电脑上的控制程序。在这种模式下,Arduino就像一个魁儡同样,没有本身的自我意识,彻底受控制程序的摆布。电脑上的控制程序必须持续对Arduino下达控制指令才能产生做用,一旦电脑上的控制程序中止后Arduino就不会再产生任何反应。我将这种模式称为魁儡模式,运做方式可参考下图:设计

魁儡模式下的Arduino

魁儡模式下的Arduino3d

问题来了,Arduino怎么会自愿成为魁儡呢?电影里的坏人,若是想要控制好人使其言听计从,经常使用注射听话药剂这种方式。在这里咱们能够利用同样的概念,先将听话药剂(特殊固件程序)注射(刻录)到Arduino里。这种特殊固件程序一般是Firmata/FirmataPlus,可是也多是自行开发的特殊固件。咱们修改上图,加上刻录的步骤:代理

魁儡模式下的Arduino(刻录特殊固件)

魁儡模式下的Arduino(刻录特殊固件)

基本上,以Scratch为基础的编辑器大可能是这样的运做方式。在这种模式下主要的运算由电脑上的控制程序加以执行,所以比较容易完成复杂的功能,可是另外一方面却也使得Arduino没法摆脱USB线的束缚,并且还必须彻底依赖控制程序的指令。使用WiFi或蓝牙等无线功能虽然可让Arduino摆脱USB线的束缚,可是却依旧必须受限于控制程序,所以无论在构架上或是应用时都会受到很多限制。

若是要彻底摆脱控制程序,则必须将咱们写好的程序直接刻录至Arduino。这一类编辑器将积木程序转成Arduino IDE所支持的C++程序语言,而后进行编译并刻录至Arduino。透过这种方式,Arduino上的固件程序能够独立运做,而不须要依赖额外的控制程序。我将这种模式称为独立模式,运做方式可参考下图:

独立模式下的Arduino

独立模式下的Arduino

严格来讲,魁儡模式与独立模式都须要进行程序的刻录,只不过傀儡模式下刻录的是用来接受控制指令的特殊固件,而独立模式下则是刻录咱们所撰写的程序。

这两种模式之间并无哪一种比较优秀的问题,只有合适不合适。也就是说咱们必须从项目的总体构架来考察,若是须要或适合搭配控制程序,那就选择魁儡模式的编辑器。若是须要独立运做,那就选用独立模式的编辑器。

最后,有些独立运做的Arduino程序仍能够接受外部来的设定与控制。举例来讲,咱们能够利用无线控制的方式来设定前述示例中LED灯泡的亮度。尽管如此,LED灯泡的亮不亮以及所需亮度,仍需由Arduino上的程序作出最后决定,所以依旧属于独立模式开发方式。

结论

甚么!明明都尚未讲到任何的积木式编辑器,怎么就直接作结论了?由于可供选择的编辑器实在太多,为了不看到文章后面精神不济,因此咱们把结论搬到前面。

综合来讲,WFduino(尤为是新版的WFduino 2)与motoBlockly是目前两个最适合使用的积木式编辑器。WFduino支持 WF8266R,能够无线控制Arduino。不过WFduino仅支持魁儡模式,而使用独立模式的motoBlockly正好能够相互搭配。再加上可直接编辑C++程序,对学习Arduino的C++程序来讲至关方便。即便遇到现成积木没有支持的周边元件,也能够透过Arduino IDE进行程序的功能扩充。

此外,Webduino Blockly则是用来制做物联网的优先选择。至于Transformer也是能够考虑的选项,不过目前还不知道Transformer是否会支持新版的Scratch 3,并且仅限于社群的应用也是必须考察的要点。想较于许多已经再也不更新的编辑器,这几个编辑器的功能与开发情况都值得咱们优先考虑使用。并且这几个编辑器恰好都是台湾团队所开发,中文的支持固然也都不成问题。

尽管积木式编辑器选择众多,并且能够支持不一样需求的构架,可是积木式编辑器对周边元件的支持度仍远低于Arduino官方IDE,因此对于复杂的项目亦可考虑使用Arduino IDE搭配其余程序语言一块儿完成项目的构架。

积木式编辑器摘要

S4A

可说是最老牌的Arduino积木式编辑器,以Scratch 1.x版本进行修改,稳定度高可是直接支持的周边元件数量不算多,除了操做基本脚位外,仅支持马达的控制。此外,Scratch 1.x的功能比起Scratch 二、甚至是Scratch 3来讲都仍是较为缺乏些。积木自己没有中文化,也是美中不足的地方。

S2A

以Scratch 2外挂的方式与Arduino互动,从s2a演变为s2a_fm,如今最新改版为s2aio。除了操做基本脚位外,还支持伺服马达、音调拨放等功能。界面支持中文,可是安装过程颇为复杂,须要安装Python以及相关套件,并且必须自行刻录Arduino所需的固件,对大多数新手来讲是一个不小的门坎。

Transformer

宇宙机器人团队所研发的软件,严格来讲Transformer并非一个积木式编辑器。可是透过Transformer,能够直接开启S4A与S2A的编辑器,并可自动刻录Arduino所需的固件,大幅减小安装以及使用S4A/S2A时的复杂度,对教学或学习的人可说是一大福音。不过要注意Transformer社群版不能够用在营利目的,使用时必须多加注意。

ScratchX外挂

ScratchX提供各式各样的Scratch 2外挂,固然也包含Arduino的操控。除了通常性的积木外,ScratchX Arduino外挂还支持事件型的积木,能够写出更简洁的互动程序。Arduino端采用Firmata固件,积木名称则未支持中文。不过由于ScratchX使用者众,所以还是很多人使用的设计环境。

mBlock

玩过mBot自走车的朋友对于mBlock必定不陌生,二者都是深圳市创客工场科技有限公司所推出的产品。mBlock 3以Scratch 2为基础,除了能够用来操控mBot,还能够用来链接Arduino。由于是中国公司的产品,中文(简体)的支持天然不成问题。而mBlock最特别之处就是能够同时支持两种模式,也就是能够直接控制Arduino,或是将程序刻录至Arduino。不过这两种模式可使用的积木是不同的,很多积木仅能在傀儡模式下使用。此外在独立模式下,虽然能够看到积木所对应出的C++代码,可是却没法直接进行修改。必须复制到Arduino IDE中才能进行修改,如此一来才可使用积木所不支持的功能。而最新版的mBlock 5以Scratch 3为基础,可是却以支持自的硬件产品为主,而再也不支持Arduino,着实惋惜。

BlockyDuino

BlockyDuino编辑器使用独立模式,产生的C++程序必须自行复制到Arduino IDE进行编译与刻录,使用方便性稍嫌不足。虽然透过额外的arduino_web_server.py能够自动进行刻录,可是安装步骤却有些繁琐。BlockyDunio与arduino_web_server.py没有中文界面,并且已经许久未更新,再加上支持的周边多以Grove元件为主,所以一般可考虑其余更为合适的选择。

ArduBlock

之外挂的方式替Arduino IDE加上积木式编辑功能,可是由于久未更新,所以在新的Arduino IDE 1.8.x系列没法正常运做,仅能使用旧版的Arduino IDE 1.6,所以一般可考虑其余更为合适的选择。

miniBloq

miniBloq一样多年未更新,并且使用方式与其余积木式编辑器有不小的差别,所以有至关的上手难度。再加上没法正常运行在Windows 10的环境下,所以一般可考虑其余更为合适的选择。

Modkid Micro

Modkid Micro一样是一个已经再也不维护的编辑器,开发商已经转为开发Modkit for VEX,成为支持自家硬件的付费软件。

motoBlockly

慧手科技motoduino 所研发的在线积木式编辑器,属于独立模式。编辑时除了能够看到对应的C++档案,甚至能够直接进行修改。并且提供额外的代理程序,能够自动将编辑好的程序刻录至Arduino。同时提供繁体中文与英文界面,上手门坎可谓至关的低。

Webduino Blockly

Webduino Blockly算是一个蛮独特的产品,透过专属的Arduino无线网络扩充版Webduino Fly达到远端遥控的功能。而Webdunio Blockly开发出来的程序属于网页的形式,也就是说咱们能够从世界各地来控制Arduino,以达到物联网的概念。

WFduino

WFduino有点相似Transformer,透过转介的方式支持多种编辑环境或硬件元件。新版的WFduino 2可以使用的编辑环境包含Scratch 2与Scratch 3,而硬件部分除了支持Arduino、DiFi外,还支持WF8266R进行远端遥控。WFduino 2提供许多Scratch 3的外挂,大幅提高Scratch 3与Arduino的互动能力。惟一惋惜的是,WFduino仅支持魁儡模式,而没法进行程序的刻录。

相关文章
相关标签/搜索