Scratch测控传感器的研发与创意应用(txt+pdf+epub+mobi电子书下载)

作者:吴俊杰,梁森山

出版社:清华大学出版社

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

Scratch测控传感器的研发与创意应用

Scratch测控传感器的研发与创意应用试读:

前言

STEM(Science Technology Engineering Mathematics Education)意指“科学、技术、工程学、数学教育”,是由美国发起的一项旨在通过提高STEM领域劳动者人数和受教育者综合应用STEM领域的能力,提高国家的人力资源水平继而提升国家竞争力。本课程将科学、技术、工程学和数学4个领域通过一个具体的研究性学习案例融合起来,使大家在掌握信息技术的基础上,设计、开发和制作实验装置(工程),应用其中的数学原理,得到一个科学的结论,并尝试用多种不同的形式表达这一科学结论。期望培养一个“数字科学家”,即对任何一个感兴趣的问题都能用科学的方法独立地开展研究的“自由的研究者”。通过数据的“获取、存储、分析、表达”来实现结论的定量化、精确化和理论化。本书以麻省理工学院开发的Scratch语言为编程环境,将常见的计算机外部设备当作传感器来使用,展示了一系列适合中学生甚至大学生的研究性学习案例,对于培养学生的能力、提高学生的编程水平和对计算机的理解都很有帮助。

2013年9月,麻省理工学院团队发布了Scratch2.0的离线测试版,Scratch2.0的编程环境已经比较成熟,因此本书使用Scratch2.0作为Scratch程序语言基础的教学平台,并比较了Scratch1.4和Scratch2.0的区别。通过一组动画和游戏案例,介绍Scratch语言的基础和Scratch网站的学习方法,并将这些作为接下来学习感测与控制技术的基础。

通过将生活中常见的计算机外部设备改装成为传感器,并结合Scratch程序的传感器板,使有研究能力的学生可以自由地发挥想象,将编程渗透到游戏、娱乐和科学探究中,其学习角色可向科学家、交互设计师、工程师等多种STEM领域的职业角色转换。在这个过程中,学生会明白自己适合做什么和喜欢做什么,以及完成一项工作自己需要找哪些人合作,这些能力将会使学生受益终生。

本书作者之一贾思博于2010年获得“明天小小科学家”比赛二等奖,并顺利保送清华大学;作者朱忠旻凭借Scratch领域的研究,受邀参加了2012年麻省理工学院举办的Scratch2012年年会;作者范力彬是景山学校最早一批学习Scratch语言的学生,未来会成为一名教师,将Scratch教给更多的人。作为他们的教师,在教学相长的过程中,看到学生慢慢地成为我的合作者,甚至成为我所崇拜的人,我深深地体会到作为一名教师的职业幸福,也非常期待着能够有更多的人通过测控传感器的研发过程,打通程序编写、科学研究、创意应用之间的鸿沟,成为一个“数字科学家”。他们的共同特征是“对于任何一个感兴趣的问题都能用科学的研究方法定量地开展研究”,他们的研究是出于好奇心和兴趣而非功利和强迫,他们知道如何获取数据、得出结论,更知道如何和别人分享结论、传播思想。总之,他们将是一群自由的研究者,这个梦想虽然很难但是很值得为之而努力。

自由,虽然是一个“奢侈”的目标,却是人类永恒的追求!

本书整体规划以及第1章的编写由吴俊杰负责,第2章由贾思博、范力彬编写,第3章由吴俊杰、梁森山、朱忠旻编写。

由于作者水平所限,书中疏漏在所难免,欢迎读者批评指正。北京景山学校吴俊杰2013年5月于自缚居第1章 Scratch语言基础知识1.1 Scratch语言简介

Scratch是由麻省理工学院媒体实验室开发的一款适合青少年入门的程序语言,它采用图形化界面编写程序,图1.1 所示就是一个角色及其程序,从中可以看出图形化的程序也有各种逻辑结构,每一类指令在Scratch语言中用一种特定的颜色表示。图1.1 Scratch语言的界面和模块功能

