米思齐实战手册 Arduino图形化编程指南(创客教育)(txt+pdf+epub+mobi电子书下载)

作者:程晨

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

米思齐实战手册 Arduino图形化编程指南(创客教育)

米思齐实战手册 Arduino图形化编程指南(创客教育)试读:

前言

Arduino因其简单易用、完全开源、扩展丰富的特点而成为开源硬件中的一个重要角色,它将硬件开发的难度降低了一个档次。使用Arduino制作电子作品时,我们不再需要单独学习单片机、寄存器之类的底层知识,只需要专注于我们的想法与想要实现的功能。它让每个人都能完成一个具有交互功能的硬件作品。

在国内,Arduino的应用更是推动了创客教育的发展,广大中小学生也加入学习Arduino的过程中。随着越来越多的中小学开设Arduino相关的课程,老师反馈的问题也逐渐增多,其中最突出的问题就是Arduino采用的是代码编程,延长了课堂的教学时间,虽然有ArduBlock这样的图形化编程插件,但老师在使用中依然会遇到这样那样的小问题。

在大家的期盼当中,北京师范大学教育学部创客教育实验室推出了将图形化编程方式和代码编程方式融合在一起的软件开发环境米思齐(Mixly)。当笔者看到米思齐时,感觉就和当年第一次接触Arduino一样,希望更多的人能够了解它、使用它,于是就有了本书的构想。经过几个月的努力,终于完成了书稿的编写。

因为目前市面上已经有不少介绍Arduino的书,所以本书的重点没有放在硬件上面,而是放在了图形和代码的相互关系上。主要内容是介绍米思齐软件的应用,在第一章的总体描述之后,通过一个一个具体的实例来强化大家应用米思齐的能力。本书比一般Arduino入门书籍介绍的功能要广一些,比如我们用到了系统时间,用到了EEPROM,用到了红外接收功能等。

本书面向的是对Arduino感兴趣的读者,尤其是希望在Arduino教学中使用米思齐的老师。虽然本书以Arduino作为硬件平台,但米思齐能够开发的硬件平台却不限于Arduino。希望本书能够让你真正了解米思齐,掌握米思齐,享受编程的乐趣。

为了更适合读者阅读,本书采用全彩色印刷,书中实例使用Fritzing绘制实物连接效果图,更加直观、明了。这里要感谢人民邮电出版社的编辑在出版过程中付出的努力,最后还是要感谢现在正捧着这本书的您,感谢您能花费时间和精力阅读本书。由于创作时间有限,书中难免存在疏漏与错误,诚恳地希望您批评指正,您的意见和建议将是我巨大的财富。程晨2016.8.1第1章初识米思齐1.1 米思齐简介

米思齐是一款将图形化编程方式和代码编程方式融合在一起,为硬件编程的软件开发环境,英文名为Mixly,是北京师范大学教育学部创客教育实验室傅骞教授团队基于Blockly和Java8开发完成的。

目前,开源硬件Arduino中的AVR系列均可通过Mixly来开发。与Arduino的可视化编程插件ArduBlock相比,Mixly简化了Arduino IDE和ArduBlock可视化编程插件的双窗口界面,为Arduino学习者提供了更友好的编程环境。1.2 软件界面1.2.1 软件获取

