本帖最后由 shepherd 于 2012-12-23 10:26 编辑


如果安装的是Raspbian,那么系统经预装了最新版的Scratch开发环境。如果你使用是其他的操作系统,访问Scratch官网http://info.scratch.mit.edu,有支持Mac OS X和Windows 的版本。那么不用担心没有Raspberry Pi玩不了啦!!!


scratch.jpg
2012-12-23 09:44 上传
下载附件 (59.47 KB)

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友好的用户界面和出色核心编程思想的处理,孩子们就不会因为陡峭的学习曲线而泄气(有点万事开头难的意思,但又不全是,水平有限,列出我认为的两种意思的学习曲线供大家理解:    学习曲线是对某种活动或工具的学习速率的图形化表示。一般来说,刚开始时掌握信息的速率曲线最为陡峭,之后则逐渐变得平缓,这表明之后的学习过程中对新信息的掌握速率会越来越慢。
    学习曲线也表示刚开始学习某件东西的困难程度,以及在初步掌握之后还能学到多少更高阶的知识。

本人认为这里综合这两种)。更有用的是,有了在Scratch建立起来的出色的编程基础,日后学习更灵活的编程语言如Python会有很大的帮助。

在你转移到其他语言之前,再好好看看Scratch,Scratch提供不仅仅是一个游戏的框架。你可以用它来制作交互式演示和动画片;也可以用它来和外部的传感器和电机交互,当然要想完成这样的交互,你需要额外的硬件,例如PicoBoard[1]和LEGOWeDo[2]机器人套件。

软件界面简介

在Raspbian系统,本人还不会截图和编辑编辑文档,以下的内容都是在WindowsXP环境中编辑得到。在Raspbian默认安装的Scratch是英文界面,而在XP环境中会根据实际本地化,我安装的时候是中文环境,为了需要修改为英文环境,一下内容会提到修改的方法。

1.main.jpg
2012-12-23 09:44 上传
下载附件 (95.87 KB)



工具栏中和XP系统的资源管理器类似,比较突出的是左上角图标 2.earth.jpg
2012-12-23 09:44 上传
下载附件 (988 Bytes)
,点击它可以更改显示语言(如果觉得英文看着不舒服,那就改成简体中文吧,在Raspbian环境,先保证安装了中文字体,再切换)。

主界面分成三部分:

  • 最左边是结构面板(block palette):可以选取各种模块(类似于代码)放在中间的Scripts中,组成自己的程序;
  • 中间的面板,按照中文界面分别是:脚本(构造的程序)、造型和声音,意思也就一目了然;
  • 最右边的面板比较复杂:
  • 右下角是放置角色(sprites),也就是程序控制的对象, 3.sprite.jpg
    2012-12-23 09:44 上传
    下载附件 (2.85 KB)
      三个图标分别是创建角色(自己绘制角色)、从文件夹中选择角色、随机角色
  • 右下角还有 4.stage icon.jpg
    2012-12-23 09:44 上传
    下载附件 (2.19 KB)
      ,点击它后界面会重新刷新一下,变成 5. stage.jpg
    2012-12-23 09:44 上传
    下载附件 (34.51 KB)


      注意红圈内容的变化,已经变成背景(background)了。在下面操作框中可以绘制,导入,摄像头照相;也可以直接在原有背景基础上复制和编辑。
      靠它就可以独立控制舞台的程序,见最后的例程。

    6.sprite_op1.jpg

2012-12-23 09:44 上传
下载附件 (2.08 KB)
四个图标对框中的角色编辑,分别是:复制、删除、放大、缩小角色。

    7.sprite_framework.jpg

2012-12-23 09:44 上传
下载附件 (1.25 KB)
对整个显示环境的改变,最右边的是全屏显示右上角的舞台和角色。

入门实例

既然是个入门例子,必然是了解程序的结构,不过图形编程环境,经典的“Hello, World!”实现起来太简单,不太合适。为了展示Scratch程序结构的不同和简便,声音和图像的完美结合,以及类似于多线程的程序运行方式,设计了这个例子:

接下来具体程序设计过程:

第一个舞台是软件自带的spotlight-stage,如图中的红圈和箭头所示可以找到。
  • 音乐导入

15.design_background_sound.JPG
2012-12-23 09:44 上传
下载附件 (32.71 KB)


成功导入音乐后,左边的声音控制中也会有变化

14.design_background_sound_2.JPG
2012-12-23 09:44 上传
下载附件 (29.18 KB)


  •   舞台程序设计

16.design_background_program.JPG
2012-12-23 09:44 上传
下载附件 (47.43 KB)


程序中可以对照着图片在左边的控制框找。程序的意思是:
  • 在右上角的小绿旗按下的时候(小绿旗是作为程序开始的标记),舞台切换到spotlight-stage1
  • 播放一段音乐(音乐的导入,后面介绍)
  • 音乐结束后切换到舞台logo
  • 最后清除所有效果(在此没有效果,只是为了让大家看清舞台程序运行和角色程序运行是相互独立)
  • 到此舞台程序以全部设计完成,可以点击小绿旗或者直接点击程序块试试效果。
首先还是导入图片,和舞台差不多的过程,导入成功后,在右下角的角色复制出其他3个,角色构造部分就完成了。

17.design_sprite_1.JPG
2012-12-23 09:44 上传
下载附件 (45.68 KB)

3. 角色部分程序设计
对每个角色设计不同程序
第一个角色
18.design_sprite_pro_1.jpg
2012-12-23 09:44 上传
下载附件 (35.49 KB)

第二个角色
19.design_sprite_pro_2.jpg
2012-12-23 09:44 上传
下载附件 (38.28 KB)

第三个角色
20.design_sprite_pro_3.jpg
2012-12-23 09:44 上传
下载附件 (48.59 KB)

第四个角色
21.design_sprite_pro_4.jpg
2012-12-23 09:44 上传
下载附件 (36.84 KB)






4.  整个例程已经全部完成,来两张运行效果图
点击小绿旗后再按程序中所用到的键效果图


22.result.jpg
2012-12-23 09:44 上传
下载附件 (48.61 KB)
舞台程序运行结束后的效果图
23.result_1.jpg
2012-12-23 09:44 上传
下载附件 (34.51 KB)

总结
1. 首先是对自己例子的解读:
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
2012-12-23 09:44 上传
下载附件 (27.43 KB)
29_2096_na_17.jpg
2012-12-23 09:44 上传
下载附件 (25.97 KB)
LEGO_Education_WeDo_Robotics_Construction_Set.jpg
2012-12-23 09:44 上传
下载附件 (35.22 KB)
Lego_WeDo_Being_Used_With_Scratch.png
2012-12-23 09:44 上传
下载附件 (82.47 KB)
[2] LEGO Education WeDo Robotics ConstructionSet 价格更不菲$129.95

http://www.legoeducation.us/eng/product/lego_education_wedo_robotics_construction_set/2096

PicoBoard_Diagram.jpg
2012-12-23 09:44 上传
下载附件 (28.92 KB)

Rapberry pi