从图1.1中的中部程序可以看到,Scratch有比较丰富的指令集,可以完成从多媒体到游戏设计,从科学研究到工程应用的一系列程序,本书的重点是测控传感器的研发,所以首先重点介绍一下图1.1中左侧的侦测模块,如图1.2所示。图1.2 侦测模块功能介绍

在侦测模块中,如果从人和计算机交互的角度来分类,程序可以侦测到的信息分为两类:第一类是程序内部可以引用计算机内置的一些信息,与人对计算机操作没有直接的关系;第二类是人在操作计算机的过程中通过计算机的外设向计算机输入的信息,这一系列操作包括按下键盘、移动鼠标、用麦克风说话、用摄像头拍摄图片等,这些信息都是通过感测设备来实现的,本书的前半部分试图将这些计算机常见的外设通过编写程序使其成为科学探究实验的实验仪器的一部分,后半部分将会使用Scratch测控板来感测更多的外部信息,包括按钮、光线、滑杆、电阻变化等一系列信息。Scratch测控板和传感器如图1.3所示。这是Seneasy出品的Labplus传感器板,这种传感器板除了一般传感器板所具有的输入外界环境信息的功能外,还可以输出信息,控制电机、蜂鸣器、LED等多种输出装置。

在Scratch语言中,有些传感器的感测量只有两种可能,比如“按下鼠标”只有成立和不成立两种情况,像这种只有两种状态的感测量称为“二值量”。而像鼠标x坐标、滑杆传感器的位置这些有很多数值的感测量称为“多值量”。二值量用两头尖的模块表示,多值量用两头圆的模块表示。二值量可以直接放进条件判断中,当作判断的条件;而多值量必须通过“等于、大于、小于”的判断才能作为条件判断的条件。

编写的Scratch程序可以通过单击“分享”菜单中的“将此作品在Scratch网站上分享”命令,将作品上传到Scratch的官方网站scratch.mit.edu。首先需要先注册用户,注册后就会有一个个人作品的主页,完成上传之后,作品就可以在线下载和评论。如图1.4所示,上传的过程中要记录一些程序的信息。图1.3 Scratch测控板和传感器图1.4 上传scratch作品

图1.4中介绍了本书的服务网站:www.edumaker.com,在这个网站上将会提供课程的教学视频,所有案例都会在http://scratch.mit.edu/users/towujunjie上共享。另外,课程所需要的硬件可以在http://ezcomel.taobao.com上找到。本书的读者QQ群号为136245948。1.2 第一个Scratch2.0程序

2012年7月,笔者在麻省理工学院参加Scratch2.0发布会时,Scratch2.0只能在麻省理工学院校园内部进行网络测试,笔者有幸第一时间接触到Scratch2.0,就在2013年9月,Scratch2.0发布了离线测试的版本,可以说这个版本的到来表明Scratch2.0已经比较成熟了,接下来就介绍一下Scratch2.0,并将它和Scratch1.4做一比较。1.2.1 注册Scratch账号

Scratch2.0是一款基于网页的编程工具,通过浏览器用户就可以完成程序的编写和调试。登录scratch.mit.edu网站,注册一个账户就可以在线编程,但是需要注意,Scratch2.0网站的显示不支持版本比较低的浏览器,Scratch官方网站上推荐的是Google的Chrome浏览器,可以在www.edumaker.org网站下载并安装,如图1.5所示。图1.5 “Google Chrome”安装界面

安装成功后登录scratch.mit.edu,就可以开始注册用户了。Scratch网站如图1.6所示。

Scratch1.4的网页界面如图1.7所示,可以看出Scratch2.0网站的界面更加简洁,但是一开始都是介绍优秀的作品。在Scratch1.4中,可以将作品上传到网站上,图1.7所示的超过193万个程序都是来自世界各地的Scratch学习者贡献的,这些程序在Scratch2.0的网站上仍然可以浏览和运行。更重要的是,还可以在线编辑和修改。但是首先需要单击图1.6右上角的“加入Scratch社区”注册一个账号。

如图1.8所示,填写用户名和密码,这里可以自己填写用户名,但如果是一个小组或者一个学校注册,还期望能够通过用户名找到该同学,比如图1.8所示的用户名中,bj表示北京,js表示景山学校,13-1-1表示2013年入学的初一(1)班的学号为1号的同学,这样方便老师统计学生的情况。图1.6 Scratch2.0的网站界面图1.7 Scratch1.4对应的网站界面图1.8 填写用户名和密码

