#### [[返回文档目录]](../index.html) [[查看原始页]](../content/Raspberry%20Pi%E7%BC%96%E7%A8%8B%E5%B7%A5%E5%85%B7Scratch.html) # Raspberry Pi编程工具Scratch *本帖最后由 shepherd 于 2012-12-23 10:26 编辑* 如果安装的是Raspbian,那么系统经预装了最新版的Scratch开发环境。如果你使用是其他的操作系统,访问Scratch官网[http://info.scratch.mit.edu](http://info.scratch.mit.edu/),有支持Mac OS X和Windows 的版本。那么不用担心没有Raspberry Pi玩不了啦!!! ![scratch.jpg](http://files.note.sdo.com/M5cEN~kg7Es9nM24s00NOX "scratch.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (59.47 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM1OTB8MjRhNTE1ODJ8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "scratch.jpg 下载次数:0") **Scratch****简介** 先介绍一下这个软件吧,以下的介绍部分取自RaspberryPi User Manual中Scratch部分,我只是翻译并稍加修改和注释(红色部分): Raspberrypi项目的首要目的(chiefgoal)是让更多的人能够写自己的代码,而且不仅仅是成年人。RaspberryPi基金会努力让这个板子能够成为所有年龄的人的教育工具。但是也不要以为这只是儿童的玩具,看看<http://v.163.com/movie/2010/3/U/R/M6U6LS8CV_M6U6MHDUR.html>或者<https://www.cs50.net/>看看哈佛大学的学生入门编程工具也是Scratch。 实现这个目标的关键要素是要让儿童能够亲身体验创造自己软件的乐趣,而不只是消费别人的代码。实现这个目标的秘诀就是Scratch。美国麻省理工学院媒体实验室(MassachusettsInstitute of Technology Media Lab)的“终身幼儿园团队”(LifelongKindergarten group,没有找到中文的翻译,楼主自己翻译)在2006年以Squeak和Smalltalk编程语言分支的身份面世。Scratch把编程的核心概念融入到图形中,使这些思想更容易理解。传统打字的编程方式,篇幅大容易让小孩心生疲倦和恐惧而放弃编程,与之不同的是,Scratch是一种拼图的编程环境,拖拽图标完成编程,又能引入编程思想和介绍所有编程语言都会用到的核心概念。Scratch官方推荐的使用年龄是8岁以上,不过在别人的帮助和指导下,小一点的孩子也能很快理解,看起来Scratch很强大嘛!O(∩\_∩)O哈哈~ 在彩色图标和鼠标拖动的编程环境背后则是拥有令人折服的多媒体处理功能的编程语言。因此官网上能有超过250万个Scratch项目与大家分享也就不足为奇了,大多数是游戏。鼓励儿童学习如何创建自己的游戏,是每位父母都想的:让孩子在玩的时候有所学。Scratch友好的用户界面和出色核心编程思想的处理,孩子们就不会因为陡峭的学习曲线而泄气(有点万事开头难的意思,但又不全是,水平有限,列出我认为的两种意思的学习曲线供大家理解:    学习曲线是对某种活动或工具的[学习](http://zh.wikipedia.org/wiki/%E5%AD%A6%E4%B9%A0)速率的图形化表示。一般来说,刚开始时掌握信息的速率曲线最为陡峭,之后则逐渐变得平缓,这表明之后的学习过程中对新信息的掌握速率会越来越慢。     学习曲线也表示刚开始学习某件东西的困难程度,以及在初步掌握之后还能学到多少更高阶的知识。 本人认为这里综合这两种)。更有用的是,有了在Scratch建立起来的出色的编程基础,日后学习更灵活的编程语言如Python会有很大的帮助。 在你转移到其他语言之前,再好好看看Scratch,Scratch提供不仅仅是一个游戏的框架。你可以用它来制作交互式演示和动画片;也可以用它来和外部的传感器和电机交互,当然要想完成这样的交互,你需要额外的硬件,例如PicoBoard[1]和LEGOWeDo[2]机器人套件。 **软件界面简介** 在Raspbian系统,本人还不会截图和编辑编辑文档,以下的内容都是在WindowsXP环境中编辑得到。在Raspbian默认安装的Scratch是英文界面,而在XP环境中会根据实际本地化,我安装的时候是中文环境,为了需要修改为英文环境,一下内容会提到修改的方法。 ![1.main.jpg](http://files.note.sdo.com/M5cEN~kg7Es9nM24s00NP2 "1.main.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (95.87 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM1OTF8N2I5ZTMxNTd8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "1.main.jpg 下载次数:0") 工具栏中和XP系统的资源管理器类似,比较突出的是左上角图标 ![2.earth.jpg](http://files.note.sdo.com/M5cEN~kg7Es9nM24s00NOL "2.earth.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (988 Bytes)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM1OTJ8OTAzZTc3MTB8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "2.earth.jpg 下载次数:0") ,点击它可以更改显示语言(如果觉得英文看着不舒服,那就改成简体中文吧,在Raspbian环境,先保证安装了中文字体,再切换)。 主界面分成三部分: - 最左边是结构面板(block palette):可以选取各种模块(类似于代码)放在中间的Scripts中,组成自己的程序; - 中间的面板,按照中文界面分别是:脚本(构造的程序)、造型和声音,意思也就一目了然; - 最右边的面板比较复杂: - 右下角是放置角色(sprites),也就是程序控制的对象, ![3.sprite.jpg](http://files.note.sdo.com/M5cEN~kg7Es9nM24s00NOP "3.sprite.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (2.85 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM1OTN8MjcwOTk4YjJ8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "3.sprite.jpg 下载次数:0")   三个图标分别是创建角色(自己绘制角色)、从文件夹中选择角色、随机角色 - 右下角还有 ![4.stage icon.jpg](http://files.note.sdo.com/M5cEN~kg7Es9nM24s00NOR "4.stage icon.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (2.19 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM1OTR8ZTEwNDBiOWF8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "4.stage icon.jpg 下载次数:0")   ,点击它后界面会重新刷新一下,变成 ![5. stage.jpg](http://files.note.sdo.com/M5cEN~kg7Es9nM24s00NOZ "5. stage.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (34.51 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM1OTV8ZjY5OWJmNjh8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "5. stage.jpg 下载次数:0") 注意红圈内容的变化,已经变成背景(background)了。在下面操作框中可以绘制,导入,摄像头照相;也可以直接在原有背景基础上复制和编辑。 靠它就可以独立控制舞台的程序,见最后的例程。 - 舞台和角色都会显示在右上角的框中,在此你可以看见程序运行的实际效果 ![6.sprite_op1.jpg](http://files.note.sdo.com/M5cEN~kg7Es9nM24s00NOT "6.sprite_op1.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (2.08 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM1OTZ8ZjNlMWVmYjZ8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "6.sprite_op1.jpg 下载次数:0") 四个图标对框中的角色编辑,分别是:复制、删除、放大、缩小角色。 ![7.sprite_framework.jpg](http://files.note.sdo.com/M5cEN~kg7Es9nM24s00NOV "7.sprite_framework.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (1.25 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM1OTd8Nzg5MzZjZmV8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "7.sprite_framework.jpg 下载次数:0") 对整个显示环境的改变,最右边的是全屏显示右上角的舞台和角色。**入门实例** 既然是个入门例子,必然是了解程序的结构,不过图形编程环境,经典的“Hello, World!”实现起来太简单,不太合适。为了展示Scratch程序结构的不同和简便,声音和图像的完美结合,以及类似于多线程的程序运行方式,设计了这个例子: - 程序由两个舞台(一个是程序自带,另一个自己构造的)和四个角色(Raspberrypi logo)组成,接下来会慢慢介绍具体程序设计过程 - 本来想做一个Raspberry Pi logo的三维旋转效果,但是没有找到相应的设置方式,改成logo出现特殊效果,为了明确程序的意图,以下的截图均为软件的中文界面。 **接下来具体程序设计过程:** - **设计舞台** 第一个舞台是软件自带的spotlight-stage,如图中的红圈和箭头所示可以找到。 - ****![11.design_background_1.JPG](http://files.note.sdo.com/M5cEN~kg7Es9nM24s00NP7 "11.design_background_1.JPG") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (42 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MDF8MmRhNzYwYzh8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "11.design_background_1.JPG 下载次数:0") 第二个舞台是自己构造的,空白的背景导入爱板的logo,具体操作方式看截图 ![12.design_background_2.JPG](http://files.note.sdo.com/M5cEN~kg7Es9nM24s00NO- "12.design_background_2.JPG") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (66.46 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MDJ8MWE2ZTI3NjR8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "12.design_background_2.JPG 下载次数:0") 直接在界面上编辑logo,我的做法很简单,看图(我存储爱板logo直接用logo作为文件名,之后软件直接以这个名字给这个舞台命名。) ![13.design_background_2.JPG](http://www.eeboard.com/bbs/static/image/common/none.gif "13.design_background_2.JPG") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (61.36 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MDN8YWNlMDVkNzJ8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "13.design_background_2.JPG 下载次数:0")**** - ****舞台程序和音乐**** - 音乐导入 ![15.design_background_sound.JPG](http://www.eeboard.com/bbs/static/image/common/none.gif "15.design_background_sound.JPG") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (32.71 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MDV8OTg4ZjdhOWR8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "15.design_background_sound.JPG 下载次数:0") 成功导入音乐后,左边的声音控制中也会有变化 ![14.design_background_sound_2.JPG](http://www.eeboard.com/bbs/static/image/common/none.gif "14.design_background_sound_2.JPG") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (29.18 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MDR8Mjg4YzY4MDZ8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "14.design_background_sound_2.JPG 下载次数:0") - 舞台程序设计 ![16.design_background_program.JPG](http://www.eeboard.com/bbs/static/image/common/none.gif "16.design_background_program.JPG") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (47.43 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MDZ8NGFhYmMzYjF8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "16.design_background_program.JPG 下载次数:0") 程序中可以对照着图片在左边的控制框找。程序的意思是: - 在右上角的小绿旗按下的时候(小绿旗是作为程序开始的标记),舞台切换到spotlight-stage1 - 播放一段音乐(音乐的导入,后面介绍) - 音乐结束后切换到舞台logo - 最后清除所有效果(在此没有效果,只是为了让大家看清舞台程序运行和角色程序运行是相互独立) - 到此舞台程序以全部设计完成,可以点击小绿旗或者直接点击程序块试试效果。 首先还是导入图片,和舞台差不多的过程,导入成功后,在右下角的角色复制出其他3个,角色构造部分就完成了。 ![17.design_sprite_1.JPG](http://www.eeboard.com/bbs/static/image/common/none.gif "17.design_sprite_1.JPG") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (45.68 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MDd8Mjk1OGU0OGN8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "17.design_sprite_1.JPG 下载次数:0") 3. **角色部分程序设计** 对每个角色设计不同程序 第一个角色 ![18.design_sprite_pro_1.jpg](http://www.eeboard.com/bbs/static/image/common/none.gif "18.design_sprite_pro_1.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (35.49 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MDh8ODExYjdlNDB8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "18.design_sprite_pro_1.jpg 下载次数:0") 第二个角色 ![19.design_sprite_pro_2.jpg](http://www.eeboard.com/bbs/static/image/common/none.gif "19.design_sprite_pro_2.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (38.28 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MDl8NWI4NDMwM2J8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "19.design_sprite_pro_2.jpg 下载次数:0") 第三个角色 ![20.design_sprite_pro_3.jpg](http://www.eeboard.com/bbs/static/image/common/none.gif "20.design_sprite_pro_3.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (48.59 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MTB8ZTc4YTI4N2V8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "20.design_sprite_pro_3.jpg 下载次数:0") 第四个角色 ![21.design_sprite_pro_4.jpg](http://www.eeboard.com/bbs/static/image/common/none.gif "21.design_sprite_pro_4.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (36.84 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MTF8NTYyYTI0YTR8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "21.design_sprite_pro_4.jpg 下载次数:0") **4.****整个例程已经全部完成,来两张运行效果图** 点击小绿旗后再按程序中所用到的键效果图 ![22.result.jpg](http://www.eeboard.com/bbs/static/image/common/none.gif "22.result.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (48.61 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MTJ8NWJlNWI0MDN8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "22.result.jpg 下载次数:0") 舞台程序运行结束后的效果图 ![23.result_1.jpg](http://www.eeboard.com/bbs/static/image/common/none.gif "23.result_1.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (34.51 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MTN8ZGQ2NzY4YmF8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "23.result_1.jpg 下载次数:0") **总结** 1. 首先是对自己例子的解读: - 舞台和角色,角色和角色之间的程序运行是相互独立的,最后舞台编程爱板logo的时候,四个Raspberry logo还是在变化的,也可以试试在不点小绿旗的时候,按上下左右键,四个Raspberry logo也是会变化的; - 控制程序启动的方式多种多样:小绿旗,键盘输入,点击角色; - 程序用到顺序结构,for循环,和if循环三种程序结构,程序也包含了其它控制结构; 2. 编程工具没有什么需要记住的命令,图片色彩简单的确很适合初学者的入门 3. 程序块是一种萝卜一种坑的形式,防错做得相当不错,结果就是debug工作少了 4. 对自己的作品有自信的话还可以在<http://scratch.mit.edu/galleries/browse/newest>分享一下,对应的你也可以在这里找到别人的作品; 5. 多看、多动手、多分享, 6. Just for fun **附录** [1] PicoBoard  $44.95价格不菲 <https://www.sparkfun.com/products/10311>? ![29_2096_na_14.jpg](http://www.eeboard.com/bbs/static/image/common/none.gif "29_2096_na_14.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (27.43 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MTR8Mzg1ODYwZmR8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "29_2096_na_14.jpg 下载次数:2") ![29_2096_na_17.jpg](http://www.eeboard.com/bbs/static/image/common/none.gif "29_2096_na_17.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (25.97 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MTV8OTI2NWEyMTZ8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "29_2096_na_17.jpg 下载次数:0") ![LEGO_Education_WeDo_Robotics_Construction_Set.jpg](http://www.eeboard.com/bbs/static/image/common/none.gif "LEGO_Education_WeDo_Robotics_Construction_Set.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (35.22 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MTZ8NjZmYjAwZjN8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "LEGO_Education_WeDo_Robotics_Construction_Set.jpg 下载次数:0") ![Lego_WeDo_Being_Used_With_Scratch.png](http://www.eeboard.com/bbs/static/image/common/none.gif "Lego_WeDo_Being_Used_With_Scratch.png") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (82.47 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MTd8Njc0NzBkZWV8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "Lego_WeDo_Being_Used_With_Scratch.png 下载次数:0") [2] LEGO Education WeDo Robotics ConstructionSet 价格更不菲$129.95 <http://www.legoeducation.us/eng/product/lego_education_wedo_robotics_construction_set/2096> ![PicoBoard_Diagram.jpg](http://www.eeboard.com/bbs/static/image/common/none.gif "PicoBoard_Diagram.jpg") *(外链图片未本地化)* 2012-12-23 09:44 上传 [**下载附件** (28.92 KB)](http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=MTM2MTh8ZWU1Nzg2MTZ8MTM1OTA3OTUyMXwwfDU0Njg%3D&nothumb=yes "PicoBoard_Diagram.jpg 下载次数:2") [Rapberry pi](thread-5468-1-1.html)