我们可以从北京师范大学教育学部创客教育实验室的网站(http://maker.bnu.edu.cn)下载到Mixly开发环境。网站页面如图1.1所示。图1.1 北京师范大学教育学部创客教育实验室的网站

网站上有Mixly的最新进展以及近期活动等内容,要下载软件,可以选择“资源下载”或“Mixly For Arduino”。如果你选择的是“Mixly For Arduino”,会发现该菜单下弹出了几个子菜单,如图1.2所示。图1.2 “Mixly For Arduino”中的子菜单

要下载软件,请单击几个子菜单中的“Mixly系统下载”,之后就会打开一个资源的界面,如图1.3所示,选择下载相应版本的Mixly即可。这里要说明一下,目前,Mixly有针对Windows和MacOS的两个版本,笔者使用的操作系统是Windows,所以本书后面的内容均是在Windows下操作的。图1.3 下载对应版本的Mixly1.2.2 界面介绍

下载的文件是一个压缩包,因为Mixly是一个绿色免安装软件,所以解压之后就可以直接使用了。不过在使用之前,需要先确保已安装了JAVA环境。

解压后,文件夹中的内容如图1.4所示。图1.4 Mixly的文件夹

在文件夹中,不是文件夹类型的文件有两个,将文件扩展名显示出来之后,能看到其中一个名为“Mixly.jar”,另一个名为“Mixly.vbs”。这里双击“Mixly.vbs”运行它,就能打开Mixly,软件界面如图1.5所示。图1.5 Mixly的软件界面

总体来说,软件界面分为4个部分。(1)左侧为模块区,这里包含了Mixly中所有能用到的程序模块,根据功能的不同,大概分为以下几类:输入/输出、控制、数学、文本、数组、逻辑、通信、存储、传感器、执行器、变量和函数。每种类型的模块都用不同的颜色块表示,其中每一个分类中的模块,在下一节有专门的介绍。(2)模块区的右侧是程序构建区,按住鼠标左键拖住模块区的模块,可以将它们放到程序构建区,拖曳过来的模块会在这里组合成一段有一定逻辑关系的程序块。这个区域有点类似代码程序编辑软件中写代码的地方。在这个区域的右下角有一个垃圾桶,想要删除模块时,就要将模块拖入垃圾桶中。在垃圾桶上方有3个圆形的按钮,能够实现程序构建区的放大、缩小和居中。(3)模块区和程序构建区的下方是基本功能区,有点类似一般软件的菜单区。这里不仅包含了新建、打开、保存、另存为这样的各种软件都具有的按钮,还包含了硬件编程软件中需要用到的编译、上传、控制板选择、连接端口选择以及串口监视器这样的按钮。(4)软件的最下方是提示区,这里在软件编译、上传的过程中会显示相应的提示信息。我们可以通过提示信息来解决编译上传中出现的一些问题。

最后还要补充两点:第一点是Mixly支持多种语言,我们可以通过界面右上角的下拉菜单选择不同的语言版本,此时这个下拉菜单显示的是“简体中文”。第二点是在界面左上角模块的右侧有一个“代码”选项卡,单击这个选项卡就能进入纯代码形式。Mixly作为一款将图形化编程方式和代码编程方式融合在一起的开发环境,如果只能单独地显示代码或显示图形程序块,那肯定不够好,Mixly是能够将代码和图形程序块同时呈现在屏幕上的,这个功能可以通过程序构建区最右侧的一个向左的按钮实现,单击这个按钮之后的效果如图1.6所示。图1.6 将代码和图形程序块同时呈现在屏幕上

此时,在程序构建区的右侧会显示出对应的代码,这段代码是和程序构建区中的模块所组成的程序块对应的,会随着模块的变化而变化,不过区域中的代码是不可编辑的。同时界面最右侧那个向左的箭头按钮变成了向右的箭头。1.3 各功能模块介绍

介绍完整体的界面布局之后,下面让我们来看看模块区中各个模块的功能。如果你是一位零基础的读者,可能会遇到一些不能理解的概念,我的建议是跳过不理解的部分,接着往下阅读,也许通过后面具体的实例就能更直观地理解这些概念了。如果读完本书还有一些概念没有理解,那么可以阅读本人的《Arduino开发实战指南:AVR篇》《Arduino电子设计实战指南:零基础篇》。1.3.1 输入/输出

对于硬件控制板来说,管脚(我们通常使用“引脚”这个名称,但由于Mixly中采用了“管脚”,为了与插图保持统一,书中也采用“管脚”)的输入/输出控制是最基本的操作。本人对电子学的理解是电子学的世界中实际上只有两种信号—数字信号和模拟信号,而硬件控制板要处理的,或者说是我们在制作电子作品时需要处理的也就是这两种信号,外围使用的各种传感器、驱动部件的信号也都可以归结为这两种。每种信号又分为输入和输出两种处理形式,所以最基本的就是4种情况:管脚的数字量输入、管脚的数字量输出、管脚的模拟量输入、管脚的模拟量输出,而串行通信实际属于数字信号处理的一种扩展。借助“输入/输出”分类中的模块,能够实现管脚输出高/低电平,或检测管脚上允许范围内的电压输入的功能。单击模块中的输入/输出分类,会弹出如图1.7所示的模块列表。图1.7 输入/输出模块1.高/低数值模块

该模块会提供一个高或低的数值,表示管脚输出高电平或低电平。通过模块中的下拉菜单箭头,可以更改提供的数值。2.数字输出模块

该模块会设置具体的某个管脚输出高电平或低电平。模块中有两个参数可以改变:一个参数是前面的管脚号,单击下拉菜单箭头会弹出可以控制的管脚列表;另一个参数是设置管脚输出的电平高/低,和上一个模块一样,也是通过下拉菜单箭头改变。

注:实际上第二个参数用的就是第一个高/低数值模块。3.数字输入模块

该模块会获取具体的某个管脚输入的电平是高还是低,模块中的参数用于设置具体管脚号。4.模拟输出模块

该模块会设置具体的某个管脚输出一个特定的电压值。模块中有两个参数可以变:一个参数是前面的管脚号,单击下拉菜单箭头会弹出可以控制的管脚列表;另一个参数是设置管脚输出的电压值,最终输出的电压值范围是0~5V,不过控制板的控制精度能够达到0.0195V,所以这个参数值的范围是0~255,直接输入参数值就可以。5.模拟输入模块

该模块会获取具体的某个管脚输入的电压值,单击下拉菜单箭头就会弹出可以使用的管脚列表。控制板会将获取的电压值转换成一个范围在0~1023的正整数。6.中断控制模块

该模块会在某个管脚的电平变化时产生一个中断,运行“执行”模块中包含的程序块。模块中有两个参数可以调整:一个参数是前面的管脚号,单击下拉菜单箭头会弹出可以控制的管脚列表;另一个参数是设置中断触发模式,单击下拉菜单箭头可选择电平上升、下降或变化。7.取消中断模块

该模块能够取消某个管脚的中断。8.脉冲长度模块

该模块能够获取相应管脚持续一种状态的时间长度。第一个参数是对应的管脚号,第二个参数是选择获取持续哪种状态的时间长度,通过单击下拉菜单箭头可选择高或者低。9.带超时限制的脉冲长度模块

该模块与上一个模块的功能类似,只是加了一个超时参数。10.移位输出模块

该模块需要用到两个管脚,一个当作数据管脚,另一个当作时钟管脚,以数字脉冲的形式发送最后的“数值”参数。“数值”参数前面的数序参数可以通过下拉菜单箭头选择“高位先入”还是“低位先入”。1.3.2 控制

控制是支撑起整个程序逻辑关系的主题,有了控制,才能实现不同程序模块的选择和跳转。单击模块中的“控制”分类,会弹出如图1.8所示的模块列表。图1.8 控制模块1.初始化模块

由于直接放在程序构建区的模块是在loop函数中循环运行的,如果我们希望某个程序模块只在初始化时运行,就需要将对应的模块放在初始化模块中。2.延时模块

该模块能够让程序等待一段时间。模块中有两个参数可以修改:一个参数是前面的延时时间单位,单击下拉菜单箭头可选择毫秒或微秒(1毫秒=1000微秒);另一个参数是延时的时间,这个参数直接输入就可以了,单位就是前面的参数值。3.选择结构模块

该模块用于实现判断的选择结构,用法会在下一章中通过具体的实例来说明。

说明:涉及程序结构的模块,我们均在之后通过具体的实例来说明。4.switch选择结构模块

该模块用于实现多分支的switch选择结构。5.一定次数内的循环结构模块

该模块用于实现一定次数的循环结构。6.循环结构模块

该模块用于实现“当”型或“直到”型循环结构。单击参数中的下拉菜单箭头可选择“当”或“直到”。整个模块可以添加一个条件值。

在“当”型循环结构中,当条件值为真时,执行循环体语句;当条件值为假时,跳出循环体,结束循环。在“直到”型循环结构中,会先执行模块中的程序块,然后再判断条件值是否为真,如果为真则继续循环,如果为假则终止循环。7.跳出循环模块

该模块放在程序中用来跳出任意一种循环体。8.系统运行时间模块

该模块会获取系统上电后运行的时间,通过参数可选择时间的单位是毫秒还是微秒。1.3.3 数学“数学”分类中是一些与数学相关的模块,单击模块中的“数学”分类,会弹出如图1.9所示的模块列表。图1.9 数学模块1.数值模块

该模块会提供一个数值,可作为其他模块的参数或条件。2.运算模块

该模块能够实现两个数据的加、减、乘、除以及取余、半加操作,运算方式可以通过下拉菜单选择。3.三角函数模块

该模块能够实现一些三角函数运算。单击下拉菜单箭头可选择sin、cos、tan、atan、asin以及acos这几种三角函数。4.简单运算模块

该模块能够实现一些简单的单个数据的运算。单击下拉菜单箭头

试读结束[说明:试读内容隐藏了图片]

下载完整电子书

若在网站上没有找合适的书籍,可联系网站客服获取,各类电子版图书资料皆有。

客服微信:xzh432

登入/注册
卧槽~你还有脸回来
没有账号? 忘记密码?