单击“下一个”按钮后,填写个人信息,如图1.9所示。其中towujunjie@163.com是笔者的电子邮箱。图1.9 填写个人信息

注册完成后界面如图1.10所示。值得注意的是,Scratch网站上大部分用户都是未成年人,因为每个人都可以对别人的作品发表评论,因此网站提醒用户注意语言的文明。1.2.2 使用帮助菜单完成第一个Scratch程序图1.10 注册完成界面

首先单击图1.10所示“那就让我们开始吧!”,可以自学Scratch的用法。提醒读者注意的是,Scratch语言非常适合自学,如果在阅读本书的过程中,能够在Scratch网站上自学一些别人编写的程序中的技巧,将会极大地提高编程水平。

单击“学习如何制作项目”,会看到一个教程,如图1.11所示。图1.11 Scratch网站自身提供的教程

根据Scratch网站上提供的教程,可以一步一步地完成一个最简单的项目,但是教程中的图片目前还是英文的。编程界面也是英文的,如图1.12所示,可以通过语言选项来变换语言,Scratch支持二十多种语言。之前有瑞典的老师和学生访问笔者的学校,他们并不懂得中文,英文也不是很好,但是他们仍然可以用瑞典语版本的Scratch来学习编程,因为语言虽然不同但是思维是相通的。图1.12 将Scratch的编程界面修改成中文

图1.13是按照教程将中间区域的代码拖动到右侧编程区域的一个过程,重复执行10次指令将内部的运动和发声模块连接起来,在连接的过程中,可以看到即将连接成功时会出现一个白色的框提示已经连接好。

双击右侧的代码,可以看到小猫一边走一边跳舞的场景。

在紫色的菜单中选择“说”的代码可以让小猫说一段文字,如图1.14所示。可以看出所有跟动作有关的代码都用蓝色表示,所有跟声音有关的代码都用玫瑰色表示,这是Scratch的一个特点,就是用一种颜色表示类似功能的指令。图1.13 将程序块连接起来图1.14 添加说话功能

上面的程序在每次运行时都需要双击代码,这样很不方便,接下来我们在程序的最开始添加一个启动代码,用单击绿旗作为启动程序的条件。在事件类中,选择“当‘绿旗’被单击”,将它和下面的程序块连接起来,这样单击图1.15右侧舞台小猫上方的绿旗,就可以启动程序了。

接下来将外观菜单中的“颜色特效增加25”拖动到舞台上并双击,看看小猫的颜色发生了怎样的变化,如图1.16所示。如果期望代码排列得更整齐,可以在空白处右击,在弹出的快捷菜单中选择cleanup命令,意思是整理,把代码摆放整齐。图1.15 单击“绿旗”启动程序图1.16 改变颜色特效

和上面的代码一样,也需要一个启动颜色改变代码的事件,选择“当按下右移键”事件作为触发条件,如图1.17所示。按键触发条件的默认值是空格键被按下,可以试一试,按下右移键时小猫的颜色发生了怎样的变化,如果按住右移键不放小猫的颜色又会有怎样的变化,按多少次右移键小猫的颜色才能回到初始的状态。

这样小猫除了自己能够跳舞之外,还能随着不同控制改变颜色。既然小猫在跳舞,就一定要有一个背景舞台才好,如图1.18所示,在背景库中选择一个舞台。图1.17 用右移键控制颜色特效的改变图1.18 添加背景

这样小猫就可以在舞台上移动了,如图1.19所示。图1.19 小猫在舞台上移动

单击最上排右上角的红点所代表的“全部停止”按钮,可以在程序运行的过程中停止这个程序,中间的文字框可用来输入程序的名称,左侧的按钮用来将程序全屏展示,如图1.20所示。细心的读者可能会发现,在全屏之后,小猫的边缘仍然很清晰,但是舞台却出现了像颗粒一样的模糊点,这是由于小猫是通过矢量图工具绘制的,矢量图最大的特点是通过数学公式来确定形状,放大之后不会模糊,而背景图片是一张普通图片,所以放大之后就模糊了。提供矢量图绘图工具是Scratch2.0的一个重要改进。图1.20 全屏显示的效果

在全屏显示之后,帮助菜单隐藏了,单击图1.21所示的“?”,可以将帮助菜单调回。小猫下方显示了当前小猫的位置坐标。

接下来再添加一个新角色。在舞台的左下角可以添加角色,添加新角色的方法有很多,如图1.22所示。图1.21 显示帮助菜单图1.22 添加新角色

从素材库选择一位跳舞的女生(Cassy Danceing)和小猫一同起舞,如图1.23所示,她存放在人物类素材中。选择成功后,新角色就站在舞台中央了。图1.23 添加新角色

下面要让这个女生给小猫的舞蹈伴唱,新建声音的方法有很多。我们选择用麦克风录制一段声音,如图1.24所示。图1.24 添加声音

单击“录音”按钮,网页会提示是否允许打开麦克风,如图1.25所示,单击“允许”按钮。图1.25 在网页上录音

录音完成之后,单击中间方形的“停止”按钮可以停止录音,效果如图1.26所示。图1.26 在线录音

此外,也可以选择上传一段本地的声音。在Scratch2.0中会显示出本地音乐的波形,与Scratch1.4相比添加了对MP3格式文件的支持,如图1.27所示。选择多余的声音文件后,可以将其删除,在线编辑音乐的长度。图1.27 编辑声音

选择一段音乐之后还可以添加淡入淡出等简单的音效,如图1.28所示,接下来可以在该角色的脚本区添加代码来播放声音。

还可以给这位跳舞的女生添加一些舞蹈动作。选择“造型”菜单,发现该角色有多个舞蹈造型,如图1.29所示。

请按照不同的颜色找到相应代码的位置,按照图1.30所示编写代码,让她的造型每隔1s切换一次,实现跳舞的效果,并将音乐加入其中。图1.28 淡入音效图1.29 一个角色的多个造型

接下来就是保存和分享项目。将文件的名称修改好之后,单击,就看到了如图1.31所示的作品,单击右上角的“共享”按钮,可以让其他人看到作品,也就是正式发布。其中右侧“说明”区域用来告诉别人这个软件如何使用,下面的“备注和致谢”用于感谢曾经复制过代码的用户。最下面的虚线框可以添加作品标签,网站的访问者可以通过搜索标签关键词来访问作品。

Scratch2.0提高了对作品知识产权的保护,所有作品分享后的默认状态是“可以共享”,即他人可以复制其中的角色和代码,但是Scratch2.0对于从其他用户处复制的代码有完整的追溯机制。图1.30 切换造型播放声音图1.31 发布这个作品

关于分享和知识产权其官网的声明如下。什么是再创作当一个Scratch用户复制其他人的作品并增加自己的建议(比如修改脚本或造型)得出的作品就是“再创作”的作品。每一个分享的项目都可以被再创作。任何一处细微的修改都是值得认可的,只要向原作者以及为再创作付出很多的人表示感谢即可。为什么Scratch团队要求所有的项目都是可“再创作”的?我们相信查看和再创作有趣的项目是学习编程的好方法,并可登出出色的新想法。这就是为什么在Scratch网站上分享的每个项目的源代码都是可视的原因。如果我不希望其他人对我的项目再创作时怎么办?在Scratch上公布项目时,需要您同意“知识共享”的协议。如果您不希望他人查看或再创作您的作品,则不要在Scratch网站上分享。我可以在我的项目中使用网络上下载的图像/声音/媒体资源吗?再创作时尊重原作者的意愿十分重要。如果您选择将他人的作品整合成自己的作品时,确保在“致谢”栏表示感谢,并添加原作品的链接。查找已经同意再创作的作品,单击“知识共享查询页面”。

完成分享之后,就可以继续创作其他作品了,或者单击继续修改你的作品。

这里稍作说明的是,每个作品下方都有评论窗口,如图1.32所示。注册后的用户都可以对任何作品进行评论,程序的原始作者也可以通过勾选复选框关闭评论功能。图1.32 评论Scratch作品

