前言
“人人都应该学习编程,因为他教你如何思考。”
——乔布斯
作为一名嵌入式小白呢,我一直认为,如果把底层的硬件驱动和编程环境的搭建当成学习生活中大量的工作的话,那一个人的创意将被抹杀,因为他在一大堆底层配置当中就已经丧失了斗志。
这也是为什么相较于51单片机和stm32标准库而言,stm32cubemx会受到大量开发者的追捧。相对于这两款大众嵌入式开发平台而言,如今更加大火大热的Arduino平台以及一些衍生平台是如何在嵌入式领域和创客领域逐渐拿下大量用户的原因。
所以呢,在昨天偶然间在B站上看到了一个小视频,对比了一下从51单片机到arduino可视化编程的同学的感受,突然间嵌入式可视化编程进入到了我的小世界。
今天就开始在网上大量的搜刮嵌入式的可视化编程软件,同时对可视化编程的前世今生做了一些了解。
下面是正文
一、可视化编程的前世今生
这里就简单介绍一下可视化编程的前世今生吧,
当年Google和MIT合作建立了一个 App Inventor项目,后来MIT退出了自己的一个Scratch在线编程平台,可以编写各种动画,但Scratch本身并不支持硬件编程。
后来Google出了Blockly图形化编程库,提供开发者基于他的库去开发各种图形化编程软件。现在在Blockly官网上看到,Scratch和App Inventor也都使用了Blockly核心。
以上提到的软件皆为开源的,包括Blockly内核,所以近年来有很多根据Blockly内核开发的可视化编程软件,其中包括的不乏有:Ardublock、S4A、Webduino、mBlock、好好搭搭、Mixly、KenRobot、Mind+……
二、 可视化编程平台的选择
当然呢,以上所罗列的可能不能代表全部,如果还有同学们喜欢用的可视化编程软件可以在下方评论区提出来哦。
以上所罗列的平台也不是都还能用,有的官方已经停止更新了,有的呢就是要死不活的状态,经过大量的搜集资料,我只体验了三款软件,分别是Scratch、Mind+和Mixly。
(首先声明一下,我可没有拿任何的广告费,所有的说辞都是我主观的展现XD。)
1、Scratch
其中Scratch呢,是之前在手机上安装的手机APP,用户体验上还是蛮不错的,但是它不支持硬件编程,作为主业是做嵌入式开发的来说,也只能留着以后给小朋友用吧。动画编辑不需要很多学习成本,可以学习一些编程思维快速培养起编程兴趣(没有底层和硬件层的麻烦)。
2、Mind+
该软件由DFRobot旗下子品牌蘑菇云创客教育发布,可以自动转换Python/C/C++等语言。一个软件可以进行动画编程和硬件编程,可以设计完动画之后,进行实物编程,如果要是做少儿编程教育的培训机构来说应该是非常方便的工具。
我个人觉得,他的界面配色和动画小人比Scratch做得好,可能会更受小朋友的喜欢。
但他的痛点也是我为什么没有在最后介绍他的原因,就是他所支持的开发版都是DFRobot自家平台上的开发板,所支持的传感器和执行器拓展板都属于DFRobot
3、Mixly
Mixly(米思齐)是由北师大创客教育实验室团队开发的开源软件,他的界面配色以及官网前端并没有Mind+做得好,但是呢他所支持的硬件板子是非常丰富的
关于他们本家的系列产品我也没有使用过,但它还支持STM32F103是我没有想到的
还有一些拓展板卡,他们的更新速度是非常频繁的,以至于在下载的安装包里面放了一个“一键更新.bat”批处理文件用于快速获取官方发布的更新包,其他硬件平台的支持性也是非常全面的,我那手边的一块ESP32-WROOM试了一下WIFI连接,并没有查询任何的资料,上手即可使用。
三、关于最近配置ESP32编程环境和Mixly感慨
1、ESP32环境配置
虽然ESP32可以使用Arduino编程,相对于我之前用的STM32来说已经足够“人性化”了,但这可视化却是可以减少很多在代码上所花的时间。
如果使用arduino的官方平台,需要下载ESP32的支持库才可以使用,我记得当时为了配置ESP32的支持库也花了不少时间,因为官方软件上的下载速度很慢,所以我自己的Github上一个一个下载好库文件后放到指定目录里面才可以使用的。
而且arduino的编辑器正式版都不能跳转到定义等一些常用操作,即使是arduino2.0也是不太好用,曾经我还在VScode上安装过arduino支持包,但是每加载一个工程都需要在VScode的配置文件里面添加文件路径,当时在C盘的十层文件夹下面疯狂的找文件和文件头包含。后来摸索到了可以在esp32的头文件夹后面加上“**”后可以通配之后的文件,但是呢,还是会因为头文件明相互冲突所以要细分包含。
后来也使用了VScode里的Platformio添加ESP32的库,还蛮好用的。
还有就是最近配置在Linux下面配置OpenCV的环境,以写成一篇分享,可以去参考一下Linux下OpenCV的安装与测试成功教程(解决E: 无法定位软件包 libjasper-dev、无法找到directory `opencv.pc‘、fatal error:“highgui.h“)_Boxjod的博客-CSDN博客
2、关于Mixly的一些感慨
但是这个Mixly呢,库文件几乎一键安装,甚至端口号也没有让我选,就直接可以编译下载了,简直就是傻瓜式插上线,拖动几块积木,点下载就可以用了。
甚至更好的是有Mixly的组件包,可以直接可视化查看所有的功能函数应该如何写,模块直接对应了常用的编程代码模式,比如连接出的阻断循环,如果没有连接上就一直在那个循环里,代码比我自己写的代码都规范。
个人觉得Mixly这款软件对于使用arduino系列产品而言高级应用也何尝不可。
就连前几天学的MQTT和Blynk网络组件在Mixly里面看着都是那么的直观和简单
四、结尾
以后可能会专门出一些关于Mixly的创意作品和文章,谢谢大家看完这篇文章并关注我,你的时间是对我最美的赞美!