嵌入式可视化编程软件选哪个好?(可视化编程平台介绍、测评与选择)【Scratch、Mind+、Mixly】
前言
“人人都应该学习编程,因为他教你如何思考。”
——乔布斯
作为一名嵌入式小白呢,我一直认为,如果把底层的硬件驱动和编程环境的搭建当成学习生活中大量的工作的话,那一个人的创意将被抹杀,因为他在一大堆底层配置当中就已经丧失了斗志。
这也是为什么相较于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的创意作品和文章,谢谢大家看完这篇文章并关注我,你的时间是对我最美的赞美!
嵌入式可视化编程软件选哪个好?(可视化编程平台介绍、测评与选择)【Scratch、Mind+、Mixly】相关推荐
- c++手机编程软件_积木编程软件手机版下载-积木编程软件下载v1.0.1 安卓版
积木编程软件是可以在线可以学习编程的软件,平台给用户提供了大量的编程学习教程,软件还支持在线编程,学习内容丰富,让用户学习起来不会枯燥乏味,就算你是零基础的小白,也可以体验到编程的乐趣. 积木编程官方 ...
- 宏定义编程软件_什么是计算机编程? 定义软件开发。
宏定义编程软件 My five year old son, Ramy, approached me one day while I was working from home and asked, & ...
- 厦门诺宝机器人_诺宝机器人编程软件下载-诺宝rc编程软件11.2 官方最新版-东坡下载...
诺宝RC编程软件是一款哈尔滨工业大学深圳机器人教育中心研发的图形化编程与C语言相结合的编程软件,可以用直观的流程图编程,也可以用C代码编写更为复杂高级的机器人程序.提供了能模拟机器人运行程序的可修改. ...
- 禾川触摸屏编程软件_汇川PLC编程PLC代写程序
汇川PLC编程-PLC代写程序 硬件设计 在硬件方面,Pro-face的要求不高,需要一个24V/2A的直流电源和触摸屏本身.另外,为了与PLC通讯,我们根据需要选择了MPI接口的RS232C串行连接 ...
- abb机器人离线编程软件叫做_工业机器人离线编程(ABB)1-2 常用离线编程软件介绍.pptx...
1-2 常用离线编程软件介绍;一.常用离线编程软件;1. ABB RobotStudio离线编程软件介绍RobotStudio 是一款 PC 应用程序,用于机器人单元的建模.离线创建和仿真.如图1-1 ...
- 手机python编程软件 turtle,安卓手机python编程软件
如何用手机编程Python? 1.QPython3:这是一个在安卓手机上运行python3的脚本引擎,整合了python3解释器.控制台.QEdit编辑器和SLA4库,可以在安卓手机上运行python ...
- 机器人编程软件semia_AlphaRobot2S(Alpha2机器人PC编程软件)
AlphaRobot2S是Alpha2机器人PC编程软件,支持动作编辑.连接.功能升级以及维护等Alpha二代机器人相关功能,是它是Alpha2机器人的必备软件,少了它您的机器人就缺乏了"灵 ...
- 西门子plc如何用c语言编程软件下载,s7一200编程软件下载安装
s7-200编程软件是专为西门子s7-200系列可编程控制器而设计开发的一款工业化编程工具,该工具基于Windows系统而开发,功能强大,既可用于开发用户程序,又可实时监控用户程序的执行状态,是西门子 ...
- weinview触摸屏编程软件_新手学习plc编程应该怎么做,老司机教你六招,轻松入门...
作为初学者应该怎么去学习plc编程,从哪些方面下手比较好,这里个大家一点建议. 一.多收集程序范例.增加编程经验 收集一些别人做好的范例程序,用心去学习理解,想想别人为什么这么写, ...
- php网站可视化编辑软件,适用于PHP的可视化HTML编辑器推荐
Tinymce Tinymce是一个免费的WYSIWYG HTML编辑器,由JavaScript写成.它是一个依照LGPL license公布的自由硬件.Tinymce可以将文本区转化为富文本HTML ...
最新文章
- sim中do文件/memory(readmemb命令符)/移位编写
- Tomcat系列之Java技术详解
- PHP扩展高性能日志系统SeasLog简单上手
- MySQL导入冲突保留两者_面试被问MySQL 主从复制,怎么破?
- 麦子mysql_[数据库]MySQL基础 (麦子学员 php 第二阶段)
- linux卸载gdb命令,【Linux学习】GDB调试器基本命令必知必会(一)
- 墨天轮章芋文:用十年打造中国的数据库生态体系
- NOIP 2014 解方程
- velocity 获取list对象_Redis专题2:认识list、Zset与BitMaps
- 实现 int 类型(比如id)的模糊查询
- C语言程序设计第三版微课版,C语言程序设计(第3版 微课版)
- 电子商务B2C网店购物系统走势
- 关于使用腾讯云播放器的遇到的坑
- 超级详细-NMOS、PMOS的工作原理及相关内容整理(下)
- 顶级黑客分享的30个极简Python代码,拿走就能用!
- java dispose事件_求助!!为什么我的dispose()不起作用
- 2020年 ICLR 国际会议最终接受论文(poster-paper)列表(一)
- Java中fifo什么意思_Java中的FIFO类
- Kettle(三):创建资源库
- 滤镜——水彩画效果——花卉
热门文章
- php反射机制详解,PHP反射机制
- php如何优化递归函数,php递归函数怎么用才有效?php递归函数典型例子
- xpath用于HTML文档通过元素,通过Xpath定位元素
- flex 连接mysql数据库_Flex+blazeds实现与mySQL数据库的连接(已成功实现此文的例子)...
- bable转换html里面的js,javascript – 在Babel中转换插件与语法插件
- oracle中同义词的用法,Oracle中使用同义词
- php 126怎么设置发送邮箱验证码,邮箱发送验证码(示例代码)
- 【问题8】Redis它到底解决了哪些问题?
- 微信客服系统开发SDK使用教程-给好友发消息任务
- Discuz代码片段