到此,也只是开了一个头,可单击首页上的优秀作品,看看都有哪些奇妙的效果吧!1.3 Scratch1.4和Scratch2.0的区别图1.33 Scratch1.4界面

事实上,上面的代码同样可以通过Scratch1.4来完成,如图1.33所示,Scratch2.0和Scratch1.4的代码都是通用的。本书会同时用到Scratch2.0和Scratch1.4,因此可以通过把上一节的程序在Scratch1.4中改写来学习Scratch1.4。

通过上一节的介绍,已经可以了解Scratch2.0和Scratch1.4的一些区别,下面具体谈一谈两者的其他区别。

1.脚本选择区中增添了事件类

添加的事件类如图1.34所示。图1.34 事件类

事件类的具体内容如图1.35所示,与Scratch1.4相比,增添了“当背景切换到”和“当响度大于……”两个代码,更方便编写一些小游戏。

此外,增添的“更多模块”类(图1.34)允许添加子函数,这个功能将会在后文中介绍。

2.摄像头功能的增强

在Scratch1.4中,每个造型都允许通过照相的方式获取新造型,如图1.36所示。图1.35 事件类菜单图1.36 用摄像头采集照片图1.37 摄像头代码

在Scratch2.0中,可以动态地采集摄像头的图像信息,打开图1.37所示的“将摄像头开启”选项,背景就会叠加上当前的摄像头信息,如图1.38所示。

可以看到,图1.38中摄像头拍摄的动态画面和原来的背景叠加了起来。图1.38 摄像头动态捕捉的画面作为程序背景

3.文件的保存和上传

Scratch1.4要将文件保存在本地,需要选择“文件”菜单的“存档”命令,如图1.39所示。

在Scratch2.0中,新建文件之后系统会过一段时间自动保存。

在Scratch1.4中,可以将作品上传到Scratch网站中;在Scratch2.0的网页版中,本身就是在Scratch网站中编辑,无须上传。在网站上的作品可以单击“文件”菜单中的“下载到您的计算机”命令,把作品保存到本地,但是Scratch2.0的程序无法用Scratch1.4打开,如图1.40所示。图1.39 保存文件图1.40 将网络程序下载到本地

目前,Scratch2.0目前已经发布了离线版,用户可以脱机编程。Scratch2.0的本地版可以在Scratch网站上下载,也可以在本书的专属网站www.edumaker.org上得到,在后文中将使用Scratch2.0的离线版编写程序。

4.代码的引用

在Scratch1.4中,倡导作者在上传作品时将引用别人的作品标注清楚,但是不做强制要求,如图1.41所示。图1.41 分享作品

但是在Scratch2.0中,若用户towujunjie访问了用户bj-js-13-1-1的作品,选择“再创作”就可以在上面作品的基础上进行改进,如图1.42和图1.43所示。

分享再创作之后的作品,作品显示页面会指出原项目的网址和作者,如图1.43所示。图1.42 再创作图1.43 再创作的作品会显示原项目的地址

此外,在原项目的网页上同样也会显示出有哪些人的哪些作品对原项目进行了再创作,如图1.44所示。

5.代码的暂存

在Scratch1.4中,从另一个程序中复制一段代码的方法是:先输出含有代码的角色,然后再导入到另一个程序中,如图1.45所示。图1.44 显示再创作状态图1.45 从一段程序中复制一段代码

这在Scratch2.0中要方便很多,在浏览别人作品的时候,代码区的下方有一个叫“书包”的区域,如图1.46所示。

可以把他人的角色、代码、声音、造型直接拖动到书包里面,然后就可以在自己的程序当中随意使用,如图1.47所示。图1.46 代码书包图1.47 将角色放入书包

当自己的作品在编辑的时候,书包里的东西随时都可以导入到自己的程序中,如图1.48所示,使用起来很方便。图1.48 将书包中的内容导入进新程序中

6.Scratch传感器板

目前Scratch2.0的在线版和离线版都不支持Scratch传感器板,若要使用传感器板还需要使用Scratch1.4。但是在“感测”菜单中Scratch2.0增加了3个侦测量,如图1.49所示。图1.49 程序可以侦测当前在线浏览人的用户名

特别是当前用户名的功能,对于编写复杂程序十分有用,如图1.50所示。图1.50 验证当前浏览的用户名是否有考试资格

7.软件的发布

Scratch2.0目前只支持网页浏览,不支持发布成.exe文件,但是Scratch1.4可以支持发布为.exe文件。

在没有安装Scratch的计算机上,无法直接打开使用Scratch制作的扩展名为.sb的文件,此时就需要将程序源文件发布为扩展名为.exe的可执行文件,以方便分享或发布。首先需要将Scratch源文件的文件名改为英文字母并保存。安装Scratch2exe程序,该程序也称为ChirpCompiler,见图1.51,由Scratch的另一个版本BYOB团队开发。图1.51 安装Scratch2exe

接下来选择Scratch1.4的原始文件,如图1.52所示,单击“打开”按钮。然后需要选择一个ico图标,如果没有ico文件,请单击“取消”按钮。图1.52 选择要转化为.exe文件的Scratch1.4原始程序

随后生成的文件就可以直接双击打开了。1.4 开始使用Scratch网站1.4.1 评论他人作品

在Scratch网站中,最重要的功能是能够结交许多朋友,结交朋友最好的方式是,查看别人的程序并且提供中肯的意见。首先,如何找到其他同学的程序呢?使用用户名搜索是一个好方法,如图1.53所示,登录以后,使用bj-js-13-1作为搜索词可以找到所有同学的作品,如图1.54所示。图1.53 搜索作品图1.54 查看搜索作品

单击这个作品,就可以评论和再创作了,如图1.55所示。图1.55 评论他人的作品

当然,不仅要和中国人交流,通过搜索你还很可能找到其他国家的朋友。通过Chrome浏览器的在线翻译,可以将留言翻译成英文,然后再发布。1.4.2 管理个人信息

登录之后单击“个人中心”可以修改个人信息,如图1.56所示。图1.56 管理个人中心

进入个人中心之后,如图1.57所示,可以管理个人的信息。图1.57 管理个人信息图1.58 修改个人资料图1.59 消息框

单击左上角的头像可以修改自己的图片,个人页面的中心是最近上传的作品或者评价比较高的作品,修改后的主页如图1.58所示。

右上角的邮件图标显示有3个未读消息,单击该图标,如图1.59所示,其他用户的评论和再创作信息一目了然。如果其他用户期望添加好友,信息也会显示在这里。

右击图标旁边的文件夹图标可以管理所有上传的作品,图1.60所示为用户towujunjie的所有作品。图1.60 管理用户的作品

其中,单击“转到设计页”按钮可以编辑当前的作品,其他用户的评论情况在该作品的右侧显示出来。1.4.3 管理作品集

图1.60中左侧显示已经发布的项目(共享项目)和未发布的项目(非共享的项目)的数目,在这两项之下是作品集的管理。单击该按钮可以查看已有的作品集,如图1.61所示。图1.61 查看已有的作品集

建立作品集的目的是将自己或者他人的Scratch作品整理归类,图1.62中既有自己的作品,更多的是将他人的作品结集成册,因为大部分时间都是在Scratch网站上浏览作品,如果看到好的作品,迅速整理在作品集中,或者和作品的作者成为好友,将会在很大程度上提高自己的Scratch水平。图1.62 查看作品集

一个作品集的管理员可以有很多人,让有共同爱好的人共同添加一个作品集,这时可以邀请他人作管理员,如图1.63所示。图1.63 添加管理员

管理员可以通过用户名输入,也可以添加自己的好友为管理员。此外,教师推荐作品的评论显示了用户对该作品集的评论,Activity的意思是一个日志,添加作品的操作会记录在日志中。1.4.4 浏览作品

对于新注册的用户,在作品栏的下方有“收藏的项目”和“关注”两个选项卡,如图1.64所示。图1.64 管理收藏和关注

单击上面的Explore可以看到目前Scratch的各个分类的典型作品,如图1.65所示。图1.65 Scratch网站的推荐作品

可以浏览这些推荐的作品,这些推荐的作品的共同特点是被“赞”、收藏和再创作的次数都很多。选择其中的一个作品查看一下,如图1.66所示。

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

下载完整电子书

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

客服微信:xzh432

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