编程已成为当代青年需掌握的一项基本技能,也许一提到编码大多数人想到的画面是这样的:
或是这样的:
这样的:
还有这样的:
其实编程还可以是这样的:
对没错,图形化编程,当前也有较多的图形化编程工具,从本节开始,我将带领大家开启基于Mixly图形化编程之旅。
以下内容源自Mixly官方技术文档:
https://mixly.readthedocs.io/zh_CN/latest/basic/01Mixly_introduction.html
Mixly 简介
Mixly(米思齐)是一款图形化编程软件。用户可以通过拼接积木块的方式来编写程序。目前为止,Mixly已经支持Arduino,micropython,python等编程语言。
简介
Mixly(米思齐)是在北京师范大学教育学部创客教育实验室负责人傅骞老师的带领下,由其团队开发的一款国内自主研发,且免费开源的图形化编程工具。在国内外都掀起创客教育的浪潮中,傅骞老师认真分析了当前电子领域内的创客教育,并认为“如果不能给学生提供一个足够简单的、不能给教师提供一个容易上手的,不能给各大生产厂商提供一个足够自主的编程工具,所谓的“创”也只能是停留在表面的浮云,风一吹便散。”为了大力贯彻落实创客实验室“自主实践,分享快乐”的教育理念,傅骞老师带领其团队,开发出具有易用性、简单性、功能性、普适性、延续性及生态性等特点的Mixly。
特点
易用性
当前多数中小学机房安装了硬盘保护卡,频繁的软件安装与更新工作,给机房的管理工作造成极大的不便。为此,Mixly在设计上做到了完全绿色使用。用户直接从网上下载Mixly软件包,解压后即可在Windows XP及以上的操作系统运行。软件无需额外安装浏览器,也不用安装Java运行环境,极大方便了师生的使用。
简单性
Mixly采用了Blockly图形化编程引擎,使用图形化的积木块代替了复杂的文本操作,为学生的快速入门奠定了良好的基础。另外,Mixly的开发团队使用以下方式来帮助师生快速熟悉软件:第一,用不同颜色的示意图标代表不同类型的功能块,方便用户归类区分;第二,在复合功能块中提供默认选项,有效减少用户的拖动次数;第三,在同一个界面整合软件的所有功能;第四,提供参考教程及代码示例。
功能性
当前,很多学校将组织或参与创客类比赛作为创客教育的一种途径,比赛的竞技性对软件的功能提出了更高的要求。因此,Mixly在功能的设计上力求和Arduino IDE的文本编程保持一致,目前最新发布的Mixly 0.97版已经实现Arduino的所有官方功能(包括中断处理),并加入了大量的第三方扩展库功能,如红外遥控、超声波等,可以保证课程开设和各类创客比赛的双重需求。
普适性
Mixly在设计上考虑了绝对的普适性。首先,对于Arduino官方支持的所有开发板,Mixly都提供了完美的支持:Mixly会根据开发板的类型自动改变模块中的管脚号、中断号、模拟输出管脚等;其次,对于Arduino支持的第三方开发板,Mixly同样支持,用户只要把相应开发板的定义复制到Mixly中即可。如国内大量的ESP8266开发板、各类用户修改后的开发板等等,以保证用户在开发板选择上的最大自由度。
延续性
图形化编程系统的目标绝对不是替换原有的文本编程方式,而是希望学生通过图形化编程更好更快地理解编程的原理和程序的思维,并为未来的文本编程打好基础。Mixly的设计理念也是如此。在软件的设计上加入了更多的可延续性内容,从而保护用户的学习成果。具体来说,包括引入变量类型、在模块的设计上尽量保持和文本编程的一致、支持图形编程和文本编程的对照等。
生态性
生态性是Mixly最重要的设计理念,也是它区别于其它Arduino图形化编程的最重要特征。为了实现Mixly可持续发展,Mixly在设计上既允许厂商开发自己的特有模块(当前已经支持DfRobot、StartLab、MakeBlock、Sense、Seeed、Lubot,Microduino、Ruilong、NodeMcu,Nova,用户需要有JavaScript编程基础才能制作这部分模块),也允许用户直接利用Mixly的图形化编程功能生成通用模块(如数码管显示、蜂鸣音播报等,用户只需会使用Mixly即可制作这部分模块)。以上两类模块均可通过“导入库”功能导入Mixly系统,从而在Mixly软件的普及中实现用户自身的价值。
目前最新版本为1.0.0,支持Windows 7/8/10、MacOS、Linux(非arm框架)。
【推荐1】
【推荐2】
【推荐】
下载Mixly_WIN.7z压缩包,右键解压到本地磁盘。
注解
建议解压到硬盘根目录,路径不能包含中文及特殊字符(如:. _ ( ) 等)。
建议安装路径如E:Mixly
解压后目录如图所示。
第一次解压的软件只含有最基础的文件,不能直接运行。需要先运行 一键更新.bat 或 update.bat下载最新版的Mixly软件。
等待片刻后,会显示更新进度。
当看到提示“Mixly更新完成”时,说明软件下载完毕。
更新完成后,软件目录如图所示,可以双击Mixly.exe打开Mixly软件。
Mixly软件的更新是基于git设计的,每次更新会自动对比最新版与用户使用的版本的差异,只更新差异文件,避免重复下载造成版本混乱。
先关闭Mixly软件,再运行 一键更新.bat或update.bat 启动更新程序。
稍等片刻后,更新完成。
开发板与电脑连接通讯需要安装相应的串口芯片驱动,常用的串口芯片驱动有CH340和CP2102。 在arduino/drivers目录中可以找到这两种串口芯片驱动。
根据使用的开发板的串口芯片选择相应的驱动,如果不确定是哪种串口芯片,也可以将两个驱动都安装上。
双击Mixly.exe即可启动Mixly软件。
下载jre-8u221-macosx-x64.dmg Java 安装包,根据提示默认安装。
下载Mixly1.0_MAC.zip压缩包,右键解压到本地磁盘。
解压后目录如图所示。
1.MAC必须安装JDK8,而且只能安装JDK8,高版本JAVA不行,可以直接使用云盘目录自带的JDK 2.需要安装相应的开源硬件驱动,常用的就是云盘自带的cp210x驱动和ch34x驱动 3.需要自行安装 python3(安装包在云盘) 4.安装完python3之后,运行以下命令行操作
1 2 3 4 5 6 7 |
sudo xcode-select --install ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew install portaudio pip3 install pyaudio brew install opencv pip3 install opencv-python pip3 install baidu-aip matplotlib pandas numpy
|
5.解压Mixy后双击Mixly.jar即可使用
开发板与电脑连接通讯需要安装相应的串口芯片驱动,常用的串口芯片驱动有CH340和CP2102。 Mixly/drivers目录中可以找到这两种串口芯片驱动。
根据使用的开发板的串口芯片选择相应的驱动,如果不确定是哪种串口芯片,也可以将两个驱动都安装上。
双击Mixly.jar即可启动Mixly软件。
Mixly软件的更新是基于git设计的,每次更新会自动对比最新版与用户使用的版本的差异,只更新差异文件,避免重复下载造成版本混乱。
先关闭Mixly软件。 打开 终端 并通过 cd 命令进入mixly软件所在目录(输入 cd后可以将mixly文件夹拖入 终端 窗口)。
依次输入输入更新命令:
1 2 3 |
git add * git stash git pull origin master
|
稍等片刻,就可以看到更新文件完成。
界面介绍
Mixly软件主要分成图形化程序选择区、图形化程序编辑区、代码预览区、系统功能区、消息提示区。
图形化程序选择区
图形化程序选择区中包含了各类图形化程序,每一个类别中都包含多个图形化。通过将这些图形块拖动到图形化程序编辑区就可以完成编程。
程序编写区
程序编写
我们通常把能完成一定功能的代码块拖动到该区域处进行连接。
程序删除
将不需要的代码拖到右下方的垃圾桶。
将不用的代码拖到最左侧的图形化程序选择区。
选中不用的代码后点击键盘Delete或者Backspace键。
程序缩放
在右下角垃圾桶上方有缩放按钮。
第一个按钮是图形块大小正常化并居中。
第二个是放大图形块。
第三个是缩小图形块。
当然也可以直接使用鼠标滚轮进行缩放。
程序整理
当编写的程序比较多时,需要对程序进行整理。
在空白区右击,选择清理块。
注意
只有当有多个分离块时,才能进行整理。
程序复制
在图形块上右击,选择复制,会产生一个一样的块,但该方式只能复制一个块。
先用鼠标拖住多个块,再按下Ctrl+C,Ctrl+V可以复制多块。
切换语言
在该区域的右上角,还可以选取语言的种类。
截止目前为止,Mixly可支持英语、西班牙语、简体中文及繁体中文。
撤销及重做
在选择语言的左边还有两个箭头,分别是撤销(undo,Ctrl + Z)及重做(redo,Ctrl + Y)。
撤销功能是当我们编写代码时误删代码后,便可点击左箭头或直接按Ctrl + Z来恢复误删代码。
而重做则是和Ctrl + Z相反,它是恢复上一步操作,该功能也可通过点击右箭头或直接键入Ctrl + Y 来实现。
帮助文档
在选择语言的左侧?图标是帮助文档的链接,点击该图标可以打开帮助文档。
代码预览区
该区域可通过点击右侧深灰色箭头来显示或隐藏。
在图形化程序选择区拖拽图形块后,在代码编辑区会生成对应的代码。可以帮助用户掌握代码的学习。
注意
在该区域无法直接对代码进行编辑,需要点击图形化程序选择区左上角的 代码 按钮才能进行编辑。
消息提示区
消息提示区通常是给学生予以信息反馈的场所。比如编译或上传进程中,编译或上传是否成功,如果失败原因是什么;或者是导入库是否成功等消息。
系统功能区
系统功能区主要执行的功能有新建、打开、保存、另存为、导出库、导入库、管理库、编译、上传、选择主控板型号及端口、串口监视器及软件界面放大缩小等功能。
一般功能
Mixly的一般功能包括新建、打开、保存、另存为,其中代码保存或另存为的格式为.mix或者.ino。
当用户需要打开已保存的文件时,可以先打开Mixly软件,再点击“打开”,找到*.mix文件。也可以直接双击*.mix文件打开。
库功能
为了方便用户使用及代码分享,Mixly特增加了库功能。库功能分别包括:导出库,导入库以及管理库。 当用户编写完一段代码后(比如语音播报),可这个代码集成在一个函数中(假设该函数为sayNum)。之后只需要点击导出库并给该库起个名字便能使用。
保存后就可以将该库上传至平台,供他人下载使用、学习。
当有人下载该代码后,可直接将该库进行导入并使用。点击导入库找到该文件的位置。
导入后界面会刷新,耐心等待1-2秒,便可在模块选择区见到新导入的库,同时,在消息提示区也会提示“导入自定义库成功!”接着可直接点击sayNum库,将指令拖入程序构建区,调用该函数即可。
管理库的功能是可以对已导入的库进行重命名、删除和打开目录。
编译&上传
当用户编写完代码后,如果想要检查代码逻辑是否有误,可点击编译。
如果显示“编译失败”,则需要根据提示检查自己的代码,如显示“编译成功”则证明代码逻辑上无误,可上传。
如果出现“上传失败”,大多数情况插拔USB线即可解决该问题。
如果出现“上传成功”,则证明代码已上传至板子上。当然,如果用户对于代码逻辑信心十足,可直接点击上传按钮。
板卡&端口
当用户点击主控板下拉三角时即可看到有众多主控板型号可供选择。用户需按照当前手中主控板型号予以选择。
注意
开始编程前就要先选择板卡,编写好程序再切换板卡将导致程序丢失。
选择好板卡后,还需要选择该板卡对应的端口号,端口号是计算机与板卡通信的通道。
串口监视器
串口监视器与模块选择区的通信模块中的串口通信指令一起使用。 可以用于输出变量、传感器数值等。
界面缩放
在串口监视器右侧有一个左右可拉的按钮,该按钮可放大或缩小Mixly整个界面的大小。
与程序构建区内的放大、缩小不同(该按钮只可放大或缩小程序构建区代码的大小),拖动缩放界面可放大除消息提示区外所有区域的大小。
支持板卡
从语言上来说,Mixly目前支持Arduino、MicroPython、Python三种语言。 当我们开始使用Mixly编写程序时,需要先在Mixly软件右下角选择正确的板卡
Arduino板卡
该类别下采用Arduino编程,支持板卡如下:
Arduino/Genuino Uno
Arduino Nano
Arduino/Genuino Mega or Mega 2560
Arduino Leonardo
Generic ESP8266 Module
NodeMCU 1.0 (ESP-12E Module)
LOLIN(WEMOS) D1 R2 & mini
WeMos D1 R1
ESP32 Dev Module
Arduino MixGo
Arduino HandBit
Arduino MixePi
MicroPython板卡
该类别下采用MicroPython编程,支持板卡如下。
MicroPython[ESP32_Generic]
MicroPython[ESP32_HandBit]
MicroPython[ESP32_MixGo]
MicroPython[NRF51822_microbit]
Python
纯python编程,不需要任何板卡。
mixpy
微信关注图中张十三的博客公众号,学习更多技术干货: