# FAQ

{% hint style="info" %}
使用过程中遇到问题，提问时，可以拍个电路连接照片、程序截图、遇到的问题一 起说下。方便别人看到时能快速回答。 我们鼓励大家多交流分享，所以尽量在群里讨论，不要私聊。因为你遇到的问题， 也许别人已经遇到过，看到了能很快回答。一起探讨的问题，也可以让其他人学习。

&#x20;提问方面的方法可以看看Eric S. Raymond, Rick Moen 所著的[《How to ask questions the smart way》](https://github.com/Blue-Design/How-To-Ask-Questions-The-Smart-Way)。

好好搭搭交流一群：346580874(满员)；

好好搭搭交流二群：595508425；

WU-Link应用群：656213711；

爱上Nova：465403174
{% endhint %}

## 用什么浏览器？

建议使用好好搭搭提供的绿色免安装版本[谷歌浏览器](http://www.haohaodada.com/Chrom.rar)。

## 在线编程插件和硬件下载插件有什么区别?

在线编程插件是用来做互动编程的，比如传感器板编程，需要一直连接。硬件下载 插件是用来把写好的程序下载到控制板芯片里面，下载完成后，可以关闭。

## 好好搭搭插件打开端口失败?

插件监听端口被占用，请关闭不必要的软件，比如酷狗音乐。

## 编译失败？

变量名是否用了中文？变量名是否为数字开头？变量名建议英文不好的，可以用拼音代替。

## 程序上传失败？

1. 电源指示灯是否常亮？
2. USB线是否接上？
3. 驱动是否已经安装？
4. 设备管理器里是否显示CH340设备？
5. 端口号是否选择正确？
6. 主板类型是否选择正确？
7. 串口监视软件是否关闭？


# 浏览器

IE浏览器不支持，支持的浏览器有Chrom、360浏览器、Firefox，我们提供了[绿色版免安装浏览器Chrom](http://www.haohaodada.com/Chrom.rar) 。

## Flash设置

好好搭搭在线Scratch编程是基于MIT Scratch2.0，需要Flash支持，如果编程模板没有跳出Flash动画，请在浏览器里设置允许Flash。

![](/files/-LrgNGGhJuTKuxNx1PfR)

## 下载路径设置

好好搭搭部分产品使用U盘下载模式下载程序，对此类产品下载程序需对修改浏览器设置，在每次下载程序前询问下载位置，操作步骤如下（此处以Chrom浏览器为例）：

1.打开Chrom浏览器，点击右上角自定义键（如下图）。

![](/files/-Lk8NLZ1ixI_wK8iVoIx)

2.选择设置栏，点击进入设置界面。

![](/files/-Lk8NLZ4T2qAhxukuO_5)

3.下拉点击：显示高级设置。

![](/files/-Lk8NLZ64tO3Zqcjj3SB)

4.在下载内容栏，勾选-下载前询问每个文件的保存位置。

![](/files/-Lk8NLZ8leEE87C-_ZFY)


# 插件

## 概述

本工具中主要由两个软件组成，“好好搭搭硬件下载插件”和“好好搭搭在线编程插件”。

“好好搭搭硬件下载插件”是haohaodada平台编写好程序下载到设备中运行的下载工具（如机器人、Arduino、NOVA等需要把程序下载到设备中运行）。

“好好搭搭在线编程插件”是haohaodada平台在线编程，无需下载直接在haohaodada平台运行，就能进行设备和平台互动，适合制作互动媒体作品。（如传感器板、智能电子积木等）

## 安装

1.下载[好好搭搭插件](http://www.haohaodada.com/haohaodada_setup.exe)

2.运行所下载的“好好搭搭”插件安装程序，打开如下左图所示的安装向导，单击“下一步”按钮开始安装。

![](/files/-LWoCnfUVSApT3JcgoIT)

3.在如上右图所示的“选择目标位置”对话框中，一般不需要改变安装位置，将插件程序安装到“D:\haohaodada\插件”文件夹中。单击“下一步”按钮继续安装。

4.在如下左图所示的“选择开始菜单文件夹”对话框中，默认会在“开始”菜单文件夹生成一个名为“haohaodada”的程序组，一般不要改变。单击“下一步”按钮继续安装。

![](/files/-LWoCpUb8HWIUdWmtuSc)

5.在如上右图所示的“选择附加任务”对话框中，默认会在桌面上生成快捷方式，一般也不要改变。单击“下一步”按钮继续安装。

6.在如下左图所示的“准备安装”对话框中，进一步确认“安装位置”、“开始菜单程序组”、“桌面快捷方式”等安装内容。单击“安装”按钮，开始插件程序的安装。

![](/files/-LWoCrN298W0Q1zDwVia)

7.插件程序安装完成以后，还会打开如上右图所示的“驱动安装”对话框，安装“好好搭搭”设备的驱动程序。单击“安装”按钮开始安装。

8.“好好搭搭”设备驱动程序安装完成后，会显示如下左图所示的对话框，单击“确定”按钮退出驱动安装程序。

![](/files/-LWoCspbwD2t0WO8XnDH)

9.在如上右图所示的“haohaodada安装向导完成”对话框中，单击“完成”按钮，就可以退出插件安装程序，完成“好好搭搭”插件的安装。

## 硬件下载插件使用说明

![](/files/-LWoCuaj7KayVQWYFA_v)

1.打开haohaodada.com平台,进行专用设备的图形化编程。

2.运行文件夹中的“硬件下载插件.exe”程序或双击桌面“硬件下载”图标运行，选择好设备对应的串口（一般会自动选择），选择设备的型号（机器人和开发板都选haohaodada,Arduino选板的相应型号）。

3.本软件要始终运行不能关闭，如关闭将无法上传程序到设备。

4.默认设备型号是haohaodada,其他型号可以单击下拉可选.

5.如没有发现设备相对应的串口，请检查设备驱动程序有没有安装完成。

6.在haohaodada.com平台上完成编程，点击上传到arduino按钮（upload to arduino),2-5秒显示编译完成。请你选择下载或保存，点击下载,显示下载窗口，下载完成自动关闭窗口。

7.如下载程序失败，请重新操作一遍。

## 在线编程插件使用说明

![](/files/-LWoCw2AwlOZj3EzVjs2)

1.打开haohaodada.com平台，找到创作相应的设备编程。

2.运行文件夹中的“在线编程插件.exe”或双击桌面“在线编程”图标运行，选择设备对应的串口（一般会自动选择），本软件要始终运行不能关闭。

3.在平台编辑状态，找到更多模块，如连接状态是红色说明平台没有和设备通讯成功，如显示绿色说明通讯成功。

4.如通讯未成功，点击本软件的“连接”按钮，再点击绿旗运行平台的作品，更多模块连接状态显示绿色通讯成功。

## 注意事项

1.上述两个软件只能运行其中一个，运行了A就要关闭B，运行B必须把A关闭。

2.在操作中，务必运行正确的插件，不要搞错两个插件的功能。

## 常见问题

1.已知酷狗音乐会占用插件监听端口，导致插件无法使用，关闭酷狗就行。

2.驱动安装失败，目前大部分系统包括XP，CH340驱动都没问题，如果发现驱动始终安装不上，只能重装系统或者换电脑。


# 微信物联网小程序


# 帐号绑定

#### 扫码关注好好搭搭微信公众号

<div align="left"><img src="/files/-LWz-HNIb99Bh5eFygfa" alt=""></div>

#### 进入好好搭搭微信公众号点击编程工具进入好搭物联网小程序。

<div align="left"><img src="/files/-LWz-K1137sn5PGVzEyW" alt=""></div>

#### 进入好搭物联网小程序后，进入账号绑定界面。点击注册好好搭搭账号

<div align="left"><img src="/files/-LWz-N2CVOCQktPOqsZF" alt=""></div>

#### 输入用户名和密码，点击注册。

<div align="left"><img src="/files/-LWz-QK7pU5MG3nBuSIb" alt=""></div>

#### 注册成功后绑定手机号并点击绑定好好搭搭账号。

<div align="left"><img src="/files/-LWz-TLK7qVDIWpZopvL" alt=""></div>

#### 绑定成功后进入如下界面，点击查看可查看绑定的账号。

<div align="left"><img src="/files/-LWz-XfSCjXR8Z90XUEs" alt=""></div>


# 联网配置

#### 设备进入网络配置模式

不同设备怎么进入网络配置模式，请查看具体设备说明文档

#### 可通过直接输入、二维码扫描、查找设备三种方式输入mac地址，并输入所在处的wifi账号及密码，点击配置wifi，即可对设备配网

<div align="left"><img src="/files/-LWz-gBZGJ0qsWggLLNX" alt=""></div>

<div align="left"><img src="/files/-LWz-iwnt4uMQkO4OOVA" alt=""></div>


# 设备绑定

#### 回到主界面点击添加设备，输入mac地址与设备名称,点击绑定设备后可看到主界面下方我的设备栏出现设备

<div align="left"><img src="/files/-LWz-m1n923cGR0st1n0" alt=""></div>

<div align="left"><img src="/files/-LWz-wVKcoFsua6VVfuq" alt=""></div>


# 物联应用

### 点击物联应用，选择相应的应用进入控制面板

<div align="left"><img src="/files/-LWz-8KXGuwnUHKFADWo" alt=""></div>

### MP3控制面板

<div align="left"><img src="/files/-LWz5vDUxxLrWXVpxkEP" alt=""></div>

#### 控件对应的物联网消息值

| 控件  | 消息   |
| --- | ---- |
| 暂停  | stop |
| 播放  | play |
| 上一首 | rev  |
| 下一首 | next |
| 音量加 | volu |
| 音量减 | vold |

案例：[mp3案例](http://haohaodada.com/wulink/index.php?id=4567)

### 月球灯控制面板

<div align="left"><img src="/files/-LWz5z4q0xb1N4xVfh6o" alt=""></div>

#### 控件对应的物联网消息值

| 控件    | 消息                                  |
| ----- | ----------------------------------- |
| 电源键-开 | Open=1                              |
| 电源键-关 | Open=-1                             |
| 呼吸灯   | Breathing\_Light=1                  |
| 调色面板  | R=255\&G=255\&B=255   (颜色值范围：0-255) |
| 定时    | StartTime=20\&StopTime=181(时间值为分钟)  |

案例：[月球灯案例](http://www.haohaodada.com/3dmoon/index.php?id=3131)

### 智能家居控制面板

<div align="left"><img src="/files/-LWz62xz7sgVuyA4oVA4" alt=""></div>

#### 控件对应的物联网消息值

| 控件      | 消息                                            |
| ------- | --------------------------------------------- |
| 加湿器     | Humidifier=1/-1                               |
| 温湿度传感器  | Air\_Temperature=0\~55℃、Air\_Humidity=0\~100% |
| 亮度传感器   | Light=0\~1000Lux                              |
| 背光灯     | Background \_Light\_1=1/-1                    |
| 台灯      | Reading\_Lamp=1/-1                            |
| 空调      | Air\_Conditioner=1/-1                         |
| 电视机     | Television=1/-1                               |
| 窗帘      | Curtain=1/-1                                  |
| 背光灯     | Background \_Light\_2=1/-1                    |
| 人体感应    | PIR=1/-1                                      |
| 背光灯     | Background \_Light\_3=1/-1                    |
| 烟雾传感器   | Smog=0\~1000                                  |
| 一氧化碳传感器 | CO=0\~1000                                    |
| 门磁感应    | Door=1/-1                                     |
| 背光灯     | Background \_Light\_4=1/-1                    |

案例：[智能家居](http://www.haohaodada.com/wulink-nano/index.php?id=2086)

### 生态种植面板

<div align="left"><img src="/files/-LWz65gDjyYEeAMinkS0" alt=""></div>

#### 控件对应的物联网消息值

| 控件     | 消息                 |
| ------ | ------------------ |
| 光照强度   | Light              |
| 空气湿度   | Air\_Humidity      |
| 空气温度   | Air\_Temperature   |
| 土壤湿度   | Soil\_Moisture     |
| 水温     | Water\_Temperature |
| 云台抬头转动 | Up=1               |
| 云台抬头停止 | Up=-1              |
| 云台低头转动 | Down=1             |
| 云台低头停止 | Down=-1            |
| 云台左转转动 | Left=1             |
| 云台左转停止 | Left=-1            |
| 云台右转转动 | Right=1            |
| 云台右转停止 | Right=-1           |
| 补光开    | LED=1              |
| 补光关    | LED=-1             |
| 通风开    | Fan=1              |
| 通风关    | Fan=-1             |
| 加热开    | Heat=1             |
| 加热关    | Heat=-1            |
| 水泵开    | Pump=1             |
| 水泵关    | Pump=-1            |

案例：[生态种植](http://www.haohaodada.com/wulink-nano/index.php?id=5716)


# 在线编程

#### 点击在线编程，选择相应设备，进入编程页面

<div align="left"><img src="/files/-LWz--pB_p9MV73QfKE9" alt=""></div>

<div align="left"><img src="/files/-LWz-3OFAQzJ_2b3wSOE" alt=""></div>


# 自定义组件使用

#### 点击自定义，进入如下界面，点击选择设备，选择欲控制的设备。

<div align="left"><img src="/files/-LWysxQ_r0sD-ZgB4DFu" alt=""></div>

#### 添加设备后，点击红色的加号添加组件，此处添加了一个点阵开按钮(指令为open)及一个点阵关按钮（指令为close）。

<div align="left"><img src="/files/-LWyt0iB827zUruKKbrT" alt=""></div>

<div align="left"><img src="/files/-LWyxSgsnT7VqM9JsAQV" alt=""></div>

#### 添加一个传感器数据读取组件

<div align="left"><img src="/files/-LWyvQCsMb9_Ps3ptjJ2" alt=""></div>

<div align="left"><img src="/files/-LWyxSgweF-L61Jnl-Hp" alt=""></div>

#### 通过wulink编程界面给设备下载程序，程序主要为当wulink收到open指令，点阵屏全亮；当wulink收到close指令，点阵屏全灭。点击温度栏的更新，获取实时温度。

<div align="left"><img src="/files/-LWytNQezCUChkriMuAo" alt=""></div>


# 离线版


# 好好搭搭Scratch中文离线版

通过“好好搭搭”网站可以方便地编辑、保存、交流Scratch作品，但它的运行需要有因特网的支持。“好好搭搭”网站同时也提供“好好搭搭Scratch中文离线版”，我们可以将它下载后安装到自己的计算机，利用它编辑Scratch作品时可以不需要因特网的支持。

## 一、下载“好好搭搭Scratch中文离线版”软件

1. 进入新版“好好搭搭”网站，下拉到网页最低部，点击“好搭软件”。

![](/files/-LrgIxn_LX8V2W6jRxFg)

&#x20;   2.点击进入“好好搭搭Scratch中文离线版下载”网页。

![](/files/-LrgJZ3cU_z2hmFZ-HUs)

&#x20;  3.在“好好搭搭Scratch中文离线版下载”网页中，找到并单击“点击下载”文字链接，可以将这个软件下载到本地计算机。

![](/files/-LrgK6ud8ElR6_cEPbxH)

[单击此处](http://haohaodada.com/video/a21101.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2k5jCkJIBUj4C6u)

## 二、安装“好好搭搭Scratch中文离线版”软件

下载完成后，打开并且双击所下载的安装软件，按以下步骤开始安装。

1. 如果是Windows7以上操作系统，一般会弹出“安全警告”的对话框，单击“运行”按钮继续安装。
2. 在“安装 - 好好搭搭离线编程平台”的对话框中，单击“下一步”按钮，将该软件安装到电脑中。
3. 在打开的“选择目标位置”对话框中，一般不用修改软件安装目录，直接单击“下一步”按钮继续。
4. 在“选择该软件的快捷方式”对话框中，一般不需要修改，按默认位置在“开始”菜单生成软件的快捷方式，单击“下一步”按钮继续。
5. 在“选择附加任务”对话框中，一般也不需要修改，按默认方式创建桌面快捷方式，单击“下一步”按钮继续。
6. 准备安装前，可以再确认一次软件安装的目标位置、快捷方式的位置等信息，确认无误后，单击“安装”按钮开始安装。
7. 在安装过程中会显示进度条。由于Scratch是基于Flash开发的，因此安装过程中还会弹出“Adobe AIR安装”对话框。如果系统已经安装了这个软件，可以单击“关闭”按钮不安装；如果系统没有安装，可以单击“安装”按钮根据提示安装。
8. 最后单击“完成”按钮，退出安装程序。软件安装完成后，可以在计算机“桌面”上看到自动生成的“Scratch”快捷图标，在“开始”菜单中看到“好好搭搭离线编程平台“程序组，里面也有一个“Scratch”快捷图标。

[单击此处](http://haohaodada.com/video/a21102.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon2k8Uzx--SwQcWoA)

## 三、认识“好好搭搭Scratch中文离线版”

“好好搭搭Scratch中文离线版”安装成功以后，就能够在本地运行Scratch了。在功能设置上，“好好搭搭Scratch中文离线版”（简称“离线版”）与“好好搭搭Scratch在线版” （简称“在线版”）大体相同，但也有部分区别：

1. “离线版”软件运行后，“角色列表区”是空的。而“在线版”软件默认添加了角色“Cat1”。
2. “离线版”软件无法直接分享作品。如果想要分享作品，首先需要将作品上传到“好好搭搭”网站，再使用网站提供的“共享”功能来完成操作。
3. 在“离线版”软件的“文件”菜单中，提供有“上传到网站”功能，可以将“离线版”中制作的作品上传到“好好搭搭”网站。具体可以先单击“文件”菜单栏中的“上传到网站”选项，然后在打开的“登录”对话框中输入网站的账号和密码，最后单击“确定”按钮，可以将作品上传到网站。
4. “离线版”软件提供了将Scratch作品的运行过程录制成视频的功能。单击“文件”菜单栏中的“录制项目视频”选项，在“录制项目视频”对话框中单击“Start”按钮开始录制视频。

[单击此处](http://haohaodada.com/video/a21103.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon2kB-YO9sivHjkZ2)


# 好好搭搭Scratch Arduino 2.0

## 概述

支持Arduino、Nova、好搭Box、传感器板的离线编程。

![](/files/-LWyqqxmFFEYmY-ZKXGz)

## 下载

百度网盘：

链接：<https://pan.baidu.com/s/1nzX_n8MsWpbe-lxZzoxIjQ>

提取码：te8x

## 常见问题

### 图形块不显示

点击菜单栏/设置/恢复模块文件


# Mixly For WuHan

根据武汉Arduino课程要求，定制的Mixly软件。

百度网盘下载地址：

链接：[https://pan.baidu.com/s/1WQyaUS\_YlHN8LDdSNB3z5w](https://pan.baidu.com/s/1WrKuqweAfYDBTlyobTXDIA)&#x20;

提取码：dm2q

![](/files/-LWywHkCT-XPoNWK2mqV)


# 远程协助软件

## 下载

下载免费版本的[TeamViewer](https://www.teamviewer.com/cn/)

## 安装

按照提示默认安装

## 运行

![](/files/-LWo75AMUB5mt7zEJegK)

把你的ID和密码告诉技术人员，技术人员就能远程操作你的电脑。


# PC端配网工具

## WULink配网

1.按住B键同时开机，蜂鸣器响一声，状态指示灯红色常亮，WULink进入PC端配网模式，用USB线连接           WULink到电脑。

2.[点击此处](http://www.haohaodada.com/zhangkongV06.rar) 下载PC端配网工具，解压文件（注意不要解压到C盘）。

3.打开文件夹，进入setwifi程序。

![](/files/-LqdVK0KIBFrC8KJBAuo)

进入setwifi程序后，下拉硬件名称选择设备，和连接设备的端口。

![](/files/-LqdVPDiWRKnW0al81HK)

输入可用wifi名称密码，并点击设置。

![](/files/-LqdVWWWg15BfIy79dNC)

4.设置后，WULink蜂鸣器响起，状态指示灯红色闪烁后变为蓝色，则说明配网成功。


# 配网APP

## 下载好搭配网app。

### ios端

打开app store搜索好搭配网并下载

![](/files/-La-YYpquBKD1fH5Fnug)

### 安卓端

[点击此处](http://www.haohaodada.com/haodapeiwang.apk)下载好搭配网app

## 设备进入网络配置模式

不同设备怎么进入网络配置模式，请查看具体设备说明文档

## 打开好搭配网app，进入如下界面

![](/files/-La-YYpwD4OoHbOJncKq)

## 打开手机wifi，连接需配网设备。

![](/files/-La-YYq0gNCOew5yrB0Y)

## 回到好搭配网app，选择设备按键后面显示已连接设备mac地址，输入wifi名称及密码，点击配置wifi键，即可对设备配网。

![](/files/-La-WXBuTxD8sSlLdo93)


# Scratch编程入门


# 第1课 喵喵初体验

Scratch是美国麻省理工学院为少年儿童设计的图形化编程软件，利用Scratch可以创作出各种丰富多彩的计算机程序作品，体验到计算机程序创作的乐趣。

Scratch是美国麻省理工学院为少年儿童设计的图形化编程软件，利用Scratch可以创作出各种丰富多彩的计算机程序作品，体验到计算机程序创作的乐趣。

[单击此处](http://haohaodada.com/video/a20101.php)或者扫描下方二维码可以观看相关的视频。

![](/files/-LWoJmM53cX2ZqpnyymX)

Scratch默认的角色是一只小猫，它的名字叫“喵喵”！它将陪伴我们一起学习Scratch编程。

### 在“好好搭搭”网站欣赏作品

“好好搭搭”是一个可以在线编写Scratch程序、在线学习Scratch程序设计、在线与网络上的Scratch爱好者交流编程经验的网站。

要进入“好好搭搭”网站，必须使用“网络浏览器”软件（最好使用“谷歌浏览器”），在浏览器软件的地址栏中输入“好好搭搭”网站的地址―—haohaodada.com，然后回车，就可以进入“好好搭搭”网站。

![](/files/-LWoJmM7IgDVA7dtUPxI)

“好好搭搭”网站有大量的Scratch作品，它们是由全国各地的Scratch爱好者创建的。单击网站上方的“发现”按钮，在“发现”栏目网页中可以欣赏到这些丰富多彩的Scratch作品。

如果想查找特定的作品，可以拖动“发现”栏目网页右边的垂直滚动条到网页底部，通过指定“作品名称”或者“作者名称”来查找所需要的作品。

![](/files/-LWoJmM9owKmssiRl9Bn)

在“发现”栏目网页中，单击作品缩略图，可以进入这个作品的“项目页”。在作品项目页中，不仅能够运行这个作品程序，还能够了解作品的详细信息，评价、分享作品。

![](/files/-LWoJmMBn1qdktrDyT9w)

[单击此处](http://haohaodada.com/video/a20102.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoJmMDYkal3wrdYxLz)

#### 试一试

打开网页浏览器，进入“好好搭搭”网站欣赏Scratch作品；然后将你最喜欢的作品记录下来。

![](/files/-LWoJmMFXFfkeJThrDsT)

### 在“好好搭搭”网站注册

要使用“好好搭搭”网站在线编程、与其它Scratch爱好者交流，必须先注册成为网站的正式用户。

单击“好好搭搭”网站首页右上角的“加入”按钮，在打开的“注册用户”对话框中，分别输入网站“用户名”、网站登录“密码”，再在“确认密码”文本框中重复输入密码进行验证，最后一项“邀请码”可以不填，最后单击“注册”按钮。如果注册用户名与网站已有的用户名没有冲突，就会提示注册成功。

![](/files/-LWoJmMHorcXrd67x0jb)

注册成功后，单击网站首页右上角的“登录”按钮，在打开的“用户登录”对话框中输入注册成功的“用户名”和“密码”，最后单击“登录”按钮，就可以登录到网站。

[单击此处](http://haohaodada.com/video/a20103.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWoJmMJHlXMcuUn-RgC)

#### 试一试

在“好好搭搭”网站注册成为正式用户，然后登录进入网站。

### 认识Scratch作品设计页

要在“好好搭搭”网站在线编写程序，必须进入“作品设计页”。可以单击网站左上角的“创作”按钮，进入“创作模板”网页。

其中第一个名为“Scratch”的模板就是“喵喵”的家。单击这个模板的缩略图，会进入“Scratch模板项目页”，再单击网页右上角的“转到设计页”按钮，就能够进入Scratch的“作品设计页”。

![](/files/-LWoJmMLC3WesFNIJv17)

[单击此处](http://haohaodada.com/video/a20104.php)或者扫描上方的二维码可以观看以上内容相关的视频。

![](/files/-LWoJmMNILhSzMGJo3uG)

### 编辑Scratch角色信息

在“角色列表区”， 默认显示的角色是小猫“喵喵”，它默认的名字叫做“Cat1”，可以单击缩略图左上角的

![](/files/-LWoJmMPIyMxNZHTdk8R)

按钮显示这个角色的信息，然后将文本框中原有的名字删除，重新输入小猫的中文名字——“喵喵”，最后单击左上角的

![](/files/-LWoJmMRm7ZyQMRSx6Q9)

按钮重新返回“角色列表区”。

[单击此处](http://haohaodada.com/video/a20105.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoJmMT5a8fmOtOgAA4)

#### 试一试

在“角色信息”区域，除了可以修改角色名称，还能干什么？

[单击此处](http://haohaodada.com/video/a20106.php)或者扫描下方二维码可以观看相关的视频。

![](/files/-LWoJmMVUPkEzONjh7IG)

### 指挥小猫“喵喵”行走

要改变小猫“喵喵”的位置，可以直接用鼠标拖动舞台区的“喵喵”到新的位置。 要精确指挥小猫“喵喵”行走，可以通过指令来控制。首先确认已经选中“角色列表区”中的“喵喵”角色缩略图，然后在“指令区”默认显示的“动作”类别中找到

![](/files/-LWoJmMX7PCBg6nPgnca)

指令。单击这个指令，舞台中的“喵喵”就会向右移动。

![](/files/-LWoJmMX7PCBg6nPgnca)

指令能让小猫“喵喵”在舞台上移动，它属于“动作”类别指令；指令中的“10”叫做“参数”，通过参数可以设置“喵喵”的移动步数。用鼠标单击参数文本框，删除原有数值后再重新输入，就可以改变参数值。这个指令默认情况下，如果输入的参数是正数，“喵喵”向右移动；如果是负数，“喵喵”向左移动。

[单击此处](http://haohaodada.com/video/a20107.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoJmMZI7O9aA1hFWQx)

#### 练一练

Scratch有一百多个指令，请你找一找，哪些指令比较有趣？单击指令试一试，然后想一想，这个指令可能有什么用？把你认为最有趣的三条指令记录下来。

![](/files/-LWoJmMaqVm3kul36igw)

## 拓展思考

查看“好好搭搭”网站上网友们分享的Scratch作品，可以对你感兴趣的作品点赞鼓励作者，也可以将你喜欢的作品收藏、对作品发表评论。

在欣赏别人作品的同时想一想，你学会了Scratch以后，打算设计制作一个怎么样的程序作品？把你的设想记录下来。


# 第2课 喵喵背古诗

唐朝诗人杜牧撰写的《山行》是一首描写和赞美深秋山林景色的七言绝句，诗中山路、人家、白云、红叶，构成一幅和谐统一的画面，小猫“喵喵”可喜欢这首诗了。

在本课的范例作品中，“喵喵”将和同学“咪咪”一起背诵《山行》这首诗，并依次按“喵喵”独背、“喵喵”和“咪咪”齐背、“喵喵”和“咪咪”对背三个步骤进行。

![](/files/-LWoQiE1qlUqgXuTlAZ3)

## 创意构思

在独背古诗环节，可以依次将四句诗分别放到单独的指令中，再将这些指令顺次连接起来；在齐背古诗环节，由于小猫“咪咪”与“喵喵”背诵的内容完全相同，因此可以使用“复制-粘贴”的方法来创建出“咪咪”的角色脚本；在对背古诗环节，可以通过“等待”指令协调“喵喵”与“咪咪”的背诵间隔时间，从而产生你背一句、我背一句的效果。

要完成本课的创意构思，需要了解以下的新指令：

1\.

![](/files/-LWoQhdof0LUSBNQ1FPT)

属于“事件”类别指令；通过单击舞台右上方的 按钮执行这个指令下方的脚本。该指令在同一个Scratch程序中可以多次使用，让若干段脚本同时执行。

2\.

![](/files/-LWoQiE3Lpd1Qpfb36OE)

属于“外观”类别指令；在指定的时间内、在角色上方显示指定的文本内容。该指令共有两个参数，前一个参数用于指定显示的文本内容，后一个参数用于指定显示持续的时间。

3\.

![](/files/-LWoQiE5-x6dK1t8-SmJ)

属于“外观”类别指令；能够在角色上方一直显示参数所指定的文本内容。该指令只有一个参数，用于指定需要显示的文本内容。同一角色，后显示的文本内容会覆盖先前的内容。

4\.

![](/files/-LWoQhe-64pJCJIGWQWN)

属于“控制”类别指令；可以让角色等待指定的时间，用于延迟后续指令的执行。该指令只有一个参数，用于指定需要等待的时间，以“秒”为单位。

## 脚本设计

### 第一步：添加舞台背景

《山行》这首诗描写的是美丽秋天的景色，可以从Scratch舞台的“背景库”中挑选一张合适的背景图作为这个作品的舞台背景。 具体可以按以下步骤操作：

1.单击舞台下方“背景列表区”的

![](/files/-LWoQiE7CgG8OOy_yY2G)

按钮，打开“背景库”对话框。

2.在“背景库”对话框中单击“主题”中的“自然”类别，在对话框中找到“woods and bench”这个背景缩略图。

3.双击所找到的缩略图，稍等片刻，就可以将它添加到舞台上。

[单击此处](http://haohaodada.com/video/a20201.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQiE9_nWTKtrbIZgf)

#### 想一想

Scratch“背景库”中的背景在排列上有什么规律？怎样才能快速找到需要的背景图片？

[单击此处](http://haohaodada.com/video/a20202.php)或者扫描下方二维码可以观看相关的视频。

![](/files/-LWoQiEB2134uz_6UqWp)

### 第二步：添加角色

本课中除了小猫“喵喵”外还需要有另一个角色——小猫“咪咪”，由于“咪咪”跟“喵喵”完全相同，因此可以通过工具栏上的“复制”按钮添加：

首先，单击Scratch“程序设计页”上方“工具栏”中的

![](/files/-LWoQiEDjcJYsdFxh_4E)

按钮，鼠标指针就会变成

![](/files/-LWoQiEF6w_pr-wOmDeA)

形状；然后单击舞台上的小猫“喵喵”角色，“复制”出一只一模一样的小猫；接着分别用鼠标拖动舞台上的两只小猫，将它们摆放到合适的位置，最后根据前面所学过的知识，在“角色信息”区域将它们命名为“喵喵”和“咪咪”。

[单击此处](http://haohaodada.com/video/a20203.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWoQiEHiLHGCMypRQ4A)

#### 试一试

1.要添加小猫“咪咪”，也可以单击“角色列表区”中的

![](/files/-LWoQiEJdMAnTzbH-qwJ)

按钮，在“角色库”中添加。请你尝试用这种方法添加它。

2.如果舞台上的角色多了，该如何处理？

### 第三步：编写程序，让“喵喵”背古诗

舞台背景和角色添加完成后，可以开始编写程序，首先编写让小猫“喵喵”能够逐句背诵《山行》这首古诗的程序:

1.由于编写的是小猫“喵喵”的程序脚本，因此需要单击选中“角色列表区”中的“喵喵”缩略图。

2.如果没有显示“指令区”的话，可以单击“脚本”选项卡显示。

3.将“指令区”中的

![](/files/-LWoQiE3Lpd1Qpfb36OE)

指令拖动到“脚本区”，并修改这个指令第一个参数为“远上寒山石径斜”，第二个参数可以不做修改，让小猫“喵喵”花2秒时间背诵第一句古诗。

4.再从“指令区”拖动第二个

![](/files/-LWoQiE3Lpd1Qpfb36OE)

指令到“脚本区”，同时向第一个指令下方移动，当出现白色吸附线时，放开鼠标左键，这样两个指令就会组合在一起；组合完成后，修改这个指令第一个参数为“白云生处有人家”。

5.继续拖动第三个、第四个

![](/files/-LWoQiE3Lpd1Qpfb36OE)

指令到“脚本区”，分别与前一个指令组合后再修改参数为《山行》的第三、四句诗句。

所有四个指令组合在一起后，单击第一条指令，就会执行这段程序脚本。

[单击此处](http://haohaodada.com/video/a20204.php)或者扫描上方的二维码可以观看以上内容相关的视频。

![](/files/-LWoQiERZfk2IKZpm_Mp)

### 第四步：让两只小猫齐背古诗

小猫“咪咪”背诵的古诗内容与“喵喵”一样，因此可以通过“复制-粘贴”的办法添加程序脚本，具体可以按以下步骤操作：

1.确认当前选中的是小猫“喵喵”角色。

2.用鼠标拖动“脚本区”中刚才所编写脚本的第一个指令，将这段脚本拖到“角色列表区”小猫“咪咪”的角色缩略图上，放开鼠标左键，就会为“咪咪”复制这段程序代码。

3.单击“角色列表区”中的小猫“咪咪”角色缩略图，可以在它的“脚本区”看到复制的脚本。单击这段脚本的第一个指令，“咪咪”也会像“喵喵”一样背古诗。

4.通过以上操作，这两只小猫都会背古诗了，但它们还不能一起背诵古诗。要让它们齐背古诗，需要将

![](/files/-LWoQhdof0LUSBNQ1FPT)

指令分别拖动到这两个角色脚本的最上方，与之前编写的脚本组合在一起。这样，单击舞台右上角的

![](/files/-LWoQiET8F21WNXpr9Dy)

按钮，两只小猫才能齐背古诗。

[单击此处](http://haohaodada.com/video/a20205.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQiEV2LrdpPSMKgCZ)

#### 试一试

舞台上方有一些按钮，请你试一试它们有什么用？然后把你的发现记录下来：

![](/files/-LWoQiEXuRKZH-FuAxDL)

[单击此处](http://haohaodada.com/video/a20206.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWoQiEZLI39ll_85gQy)

### 第五步：让两只小猫对背古诗

除了齐背古诗，我们也可以让两只小猫对背古诗，也就是“喵喵”背上一句，“咪咪”背下一句，一人依次背一句。

由于在对背古诗中，小猫“喵喵”只需背诵第一、三两句，因此可以按照以下步骤操作，删除多余的指令：

1.确认当前选中的角色是小猫“喵喵”。

2.将

![](/files/-LWoQiEoPPtZzngB3x-K)

指令拖动到“指令区”，然后放开鼠标左键，可以删除这个指令；

3.将

![](/files/-LWoQiEchYCdooMHuL3n)

指令拖动到“脚本区”的空余位置，把它与原来的脚本分开；

4.同样将

![](/files/-LWoQiEeR8NqlMqocnTW)

指令拖动到“指令区”删除；

5.将刚才摆放在“脚本区”的

![](/files/-LWoQiEchYCdooMHuL3n)

指令重新与第一句组合。

小猫“咪咪”需要背诵古诗的第二、四句，也可以像“喵喵”一样，将不需要的指令删除重新组合指令。

[单击此处](http://haohaodada.com/video/a20207.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQiEit6mk2gtlv2AJ)

#### 试一试

除了将指令从“脚本区”拖动到“指令区”这种方法删除指令，还有什么办法也可以删除指令？你喜欢哪一种方法？

[单击此处](http://haohaodada.com/video/a20208.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWoQiEkZEjdQ-kDCWYB)

以上操作完成后，单击"绿旗"运行程序，可以发现这两只小猫并没有你一句、我一句地对背古诗，而是一起背了。这就需要我们修改脚本，使一只小猫在背诵的时候，另一只小猫处于等待状态，具体操作方法如下：

1.确认当前选中的角色是小猫“咪咪”，然后将“控制”类别中的

![](/files/-LWoQhe-64pJCJIGWQWN)

指令拖动插入到

![](/files/-LWoQiEeR8NqlMqocnTW)

指令上方，同时修改这个指令的参数为“2”。

2.再将第二个

![](/files/-LWoQhe-64pJCJIGWQWN)

指令拖动插入到

![](/files/-LWoQiEoPPtZzngB3x-K)

指令上方，同样修改参数为“2”。

3.小猫“咪咪”修改完成后，再单击选中“喵喵”，修改它的脚本。同样也是添加两个

![](/files/-LWoQhe-64pJCJIGWQWN)

指令，具体的方法与“咪咪”类似。

[单击此处](http://haohaodada.com/video/a20209.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQiEq3TV2-tTn7xbN)

#### 想一想

如果两只小猫背诵每句古诗的时间不是统一的“2秒”，那么这些指令中的时间参数应该如何修改？

[单击此处](http://haohaodada.com/video/a20210.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWoQiEsQ8v5RI6Vbcjq)

### 第六步：改变小猫“咪咪”的方向

由于小猫“咪咪”与“喵喵”外观完全相同，因此它们在背诵古诗的时候没有面对面，这样不太礼貌。要让它们面对面，可以按以下步骤操作：

1.确认已经选中“咪咪”。

2.单击“角色列表区” “咪咪”角色缩略图左上角的

![](/files/-LWoQiEutfpGTTcRaJfN)

按钮查看角色信息。

3.在“角色信息”的“方向”区域，默认显示的是“90º”，可以用鼠标向左拖动指针，改为“-90º”；再单击选中“旋转模式”中的

![](/files/-LWoQiEwmqZ98yLzSSES)

按钮，这样两只小猫就面对面了。

[单击此处](http://haohaodada.com/video/a20211.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQiEy9c5xKZTu8_AW)

#### 试一试

除了可以通过“角色列表区”中的“角色信息”区域改变小猫的方向，试一试，还有其它办法也能够实现这一功能吗？

[单击此处](http://haohaodada.com/video/a20212.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWoQiF-KRvvMdXtRTxX)

### 第七步：在网站上保存作品

Scratch程序作品创作过程中，要注意随时保存程序。在“好好搭搭”网站上保存Scratch程序作品，可以按以下步骤操作：

1. 单击Scratch程序设计页“文件”菜单栏中的“重命名”选项，打开“更改文件名”对话框。
2. 在“更改文件名”对话框中输入合适的文件名，然后单击“确定”按钮。
3. 单击“文件”菜单栏中的“立即保存”选项，可以将这个Scratch程序作品保存到“好好搭搭”网站上。
4. 程序作品已经保存过一次以后，如果需要再次保存，可以直接单击“文件”菜单栏中的“立即保存”选项进行保存。

对于保存在“好好搭搭”网站上的程序作品，可以先单击网站右上角的登录用户名，然后在下拉列表中单击“我的作品”选项，就会打开的“我的作品”网页，在这个网页中可以看到所有保存在网站上的程序作品。

[单击此处](http://haohaodada.com/video/a20213.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQiF1GnURzmNz07p_)

#### 练一练

将“喵喵背古诗”这个程序作品制作完成，然后保存到“好好搭搭”网站，同时将这个作品分享给自己的朋友，请他提些修改完善的意见。

## 拓展思考

小猫们成功地背诵了《山行》这首古诗，你还能展开想象，利用所学知识，让它们背诵古诗的过程更好玩吗？


# 第3课 喵喵游西湖

西湖，位于浙江省杭州市，是中国十大风景名胜之一，2011年正式列入“世界文化遗产目录”。湖上有苏堤、白堤，还有三个小岛鼎立于波光粼粼的湖面上，湖边有雷峰塔与保俶塔隔湖相映，自然风光非常优美。

“喵喵”打算趁着假期游览西湖，特别是花港观鱼、苏堤春晓、断桥残雪这些著名的“西湖十景”，它都想好好的去游览一番

在本课的任务中，“喵喵”将从起点出发，分别移动到地图上这些景点游览。

![](/files/-LWoQhdLs4kKK76-tIzb)

## 创意构思

首先导入“西湖浏览图”作为“喵喵游西湖”作品的舞台背景图、设置“喵喵”的大小和旅游的起点位置，然后编写脚本使“喵喵”在地图上移动，分别浏览那些知名的西湖景点。

要完成本课的创意构思，需要了解以下的新指令：

1\.

![](/files/-LWoQhdXzBo_okWCSBVJ)

属于“动作”类别指令，能使角色移动到舞台的指定位置，指令中的两个参数用来指定角色移动目的地的位置坐标。

Scratch的舞台是一个长480、宽360的长方形，角色在舞台上都会有一个坐标值。比如角色如果在舞台中心，那么它的坐标值是（0，0），即x坐标值是0，y坐标值是0。

![](/files/-LWoQhdPfqo3A0wjcJnV)

#### 试一试

将鼠标移到下面表格中指定的位置，观查舞台右下角的x和y坐标值的变化，把你的发现记录下来。

![](/files/-LWoQhdRI9raJ2TA9Ohk)

[单击此处](http://haohaodada.com/video/a20301.php)或者扫描下方二维码可以观看相关的视频。

![](/files/-LWoQhdTiX1dKzaKhCIe)

2\.

![](/files/-LWoQhdZmbJA02Ur11DQ)

属于“动作”类别指令，使角色在指定的时间内移动到舞台的指定位置，指令中的第一个参数用来指定移动所需时间，后两个参数指定角色移动的目的地坐标值。

#### 想一想

![](/files/-LWoQhdXzBo_okWCSBVJ)

![](/files/-LWoQhdZmbJA02Ur11DQ)

这两个指令有什么不同，分别适用于哪些场合使用？

[单击此处](http://haohaodada.com/video/a20302.php)或者扫描下方二维码可以观看相关的视频。

![](/files/-LWoQhdarEWmWK6Q31be)

3\.

![](/files/-LWoQhdc7LN8zaG4rIlb)

![](/files/-LWoQheD6K1JfPH8sNa6)

属于“动作”类别指令，使角色向右（顺时针方向）或者向左（逆时针方向）旋转指定角度，指令中的参数用来指定角色旋转的角度。

## 脚本设计

### 第一步：导入外部舞台背景图片

本课使用的背景图片不在Scratch的背景库中，因此我们需要将它“从本地文件中上传背景”：

1.打开网络浏览器，在地址栏中输入“haohaodada.com/a2”，打开本课的范例程序网页，单击网页右边的“资源下载”选项卡，下载“西湖游览图”这个图片文件。

2.单击舞台列表区工具栏中的

![](/files/-LWoQhdgbBn_5ZQoLQzZ)

按钮；在“打开”对话框中找到并上传刚才下载的“西湖游览图”图片。

[单击此处](http://haohaodada.com/video/a20303.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWoQhdirdvrNTYnPITH)

### 第二步：设置小猫角色属性

由于导入的“西湖浏览图”图片与默认的小猫角色大小比例不合适，可以按以下步骤操作：

1.单击工具栏中的

![](/files/-LWoQhdkMKUc7foMczoh)

按钮；

2.在小猫上连续单击将它缩小到合适的大小；

3.根据上一课所学知识，将小猫重命名为“喵喵”。

[单击此处](http://haohaodada.com/video/a20304.php)或者扫描上方的二维码可以观看以上内容相关的视频。

![](/files/-LWoQhdmdU_vrqcoNUki)

### 第三步：设置“喵喵”的起始位置

确认已经选中小猫“喵喵”角色，然后按以下步骤编写它的程序脚本：

1.将

![](/files/-LWoQhdof0LUSBNQ1FPT)

指令拖动到脚本区作为“喵喵”程序脚本的第一条指令。

2.将“喵喵”拖动到舞台左下角的起始位置，此时指令区

![](/files/-LWoQhdqkaVTgsZ0UeHi)

指令上的坐标参数会自动更新为目前角色位置的坐标值。

3.最后将该指令拖动到脚本区与第一条指令组合。

[单击此处](http://haohaodada.com/video/a20305.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQhdseTNMf-7Nm_1p)

#### 试一试

单击“脚本”选项卡的“动作”类别，然后把“喵喵”拖动到舞台的不同位置，观察“指令区”中哪些指令的参数发生了变化？把你的发现记录下来：

![](/files/-LWoQhduuoiJ8SOpnC_4)

[单击此处](http://haohaodada.com/video/a20306.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWoQhdwqmC-EKEH5wHW)

### 第四步：让“喵喵”在地图上移动

下面，我们为小猫“喵喵”编写脚本，使它能够在地图上移动：

1.将小猫“喵喵”拖动到地图上的第一个景点“花港观鱼”的位置。此时，指令区内

![](/files/-LWoQheJzidyBpX3fjN2)

指令上的坐标参数值也会同步更新，再将它拖动到脚本区，组合到原有指令的下方。

2.将

![](/files/-LWoQhe-64pJCJIGWQWN)

指令拖动组合到

![](/files/-LWoQheJzidyBpX3fjN2)

指令下方，使“喵喵”能够在景点稍作停留。

3.按照以上方法，先用鼠标拖动“喵喵”到新的景点，再添加

![](/files/-LWoQheJzidyBpX3fjN2)

![](/files/-LWoQhe-64pJCJIGWQWN)

指令，让小猫分别浏览“苏堤春晓”、“断桥残雪”这些著名的西湖景点。

[单击此处](http://haohaodada.com/video/a20307.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQhe7wwhlkRbKVIyD)

#### 试一试

分别改变角色的移动时间与距离，看看角色移动的速度变化，把你的发现记录下来。

![](/files/-LWoQhe9jmh0otOHoLEN)

[单击此处](http://haohaodada.com/video/a20308.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWoQheB8ZGV_gwXUWo1)

### 第五步：使“喵喵”移动时面向目的地

通过以上操作，“喵喵”已经能够从起点位置沿直线移动浏览西湖景点，但它从“花港观鱼”移动到“苏堤春晓”的过程中，始终面向舞台右侧，感觉比较僵硬。要在移动的过程中，使“喵喵”能够面向目的地方向，可以按以下步骤操作：

1.首先，将

![](/files/-LWoQheD6K1JfPH8sNa6)

指令拖动到“脚本区”，组合到第二条

![](/files/-LWoQheJzidyBpX3fjN2)

指令（也就是移动到第二个旅游景点“苏堤春晓”）上方；然后，修改指令参数为“120”。这样，“喵喵”在从“花港观鱼”移动到“苏堤春晓”的过程中，所面对的方向是“苏堤春晓”。

2.将

![](/files/-LWoQhdc7LN8zaG4rIlb)

指令组合到第三条

![](/files/-LWoQheJzidyBpX3fjN2)

指令（也就是移动到第三个旅游景点“断桥残雪”）上方；再修改参数为“45”，让小猫能够面向“断桥残雪”这个景点移动。

[单击此处](http://haohaodada.com/video/a20309.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQheLEckhECkyMdbx)

#### 想一想

想要精确地指定小猫面向目的地景点旋转的角度值，你有什么办法？

![](/files/-LWoQheNmqrgU4BQoc2d)

[单击此处](http://haohaodada.com/video/a20310.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWoQhePd3EvjYtZVznu)

#### 练一练

完成整个程序的脚本程序设计，然后多运行几次程序，你发现了什么问题？该如何解决？

[单击此处](http://haohaodada.com/video/a20311.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWoQheRs85vFgqT1lfS)

## 拓展思考

小猫“喵喵”成了名副其实的“小小旅行家”。不过，它似乎觉得自己的旅程还不够精彩，怎么办？展开想象，用学过的知识让“喵喵”的旅程变得更加丰富。


# 第4课 喵喵学做操

操场上有很多同学在做广播操，伸伸臂、弯弯腰、踢踢腿。小猫“喵喵”也想跟着同学们一起学做广播操。 在本课的范例作品中，操场上的学生会配合广播操音乐不停地做出各种广播操动作，教“喵喵”学做操。

![](/files/-LWoQisbZ3M_sYrrq5Ck)

## 创意构思

Scratch的角色可以有多个造型，通过不断地切换造型，会产生动画效果。学生在操场上做广播操，就是按照这个办法做出广播操的各种动作。为了达到比较好的效果，还需要使角色造型的切换与广播操音乐的播放同步。

要完成本课的创意构思，需要了解以下的新指令：

1\.

![](/files/-LWoQisdkn4ZfjVlRDQw)

属于“外观”类别指令，如果某个角色拥有多个造型的话，使用这个指令可以切换到这个角色造型列表中的下一个造型。

### “造型”选项卡

在Scratch中，如果当前选中的是角色，那么单击“造型”选项卡，可以对这个角色的造型进行编辑、设置。

![](/files/-LWoQisfmg-9UDGsPru8)

[单击此处](http://haohaodada.com/video/a20401.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQishgkjw5SVcLBJm)

2\.

![](/files/-LWoQisj6ghvuk-7RYeA)

属于“控制”类别指令，Scratch循环结构指令中的一种，可以重复执行该指令中间所包含的脚本，通过指令的参数可以指定重复执行的次数。

### “顺序结构”与“循环结构”

前几节课所编写的程序脚本，都是“顺序结构”，也就是按指令的顺序依次执行。这是一种最基本的计算机程序结构。

“循环结构”也是一种基本的计算机程序结构，它可以重复执行一段程序脚本，是最能发挥计算机特长的一种程序结构。

当“顺序结构”的程序脚本中存在周期性重复出现的指令时，可以使用“循环结构”对脚本进行简化，这样可以极大减轻程序脚本编写的复杂程度。

[单击此处](http://haohaodada.com/video/a20402.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQislhOoQSUsSqD0l)

3\.

![](/files/-LWoQisndQcwlWkCkBVG)

属于“声音”类别指令，用于播放指定的声音文件；通过单击指令中的下拉列表参数，可以选择需要播放的声音文件。除了角色默认的声音文件，如果需要播放其它声音，都需要先在“声音”选项卡中导入，才可以在指令的下拉列表参数中选择。

### “声音”选项卡

在Scratch中，单击“声音”选项卡，可以显示当前对象的“声音编辑区域”。

![](/files/-LWoQispyz6rAadi0OzN)

[单击此处](http://haohaodada.com/video/a20403.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQisrmAZhR9Ruvf9f)

## 脚本设计

### 第一步：导入舞台背景与角色

1.单击“背景列表区”的

![](/files/-LWoQiE7CgG8OOy_yY2G)

按钮，从打开的“背景库”中上传“basketball-court1-a”背景图片。

2.单击选中默认的小猫角色，将它重命名为“喵喵”；然后调整它的大小；最后将它拖放到舞台左下角的合适位置。

3.单击“角色列表区”右上角的

![](/files/-LWoQiEJdMAnTzbH-qwJ)

按钮；在打开的“角色库”中导入“D-Money Hip-Hop”角色；然后将导入的这个角色重命名为“学生”；最后将它拖放到舞台中央的合适位置。

[单击此处](http://haohaodada.com/video/a20404.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQistcWGlk9rzmkbn)

#### 试一试

单击选中“学生”角色；然后单击“造型”选项卡，看看这个角色有几个造型；最后快速地在这些造型上单击，观看舞台上这个角色的变化，你发现了什么？

[单击此处](http://haohaodada.com/video/a20405.php)或者扫描下方二维码可以观看相关的视频。

![](/files/-LWoQisv7VrdZjZxoeOZ)

### 第二步：导入广播操声音文件

“喵喵”在学做广播操时所播放的声音文件不在Scratch自带的“声音库”文件中，需要按以下步骤从“好好搭搭”网站下载并导入到程序作品中：

1.打开网络浏览器，在地址栏中输入“haohaodada.com/a2”，打开本课的范例程序网页，单击网页右边的“资源下载”选项卡，下载“广播操”这个声音文件。

2.由于广播操是“学生”这个角色在做操的时候播放的，因此应该先确认已经选中这个角色；然后再单击“声音”选项卡中的

![](/files/-LWoQhdgbBn_5ZQoLQzZ)

按钮，在“打开”对话框中找到并且双击刚才下载的“广播操”声音文件，将这个声音文件导入到程序作品中。

[单击此处](http://haohaodada.com/video/a20406.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWoQisxzJChDTcGiMAV)

### 第三步：编写程序让“学生”角色做广播操

要让“学生”这个角色能够根据广播操节奏切换造型做动作，可以按照以下步骤操作：

1.单击选中“学生”角色，将

![](/files/-LWoQhdof0LUSBNQ1FPT)

指令拖动到脚本区。

2.将

![](/files/-LWoQisdkn4ZfjVlRDQw)

指令拖动并且组合到

![](/files/-LWoQhdof0LUSBNQ1FPT)

指令下方，这样每单击一次，就能切换一次角色造型。

3.要让“学生”角色中的造型不停地切换，应该添加多个

![](/files/-LWoQisdkn4ZfjVlRDQw)

指令，为了能够看清每个动作，还应该在这个指令下方再添加一个

![](/files/-LWoQhe-64pJCJIGWQWN)

指令。

[单击此处](http://haohaodada.com/video/a20407.php)或者扫描上方的二维码可以观看以上内容相关的视频。

![](/files/-LWoQisz5soNnVZmE7-d)

#### 试一试

完成“学生”角色的脚本编写，使它能够做完一套广播操。完成以后仔细观察“学生”角色脚本，你发现了什么？

[单击此处](http://haohaodada.com/video/a20408.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWoQit072zxtlS-dv5x)

### 第四步：编写“循环结构”程序让“学生”角色做广播操

按照以上步骤所编写的“顺序结构”程序中，存在着周期性的重复指令，可以使用“循环结构”来简化原有的脚本：

具体脚本如下图所示：

![](/files/-LWoQit2CsKWhGxVPA1g)

[单击此处](http://haohaodada.com/video/a20409.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQit4ikMQwY1lgct7)

#### 想一想

如果想让“学生”做“伸展运动”这节广播操

![](/files/-LWoQisj6ghvuk-7RYeA)

指令中的参数应该设置成多少，它们之间存在怎样的数量关系？

[单击此处](http://haohaodada.com/video/a20410.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWoQit64HKBddpvYIOU)

### 第五步：为广播操配上音乐

为了达到更好地效果，还需要为广播操配上音乐。具体可以按照以下步骤操作：

1.确认已经选中“学生”角色，然后再将

![](/files/-LWoQhdof0LUSBNQ1FPT)

指令拖动到脚本区.

2.将

![](/files/-LWoQisndQcwlWkCkBVG)

指令拖动并且组合到

![](/files/-LWoQhdof0LUSBNQ1FPT)

指令下方，单击指令中的下拉列表参数，选择导入的“广播操”音乐。

[单击此处](http://haohaodada.com/video/a20411.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWoQit8dKW2l4x5mgCN)

#### 练一练

完成“喵喵学做操”这个程序作品，然后尝试调整

![](/files/-LWoQisj6ghvuk-7RYeA)

![](/files/-LWoQhe-64pJCJIGWQWN)

这两个指令的参数，使“学生”这个角色做操的动作与广播操音乐协调一致，最后能在音乐停止的时候结束做操动作。

[单击此处](http://haohaodada.com/video/a20412.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWoQitAUJ7OwrVB5Q3Z)

## 拓展思考

请你用学过的知识让小猫“喵喵”学做操的过程更有趣。


# 第5课 喵喵学英语

英语是世界上使用最广泛的语言之一，小猫“喵喵”也想学好英语，可以方便地与外国的小朋友交流Scratch学习经验。

在本课的范例作品中，小猫“喵喵”将学习三个英文单词：apple、banana、orange。单击“Next”和“Previous”可以在单词间切换，每切换到一个单词会播放该单词的朗读。

![](/files/-LWon3Gd8vfJAcZjGWeU)

## 创意构思

范例作品中的舞台背景可以从“好好搭搭”网站下载，作为外部图片导入；另外还需要创建翻页用的“Next”和“Previous”角色、录制单词朗读的声音。在程序脚本中，需要充分利用“事件”类别中的指令控制背景图片的切换、控制单词朗读声音的播放。

要完成本课的创意构思，需要了解以下的新指令：

1\.

![](/files/-LWon3Hk4O54SPQ62sn6)

属于“事件”类别指令，当鼠标单击这个指令所属的角色时触发，然后执行这个指令下方的程序脚本。

在Scratch中，“事件”是一个非常重要的概念，是指可以被计算机识别的操作。最常见的“事件”是“鼠标事件”，比如“单击”、“双击”、“指向”等，当这些事件发生后，就会执行该事件相对应的程序脚本。

[单击此处](http://haohaodada.com/video/a20501.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon3GoH34qpTjOBGCw)

2\.

![](/files/-LWon3GqqcBo-nmIGt-Q)

属于“事件”类别指令，当切换到指定背景时触发，然后执行这个指令下方的程序脚本。单击指令中的下拉列表参数，可以选择触发这个事件的背景图片名称。

3\.

![](/files/-LWon3GsWK3x0d-4wvFm)

属于“外观”类别指令，用于切换背景图片。单击指令中的下拉列表参数，可以选择需要切换的背景图片名称。

该指令有两个特殊的选项“下一个背景”、“上一个背景”。如果选择“下一个背景”，Scratch会将舞台背景切换到背景列表中的下一张图片；如果当前已经是最后一张图片，那么会切换到背景列表的第一张图片。

4\.

![](/files/-LWon3Hq5ViDRazPqEzB)

属于“声音”类别指令，可以停止所有正在播放的声音。

### 角色脚本与背景脚本

在“角色列表区”单击某个角色缩略图，然后在“脚本区”所编写的脚本都是这个角色的“角色脚本”；而在“背景列表区”单击背景缩略图，然后在“脚本区”所编写的脚本都是“背景脚本”。

“背景脚本”通常是所有角色共用的脚本，是整个Scratch作品都要共同执行的；而“角色脚本”与具体的某个角色相关联，是这个角色所独有的，只有这个角色会执行。

[单击此处](http://haohaodada.com/video/a20502.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon3GwoG_tlEgrtJg1)

#### 试一试

请分别单击舞台背景缩略图与小猫角色缩略图，然后观察“指令区”中的指令，找一找哪些指令是“角色脚本”所独有的？哪些指令是“背景脚本”所独有的？

[单击此处](http://haohaodada.com/video/a20503.php)或者扫描下方二维码可以观看相关的视频。

![](/files/-LWon3GyIaI1m-v7DThV)

## 脚本设计

### 第一步：导入外部图片作为舞台背景

本课范例作品中的舞台背景共有三张图片，是作为外部图片，从“好好搭搭”网站上下载后导入。具体可以按以下步骤操作：

1.打开网络浏览器，在地址栏中输入“haohaodada.com/a2”，打开本课的范例作品网页，单击网页右边的“资源下载”选项卡，下载“喵喵学英语图片”压缩文件。

2.将下载的文件解压缩，就会生成一个名为“喵喵学英语图片”的文件夹，里面包含“apple”、“banana”、“orange”三个图片文件。

3.单击“背景列表区”的

![](/files/-LWoQhdgbBn_5ZQoLQzZ)

按钮；在“打开”对话框中找到并上传刚才下载的三个背景图片。

4.全部背景图片导入后，可以在“背景”选项卡左边看到四个背景缩略图。单击选中白色背景的缩略图，然后再单击缩略图右上角的

![](/files/-LWon3H-mQPBiTXO9Umr)

图标将这个没用的背景删除。

[单击此处](http://haohaodada.com/video/a20504.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon3H14md4VW5AkwoQ)

### 第二步：创建用于翻页的文字角色

本课范例作品共有三个角色，其中小猫“喵喵”是默认的角色；另两个是文字角色，用于程序运行时前、后翻页。具体可以按以下步骤操作：

1.单击选中默认的小猫角色，将它重命名为“喵喵”；然后调整它的大小；最后将它拖放到舞台左上角的合适位置。

2.单击“角色列表区”右上角的

![](/files/-LWon2pcDDqfdanzzf5C)

按钮，会打开“造型”选项卡；默认进入的是“位图编辑状态”，这种状态下创建的文字角色放大后会有很多锯齿，不美观，可以单击右下角的“转换成矢量编辑模式”按钮，在“矢量编辑状态”下创建文字角色。

3.单击““造型”选项卡”右边工具栏中的

![](/files/-LWon3HADtlz65EaZ4kH)

按钮，在中间的“造型编辑区”单击，用键盘输入“下一页”的英文“Next”。

4.单击““造型”选项卡”右边工具栏中的

![](/files/-LWon3HIRTurxPEB91PH)

按钮，再单击选中刚才输入的文字，用鼠标拖动文字四周的控制点改变文字的大小。

5.根据以上介绍的方法再绘制第二个文字角色。先单击“角色列表区”右上角的

![](/files/-LWon2pcDDqfdanzzf5C)

按钮，然后在““造型”选项卡”的“矢量编辑状态”下单击

![](/files/-LWon3HADtlz65EaZ4kH)

按钮输入“上一页”的英文“Previous”，最后使用

![](/files/-LWon3HIRTurxPEB91PH)

按钮工具调整文字大小。

6.文字角色全部绘制完成后，用鼠标拖动舞台上的这两个文字角色，将它们摆放到合适的位置。

```
注：由于Scratch功能的限制，在线版Scratch不能直接输入中文。如果需要在Scratch中使用中文，可以按照课后阅读材料的方法操作。
```

[单击此处](http://haohaodada.com/video/a20505.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon3HKat6kUgjImpIM)

#### 试一试

* 尝试在“造型”选项卡的“位图模式”下输入文字，然后单击舞台左上角的

![](/files/-LWon3HMLMNSiIdF0CBH)

图标，在全屏状态下比较这两种模式所绘制文字的区别。

[单击此处](http://haohaodada.com/video/a20506.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon3HP6nkVpcl6lc5F)

### 第三步：录制单词朗读文件

本课范例作品中，每个英语单词出现的同时，会自动播放这个单词的朗读。如果你有能在计算机上录音用的话筒（一般笔记本电脑内置有话筒），就可以按照以下步骤操作录制声音（如果不能录制朗读，也可以从“好好搭搭”网站的本课范例作品网页中下载相应的声音文件）：

1.由于这些单词的朗读是在切换到相应的背景图片时播放的，因此应该先单击“背景列表区”的缩略图，然后再单击进入“声音”选项卡。

2.单击“声音”选项卡左上角的

![](/files/-LWon3HRFR1jhYhWLVK-)

按钮，就会增加一个空白声音缩略图，可以删除编辑区域上方文本框中默认的声音名称，重新输入所要朗读的单词作为声音名称。

3.如果使用的是外置的话筒，将话筒连接到计算机上。

4.单击“声音控制区域”中的

![](/files/-LWon3HTUP1tpqYw6qKv)

按钮开始录音。如果使用的是网络版的Scratch，开始录音之前会显示如下图所示的对话框，必须单击“允许”按钮才能继续录音。

![](/files/-LWon3HVqY0m6lqdutjJ)

5.单词朗读完成以后，单击“声音控制区域”中的

![](/files/-LWon3HXDfl-VujaPwgo)

按钮停止录音。

[单击此处](http://haohaodada.com/video/a20507.php)或者扫描上方的二维码可以观看以上内容相关的视频。

![](/files/-LWon3HZbFMkOrKzkChe)

#### 试一试

尝试使用“声音控制区域”的工具，对录制的声音进行编辑。

[单击此处](http://haohaodada.com/video/a20508.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon3HaQatbF5iGj3rn)

### 第四步：编写角色代码切换背景

“喵喵学英语”作品中单词的切换，是通过单击“Next”向后翻页、单击“Previous”向前翻页实现的。具体可以按照以下步骤操作：

1.单击选中“Next”角色，将“事件”类别中的

![](/files/-LWon3Hk4O54SPQ62sn6)

指令拖动到脚本区。

2.再将“外观”类别中的

![](/files/-LWon3GsWK3x0d-4wvFm)

指令拖动到脚本区组合到上一个指令的下方；然后从下拉列表参数中选择“下一个背景”。

3.“Previous”角色的脚本与“Next”类似，可以将“Next”的脚本拖动到“Previous”角色缩略图上放开鼠标，可以复制这段脚本。

4.单击“Previous”角色，可以在脚本区看到刚才复制的脚本，修改

![](/files/-LWon3Hgxt1TiT3xLShP)

指令的参数为“上一个背景”。

[单击此处](http://haohaodada.com/video/a20509.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon3HilkgvJuH-GBEN)

#### 想一想

![](/files/-LWon3Hk4O54SPQ62sn6)

![](/files/-LWoQhdof0LUSBNQ1FPT)

有什么不同？

[单击此处](http://haohaodada.com/video/a20510.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon3HmDreTrsKioHbQ)

### 第五步：编写背景代码播放声音

“喵喵学英语”这个作品中，切换到哪个单词，就会播放这个单词的朗读。由于这些声音需要跟背景对应起来，因此播放声音的脚本应该编写在背景代码中。具体可以按以下步骤操作：

1.单击“背景列表区”的背景缩略图，将“事件”类别中的

![](/files/-LWon3Hopq_WmdStWDWH)

指令拖动到脚本区，然后在指令下拉列表中选择“apple”。

2.将“声音”类别中的

![](/files/-LWon3Hq5ViDRazPqEzB)

指令拖动组合到上一个指令的下方。

3.将

![](/files/-LWon3HsZLTed_eewP61)

指令作为第三条指令，与前两条指令组合；然后在指令下拉列表参数中选择播放的声音是“apple”。

4.另两个单词的声音播放脚本与“apple”类似，可以用鼠标右键单击“apple”这段脚本的第一个指令，在打开的菜单中选择“复制”选项，就可以复制出完全相同的一段脚本，将这段脚本摆放到“脚本区”合适的位置。再修改所复制脚本中的指令参数为“banana”。

5.继续复制脚本，并且修改所复制脚本的指令参数为“orange”。

[单击此处](http://haohaodada.com/video/a20511.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon3Hu5Bt08-zayKLI)

#### 想一想

* 在编写背景代码播放声音时，能否不使用

![](/files/-LWon3Hq5ViDRazPqEzB)

指令？为什么？

[单击此处](http://haohaodada.com/video/a20512.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon3HyFJmJ6FkXtOgv)

## 拓展思考

“喵喵”英语学得可开心了，请你使用学过的知识，让它的学习过程变得更有趣。


# 第6课 喵喵演奏会

小猫“喵喵”去听了一场音乐会后，它可高兴了。于是决定立即去找它的小伙伴“咪咪”，一起自己来举办一场演奏会。

在本课的范例作品中，“喵喵”将和“咪咪”一起在Scratch中演奏儿童乐曲“小蜜蜂”。首先是“咪咪”的钢琴独奏表演，随后是“喵喵”的打鼓表演，最后是它俩的合奏表演。

![](/files/-LWon2mLF5Jznf3PdzvO)

## 创意构思

可以使用Scratch弹奏指令来完成喵喵演奏会曲谱的演奏。此外，可以通过先前学过的单击角色的切换方法来进行节目的变更。也就是单击“咪咪弹琴”角色时，弹奏音符；当单击“喵喵打鼓”角色时，弹奏鼓声；当单击舞台背景时，“喵喵”和“咪咪”一起表演合奏。

要完成本课的创意构思，需要了解以下的新指令：

1\.

![](/files/-LWon2mNgYipdIHWpOXW)

属于“声音”类别指令，按指定的音符、节拍弹奏音乐。指令的第一个参数确定弹奏的音符，可以单击下拉列表参数，在打开的虚拟键盘上单击琴键选择。指令的第二个参数确定弹奏的节拍。

![](/files/-LWon2mPZ6I3oc2ea2EV)

在Scratch中，每个弹奏的音符都可以用一个数表示。在单击虚拟键盘的琴键时，可以在琴键下方看到具体的音名和数值。

![](/files/-LWon2mRfwdBigWnPv5c)

在Scratch中，“节拍”就是发出声音的时间长度。默认状况下，1拍相当于1秒。

2\.

![](/files/-LWon2mTBZQ_sPxS2mG9)

属于“声音”类别指令，按指定的乐器、节拍弹奏鼓声。指令的第一个参数确定具体的乐器，一共有18种打击乐器可供选择；第二个参数确定具体的节拍。

3\.

![](/files/-LWon2mVSDSbhQMoLxr1)

属于“声音”类别指令，相当于乐谱中的休止音符；指令的参数确定休止音符的节拍数。

4\.

![](/files/-LWon2mX--868GQVP_2K)

属于“声音”类别指令，用于控制音乐弹奏时的速度；指令的参数是具体的速度值，默认值是“60”bpm，也就是每分钟弹奏60个节拍。

## 脚本设计

### 第一步：设置舞台背景和角色

本课范例作品中的舞台背景是从“背景库”中选取的，角色是作为外部图片，从“好好搭搭”网站上下载后上传的。具体可以按以下步骤操作：

1.单击“背景列表区”的

![](/files/-LWoQiE7CgG8OOy_yY2G)

按钮，从“背景库”中上传“stage1”背景图片；同时删除默认的空白背景图片。

2.由于本课范例不需要使用默认的小猫角色，因此可以右键单击小猫角色，在打开的菜单中选择“删除”选项将它删除。

3.打开网络浏览器，在地址栏中输入“haohaodada.com/a2”，打开本课的范例作品网页，下载“喵喵演奏会”压缩文件。

4.将下载的压缩文件解压缩，会在“喵喵演奏会”文件夹里看到“咪咪弹琴”、“喵喵打鼓”这两个图片文件。

5.单击“角色列表区”的

![](/files/-LWoQhdgbBn_5ZQoLQzZ)

按钮，分别将下载的两个图片作为“本地文件”上传角色；上传完成后，将这两个角色用鼠标拖动到合适的位置。

[单击此处](http://haohaodada.com/video/a20601.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2mZcoPK8PjoTaBg)

### 第二步：单击咪咪把琴弹

在本课的范例作品中，单击“咪咪弹琴”角色，就会演奏“小蜜蜂”这首乐曲。

![](/files/-LWon2maLkPDrgD7L4oa)

1.单击选中“咪咪弹琴”角色，将“事件”类别中的

![](/files/-LWon3Hk4O54SPQ62sn6)

指令拖动到“脚本区”。

2.再将“声音”类别中的

![](/files/-LWon2mNgYipdIHWpOXW)

指令拖动并与第一个指令组合；然后，设置第一个参数为“5”所对应的数值“67”，设置第二个参数为“1”；也就是弹奏“5”这个音符1拍。

3.按同样的方法再添加两个

![](/files/-LWon2mNgYipdIHWpOXW)

指令到“脚本区”与原有指令组合；设置音符参数为“4”所对应的“65”、“3”所对应的“64”，节拍数都是“1”。

4.乐谱中的第4个音符是一个长度为一拍的休止符，可以将“声音”类别中的

![](/files/-LWon2mVSDSbhQMoLxr1)

指令拖动到“脚本区”与前四个指令组合，并将参数修改为“1”。

5.按以上方法继续添加指令、修改参数，演奏“小蜜蜂”乐曲剩余的音符。

[单击此处](http://haohaodada.com/video/a20602.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon2mcsHRlGiWtNilf)

#### 想一想

仔细观察“小蜜蜂”乐谱，有没有发现乐谱中有重复的小节？对于这些重复的音符，你有什么办法可以加快程序脚本的编写？

[单击此处](http://haohaodada.com/video/a20603.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon2meLu_4hafk1AHv)

### 第三步：单击喵喵来打鼓

单击小猫“喵喵打鼓”角色，它将根据“小蜜蜂”乐曲的节奏演奏鼓声，具体可以按以下步骤操作：

1.单击选中“喵喵打鼓”角色，将“事件”类别中的

![](/files/-LWon3Hk4O54SPQ62sn6)

指令拖动到“脚本区”。

2.再将“声音”类别中的

![](/files/-LWon2mTBZQ_sPxS2mG9)

指令拖动并与第一个指令组合；设置指令第一个参数为“2”，也就是“低音鼓”；第二个参数为“1”，也就是“1拍”。

3.按同样的方法再添加两个

![](/files/-LWon2mTBZQ_sPxS2mG9)

指令到“脚本区”与原有指令组合；设置这两个指令的第一个参数都为“低音鼓”，第二个参数都是“0.5拍”。

通过观察乐谱可以发现，“小蜜蜂”这首乐曲共有12个小节，每个小节的节奏都相同，也就是同样的节奏重复了12次。

4.将“控制”类别中的

![](/files/-LWoQisj6ghvuk-7RYeA)

指令拖动到

![](/files/-LWon3Hk4O54SPQ62sn6)

下方，与原有指令组合起来；修改指令参数为“12”。

完整的程序脚本如下图所示：

![](/files/-LWon2mgDXGspdI8jjHl)

[单击此处](http://haohaodada.com/video/a20604.php)或者扫描上方的二维码可以观看以上内容相关的视频。

![](/files/-LWon2miaiecUhZArUI5)

#### 试一试

如果想让“小蜜蜂”这首曲子的鼓声节奏变得更快，可以怎样操作?

[单击此处](http://haohaodada.com/video/a20605.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon2mkwPgsoagaTaib)

#### 练一练

编写程序脚本，使单击舞台背景的时候，小猫“喵喵”和“咪咪”能够合奏“小蜜蜂”这首乐曲，也就是一个弹琴、一个打鼓。

[单击此处](http://haohaodada.com/video/a20606.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon2mmc01_4qp4vizP)

## 拓展思考

“喵喵”和“咪咪”成功举办了演奏会！伴着优美的乐曲，小伙伴们跳起舞来。请你再添加角色，让角色能够与乐曲配合跳舞。

![](/files/-LWon2mojn2lwe7-4cez)


# 第7课 喵喵大抽奖

小猫“喵喵”第一次为班会课做主持，设计了一个抽奖环节，可惜没有抽奖用的大转盘，我们可以用Scratch做一个幸运大抽奖转盘程序帮助它。

本课要完成的抽奖转盘由“箭头”和“转盘”两部分组成。抽奖时，转盘会沿顺时针方向连续转动一个角度后停止。此时，箭头所指向的物品就是所获的奖品。

![](/files/-LWon38RAi2Th4cpw7s4)

## 创意构思

幸运大抽奖转盘上的箭头是固定不动的，转动的只是转盘；转盘旋转的角度每次都应该不一样，应该随机产生旋转的角度值。

要完成本课的创意构思，需要了解以下的新指令：

1\.

![](/files/-LWon39VanfDraSQGu_l)

属于“数字和逻辑关系”类别指令，将指令中两个参数的值进行乘法运算。与这个指令相类似的还有

![](/files/-LWon38WyEO8EoI-UeWp)

![](/files/-LWon38Yl8AVoHeaobdx)

![](/files/-LWon38a_vrzgd2kM8qu)

这些运算指令。

2\.

![](/files/-LWon39Dow9E-pQh-IgX)

属于“数字和逻辑关系”类别指令，可以在指定范围内产生一个随机数；指令中的两个参数确定这个随机数产生的范围。使用这个指令，可以使游戏或者模拟类的程序更有趣、更真实。

#### 试一试

* 在“指令区”设置&#x20;

![](/files/-LWon39Dow9E-pQh-IgX)

指令的参数，然后单击运行指令，研究所产生随机数的规律？

![](/files/-LWon38haByx_2m52vfx)

[单击此处](http://haohaodada.com/video/a20701.php)或者扫描下方二维码可以观看相关的视频。

![](/files/-LWon38kx0gqdN2eL-Id)

## 脚本设计

### 第一步：导入并设置角色

本课范例作品中的舞台背景采用默认的空白图片，角色有三个。其中“转盘”是外部图片文件，可以从“好好搭搭”网站下载后导入。具体可以按以下步骤操作：

1.打开网络浏览器，在地址栏中输入“haohaodada.com/a2”，打开本课的范例作品网页，单击网页右边的“资源下载”选项卡，下载“转盘”图片。

2.单击“角色列表区”工具栏中的

![](/files/-LWoQhdgbBn_5ZQoLQzZ)

按钮；在“打开”对话框中找到并上传刚才下载的“转盘”图片。

3.另一个角色“箭头”是从“角色库”中选取的，可以先单击“角色列表区”右上角的

![](/files/-LWoQiEJdMAnTzbH-qwJ)

按钮，在打开的“角色库”对话框中找到并且双击名为“Arrow1”的缩略图；然后在“造型”选项卡中删除多余的造型，仅保留第四个向上的箭头造型；最后将它拖动到舞台中央，使箭头底部对准“转盘”的中心位置。

4.最后一个是默认的小猫角色。将它重命名为“喵喵”，调整它的大小，再将它拖放到舞台左下角的合适位置。

[单击此处](http://haohaodada.com/video/a20702.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon38stUKI6-ZoBgEM)

#### 试一试

在导入角色时，如果先导入箭头，再导入“转盘”，会出现什么问题？应该如何解决？

[单击此处](http://haohaodada.com/video/a20703.php)或者扫描下方二维码可以观看相关的视频。

![](/files/-LWon38uHwrXN7H3TInb)

### 第二步：让转盘动起来

在本课的范例作品中，转盘是沿顺时针方向旋转的。下面以转盘顺时针转60度为例，介绍具体的操作方法：

1.选中“转盘”角色，将“事件”类别中的

![](/files/-LWoQhdof0LUSBNQ1FPT)

指令拖动到脚本区。

2.将“控制”类别中的

![](/files/-LWoQisj6ghvuk-7RYeA)

指令拖动并且与第一个指令组合，修改这个指令的参数为“60”。

3.将“动作”类别中的

![](/files/-LWoQhdc7LN8zaG4rIlb)

指令拖动组合进第二个指令的中间，修改这个指令的参数为“1”。

具体的程序如下图所示：

![](/files/-LWon392no-U-9OBvDD9)

[单击此处](http://haohaodada.com/video/a20704.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon3949veQspcTW64O)

#### 试一试

* 如果不按以上步骤操作，只使用

![](/files/-LWon396l2mEubC5r-1d)

指令（如下图所示），运行时会有什么不同？你认为哪段脚本最合适？

![](/files/-LWon398n6mzOnznyWK3)

[单击此处](http://haohaodada.com/video/a20705.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon39BKCN7jrKD5Z7r)

### 第三步：让转盘转动一个随机角度

本课的范例作品中，转盘转动的角度是随机的，这样才符合实际生活中抽奖的需要。这就需要使用随机数指令，具体可以按以下步骤操作：

1.将

![](/files/-LWon39Dow9E-pQh-IgX)

指令拖动到

![](/files/-LWon39FHCAd7ZHH6Xx7)

指令的参数位置附近，当出现白色吸附线时，放开鼠标左键，

![](/files/-LWon39Dow9E-pQh-IgX)

指令就会组合到

![](/files/-LWon39FHCAd7ZHH6Xx7)

指令的参数位置上。

2.修改

![](/files/-LWon39Dow9E-pQh-IgX)

指令的第二个参数为“360”。

[单击此处](http://haohaodada.com/video/a20706.php)或者扫描上方的二维码可以观看以上内容相关的视频。

![](/files/-LWon39NcM_ZEYvb5dR4)

#### 想一想

如果想改变转盘的速度，可以怎么操作呢？

[单击此处](http://haohaodada.com/video/a20707.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon39PLGaOCcyFIpzu)

### 第四步：完善抽奖转盘

根据以上步骤的操作，转盘能够向右随机旋转一个角度，从而使箭头指向奖品区的某个奖品。但多次实际运行程序后可以发现，偶尔箭头会指向两个奖品的交接处，这就难以判断到底是哪个奖品了。要解决这个问题，可以让箭头随机旋转的角色始终是60的倍数，这样箭头只会停留在奖品区域的正中间。要实现这个功能，关键是产生的随机数应该是60的倍数，可以按以下步骤操作：

1.将

![](/files/-LWon39VanfDraSQGu_l)

指令拖动到“指令区”空余区域，先不要组合进程序脚本中，再输入“60”作为指令的第一个参数。

2.将

![](/files/-LWon39Dow9E-pQh-IgX)

指令拖动到

![](/files/-LWon39VanfDraSQGu_l)

指令第二个参数的位置组合起来，修改

![](/files/-LWon39Dow9E-pQh-IgX)

指令的两个参数分别为“1”和“6”。这样产生的随机数始终是60的倍数。

3.将以上两步组合完成的指令再组合到“重复执行”指令的参数位置。

具体的脚本如下图所示：

![](/files/-LWon39ZCfuiiVUGX1EN)

[单击此处](http://haohaodada.com/video/a20708.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon39aX4sbDmMZjprA)

## 拓展思考

在“喵喵”的帮助下，班会的抽奖环节圆满举行，“喵喵”也赢得了同学们的掌声。不过“喵喵”觉得这个抽奖转盘还不够完美。请你展开想象，用学过的知识帮助“喵喵”，让抽奖转盘变得更加丰富。


# 第8课 喵喵运动会

马上举办校园运动会了，小狗“小白”和“小蓝”都名参加跑步比赛，“喵喵”将是这个项目的裁判。

在本课的范例作品中，单击“喵喵”角色，“小白”和“小蓝”开始向舞台右侧方向奔跑。当遇到终点线时，停止前进，同时由“喵喵”宣布它们到达终点的消息。

![](/files/-LWon2qwusdK-AZz6k0r)

## 创意构思

可以使用Scratch中的“广播”功能来完成本课任务：单击“喵喵”后，由“喵喵”广播“起跑”消息，运动员角色在收到消息后起跑，并在到达终点线时广播“到达”的消息。

在运动员是否到达终点线的判断上，可以使用Scratch中的颜色触碰检测方法进行判别。此外，还可以使用随机数指令随机产生运动员的移动速度，从而使比赛更精彩。

要完成本课的创意构思，需要了解以下的新指令：

### Scratch中的广播

在Scratch中，“广播”是非常重要的一个功能。每个广播都有“消息名称”，Scratch通过消息名称来区别不同的广播。Scratch的舞台和角色都能够发送广播，每个广播发送后，能被所有对象（包括广播的发送者）接收。

比如下图中的“喵喵”、“小白”和“小蓝”三个角色，如果已经编写了当“小白”和“小蓝”接收到“起跑”的消息后，开始向终点线方向移动的脚本。那么当“喵喵”广播“起跑”消息后，所有角色，包括“喵喵”自己，都会收到这条消息；其中“小白”和“小蓝”由于事先编写了相应的脚本，因此会向终点线移动。

![](/files/-LWon2r-js-eCecTWP-Q)

[单击此处](http://haohaodada.com/video/a20801.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2r2Re__bwz5TvBF)

1\.

![](/files/-LWon2raLhuzpq8N9gCW)

属于“事件”类别指令，通过指令广播一条消息；单击下拉列表参数，可以选择需要广播的消息名称；单击其中的“新消息”选项，可以在打开的对话框中新建消息名称。

2\.

![](/files/-LWon2r64G_dnRLyXnck)

属于“事件”类别指令，当接收到指定消息后，能够触发指令，执行指令下方的脚本；单击下拉列表参数，可以选择触发指令的具体消息名称。

3\.

![](/files/-LWon2r8rjC_xx_GfLp0)

属于“侦测”类别指令，用于侦测角色是否碰到指定颜色；单击指令的颜色参数，当鼠标指针变成

![](/files/-LWon2rA0gmvJfG2-QSe)

时，移动鼠标在需要的颜色上单击，指令中的颜色参数会变成指定的颜色。

4\.

![](/files/-LWon2rCY82lED19-8cs)

属于“控制”类别指令，Scratch循环指令中的一种；在满足条件之前，重复执行指令中所包含的脚本；指令中的参数就是停止的条件。

## 脚本设计

### 第一步：绘制赛道

本课范例中的舞台背景图片是一条赛道，上面有起跑线和终点线。其中，终点线的颜色还将被用作角色是否到达终点的判断条件。可以在“背景”选项卡中绘制这条赛道：

1.单击“背景列表区”中的缩略图，再单击进入“背景”选项卡；然后单击右下角的

![](/files/-LWon3DV1oVp7wGM7FvC)

按钮，进入“矢量模式”。

2.单击选中“矢量工具按钮”中的

![](/files/-LWon2rGPIx4Ag2uLrwb)

按钮，再单击选中“颜色”区域的

![](/files/-LWon2rI8jQL0WiY46YE)

及“填充模式”中的

![](/files/-LWon2rK2Rnsk_WOjr9L)

最后在“背景编辑区”拖动鼠标，画出红色矩形赛道。

3.单击选中“矢量工具按钮”中的

![](/files/-LWon2rMS5NYr9iM1c99)

按钮，再选中“颜色”区域的

![](/files/-LWon2rONvJEtB4UdRP0)

设置合适的线宽，最后按住键盘上的“Shift”键，在“背景编辑区”赛道的左边拖动鼠标，画出一条蓝色线条，作为起跑线。

4.重新选择颜色为

![](/files/-LWon2rQ9pDYDRNlF1l4)

还是按住键盘上的“Shift”键，在赛道的右边拖动鼠标，画出一条黄色线条，作为终点线。

[单击此处](http://haohaodada.com/video/a20802.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2rS7A408GsT4ygt)

### 第二步：准备角色

本课范例作品中的三个角色，除了默认的小猫以外，另外两个“Dog1”和“Dog2”角色可以从Scratch的“角色库”选取，再把这三个角色重命名为“喵喵”、“小白”和“小蓝”，然后调整三个角色的大小，把它们拖放到合适的位置。

[单击此处](http://haohaodada.com/video/a20803.php)或者扫描上方的二维码可以观看以上内容相关的视频。

![](/files/-LWon2rUq1SeZIVQWE-f)

### 第三步：喵喵发令

首先为小猫“喵喵”编写脚本，使它能够向两个运动员广播“起跑”消息：

1.单击选中小猫“喵喵”角色，将“事件”类别中的

![](/files/-LWon3Hk4O54SPQ62sn6)

指令拖动到脚本区，然后再将

![](/files/-LWon2raLhuzpq8N9gCW)

指令拖动到脚本区与前一个指令组合。

2.单击

![](/files/-LWon2raLhuzpq8N9gCW)

指令的下拉列表参数，选中“新消息”选项，在打开的“新消息”对话框中输入消息名称为“起跑”。

[单击此处](http://haohaodada.com/video/a20804.php)或者扫描上方的二维码可以观看以上内容相关的视频。

![](/files/-LWon2rcWiK6ThLhgcVE)

### 第四步：运动员响应消息

两只小狗运动员接收到“喵喵”广播的“起跑”消息后，应该开始向舞台右侧的终点线移动，并在碰到终点线时停止前进。具体可以按以下步骤操作：

1.为了让

![](/files/-LWon2r8rjC_xx_GfLp0)

指令能够对“是否碰到了终点线”这个条件进行检测，需要将指令中的颜色参数设置成与终点线颜色相同：先单击指令中的颜色参数，然后将鼠标移动到终点线上单击，这样，指令的参数颜色就与终点线相同。

2.还可以使用

![](/files/-LWon39Dow9E-pQh-IgX)

指令，让“小白”每次比赛都拥有不同的速度。

“小白”完整的脚本如下图所示：

![](/files/-LWon2rjuIRVwM-BHk1a)

“小蓝”的脚本与“小白”相同，可以采用复制粘贴的方法编写。

[单击此处](http://haohaodada.com/video/a20805.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2rlymMGEKEgxkH5)

#### 试一试

在“侦测”类别中，与

![](/files/-LWon2r8rjC_xx_GfLp0)

指令功能类似的还有

![](/files/-LWon2rp2vXTUrg49ZJ1)

![](/files/-LWon2rrOxj_18iIJgAy)

这两个，你知道这两个指令起什么作用吗？

[单击此处](http://haohaodada.com/video/a20806.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon2rtccxssDldDpqm)

### 第五步：到达终点发消息

当“小白”和“小蓝”在到达终点后，应该分别发送到达终点的消息。这样，才能让“喵喵”知道谁到达终点：

1.单击选中“小白”，将“事件”类别中的

![](/files/-LWon2raLhuzpq8N9gCW)

指令拖动组合到脚本区，作为最后一条指令；再单击指令的下拉列表参数，选中“新消息”选项，在打开的“新消息”对话框中输入消息名称为“小白到达终点”。

2.再单击选中“小蓝”，按照以上的步骤添加指令，并设置指令的参数为“小蓝到达终点”。

小猫“喵喵”接收到来自“小白”和“小蓝”发送的消息后，可以按以下步骤操作，宣布相应的到达信息：

1.单击选中小猫“喵喵”，将“事件”类别中的

![](/files/-LWon2r64G_dnRLyXnck)

指令拖动到脚本区，在下拉列表参数中选择“小白到达终点”。

2.将“外观”类别中的

![](/files/-LWoQiE3Lpd1Qpfb36OE)

指令拖动组合到上一条指令下方，修改指令的第一个参数为“小白已经到达终点”。这样，当“喵喵”接收到“小白到达终点”这个消息的时候，会宣布“小白已经到达终点”。

3.复制这段脚本，修改第一个指令的参数为“小蓝到达终点”，第二个指令的第一个参数为“小蓝已经到达终点”。这样，“喵喵”会宣布“小蓝已经到达终点”。

[单击此处](http://haohaodada.com/video/a20807.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2rzGODk59tyLQzp)

#### 练一练

按照以上步骤所编写的程序脚本，运动员到达终点以后，“喵喵”只会宣布运动员到达的消息。你能够编写程序，让“喵喵”还能够根据比赛情况，宣布运动员的比赛成绩吗？

[单击此处](http://haohaodada.com/video/a20808.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2s0RzWZUbm5FjMV)

## 拓展思考

校园运动会结束了，“喵喵”还不满意，你能编写程序，让比赛更精彩吗？


# 第9课 喵喵学画画

看到朋友们在电脑上画出各种各样好看的图画，“喵喵”可羡慕了，它也想学习画画。让我们一起来帮“喵喵”学画画吧。

在本课的范例中，我们需要制作的是一块能够自由画画的画板。该画板拥有清屏功能，也可以选择不同颜色的画笔来绘图。

![](/files/-LWon3CdcGUYEnuTQNCM)

## 创意构思

为了制作一块能够自由画画的画板，可以使用鼠标来控制画笔，如果按住鼠标左键在舞台上移动，可以将鼠标移动的轨迹画出来。除此之外，通过广播的方式，设置画笔的颜色以及清除屏幕功能。

要完成本课的创意构思，需要了解以下的新指令：

1\.

![](/files/-LWon3CiNZIo6TD6dcrF)

属于“画笔”类别指令，执行该指令后，角色在舞台上移动时会留下画笔轨迹。

2\.

![](/files/-LWon3CobnDoAxX96aIB)

属于“画笔”类别指令，作用与上一个指令正好相反，角色在舞台上移动时不会留下画笔轨迹，默认状态下，所有角色都处于这种状态。

3\.

![](/files/-LWon3CrxL4-LiPA2g2j)

属于“画笔”类别指令，清除舞台中所有的画笔轨迹e。

4\.

![](/files/-LWon3CuGGu_jpCcuwzk)

于“画笔”类别指令，将画笔颜色设置成指定颜色。单击指令中的颜色参数，然后用鼠标在需要设定的颜色上单击，就会设置这个颜色作为画笔颜色。

5\.

![](/files/-LWon3CyDaQqTHxhBWH9)

属于“画笔”类别指令，将画笔设置成指定粗细；指令的参数就是具体的粗细值。

6\.

![](/files/-LWon3D0Bdp5qXWj12AF)

属于“事件”类别指令，当按下键盘上的指定按键时，执行指令下方的脚本；可以在下拉列表参数中选择具体的按键。

7\.

![](/files/-LWon3D2iMgOo5scX3bP)

属于“控制”类别指令，可以编写“选择”结构的程序脚本。它包含两段相互独立的脚本，当指定的条件成立时，执行第一段脚本；如果不成立，执行第二段脚本。指令的参数就是判断的条件。

[单击此处](http://haohaodada.com/video/a20901.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon3D4qzwnFZy9mUH-)

8\.

![](/files/-LWon3K7RJMNj61O1cvy)

属于“控制”类别指令，Scratch“循环”程序结构的一种，可以无条件地重复执行指令所包含的脚本。

9\.

![](/files/-LWon3DHvsA2l03PRa4Q)

属于“动作”类别指令，当鼠标位于舞台范围内时，可以将角色定位到鼠标指针位置。

10\.

![](/files/-LWon3DKZ6DAmJ4kQr4U)

属于“侦测”类别指令，检测是否按下了鼠标左键。

11\.

![](/files/-LWon3DNxZLaMU0_h7Ew)

![](/files/-LWon3DPtP79Y822qZiD)

属于“外观”类别指令，在舞台上显示或者隐藏角色。

## 脚本设计

### 第一步：准备背景

一个完整的作品，应该有一个软件封面。一般封面包含作品名称、作者、操作说明等信息。运行程序后，首先就显示软件封面。因此，本课范例包含“封面”和“画板”两个背景：

1. 使用PowerPoint制作一张幻灯片作为封面的背景图片。内容为：“作品名称：神奇的画板”，“作者：喵喵”，“操作说明：按空格键，进入画板！”。制作完成后将幻灯片保存为“封面”。
2. 将制作保存的“封面”图片导入到Scratch，作为舞台背景。
3. 修改默认的舞台背景名称，重命名为“画板”；调整这两个背景缩略图的顺序，第一个背景缩略图为“封面”，第二个为“画板”。

[单击此处](http://haohaodada.com/video/a20902.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon3DR7qw0Rc2C-Tpc)

#### 想一想

软件封面还可以怎样设计？

### 第二步：准备角色

本课范例作品有五个角色，可以按以下步骤准备这些角色：

1.由于本课范例不需要使用默认的小猫角色，可以将它删除。

2.从Scratch角色库中导入“Pencil”和“Button3”这两个角色，再分别重命名为“画笔”和“板擦”。

3.单击“角色列表区”的

![](/files/-LWon2pcDDqfdanzzf5C)

按钮，进入“造型”选项卡后，单击右下角的

![](/files/-LWon3DV1oVp7wGM7FvC)

按钮，进入“矢量模式”。

4.单击选中“矢量工具按钮”中的

![](/files/-LWon3DX4f0pty3KXTtY)

按钮，再单击选中“颜色”区域的

![](/files/-LWon2rI8jQL0WiY46YE)

及“填充模式”中的

![](/files/-LWon2rK2Rnsk_WOjr9L)

最后在“造型编辑区”拖动鼠标，画出一个红色矩形；将这个新角色命名为“红色”。

5.在“角色列表区”右键单击“红色”角色缩略图；然后，在快捷菜单中选择“复制”选项，将复制的角色重命名为“绿色”

6.单击“绿色”角色，进入这个角色的“造型”选项卡，将造型中的矩形填充成绿色。

7.按同样的方法再复制一个角色，重命名为 “黑色”，再将造型中的矩形填充成黑色。

8.调整所有角色的大小，并把它们摆放到舞台的合适位置。

[单击此处](http://haohaodada.com/video/a20903.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon3Dclj4_2ayUjy6E)

### 第三步：隐藏角色

范例程序运行后，首先显示的是“封面”背景，而其它角色此时都是隐藏的。因此，首先需要单击背景缩略图，添加以下图所示的背景脚本：

![](/files/-LWon3DeAtnPzXVOKdic)

然后，还需要分别为“画笔”、“红色”、“绿色”、“黑色”和“板擦”这些角色添加如下图所示的角色脚本：

![](/files/-LWon3Dgl-7-dSajcR5K)

[单击此处](http://haohaodada.com/video/a20904.php)或者扫描上方的二维码可以观看以上内容相关的视频。

![](/files/-LWon3Diu81UrybrmioN)

### 第四步：显示角色

当按下键盘上的“空格键”后，需要先将舞台背景切换成“画板”；然后再向所有角色广播“开始”消息。相关的背景脚本如下图所示：

![](/files/-LWon3DkNJ0aXPcqKiyo)

当“画笔”、“红色”、“绿色”、“黑色”和“板擦”角色收到“开始”消息后，应该在舞台上显示。因此这些角色都应该有如下图所示的角色脚本：

![](/files/-LWon3DmxnuFVy0UnBMa)

[单击此处](http://haohaodada.com/video/a20905.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon3DoTp2O8GuWvHtb)

#### 试一试

程序开始运行的时候不隐藏这些角色，会出现什么问题？

[单击此处](http://haohaodada.com/video/a20906.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon3Dqe7Dnb3b5PXV1)

### 第五步：让画笔动起来

为“画笔”角色添加如下图所示脚本，可以使它能够跟随鼠标移动：

![](/files/-LWon3Ds_IMDaNxrINfL)

[单击此处](http://haohaodada.com/video/a20907.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon3DuKMyDP5oHrp4f)

#### 想一想

* 上述脚本中的

![](/files/-LWon3K7RJMNj61O1cvy)

指令能否删除？为什么？

[单击此处](http://haohaodada.com/video/a20908.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon3DyTv9U_Sz67P-Y)

### 第六步：在舞台上绘图

要让“画笔”在舞台上绘图，需要首先检测是否按下鼠标左键，如果按下了，那么就“落笔”，使画笔在移动的同时留下笔迹；如果没有按下鼠标左键，那么就“抬笔”，使画笔移动的同时不留下笔迹。

![](/files/-LWon3E-hsIFDwNgrAQ3)

[单击此处](http://haohaodada.com/video/a20909.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon3E10BBcBIwodziw)

### 第七步：设置“画笔”角色的造型中心

通过以上操作，可以通过鼠标控制“画笔”角色在舞台上作画。但按下鼠标左键时，并没有从“画笔”的笔尖位置产生线条，这是为什么呢？ 原来，在Scratch中，每个角色都有一个“造型中心”。在默认的情况下，造型中心位于造型的中心位置，所以按下鼠标左键画出的线条是从“画笔”的造型中心画出来。正确状态下应该是从“画笔”的笔尖画出线条，这就需要将“画笔”的造型中心变更到笔尖位置： 要设置“画笔”角色的造型中心，可以按以下步骤操作：

1.选中“画笔”角色，再单击“造型”选项卡。

2.单击造型编辑窗口右上角的

![](/files/-LWon3E3e-aGn1FFumlI)

按钮，可以看到在造型编辑区有两条直线相交，交点位置就是角色的造型中心。

3.在“画笔”角色的笔尖位置单击，将造型中心变更到笔尖位置。

[单击此处](http://haohaodada.com/video/a20910.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon3E5O3AQTKu-aqdx)

### 第八步：设置画板按钮功能

通过单击舞台下方的“红色”、“绿色”和“黑色”这三个角色，可以设置画笔的颜色，使画笔的颜色更为丰富。

依次为单击这三个角色，分别添加以下图所示脚本：

![](/files/-LWon3E88PSEJzL4OVNu)

然后，在“画笔”角色的脚本中添加以下的消息处理脚本：

![](/files/-LWon3EA6UsuDdX7pHo9)

[单击此处](http://haohaodada.com/video/a20911.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon3EDy6601yfBly5g)

#### 练一练

为画板中的“板擦”角色编写脚本，使得单击后能够清除“画板”上的图画。

[单击此处](http://haohaodada.com/video/a20912.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon3EFJYCB2xKNs1NU)

## 拓展思考

“喵喵”学画画用的画板终于制作完成了，你还能够为这块画板添加更多的功能吗？


# 第10课 喵喵出题目

班级即将举行口算竞赛，为此“喵喵”想要制作一个口算训练程序给大家练习，我们一起来帮助它吧！

在本课的范例作品中，我们需要制作一个能够随机出题、自动批改的加法口算训练程序。

![](/files/-LWon2okppp0DC6FtZ0n)

## 创意构思

本课的范例作品是一个加法口算训练程序，先随机出题，然后等待用户输入答案，再判断输入的答案是否正确。

要完成本课的创意构思，需要了解以下的新指令：

1\.

![](/files/-LWon2ooDVwYmGwuIkar)

属于“数据”类别工具按钮，单击这个按钮后，可以通过打开的“新建变量”对话框创建变量。

创建变量以后，在“指令区”的“数据”类别中，会增加一些用于控制变量的指令，同时在舞台的左上角默认会显示变量对象。该变量对象左边是变量名，右边是变量当前的值。

[单击此处](http://haohaodada.com/video/a21001.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2org4P4kJ81sImr)

#### 试一试

双击舞台中的变量对象，你发现了什么？？

[单击此处](http://haohaodada.com/video/a21002.php)或者扫描下方二维码可以观看相关的视频。

![](/files/-LWon2ovVkhgYaufpdfd)

2\.

![](/files/-LWon2ox-x5MuM0263qQ)

属于“数据”类别指令，为一个变量赋值；由第一个下拉列表参数确定需要赋值的变量，第二个参数确定这个变量具体设定的值。

3\.

![](/files/-LWon2p-Pk5ZLi7M6r4F)

属于“数据”类别指令，每次新建一个变革，都会增加相应变量的指令。通过该指令，可以获取变量当前的值。

### Scratch中的变量

在Scratch中，“变量”是另一个非常重要的概念，可以新建变量、对变量赋值，在程序的运行过程中可以根据需要随时修改变量的值。

一个变量包括“变量名”与“变量值”两个属性：“变量名”用于在脚本中识别不同的变量，可以使用中文作为变量名称，变量名应该有一定意义；“变量值”是指变量所包含的值。比如创建一个名为“加数1”的变量，可以通过

![](/files/-LWon2ox-x5MuM0263qQ)

指令来设置它的变量值，也可以使用

![](/files/-LWon2p-Pk5ZLi7M6r4F)

指令来获取它的变量值。

[单击此处](http://haohaodada.com/video/a21003.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2p2f-y7VcpkejMp)

#### 想一想

下列表格中的字符，在Scratch中都可以作为新建变量名。但有些作为变量名不太合适，容易混淆。请在你认为最合适的变量名下方的表格中打“**√**”。

![](/files/-LWon2p5mH8ck_5Xp-Px)

[单击此处](http://haohaodada.com/video/a21004.php)或者扫描下方二维码可以观看相关的视频。

![](/files/-LWon2pCvkOG14nptn9W)

5\.

![](/files/-LWon2pGYE9hD8PwTfrJ)

![](/files/-LWon2pMw1RO36KQBGpi)

![](/files/-LWon2pRilSC1mznyJZ-)

属于“数字和逻辑关系”类别指令，分别用于比较指令左边的参数与右边的参数之间是否存在相等、小于或大于的关系。

6\.

![](/files/-LWon2pTmrISqvJt5bv7)

* 属于“侦测”类别指令，能够显示提示文本并等待用户通过键盘输入，指令的参数就是显示的提示文本内容。
* 执行该指令会暂停程序执行，然后在舞台下文显示文本输入框，等待用户输入。输入完成后直接回车或者单击文本框右侧的

![](/files/-LWon2pVftFO_2R2oyh7)

按钮完成输入。

#### 试一试

分别将该指令放置在角色脚本中与舞台背景脚本中运行程序，你发现了什么？

[单击此处](http://haohaodada.com/video/a21005.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon2pXvP8ebrXjF9fS)

7\.

![](/files/-LWon2pZnpRHcCXpF_4v)

* 属于“侦测”类别指令，与

![](/files/-LWon2pTmrISqvJt5bv7)

指令配合使用，用户键盘输入的内容保存于该指令中。

## 脚本设计

### 第一步：准备角色和背景

1.从背景库中选择“chalkboard”作为舞台背景图片；

2.将角色“Cat1”重命名为“喵喵”，然后摆放到舞台合适的位置；

3.单击“角色列表区”的

![](/files/-LWon2pcDDqfdanzzf5C)

按钮，在角色造型编辑窗口中绘制一个加号，并将该角色重命名为“加号”，将这个加号摆放到黑板的中央。

[单击此处](http://haohaodada.com/video/a21006.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2pey6nqUNv5xTS7)

### 第二步：口算出题

本课范例中的口算是由两个加数组成的加法口算，可以按以下步骤出题：

1.在“脚本”选项卡中，单击“数据”类别下的

![](/files/-LWon2ooDVwYmGwuIkar)

按钮；在打开的“新建变量”对话框中输入变量名“加数1”。

2.重复以上步骤，再新建变量“加数2”。

3.将舞台中的

![](/files/-LWon2piKZEQ_HRIOMUq)

![](/files/-LWon2pkZi_g8SK13O44)

标记设置成

![](/files/-LWon2pmvId7GE6VPbUh)

样式后分别摆放到加号的两侧。

4.单击舞台背景缩略图，添加如下图所示的变量初始化脚本：

![](/files/-LWon2pogD8tzdQz5jhX)

[单击此处](http://haohaodada.com/video/a21007.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon2pqrI65zvfL7WeA)

#### 试一试

把

![](/files/-LWon2ps5zj3vuBdArnW)

指令和

![](/files/-LWon2puXoGFW192C479)

指令中的第二个参数修改成不同的数字后再运行程序，你发现了什么？

如果将

![](/files/-LWon39Dow9E-pQh-IgX)

指令分别拖动到以上两个指令的第二个参数位置上再运行程序，你又发现了什么？

[单击此处](http://haohaodada.com/video/a21008.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon2py5iM-_7lobwGU)

### 第三步：输入口算答案

口算题目产生并且显示以后，程序应该能够接受用户的键盘输入。要实现这个功能，可以将以下脚本添加到“喵喵”的角色脚本中：

![](/files/-LWon2q-MhsfP92WZFKP)

[单击此处](http://haohaodada.com/video/a21009.php)或者扫描上方的二维码可以观看以上内容相关的视频。

![](/files/-LWon2q1LfIqsHFdo-Kt)

#### 试一试

在指令区勾选

![](/files/-LWon2pZnpRHcCXpF_4v)

指令前的

![](/files/-LWon2q5bvmZG0KIyCV_)

然后运行上图所示的脚本，在文本输入区中输入答案。观察舞台区并把你的发现记录下来。

[单击此处](http://haohaodada.com/video/a21010.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon2q7UuXqdlThBCGF)

### 第四步：判断答案是否正确

* 口算答案输入后，需要马上判断是否正确，也就是将“加数1”与“加数2”相加的结果与输入的答案进行比较，如果相等说明输入正确，否则就是输入错误。可以将以下脚本添加到“喵喵”的角色脚本的

![](/files/-LWon2q9FYGQdmhfyuwk)

指令后：

![](/files/-LWon2qBSK-86Dq8BLw-)

[单击此处](http://haohaodada.com/video/a21011.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2qDyBowuHrClmP9)

#### 想一想

现在的口算练习程序每运行一次只能练习一道口算题，如果想要练习多道题目，应该如何修改脚本？

[单击此处](http://haohaodada.com/video/a21012.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon2qFqKZEq8YjlA5Q)

## 拓展思考

在“喵喵”制作的口算软件帮助下，大家的口算成绩突飞猛进。不过“喵喵”觉得这个口算软件还不够完美，发挥你的想象，用学过的知识让口算软件更完美吧！


# 阅读材料一：好好搭搭Scratch中文离线版的使用

{% content-ref url="/pages/-LWnWz0sR-Tkrq422oP5" %}
[好好搭搭Scratch中文离线版](/hao-hao-da-da-ping-tai/li-xian-ban/haohaodada-scratch2)
{% endcontent-ref %}


# 阅读材料二：“好好搭搭”网站中的作品管理

“好好搭搭”网站为Scratch学习提供了广阔的交流空间，可欣赏到来自全国各地Scratch爱好者们制作的作品。为了方便大家的交流沟通，“好好搭搭”网站不但提供了对作品的管理功能，还提供了将自己作品分享的功能。

## 一、重命名作品

默认状态下，在“好好搭搭”网站中新建的Scratch作品文件名是“Scratch模板”，一般都需要将这个模板名称重新命名为作品的实际名称：

在Scratch作品“设计页”中，单击“文件”下拉列表中的“重命名”选项；然后在打开的对话框中输入新的作品名称；再单击“确定”按钮完成作品的重命名。在“舞台区”上方的标题栏中，可以看到新命名的作品名称。

[单击此处](http://haohaodada.com/video/a21201.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2ztrVKSnP4bLwN3)

## 二、将作品保存到“好好搭搭”网站上

“好好搭搭”网站为每位注册用户提供了用于保存作品的网络存储空间，我们随时可以将自己的作品保存在那里。在Scratch作品“设计页”中，单击“文件”下拉列表中的“立即保存”选项就可以将作品保存在网站上。

[单击此处](http://haohaodada.com/video/a21202.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon2zwBy9u-PcQq_2c)

## 三、打开Scratch作品

对于保存在“好好搭搭”网站中的Scratch作品，我们可以通过以下操作重新打开：

首先，单击网站右上方的登录用户名，在打开的下拉菜单中选择“我的作品”选项，进入“我的作品”网页，在这个网页中，可以看到保存在网站上的所有Scratch作品；然后，单击需要打开的Scratch作品缩略图，进入这个作品的“项目页”。在项目页中，可以运行预览这个作品。如果需要编辑这个作品，可以单击项目页右上角的“转到设计页”按钮，进入这个作品的“设计页”。

[单击此处](http://haohaodada.com/video/a21203.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon2zzIIVKK04SXETe)

## 四、将作品下载到本地计算机

保存在“好好搭搭”网站中的Scratch作品，可以随时下载到本地计算机。在需要下载的Scratch作品“设计页”中，单击“文件”菜单栏中的“下载到您的计算机”选项，在打开的“另存为”对话框中，确定作品保存的位置、同时为作品取一个适当的名字、再单击“保存”按钮就可以将作品下载保存到本地计算机。

[单击此处](http://haohaodada.com/video/a21204.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon3-14kuSregE3Hez)

## 五、将本地作品上传到“好好搭搭”网站

可以将保存在本地计算机上的作品上传到“好好搭搭”网站上，这样可以随时进行作品的编辑、修改、分享：

首先进入Scratch作品“设计页”；然后单击“文件”下拉列表中的“从您的计算机中上传”选项；在“打开”文件对话框中找到并双击需要上传到网站上的Scratch作品文件；最后，在打开的“Replace contents of the current project”（替换当前项目内容）对话框中，单击“确认”按钮，将作品上传到网站上。

[单击此处](http://haohaodada.com/video/a21205.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon3-6oRkrtsJsEdrz)

## 六、在好好搭搭网站上分享作品

当Scratch作品创作完成以后，可以与他人分享，与大家一起交流：

首先进入需要分享作品的“设计页”；然后单击“文件”下拉列表中的“分享”选项，在打开的“分享”对话框中输入作品的说明文字、勾选作品类别；最后单击“确定”按钮，就可以将自己所创作的作品在“好好搭搭”网站上分享。需要注意的是，作品在分享之前一定要先保存。

[单击此处](http://haohaodada.com/video/a21206.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon3-ATJBjl-vkkCm2)


# 阅读材料三：使用PowerPoint制作中文文字角色

在线版的Scratch无法添加中文文字。要解决这个问题，除了使用离线版的Scratch以外，还可以使用PowerPoint软件制作中文文字角色。下面以PowerPoint 2010为例，介绍具体的操作步骤。

## 第一步：插入艺术字并输入文字

1.首先打开PowerPoint 2010软件，单击“插入”选项卡，找到并且单击

![](/files/-LWon33Ql_dRu0oWhtQp)

按钮，在下拉列表中选择一个适当的艺术字样式。

2.删除艺术字文本框中默认的文字，然后输入所需要的文字内容。

[单击此处](http://haohaodada.com/video/a21301.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon33WUgOGm2OcufXu)

## 第二步：修改、美化艺术字

单击选中艺术字，再单击“开始”选项卡，在“字体”属性设置区域为艺术字设置适当的字体、字号、颜色。

除此之外，还可以在“格式”选项卡的“形状样式”和“艺术字样式”属性设置区域对艺术字进一步美化。

[单击此处](http://haohaodada.com/video/a21302.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon33awfjAVgOyEicx)

## 第三步：将艺术字保存成图片

要在Scratch中使用艺术字，必须将艺术字保存为图片。用鼠标右键单击艺术字，在打开的快捷菜单中单击“另存为图片”选项，然后在“另存为图片”对话框中为艺术字图片指定保存位置、文件名，最后单击“保存”按钮将图片保存到计算机上。

[单击此处](http://haohaodada.com/video/a21303.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon33enPbeo6lb76ok)

## 第四步：在Scratch中添加中文文字角色

1.单击Scratch“角色列表区”的

![](/files/-LWoQhdgbBn_5ZQoLQzZ)

按钮，在“打开”对话框中找到并且双击保存在本地计算机上的PowerPoint艺术字图片；

2.稍等片刻后，就会将艺术字图片上传到Scratch的角色列表中。

[单击此处](http://haohaodada.com/video/a21304.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon33jGEJBsTobvav6)


# 阅读材料四：Scratch中的指令类型

{% content-ref url="/pages/-LWyVECWIP2\_wnLYNBAc" %}
[指令](/bian-cheng-yu-fa/scratch/zhi-ling)
{% endcontent-ref %}


# 阅读材料五：Scratch中的三种程序结构

{% content-ref url="/pages/-LWyVA\_pNAOU0xE3xmgC" %}
[程序结构](/bian-cheng-yu-fa/scratch/cheng-xu-jie-gou)
{% endcontent-ref %}


# 基于Scratch的传感器板编程


# 第1课 认识Scratch传感器板

Scratch传感器板是扩展Scratch软件功能的一组硬件。通过传感器板能够感知真实环境的变化（比如声音的响度、光线的亮度），同时将数值传送到Scratch软件中。利用Scratch传感器板可以创作出更为丰富多彩的互动作品。

Scratch传感器板上一般集成有多种传感器。传感器是一种检测装置，它能感知特定的测量对象，然后按照一定的规律转换成计算机等设备可处理的信号。根据传感器基本的感知功能，常见的有：光敏传感器、声敏传感器、力敏传感器、热敏传感器等几大类。

Scratch官方支持的传感器板叫做PicoBoard（如下图所示），它提供了按键、滑杆、亮度、声音这四个传感器，同时还提供了四个扩展接口。

![](/files/-LX1pbqhak8vqF1yGEln)

## 认识“好好搭搭”传感器

[单击此处](http://www.haohaodada.com/video/b10101/)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pbqo5V4a65uSeqJx)

本书所有范例都使用“好好搭搭传感器板”（如下图所示）制作，“好好搭搭传感器板”是一种标准的Scratch传感器板。与PicoBoard相比，除了按键、滑杆、亮度、声音这四个传感器以外，还增加了摇杆、蜂鸣器和LED，同时还支持使用在线版的Scratch进行编程。

![](/files/-LX1pbqrhyBBWRRiAlf-)

### 试一试

在你所使用的“好好搭搭传感器板”上，找到按键、滑杆、亮度、声音、摇杆这些传感器以及蜂鸣器、LED。

[单击此处](http://www.haohaodada.com/video/b10102/)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pbqv3x-6YaR2Pe7B)

## 在线体验“好好搭搭”传感器程序

[单击此处](http://www.haohaodada.com/video/b10103/)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pbqyAAjTopoDTN-C)

“好好搭搭”网站上有很多使用“好好搭搭传感器板”编写的程序作品，这些作品进一步扩展了Scratch的功能，使得Scratch作品更为丰富多彩。

要在线使用“好好搭搭传感器板”程序作品，可以按以下步骤操作：

1.打开浏览器，进入“好好搭搭”网站（haohaodada.com），然后单击网站首页右上角的“登录”按钮，在打开的“用户登录”对话框中输入用户名及密码登录网站（如果没有账号，请先注册）。

2.登录完成后，单击网站游览器地址栏，在地址栏中输入“haohaodada.com/b1”,打开本书的范例程序网页，单击其中的作品缩略图，就会打开相应程序作品的“项目页”。

![](/files/-LX1pbr0NBaSD5l2Pqtf)

与普通Scratch程序作品一样，传感器板程序作品也是由作品名称、作者信息、作品预览以及作品说明等内容组成。但与普通Scratch不同的是，直接单击“开始旗”，程序不会正常运行，这是由于这些程序作品都是基于“好好搭搭传感器板”开发的，在使用之前必须连接传感器板。

3.将打开的网页最小化，然后使用传感器板附配的USB线，将小口端的插头插入传感器板的接口中，大口端的插头插入计算机的USB接口中。如果所插入的计算机接口是第一次连接传感器板，会自动识别并安装驱动程序。

4.双击计算机桌面上的“在线编程”快捷图标，运行“好好搭搭插件”程序。如果没有安装这个插件程序，可以按照“阅读材料一”介绍的步骤安装。如果已经删除了计算机桌面上的“在线编程”图标，可以单击桌面左下角的“开始”按钮，在打开的“程序”中找到名为“haohaodada”的程序组，该程序组中就包含有“在线编程”图标。

![](/files/-LX1pbr2plZFZTh9RcwN)

5.传感器板如果连接正常，“在线编程”插件将会自动选择传感器板对应的串口，同时显示“打开端口成功”；一般只要单击“连接”按钮，将传感器板与计算机通过插件程序连接起来。需要注意的是，在传感器板使用过程中，这个插件程序窗口不能关闭。

6.单击任务栏上刚才最小化的网页按钮，将刚才最小化的程序作品“项目页”窗口还原。最后单击“绿旗”，就可以使用传感器板控制Scratch程序作品。

### 试一试

将传感器板与计算机连接起来，然后进入“好好搭搭”网站，找到自己喜欢的传感器程序作品，使用传感器板玩玩这些作品，找出自己最喜欢的三个作品，并将喜欢它们的理由填写在下面表格中。

![](/files/-LX1pbr5K4CYUWW55xY_)

## 认识“好好搭搭传感器板”程序设计页

[单击此处](http://www.haohaodada.com/video/b10104/)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pbr8EUrsqwIgQ5Ty)

单击“好好搭搭传感器板”程序作品右上角的“转到设计页”按钮，会进入这个作品的“设计页”。这个网页与普通Scratch作品设计页基本相同，最大的区别在于“脚本选项卡”的“更多模块”，在这个指令类别中，添加了许多控制“好好搭搭传感器板”的指令。

![](/files/-LX1pbrAZSoDaPF7GTWl)

### 想一想

登录“好好搭搭”网站的传感器程序设计页，与普通Scratch程序设计页比较一下，有什么相同和不同之处。

[单击此处](http://www.haohaodada.com/video/b10105/)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pbrCVG3eoZrKx50o)

## 新建“好好搭搭传感器板”程序作品

[单击此处](http://www.haohaodada.com/video/b10106/)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pbrEFy8-CQH5_LnV)

要新建“好好搭搭传感器板”程序作品，可以按照以下步骤操作：

1.打开浏览器，进入“好好搭搭”网站，单击网站右上角的“登录”按钮登录网站。

2.单击网站左上角的“创作”按钮，在打开的“创作模版”网页中找到并单击“好好搭搭传感器板”模版缩略图，进入“传感器板编程模版”项目页。

![](/files/-LX1pbrGBqPv-CtEH90K)

3.单击模版项目页右上角的“转到设计页”按钮，进入“传感器板编程设计页”。如果舞台上的传感器数据没有动态变化，说明传感器板还没有与Scratch连接起来，可以将打开的网页最小化，继续按以下步骤操作：

4.用USB线将传感器板与计算机连接起来。打开“在线编程”插件程序，在确认已经“打开端口成功”的前提下，单击“连接”按钮。

5.重新返回“传感器板编程设计页”，单击绿旗，如果能够看到舞台上部分传感器的数值在动态变化，就说明传感器板与Scratch连接正常，可以开始编写程序。

传感器板与Scratch连接正常的另一个特征是：单击“脚本选项卡”中的“更多模块”类别，如果在指令区右上角看到的是绿色圆点，就说明连接正常了；如果看到的是红色圆点，就说明连接不正常，可以关闭网页，按以上的操作步骤再重新连接。

![](/files/-LX1pbrJqSBx2aYAVHBC)

### 想一想

仔细观察“传感器程序设计页”舞台上的指令参数的，你发现了什么？

[单击此处](http://www.haohaodada.com/video/b10107/)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pbrLaROwcVblYn8N)

## 体验“好好搭搭传感器板”程序作品创作

[单击此处](http://www.haohaodada.com/video/b10108)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pbrO9HC3ELXRMRdl)

利用“好好搭搭”网站编写传感器板程序非常方便，下面就以一个简单改变舞台背景亮度的程序为例，了解使用“好好搭搭传感器板”在线编写程序的方法与步骤：

首先按照前面介绍的方法进入传感器板程序作品设计页，再将传感器板连接到计算机上，运行“在线编程”插件程序，然后返回设计页，单击绿旗，将传感器板与Scratch连接起来。

然后从“背景库”中选择自己喜欢的舞台背景图片，最后单击选中舞台背景缩略图，在脚本区中根据下图所示搭建程序代码：

![](/files/-LX1pbrRta3XjoIXi32_)

程序代码编写完成后，如果按下传感器板上的“Up”按键，会增加舞台背景图片的亮度，如果按下“Down”按键，会降低舞台背景图片的亮度。

### 试一试

在“传感器程序设计页”中，你还能尝试用其它传感器指令改变舞台背景图片的亮度吗？

[单击此处](http://www.haohaodada.com/video/b10109)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pbrY2qq_O3Pfvcpt)

## 在好好搭搭网站上保存、分享传感器程序

[单击此处](http://www.haohaodada.com/video/b10110)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pbrbxtsVLLfekMs2)

与普通的Scratch程序一样，传感器程序编写完成后，应该先单击“文件”菜单栏中的“重命名”选项，在打开的“更改文件名”对话框中，为自己所编写的传感器程序重新取一个合适的文件名；然后再单击“文件”菜单栏中的“立即保存”选项，将传感器程序保存在“好好搭搭”网站上。

对于保存在“好好搭搭”网站上的传感器程序，也可以单击“文件”菜单栏中的“分享”选项，在打开的“分享”对话框中输入这个传感器程序作品的说明文字、勾选程序类别为“硬件”，最后单击“确定”按钮将程序在网站上分享。

![](/files/-LX1pbrdp9bK-0z-S5ao)

### 练一练

在“好好搭搭”网站上搜索其他人共享的传感器程序，找到后在该程序的设计页查看代码，想一想这个程序可以实现什么功能？然后将程序编译下载到传感器，运行验证是否与自己的设想一致。

### 拓展思考

除了通过按下按键改变背景亮度，你还能编写程序让传感器板更好玩吗？

尝试编写程序，与同学比一比，谁的传感器板程序更好玩。


# 第2课 在Scratch中使用按键——点亮卧室里的灯

小猫“喵喵”马上要搬新房了。新房子设计得可漂亮了，小猫很满意。可是准备搬家的时候，小猫才发现新房里没装电灯开关。这可怎么办呢？本课我们将帮助小猫利用传感器板上的“Up”键与“Down”键设计一个程序，对房间里的灯进行控制。

![](/files/-LX1paBNE2UWxTgWOiCs)

## 模块与指令

要完成本课的创意构思，需要了解以下的新知识、使用以下的新指令：

### “读取Up键”指令：

![](/files/-LX1paBTDgaSGMEndCip)

读取传感器板上“Up”按键的状态，数值范围（0，1）。当按下“Up”键，数值为“1”，当弹起“Up”键，数值为“0”。

### “读取Up键”指令：

![](/files/-LX1paBZ9QgTCPnQLIZb)

读取传感器板上“Down”按键的状态，数值范围（0，1）。当按下“Down”键，数值为“1”，当弹起“Down”键，数值为“0”。

#### 试一试

传感器板上每个按键都有“按下”和“弹起”两种状态，那么“Up”键和“Down”键的组合能表示几种状态？请你试试看，并记录不同状态下的参数值。

[单击此处](http://www.haohaodada.com/video/b10201)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paBemj6CKOw2Apco)

![](/files/-LX1paBlPDf7JsZxKyBR)

## 作品制作

要完成本课范例，可以先导入卧室图片作为舞台背景；然后判断传感器板上的“Up键”是否“按下”；如果“按下”，那么将舞台的亮度设置为“亮”；如果状态是“弹起”，那么不改变舞台亮度。传感器板上“Down键”和“Up键”的判断方式类似。

### 第一步：设置舞台背景与角色

[单击此处](http://www.haohaodada.com/video/b10202)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paBo6cHjqSQxsod7)

1.打开网络浏览器，登录“好好搭搭”网站，单击首页中的“创作”按钮，在“创作模版”网页中单击“好好搭搭传感器板”模版，进入“模版项目页”，单击项目页右上角的“转到设计页”按钮，进入“传感器板编程设计页”。

2.使用USB线把传感器板和计算机连接起来，打开“在线编程插件”程序，单击“连接”按钮，可以在浏览器的“传感器板编程设计页”中看到传感器数值发生变化，说明传感器板和Scratch已经正常连接。

3.单击“舞台列表区”的

![](/files/-LX1paBsXYq-iq6mRbIR)

按钮，在打开的“背景库”对话框中找到并双击卧室缩略图（bedroom2），将这个背景图片添加到舞台上。

4.由于默认的传感器板编程网页中没有小猫角色，因此可以单击“角色列表区”中的

![](/files/-LX1paBx5vWIofjsr5iR)

按钮，在“角色库”对话框中找到并双击小猫缩略图（Cat1），将它添加到舞台上。

![](/files/-LX1paC-QbO2-1WDe6Sh)

5.在舞台上，默认显示传感器板上所有传感器的数值。为了作品的美观，可以右键单击这些数值，在打开的右键菜单中选择“隐藏”选项，将不需要的数值隐藏起来，只保留

![](/files/-LX1paC1U5U9PBXQen6x)

![](/files/-LX1paC4d1PLqCyKCxRl)

这两个数值，最后把它们拖放到舞台的合适位置。

### 第二步：编写舞台背景脚本

[单击此处](http://www.haohaodada.com/video/b10203)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paC8a4ioitEduWsz)

控制舞台“亮度”的脚本，应该单击“舞台列表区”中的背景缩略图，然后在“脚本区”编写舞台脚本代码：

将“开始旗”和“重复执行”指令组合在一起，然后在“重复指令”中使用两个判断指令进行“判断”：如果“Up键”=“1”，那么将“亮度特效”设定为“0”，并广播“开灯状态”消息；如果“Down键”=“1”，那么将“亮度特效”设定为“-80”，并广播“关灯状态”消息。

![](/files/-LX1paCB9qpqG-z7WikP)

#### 试一试

在以上代码中，将

![](/files/-LX1paCGv73FgWyyaD0d)

指令参数设置为“-80”，如果设置其它数值行不行？请分别用“-100”、“-50”、“50”、“100”试一试，效果会怎么样？

[单击此处](http://www.haohaodada.com/video/b10204)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paCLYI_d5KrCHups)

![](/files/-LX1paCOYKl1EhNSrgIQ)

### 第三步：编写小猫角色脚本

[单击此处](http://www.haohaodada.com/video/b10205)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paCTYOoVjTTLo7lG)

在“关灯”状态下由于房间光线很暗，小猫角色可以隐藏起来，开灯状态下则显示出来，这样会使开、关灯效果更加逼真。具体可以单击小猫角色，为小猫编写以下脚本代码：

![](/files/-LX1paCWAsWE5DhmEyoF)

#### 想一想

如果不使用“发送消息”和“接收消息”的指令，还有什么方法可以让小猫隐藏和显示？ [单击此处](http://www.haohaodada.com/video/b10206)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paC_9LgY2sKg20Ed)

#### 练一练

当按下“Up键”开灯时，房间一下子亮了起来，小猫心里肯定很高兴，这个时候，它会怎么说、怎么做呢？同样的，当按下“Down键”关灯时，房间一下子就黑了，它又会说什么、做什么呢？

请用

![](/files/-LX1paCclaAh2-QbQlPc)

来完善你的作品！

#### 拓展思考

通过以上范例的制作，利用传感器板上的两个按键，可以控制Scratch舞台的亮度，模拟开灯、关灯的效果。请再想一想、试一试，能不能只使用一个按键实现开、关灯效果？

提示：在制作过程中需要注意以下几点：

1. 可以设置一个变量，用于保存当前灯的状态。比如用“0”表示“灯关了”，用“1”表示“灯开着”。
2. 当按下按键时，判断变量值。如果是“0”，则设定为“1”，否则设定为0。
3. 通过判断变量值，来确定房间的亮度。如果变量值是“1”，则设定房间的亮度为“0”；否则房间亮度为“-80”。


# 第3课 在Scratch中使用LED——防火小卫士

森林之王——老虎因有事要外出，它请聪明能干的小猫暂时看守几天森林。天气渐热，正值森林火灾高发时期。为了更好地做好火灾防护工作，本课我们将通过Scratch设计一个程序，用传感器板上的LED做火灾预警，帮助小猫保卫森林。

![](/files/-LX1pahVIDF-AufubPDr)

## 模块与指令

要完成本课的创意构思，需要了解以下的新知识、使用以下的新指令：

### LED

[单击此处](http://www.haohaodada.com/video/b10301)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pah_97rKQWlxEwZc)

LED的中文名称叫做“发光二极管”。它可以把电能转化成光能，在电子电路或者仪器设备中经常作为指示灯使用，也可以用于显示文字或者数字。

![](/files/-LX1paheYSEJsfxIR_C4)

在好好搭搭传感器板的正下方，有红色、黄色、绿色三颗LED，通过Scratch可以编写程序控制它们的状态。

### "设置绿灯亮灭"指令“：

![](/files/-LX1pahh0x1tFVCFUjqc)

设置绿色LED的亮灭，取值范围为（0，1）。当参数值为“0”时，绿色LED灭；参数值为“1”时，绿色LED亮。

### "设置黄灯亮灭"指令“：

![](/files/-LX1pahjz7A19A37xbxF)

设置黄色LED的亮灭，取值范围为（0，1）。当参数值为“0”时，黄色LED灭；参数值为“1”时，黄色LED亮。

### "设置红灯亮灭"指令“：

![](/files/-LX1pahnC7z9Sim-XA43)

设置红色LED的亮度，取值范围为（0-100）。与绿色、黄色LED不同，红色LED除了参数值为“0”时不亮以外，还可以设置亮度；参数值越大，亮度越高，参数值为“100”时，LED最亮。

#### 试一试

[单击此处](http://www.haohaodada.com/video/b10302)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pahp8FFbxHvJo0Ld)

![](/files/-LX1pahtAWF6Y7krmq53)

## 作品制作

在本课的范例作品中，可以通过拖动“烟雾”变量滑杆，模拟森林里的烟雾浓度，作为火灾预警的依据。如果没有烟雾，绿色LED亮，表示森林安全；如果有烟雾但还在安全范围内，黄色LED亮，提示森林存在安全隐患；如果烟雾超过一定范围，即将引发火灾，红色LED亮，提示森林存在危险。

### 第一步：设置舞台背景与初始化

[单击此处](http://www.haohaodada.com/video/b10303)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX8GJVZDG22yiC4HYOh)

1.打开网络浏览器，登录“好好搭搭”网站，进入“传感器板编程设计页”，将传感器板和计算机连接起来。

2.单击“舞台列表区”中的

![](/files/-LX1paA3WYjCgQQgVBS3)

按钮，在打开的“背景库”对话框中，将森林缩略图（forest）作为背景图片添加到舞台上。

3.由于本课的范例作品只使用了传感器板上的LED，它在舞台上没有传感器数值显示。为了作品的美观，可以将默认显示的传感器数值都隐藏起来；同时删除默认显示的传感器板角色。

4.由于LED的状态是根据森林里的烟雾大小来确定的，因此需要新建一个变量“烟雾”，用于表示森林里的烟雾大小；同时右键单击舞台上的这个变量，在打开的菜单中选择“滑杆”选项，这样可以通过滑杆随时调整变量的值，模拟森林中烟雾的大小。

5.单击舞台背景缩略图，在“脚本区”添加如下右图所示的初始化脚本代码：

![](/files/-LX1pai0AQkfLsj_sznt)

### 第二步：用绿色LED灯表示没有烟雾

[单击此处](http://www.haohaodada.com/video/b10304)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pai4Q1Hm18B6bVL8)

在本课的范例程序中，当“烟雾”变量值=“0”时，绿色LED亮，表示森林安全。要实现这个功能，可以单击舞台背景缩略图，在“脚本区”编写控制绿色LED的代码。

首先将“当绿旗被点击”和“重复执行”指令组合在一起，然后使用“判断”指令进行判断：如果“烟雾”=“0”时，那么绿色LED“亮”，其他LED“灭”。

![](/files/-LX1pai9L4PsQ5dspC19)

### 第三步：用黄色LED灯表示有烟雾但在安全范围内

[单击此处](http://www.haohaodada.com/video/b10305)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paiE0p386SZVlqdP)

黄色LED与绿色LED的脚本代码基本相同，都是通过设置“亮”、“灭”来表示当前森林的状态。

所不同的是“判断”指令的条件。黄色LED亮的条件应该是“烟雾变量数值”>“0”并且“烟雾变量数值”<“30”这两个条件同时满足。因此要用到“数字和逻辑运算”类别中的

![](/files/-LX1paiITHgNmDFe1ERF)

指令将这两个条件组合在一起。具体的脚本代码如下图所示：

![](/files/-LX1paiMumlS6PVXYHWR)

#### 试一试

黄色LED除了“亮”、“灭”这两种状态，还可以让它“闪烁”吗？

[单击此处](http://www.haohaodada.com/video/b10306)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paiQAheIL7Bclx1K)

### 第四步：用红色LED表示烟雾超出安全范围

[单击此处](http://www.haohaodada.com/video/b10307)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paiVn0siO8DGSoOu)

当“烟雾”=“30”或者“烟雾”>“30”时，红色LED亮起，表示森林存在危险。由于这两个条件只要满足其中一个就应该让红色LED亮，因此可以使用“数字和逻辑运算”类别中的

![](/files/-LX1paiZwx3pbgBR1-sw)

指令将这两个条件组合在一起。

好好搭搭传感器板上的红色LED与其它LED不一样，它可以设置亮度范围。因此可以有3种点亮的效果：常亮、闪烁和呼吸灯。

其中常亮和闪烁效果的脚本代码与绿色LED、黄色LED类似，如下图所示的就是满足条件后红色LED闪烁的效果：

![](/files/-LX1paidC8FERnhIzM9n)

### 第五步：让红色LED会“呼吸”

[单击此处](http://www.haohaodada.com/video/b10308)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paijSUDiLOotTWMx)

除了让红色LED常亮和闪烁，还可以让它的亮度在最亮与最暗之间逐渐变化，就像它会“呼吸”一样。

要达到这样的效果，应该先新建“亮度”变量用于存贮红色LED的亮度值，同时设置这个变量的初始值为“0”；然后使用“重复执行”指令，让变量从“0”开始依次增加，直到最大值“100”，由于“设置红灯亮度”指令的参数值就是“亮度”变量的值，所以红色LED会逐渐亮起；再使用第二个“重复执行”指令，让变量从“100”开始依次减少，直到最小值“10”，这时红色LED会逐渐熄灭，从而实现“呼吸灯”的效果。具体脚本如下图所示：

![](/files/-LX1painfyNL8ObTcYJf)

#### 练一练

进一步完善作品，为作品添加声音效果、图片特效。比如可以根据不同的“烟雾”浓度发出不同的声音、显示不同的舞台背景图片特效。

#### 拓展思考

请结合上节课学习的内容，使用传感器板上的按键控制LED。


# 第4课 在Scratch中使用滑杆——生日快乐

小猫喵喵的生日到了。为了给它一个惊喜，朋友们为它精心设计了一个生日晚会。生日之夜，“生日快乐”歌声奏响，还可以通过传感器板上的滑杆调整音量、调整房间灯光亮度。小猫在浓浓的生日氛围中与朋友欢度生日之夜。

![](/files/-LX1paC8lIiQiDHqAPLZ)

## 模块与指令

要完成本课的创意构思，需要了解以下的新知识、使用以下的新指令：

### 滑竿

[单击此处](http://www.haohaodada.com/video/b10401)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paCD6p6ATSPic15I)

滑杆的实质是一个滑动变阻器，它可以通过滑动滑片调整电路中电阻的大小，从而改变电路的电流强度。

### “读取滑竿”指令：

![](/files/-LX1paCJHaCQA4BZ8q9A)

读取传感器板上滑杆的数值，取值范围是（0，1023）。该指令的数值会随着滑片的左右移动呈线性变化，传感器板在正常摆放的前提下，往左移，数值越小；越往右移，数值越大。

#### 试一试

登录“好好搭搭”网站，连接传感器板，根据下表的要求操作，观察舞台上显示的滑杆传感器数值，将不同状态下的滑杆传感器数值记录下来。

[单击此处](http://www.haohaodada.com/video/b10402)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paCMRgYzRqy_lgyb)

![](/files/-LX1paCSKP_hB9m2j4rc)

## 作品制作

要完成本课范例，可以先添加舞台、角色，设置舞台和角色的初始状态；然后根据音乐的音量与滑杆参数值、房间亮度与滑杆值参数之间的关系，通过传感器板上的滑杆调整生日晚会的音乐和灯光，滑杆值越大，音乐越响，灯光越亮。

### 第一步：设置舞台背景与角色

[单击此处](http://www.haohaodada.com/video/b10403)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paCVnqo079TaF22b)

1.通过“背景库”对话框添加“派对”（party）图片作为舞台背景；再通过“角色库”对话框添加小猫（Cat1）、蛋糕（Cake）角色；调整这两个角色的大小、将它们拖动到舞台的合适位置。

2.选中背景缩略图，单击“声音选项卡”中的

![](/files/-LX1paCZOLaHbeHF6Qyd)

按钮，在“声音库”对话框的“循环音乐”类别中，打开“生日音乐”（birthday）声音。

3.隐藏舞台上除“滑杆”以外，其它无关的传感器数值。

![](/files/-LX1paCbE0o-MXUNg7oV)

### 第二步：在背景中编写音乐调节脚本

[单击此处](http://www.haohaodada.com/video/b10404)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paCeZ1OYAJEUtkt8)

在背景脚本中，有两段脚本代码与“生日快乐”音乐有关：第一段代码如下左图所示，用于播放音乐。

![](/files/-LX1paChaszCqNDwAhmt)

第二段代码如上右图所示，用于实现通过滑杆调整音乐的音量大小。也就是通过滑动传感器板上的滑杆，可以改变音乐的音量大小。要实现这个效果，可以在舞台脚本代码中，将“读取滑杆”指令组合到“音量设定”指令的参数框内，具体脚本代码如上右图所示。

#### 想一想

以上代码中，直接将滑杆值设定为音量值，在滑动传感器板的滑杆时出现了什么问题？你认为应该如何解决？

[单击此处](http://www.haohaodada.com/video/b10405)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paCngGD3q2pzSWDL)

如果直接将“读取滑杆”指令组合到“音量设定”指令的参数框内，会导致音量调节不正常。当“读取滑杆”指令值从“0”变化到“100”时，音量调节还是正常的，但当“读取滑杆”指令值大于“100”以后，由于音量已达到最大值，所以继续调节滑杆，并不会改变音乐音量的大小。

这是由于滑杆的取值范围（0，1023）与音量的取值范围（0，100）不一致所造成的。因此，先要将滑杆与音量的数值进行换算。为方便计算，可以将滑杆的最小值看做“0”、最大值看做“1000”；当音量是“0”时，没有声音；当音量是“50”时，用正常声音播放音乐；当音量为“100”时，用最响的声音播放音乐。具体如下图所示：

![](/files/-LX1paCvUardlJsC1bVE)

通过上图，可以看出：滑杆数值是音量数值的10倍，也就是以下这个换算公式：音量数值=滑竿数值/10。

用滑杆控制音量的脚本代码也可以修改为如下图所示：

![](/files/-LX1paD-yeR9EGds9xgR)

#### 想一想

如果要用滑杆精确控制音量，换算公式应该是怎样的？

### 第三步：在背景中编写亮度调节脚本

[单击此处](http://www.haohaodada.com/video/b10406)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paD3Clk782rTiSxn)

在本课的范例作品中，通过传感器板上的滑杆还可以改变背景图片的亮度。与用滑杆控制音量一样，用滑杆控制背景图片亮度，也需要先找到它们之间的转换公式。但与控制音量不一样的是：图片亮度的取值范围是（-100，100），是由一段负数、一段正数组成的，因此滑杆和亮度的数值不能直接相除。如下图所示：

![](/files/-LX1paD8FFUDdmXsxnD1)

可以先把亮度值转化为正数，也就是在原来数值的基础上增加100，使亮度值最小是“0”，最大是“200”，如下图所示：

![](/files/-LX1paDCFONGI79jKtBf)

再观察上图，就可以得出滑杆是亮度数值的5倍，也就是如下所示的换算公式：亮度数值=滑杆数值/5-100。

用传感器板上的滑杆控制背景图片亮度的脚本代码如下图所示：

![](/files/-LX1paDFKmabwrvbHBdA)

#### 试一试

为了使背景的亮度变化呈现更好的效果，还可以怎样优化脚本？

[单击此处](http://www.haohaodada.com/video/b10407)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paDIOVLoDg2PsSHR)

### 第四步：编写小猫和蛋糕角色脚本

[单击此处](http://www.haohaodada.com/video/b10408)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paDK5GcVwMS1WCyQ)

小猫、蛋糕这两个角色也应该随着背景图片的亮度变化而变化，具体的代码与背景图片的代码类似，可以通过复制得到：

单击选中背景缩略图，将“脚本区”中的“亮度特效设定”代码分别拖动到“角色列表区”小猫角色缩略图及蛋糕角色缩略图上，就可以将这段代码复制到这两个角色中。这样小猫和蛋糕的亮度也能够跟着背景图片亮度的改变而改变。

#### 拓展思考

除了可以用传感器板上的滑杆控制Scratch舞台的亮度、声音，还可以综合前面所学的知识，为生日晚会添加更多的乐趣。比如，伴随着“生日快乐”音乐的响起，传感器板上的红灯渐渐亮起，房间内的气球也缓缓升起，小猫的朋友们依次出现，祝小猫生日快乐。


# 第5课 在Scratch中使用蜂鸣器——守卫松饼

小猫由于工作努力，主人奖励了它一个松饼。它舍不得吃，准备作为第二天的早餐。可是，松饼的香味引来了馋嘴的老鼠。我们可以用Scratch设计一个程序，通过传感器板上的蜂鸣器发出警报，帮助小猫守卫松饼。

![](/files/-LX1pa9qCFO_ddTIL1rf)

## 模块与指令

要完成本课的创意构思，需要了解以下的新知识、使用以下的新指令：

### “设置蜂鸣器频率”指令：

![](/files/-LX1pa9uE7gWXEGndMze)

通过设置参数可以改变蜂鸣器发出声音的频率。该指令默认参数值为“2500”，取值范围为（20，20000）。

人耳可以听到的声音频率范围，一般是在20赫兹到20000赫兹之间。20赫兹以下的“次声波”与高于20000赫兹的“超声波”，我们人耳是听不到的。根据人耳可听见的声音频率范围，设置不同的参数值，可以改变蜂鸣器的频率。

### “设置蜂鸣器音量”指令：

![](/files/-LX1pa9w4T50s5VoM91Q)

通过参数设置可以改变蜂鸣器发出声音的音量大小。该指令默认参数值为“10”，取值范围为（0，100）。

#### 试一试

请根据以下的程序图编写脚本，然后分别依据表格中的数据设置频率参数值，再运行程序后试听，最后选择合适的声音效果打“P”。

![](/files/-LX1pa9ygXaBchmFM7rH)

![](/files/-LX1paA-8ynn0WyRFiVW)

[单击此处](http://www.haohaodada.com/video/b10501)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paA1Y2_B9HjqyRQS)

## 作品制作

要完成这个任务，我们可以先设置舞台，选取角色，设置老鼠的运动路线；然后判断老鼠与松饼之间的距离，距离越近，警报声越高、越急；再设置小猫能够跟随鼠标指针守卫松饼，老鼠也能够侦测与小猫之间的距离，当小于一定值时，它会逃回到初始位置。

### 第一步：设置舞台背景与角色

1.单击“舞台列表区”中的

![](/files/-LX1paA3WYjCgQQgVBS3)

按钮，在打开的“背景库”对话框中找到并双击“room3”缩略图，将“room3” 背景图片添加到舞台上。

2.单击“角色列表区”中的

![](/files/-LX1paA5GaOgTQWbQTDv)

按钮，在打开的“角色库”对话框中找到并双击“Cat2”缩略图，将“Cat2” 角色添加到舞台上。

3.按以上方法，继续从角色库中将“Mouse1”、“Muffin” 添加到舞台上；调整这三个角色的大小，将它们摆放到舞台合适的位置。

4.将角色列表区无用的角色删除；将舞台上无关的传感器数值隐藏起来。

![](/files/-LX1paA7bxvEADIdL-YC)

### 第二步：编写老鼠角色脚本

[单击此处](http://www.haohaodada.com/video/b10502)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paA9GPRoEXGjJFFz)

老鼠角色脚本共有两段代码，可以在“角色列表区”中选中“Mouse1”角色，分别按以下步骤编写这两段代码：

第一段代码使老鼠能够面向松饼（Muffin）方向移动。首先指定“Mouse1”的起始坐标，其中X值为（-210，210）之间的随机数，y值为（-180）；然后重复移动，每次都是面向松饼（Muffin）方向，移动10步、等待0.2秒。

![](/files/-LX1paABUHTgH5JwVrks)

第二段代码用于侦测老鼠与小猫之间的距离。使用重复执行指令进行侦测判断，如果与小猫（Cat2）之间的距离小于150，那么老鼠（Mouse1）返回起始的随机位置。

![](/files/-LX1paADxY5PK5L7DsPi)

#### 想一想

1. 在以上代码中，Mouse1起始坐标的x值是一个随机数，你认为这样的指令有什么好处？你想让它每次从哪个位置随机出现？
2. 如果想让Mouse1的运动更加流畅，可以怎样修改参数？

[单击此处](http://www.haohaodada.com/video/b10503)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paAFJd6tIZI_jG2x)

### 第三步：编写小猫角色脚本

[单击此处](http://www.haohaodada.com/video/b10504)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paAHPblwMmzf2n0x)

小猫角色脚本比较简单，只要让小猫面向老鼠方向，同时跟随鼠标指针移动就行。具体可以按以下步骤编写代码：

首先在“角色列表区”中选中“Cat2”角色，然后在开始旗下面使用重复执行指令，让小猫不断地面向老鼠（Mouse1），同时移动到当前鼠标指针所在的位置。

![](/files/-LX1paAJ-2fu-cLsWsMW)

#### 试一试

如果不使用

![](/files/-LX1paALB2eTf_sqZWK1)

而是使用

![](/files/-LX1paAN6_7y0djvWzdf)

效果会如何？你喜欢哪种方式，为什么？

[单击此处](http://www.haohaodada.com/video/b10505)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paAPecpgRy_li9hd)

### 第四步：编写松饼角色脚本

[单击此处](http://www.haohaodada.com/video/b10506)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paARgSwVb5q0Pca9)

松饼（Muffin）的脚本有两段，可以在“角色列表区”中选中“Muffin”角色，分别按以下步骤编写这两段代码：

第一段脚本主要是侦测老鼠（Mouse1）与松饼（Muffin）之间的距离，并根据侦测所获得的数据做出判断：当与老鼠之间的距离小于100时，发出频率是1000、以0.5秒为间隔的报警声；当与老鼠之间的距离大于100时，发出频率是2000、以0.25秒为间隔的报警声；

![](/files/-LX1paATMVNH7dUl8Pxb)

第二段脚本用于判断老鼠有没有碰到松饼。首先显示松饼（Muffin）的第1个造型（muffin-a）；然后判断，如果碰到老鼠（Mouse1），则关闭蜂鸣器、将造型切换为第2个造型（muffin-b）、播放声音“pop”，等声音播放完毕停止程序运行。

![](/files/-LX1paAVg5-nQmouJt3u)

#### 练一练

在以上介绍的基础上进一步完善程序。比如增加舞台场景、添加其它角色，还可以再加上计分、计时、奖励系统等，使游戏变得更加好玩。

#### 拓展思考

我们听到的音乐，每个音符都是有固定频率的，比如C调音符相对应的频率如下图所示：

![](/files/-LX1paAXHtuvO5ox7rzr)

请你使用Scratch编写一段自动演奏《两只老虎》的音乐程序，或者编写一个能够用键盘弹奏的钢琴程序。与以前编写的类似程序不同的是，现在演奏音乐的，是传感器板上的蜂鸣器。


# 第6课 在Scratch中使用声音传感器——赛龙舟

同学们，你们知道中国传统节日端午节有什么习俗吗？o 吃粽子、挂艾草、放风筝、戴香包……当然还少不了赛龙舟。赛龙舟时通常会有人给他们击鼓加油。我们可以用Scratch设计一个赛龙舟的游戏，通过传感器板上的声音传感器，将我们的加油声传递给划龙舟的小伙伴们，帮助他们赢得比赛。

![](/files/-LX1pai-t5pwpITnrSZH)

## 模块与指令

要完成本课的创意构思，需要了解以下的新知识、使用以下的新指令：

### 声音传感器

[单击此处](http://www.haohaodada.com/video/b10601)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pai2ML8XElhX8A__)

声音传感器里面有一个对声音敏感的电容式驻极体话筒。声波会使话筒内的驻极体薄膜振动，从而使电容产生相对应的微小电压变化，通过转化和采集后输出相应的电压变化。

### “读取声音强度”指令：

![](/files/-LX1pai47argnfnS405l)

读取传感器板上的声音传感器当前接收到的声音强度数值，取值范围（0，4095）。

声音的强度又称音量，也叫响度。人耳感受到的声音强弱，是人对声音大小的一个主观感受。对于同一个声音来说，距离越远，声音强度越小。

#### 试一试

登录“好好搭搭”网站，连接传感器板，根据下表的要求操作，观察舞台上显示的声音强度数值，将不同状态下的声音强度数值记录下来。

[单击此处](http://www.haohaodada.com/video/b10602)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pai8jwlhuiWvjXpw)

![](/files/-LX1paiBQ4b7khDpV8D5)

## 作品制作

要完成本课范例，可以先添加舞台、龙舟角色；然后设置两条龙舟的运动速度，其中一条龙舟是由程序自动控制的，另一条龙舟是根据我们加油声的声音强度来控制的；最后哪条龙舟先触碰终点线，就是哪个获胜。

### 第一步：设置舞台背景与角色

[单击此处](http://www.haohaodada.com/video/b10603)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paiDZvyJqMnkrdaU)

本课范例所使用的背景和角色需要从网站上下载，作为外部图片文件导入：

1.打开网络浏览器，在地址栏中输入“haohaodada.com/b1”，进入“好好搭搭”网站，打开本课的范例程序网页，单击网页右边的“资源下载”选项卡，下载“赛龙舟”压缩文件，然后将下载的文件解压缩到本地计算机上。

2.单击“舞台列表区”工具栏中的

![](/files/-LX1paiGoTx4wO890eyO)

按钮，通过“打开”对话框上传刚才下载并解压缩到文件夹中的“赛龙舟背景”图片。

3.单击“角色列表区”工具栏中的

![](/files/-LX1paiIV7Y13EttFwju)

按钮，通过“打开”对话框分别上传刚才下载并解压缩到文件夹中的“龙舟1”、“龙舟2”图片；再单击“角色列表区”工具栏中的“绘制新角色”按钮，在“造型”选项卡中绘制一条红线作为比赛的“终点线”；调整这三个角色的位置，使两条龙舟在舞台左侧、红色“终点线”在舞台右侧。

![](/files/-LX1paiKXfvt-9ijESP-)

4.单击选中“终点线”角色，在“声音”选项卡中通过单击

![](/files/-LX1paCZOLaHbeHF6Qyd)

按钮，在声音库中找到“人声”类别中的“cheer”作为比赛胜利的效果声；“效果”类别中的“gong”作为比赛失败的效果声。

5.单击隐藏舞台上除“声音强度”以外，其它无关的传感器数值。

### 第二步：编写“龙舟1”角色脚本

[单击此处](http://www.haohaodada.com/video/b10604)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paiQ2Z7tjulsIKo2)

“龙舟1”是由软件自动控制的，先将它移动到合适的起点位置，观察它的坐标值，其中X值大致为“-170”，y值大致为“70”；再将龙舟向终点方向移动，触碰到终点线，这时X值大致为“100”，y值可以保持不变。为了让比赛更精彩，可以设置“龙舟1”的移动速度是1-10秒之间的随机数。具体的脚本代码如下图所示。

![](/files/-LX1paiTnuJNpPBDsJBt)

#### 想一想

除了使用滑行指令控制“龙舟1”移动，还能用其他方式控制它的移动吗？

[单击此处](http://www.haohaodada.com/video/b10605)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paiX-apuzfeAKgO7)

### 第三步：编写“龙舟2”角色脚本

[单击此处](http://www.haohaodada.com/video/b10606)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paibK-n0KAU0pC-8)

“龙舟2”是由传感器板上的声音传感器所获取的声音强度控制的。为了获得比较好的控制效果，应该先测量“安静”和“加油”这两种环境下声音传感值的变化范围。

在本课范例中，经过尝试得出声音强度变化的大致范围为（500，2000）。

可以把声音强度的变化区间以500为单位分成四段：非常响：（大于2000），响：（1500，2000），一般响：（1000，1500），轻：（500，1000）。

根据不同的声音响度，决定造型切换的速度、角色移动的速度。

具体代码如下图所示：

![](/files/-LX1paie1XJIZSwqJZz6)

#### 试一试

尝试修改代码中的参数，使得“龙舟2”的移动速度和造型变化更符合你的想法。

[单击此处](http://www.haohaodada.com/video/b10607)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paipGjuO271mJHfT)

### 第四步：判断比赛结果

[单击此处](http://www.haohaodada.com/video/b10608)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paisplDsR3Tk0zGl)

比赛结果是由“终点线”角色完成的，哪艘龙舟先碰到“终点线”，哪艘龙舟就获胜，在没有龙舟碰到之前一直等待。当有龙舟碰到“终点线”就判断：如果是龙舟2先碰到，就说“恭喜你获胜”，同时播放胜利的音乐；否则说“加油，再试一次”，并播放失败的音乐；音乐播放完毕后停止所有程序。

![](/files/-LX1paiwktjI2Vo4U0k-)

#### 练一练

在以上介绍的基础上再进一步完善程序，比如增加舞台场景、添加其它角色、控制游戏的难度，还可以再加上计分、计时，使游戏变得更好玩

#### 拓展思考

我们听到的声音实际上是由声波组成的，声音的强度越大振幅就大，反之振幅就小。你想看看声音的波形吗？动动脑筋，利用声音传感器来绘制一段声音的波形。

我们可以新建角色

![](/files/-LX1paizaAB-PMT-waJE)

让它作为画笔进行波形的绘制。首先对画笔进行初始化，设置画笔的初始位置和颜色，清空画面、落笔；然后让

![](/files/-LX1paj2rCFsDL8Ik_kH)

的y坐标值根据声音强度大小调整，同时按一定的步长移动；最后当

![](/files/-LX1paj4zygSzN8babeI)

移动舞台右边时停止绘制。

![](/files/-LX1paj7-x3pex-JkLMt)


# 第7课 在Scratch中使用亮度传感器——太阳公公笑了

太阳公公最近有点心烦，因为乌云不断来骚扰它，总是偷偷过来遮住它的脸，让它看不清蓝天、白云与绿色的大地。本课我们将通过传感器板上的亮度传感器帮助太阳公公控制乌云，让乌云变得听话。

![](/files/-LX1paRJriNDIaNqSu8e)

## 模块与指令

要完成本课的创意构思，需要了解以下的新知识、使用以下的新指令：

### 亮度传感器

[单击此处](http://www.haohaodada.com/video/b10701)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paROeo0H3D2ocgCb)

亮度传感器其实是一个光敏管，能够感知周围光线的强弱，然后转换成电信号输出。

### ”读取亮度“指令：

![](/files/-LX1paRR8H3c9513RzGT)

读取传感器板上亮度传感器的数值，取值范围是（0，4095）。

#### 试一试

登录“好好搭搭”网站，连接传感器板，根据下表的要求操作，观察舞台上显示的亮度传感器数值，将不同状态下的亮度传感器数值记录下来。

[单击此处](http://www.haohaodada.com/video/b10702)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paRWS4TKnJxc867C)

![](/files/-LX1paRbvzyzf1ABZu_S)

## 作品制作

要完成本课范例，可以先添加舞台、角色，设置舞台和角色的初始状态；然后读取传感器板上亮度传感器的值，如果光线比较暗，乌云会遮住太阳公公；如果光线比较亮，乌云会消散，露出太阳公公的笑脸。

### 第一步：设置舞台背景与角色

[单击此处](http://www.haohaodada.com/video/b10703)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paRfv_-w84zkWXpE)

1.通过“背景库”对话框添加“blue sky”图片作为舞台背景；再通过“角色库”对话框添加太阳公公（Sun）角色。

2.通过“绘制新角色”的方法，在“矢量编辑模式”利用“椭圆”工具绘制“乌云”角色。（如果觉得自己绘制“乌云”角色有困难，也可以登录“好好搭搭”网站，从本课的范例程序网页的“资源下载”选项卡中下载）

3.调整舞台上这两个角色的大小、将它们拖动到舞台的合适位置。

4.隐藏舞台上除“亮度”以外，其它无关的传感器数值。

![](/files/-LX1paRiR8T8jTngSac2)

### 第二步：编写舞台背景脚本

[单击此处](http://www.haohaodada.com/video/b10703)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paRlShWoIIBmjAM2)

舞台背景应该能够根据传感器板上亮度传感器的数值而改变亮度。

为了获得比较好的控制效果，应该先测量环境的正常亮度。

在本课的范例作品中，环境的正常亮度是“3000”左右，当传感器板上的亮度值小于3000时，说明环境比较亮；大于3000时，环境比较暗。

在编写脚本的时候，不能直接使用“亮度”特效设置背景图片的亮度（如下图所示），不然当环境持续亮时（一直都小于3000），背景会不断增加亮度特效，直到整个图片全部变白（特效值为100）；反之又会持续变暗，暗得只剩下黑色（特效值为-100）。

![](/files/-LX1paRnt0KaV5nNz-jf)

正确的办法是控制背景“亮度”特效值的变化范围，一般可以在（0，-80）之间变化。因此先创建一个“背景亮度”变量，设置这个变量初始值为“0”，也就是正常的亮度特效值；然后进行判断：在亮度传感器数值小于3000时，表明周围光线充足，这时如果“背景亮度”变量值小于0，那么应该将“背景亮度”变量值“+1”；如果亮度传感器的值大于3000，表明周围光线较暗，这时如果“背景亮度”变量值大于-80，那么应该将“背景亮度”变量的值“-1”。最后根据“背景亮度”变量的数值设置亮度特效。具体脚本代码如下图所示。

![](/files/-LX1paRqVGAJ5OxYEu6g)

#### 试一试

为太阳角色编写脚本，让它也能够根据亮度传感器的数值调整亮度特效。

[单击此处](http://www.haohaodada.com/video/b10704)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paRzeqvsEpc9twsV)

### 第三步：编写乌云角色脚本

[单击此处](http://www.haohaodada.com/video/b10705)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paS16cgrA-BvDwAJ)

“乌云”角色能够根据亮度传感器的值进入与退出舞台，当环境光线正常时，乌云不会出现；当环境光线变暗时，乌云就会进入舞台，挡住太阳公公。

要让“乌云”角色能够准确的进入、退出舞台，还应该知道“乌云”角色相应的坐标值，可以通过鼠标拖动“乌云”摆放到目标位置的方法获取。本课范例中，“乌云”角色在舞台外的坐标是（450，20），遮挡住太阳公公的坐标是（150，20）。

![](/files/-LX1paS3cLUO_qGBVJxX)

#### 练一练

结合前面所学知识，进一步完善程序。比如在乌云遮住太阳公公的时候，环境亮度变暗了，传感器板上的红色LED就会慢慢亮起来；当乌云没有遮住太阳公公，环境变亮了，红色LED慢慢变暗。

#### 拓展思考

利用传感器板上的亮度传感器，还可以设计如下图所示的智能台灯，利用传感器板上的亮度传感器，控制台灯的亮、灭以及亮度变化。

![](/files/-LX1paS5IFXTMZznn689)


# 第8课 在Scratch中使用摇杆――猴子接香蕉

小猴子最喜欢吃香蕉。可是这次，它遇到了麻烦，调皮的香蕉被施了魔法，会随机地出现在不同的地方；让我们使用传感器板上的摇杆，帮助小猴子接香蕉，让它在规定时间内得到更多的香蕉。

![](/files/-LX1padRBehWIGD9PihG)

## 模块与指令

要完成本课的创意构思，需要了解以下的新知识、使用以下的新指令：

### 摇杆

[单击此处](http://www.haohaodada.com/video/b10801)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1padXLaTyWHX3nApo)

摇杆可以前、后、左、右四个方向拨动，接收用户位移的数据，可以非常方便地控制角色在Scratch舞台上移动。

### “读取摇杆X”指令：

![](/files/-LX1padbXk_dQONeSCjD)

读取传感器板上摇杆的X轴数值，取值范围（0，1023）。

### “读取摇杆Y”指令：

![](/files/-LX1padfbu8qBTXDaRwY)

读取传感器板上摇杆的Y轴数值，取值范围（0，1023）。

#### 试一试

登录“好好搭搭”网站，连接传感器板，根据下表的要求操作，观察舞台上显示的摇杆数值，将不同状态下的摇杆数值记录下来。

[单击此处](http://www.haohaodada.com/video/b10802)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1padjgauUyI9rKWiR)

![](/files/-LX1padoRz7hzlcIO6jp)

## 作品制作

作品制作

要完成本课范例，可以先添加舞台、角色，设置舞台和角色的初始状态，然后让香蕉随机地出现在舞台上，同时通过用户拨动摇杆，控制猴子在舞台上移动。如果猴子接到香蕉，会累积成绩，还可以设置游戏的持续时间，在规定的时间内接到的香蕉越多成绩越好。

### 第一步：设置舞台背景与角色

[单击此处](http://www.haohaodada.com/video/b10803)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1padsZD0uvgerOq96)

1.通过“背景库”对话框添加“lake”图片作为舞台背景；再通过“角色库”对话框添加猴子（Monkey2）、香蕉（Bananas）角色；调整这两个角色的大小、将它们拖动到舞台的合适位置。

2.隐藏舞台上除“摇杆X”和“摇杆Y”以外，其它无关的传感器数值。

![](/files/-LX1padwCFQhsdczcMrO)

### 第二步：编写香蕉角色脚本

[单击此处](http://www.haohaodada.com/video/b10804)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pae0sfE-SuIyrZ-8)

香蕉是由程序自动控制、随机出现在舞台上，考虑到猴子都是在树林中活动，因此香蕉角色出现的位置应该只是舞台上的树木区域。当“香蕉”角色碰到“猴子”角色、或者停留一定的时间后自动消失，然后重新在新的位置出现。

![](/files/-LX1pae8xztoFgUqeIer)

#### 想一想

范例程序中香蕉只有一支，如何使用“克隆”指令，让舞台上能够出现多支香蕉？

[单击此处](http://www.haohaodada.com/video/b10805)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paeGqFod43MlqsMw)

### 第三步：编写猴子角色脚本

[单击此处](http://www.haohaodada.com/video/b10806)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paeJcyN3jZSBqcIk)

猴子角色的脚本共有三段。其中第一段脚本通过检测摇杆的值，控制猴子在舞台上移动。

编写这段脚本时要注意：摇杆在不操作时，数值也会在一定的范围内变化，这属于正常的数据漂移现象。为了调试方便，实际编程时，具体的摇杆数值可以取整十、整百的近似数。

第一段脚本如下图所示：

![](/files/-LX1paeM6aWDZb4UjsAO)

这段脚本先设置猴子的初始位置和大小，然后使用重复执行和4个判断指令，通过读取当前摇杆的数值，并且与不操作摇杆时的数值进行比较，从而决定猴子的移动方向：如果摇杆X大于X轴数据漂移的最大值，猴子向右移动；如果摇杆X小于X轴数据漂移的最小值，猴子向左移动；如果摇杆Y大于Y轴数据漂移的最大值，猴子向上移动；如果摇杆Y小于Y轴数据漂移的最小值，猴子向下移动。

#### 试一试

请根据你所使用的传感器板上摇杆的数据漂移区间，选择合适的值，完成用摇杆控制猴子在舞台上移动的程序脚本。

第二段脚本是进行成绩统计。先添加一个变量“成绩”，并设置这个变量的初始值是“0”，用来保存接到香蕉的个数；然后判断猴子是否碰到香蕉，如果碰到，那么“成绩”变量值加1、播放“猴子”角色自带的声音、同时说出当前所接到的香蕉数量。

![](/files/-LX1paeP1WqmVuGn0nT3)

第三段是通过“猴子”角色的造型切换，让游戏更好玩。

![](/files/-LX1paeTEmDW9DmRcrAY)

#### 试一试

以上代码实现了用摇杆控制猴子自由移动，但是在移动过程中猴子的速度是固定不变的，你能否在此基础上，让猴子能够有加速移动的功能？也就是摇杆数值变化越大，猴子的移动速度越快。

[单击此处](http://www.haohaodada.com/video/b10807)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paeXi81rwZDOvAmP)

### 第四步：编写舞台背景脚本

[单击此处](http://www.haohaodada.com/video/b10808)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pae_bTQghnqK0fd8)

舞台背景脚本是对游戏时间进行控制。先添加一个“时间”变量，并设置这个变量的初始值是“30”，也就是倒计时30秒；然后每过一秒，“时间”变量值减少“1”，一直重复执行到“时间”变量值为“0”；最后停止全部角色脚本。

![](/files/-LX1paefy9K5_tvH9LDe)

#### 练一练

在以上介绍的基础上再进一步完善程序，比如增加舞台背景、添加其它角色、编写奖励和惩罚的脚本，从而使游戏更好玩。

#### 拓展思考

摇杆在各类游戏中的应用非常广泛，可以灵活地控制角色在舞台上移动。请你思考一下，利用摇杆还可以设计一个怎样的游戏？


# 第9课 在Scratch中使用扩展模块——智能灯控

好好搭搭Scratch传感器板除了集成在主板上的摇杆、滑杆、按键、声音传感器、亮度传感器、蜂鸣器、LED这七种电子元器件以外，还可以通过扩展口使用其它的传感器模块，这样可以极大的扩展Scratch传感器板的功能。本课我们将使用触摸传感器控制鹦鹉飞翔、使用人体红外传感器制作智能灯。

![](/files/-LX1pa8peacnMsPr0KLL)

## 模块与指令

要制作本课的范例作品，还需要用到以下指令：

### "读取扩展口A"指令、"读取扩展口B"指令、"读取扩展口C"指令：

![](/files/-LX1pa8s84J4zBB-CS8H)

![](/files/-LX1pa8vihhFyDKLGSs6)

![](/files/-LX1pa8xX_DkwNiske1q)

分别读取传感器板A、B、C这三个扩展口的数值，取值范围（0，4095）。

#### 试一试

登录“好好搭搭”网站，连接传感器板，根据下表的要求操作，观察舞台上显示的扩展口数值，将不同状态下的摇杆数值记录下来。

[单击此处](http://www.haohaodada.com/video/b10901)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pa9-PnbHlbfRuxha)

连接到扩展口A的触摸传感器模块：

![](/files/-LX1pa92QqNs0WwCFQm_)

连接到扩展口B的人体红外传感器模块：

![](/files/-LX1pa95m9zTrI3p2LnD)

## 作品制作

要制作本课的范例作品，需要将扩展模块通过连接线连接到传感器板：先找到触摸传感器模块和扩展模块连接线，将连接线方形插头插入模块的插座中、圆形插头插入传感器板标注为“A”的扩展接口中；然后找到人体红外传感器模块，同样用连接线将它插入传感器板标注为“B”的扩展接口中。

### 作品一：用触摸传感器模块控制鹦鹉飞翔

[单击此处](http://www.haohaodada.com/video/b10902)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pa97b5qfim4jID_M)

要用触摸传感器模块控制鹦鹉飞翔，需要先按以下步骤添加舞台背景和角色：

1.找到“背景库”中的“hay field”作为舞台背景，找到“角色库”中的“parrot”作为角色，将这个角色摆放到舞台合适的位置。

2.删除舞台上其它无关的角色和传感器数值，将

![](/files/-LX1pa99MI1fO_Kpqr16)

![](/files/-LX1pa9BJFrDyneSFXfU)

这两个传感器数值摆放到合适的位置。

![](/files/-LX1pa9DBLQjK7NbRLA-)

用触摸传感器模块控制鹦鹉飞翔的程序由三段脚本组成。

其中第一段脚本如下左图所示，通过造型切换扇动翅膀；第二段脚本如下右图所示，控制鹦鹉在舞台上移动。这两段脚本运行以后，鹦鹉能够在舞台上沿直线飞行、碰到边缘就反弹，飞行的时候还能够扇动翅膀，效果可以更加逼真。

![](/files/-LX1pa9FeX7BIo15YwLz)

第三段脚本重复执行条件判断：如果扩展口A（也就是触摸传感器模块连接的扩展口）所读取的数值大于指定值，那么通过增、减y坐标值，让鹦鹉飞行中产生上、下跳跃的动画效果。

![](/files/-LX1pa9HwQtDjDd7Jhfw)

#### 想一想

触摸传感器模块与传感器板上的按键有什么区别？

除了控制鹦鹉的飞行，你还可以用它编写什么程序？

### 作品二：用人体红外传感器模块控制LED亮灭

[单击此处](http://www.haohaodada.com/video/b10903)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pa9JeJWkVpe9dNde)

要用人体红外传感器模块控制LED亮灭，就要重复执行条件判断：如果扩展口B（也就是人体红外传感器模块连接的扩展口）所读取的数值大于指定值，那么就设置LED亮，否则就设置LED灭。具体程序脚本如下图所示。

![](/files/-LX1pa9LP71qGamMYLfk)

#### 试一试

能不能让LED更智能？比如再加上亮度传感器控制：只有亮度比较暗、同时检测到有人出现的时候，才能点亮LED。

[单击此处](http://www.haohaodada.com/video/b10904)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1pa9NBD7XmrWbieo2)

#### 拓展思考

除了触摸传感器和人体红外传感器模块，好好搭搭Scratch传感器板还提供有以下扩展模块：

![](/files/-LX1pa9PFLysH1auafL0)

你还对什么扩展模块感兴趣？尝试使用自己感兴趣的扩展传感器模块编写程序。


# 第10课 综合作品制作——森林小卫士

宁静的森林里来了一群无恶不作的恶魔，它们在森林里横冲直撞、肆意毁坏森林。勇敢的森林小卫士为了保护森林挺身而出，它能不停地发射子弹，还能上下左右灵活躲闪。在100秒之内，小卫士能打败恶魔，取得胜利吗？让我们一起帮助森林小卫士保卫森林吧！

![](/files/-LX1paJlsXCMnBw_LET6)

## 模块与指令

要制作本课的范例作品，需要用到以下这些指令：

![](/files/-LX1paJoFBGl_YI5H7uE)

#### 想一想

除了以上这些传感器指令，在这个游戏中，你还打算还使用哪些？让它们分别实现什么功能？

[单击此处](http://www.haohaodada.com/video/b11001)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paJqFRilKAAy1Fug)

![](/files/-LX1paJseN8ti2qOF2xY)

## 作品制作

要完成这个任务，我们首先需要编写恶魔在森林里飞行、横冲直撞的脚本；然后再编写读取传感器板上的摇杆、按键等传感器数值、控制森林小卫士飞行、发射子弹，补充子弹的脚本；当然，游戏还应该有得分统计、生命值计算等脚本，让游戏变得更加有意思。

### 第一步：设置舞台背景与角色

[单击此处](http://www.haohaodada.com/video/b11002)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paJusVzvjq9cSMyv)

1.找到“背景库”中的“blue sky”作为舞台背景、“角色库”中的“Gobo”作为森林小卫士、“Bananas”作为子弹、“Ghost2”作为恶魔，调整这些角色的大小和位置。

![](/files/-LX1paJwzG2s0XsowvOy)

2.单击“角色列表区”的

![](/files/-LX1paK-JSd5lg_qsfVF)

按钮新建角色。进入造型编辑的“矢量模式”，使用“文字”工具添加“The game victory”和“Game over”这两个文字角色，用于表示游戏胜利和游戏结束。

3.对舞台背景和角色按要求统一重命名，同时隐藏舞台上无关的传感器数值。

4.为舞台添加“声音库”中的“jungle”、子弹添加“laser1”、恶魔添加“chomp”声音。

### 第二步：编写森林小卫士角色脚本

[单击此处](http://www.haohaodada.com/video/b11003)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paK1zoBPLpOSdHpd)

![](/files/-LX1paK3MJTGCTNgBq5C)

### 第三步：编写恶魔角色脚本

[单击此处](http://www.haohaodada.com/video/b11004)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paK7QErddRwvvEKh)

范例游戏中的恶魔通过克隆，从舞台的右侧不断向左侧飞行，向小卫士进攻。它的第一段脚本是先设置隐藏，然后不断的克隆自己。

![](/files/-LX1paKAm6alQON4aFNm)

第二段脚本是当恶魔作为克隆体启动后，先在舞台右侧的随机起始位置显示，然后向舞台左侧的随机终点位置飞行。

![](/files/-LX1paKEEn28uVscfNwp)

第三段脚本是当恶魔作为克隆体启动后，如果在飞行过程中碰到子弹，就删除这个克隆体、播放被击中的声音；如果没有碰到子弹，飞行到舞台边缘时，也删除克隆体。

![](/files/-LX1paKGGQRKKHzXfKbX)

### 第四步：编写子弹的脚本

[单击此处](http://www.haohaodada.com/video/b11005)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paKJkN9O-wMgDANW)

本课范例程序的“子弹”就是“香蕉”，它是森林小卫士进攻的武器。

第一段脚本首先新建“子弹”变量，并设置它的初始值为“5”；然后重复执行：当子弹数量大于0时，如果按下传感器板上的“Up”键，会克隆子弹、播放发射子弹的声音、减少子弹变量值。具体脚本代码如下左图所示。

![](/files/-LX1paKLacq5a8qwWyw1)

第二段脚本是当“子弹”作为克隆体启动后，先移动到“森林小卫士”角色边上显示，然后使用重复执行指令：让“子弹”向右移动、同时旋转产生动态效果，增加游戏趣味性；同时判断子弹克隆体在飞行过程中，如果碰到恶魔或者舞台边缘，都删除克隆体。具体脚本代码如上右图所示。

第三段脚本是检测有没有按下传感器板上的“Down”键，如果按下了，那么重新设置子弹数量为5。具体脚本代码如下图所示。

![](/files/-LX1paKOYHJ-lmLDy31n)

### 第五步：设置生命系统

[单击此处](http://www.haohaodada.com/video/b11006)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paKQt7feiDH-VCR7)

为了增加游戏的可玩性，还可以设置游戏的生命系统。本课范例游戏中，当森林小卫士被恶魔碰到，它的生命值就会减少，当生命值为零的时候，游戏失败。随着生命值的减少，传感器板上的蜂鸣器可以发出不同的警报声音。

首先选中“森林小卫士”角色，新建“生命”变量、设置生命变量的初始值为5。每次碰到“恶魔”角色，“生命”变量值就减少1，当这个值小于1、也就是等于0时，广播“游戏结束”。完整的脚本代码如下左图所示：

![](/files/-LX1paKSt5wAjq11UxT6)

第二段代码同样也在“森林小卫士”脚本中添加，在“重复判断”指令中判断：当生命值小于4并且大于1时，传感器板上蜂鸣器发出相对急促的警报声；当生命值等于1时，蜂鸣器会发出非常急促的警报声。具体脚本代码如上右图所示。

### 第六步：设置计分系统

[单击此处](http://www.haohaodada.com/video/b11007)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paKUC19-rN_r7LoU)

一个完整的游戏，还应该有计分系统。本课范例游戏中，每次“森林小卫士”的子弹击中恶魔，就会累计得分，当得分达到一定的数值时，广播“游戏胜利”消息。

首先选中舞台背景缩略图，新建“得分”变量、设置“得分”变量的初始值为0；然后在重复指令中判断：如果得分变量大于490（也就是达到500分），就广播“游戏胜利”。具体脚本代码如下图所示。

![](/files/-LX1paKWpGo6oY7WY7m9)

还应该选中“子弹”角色，在它作为“克隆体启动”的脚本中添加：如果碰到“恶魔”，那么“得分”变量值增加10。

### 第七步：设置游戏计时系统

[单击此处](http://www.haohaodada.com/video/b11008)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paKY2B4fshR4ZHB-)

为了增加游戏的难度和紧张感，一般在游戏中还需要加入计时系统。在范例游戏中，游戏时间为100秒，随着时间的减少，传感器板上的绿色、黄色、红色LED灯会依次亮起，提示玩家注意时间。

同样也是先选中舞台背景缩略图，新建“时间”变量、设置“时间”变量的初始值为“100”；然后添加倒计时脚本：以秒为单位依次减少时间，当变量为0的时，广播“游戏结束”。具体脚本代码如下左图所示。

![](/files/-LX1paK_wv2F2-9Q3z4m)

还可以在舞台脚本中添加传感器板上的LED灯提示脚本：当时间大于50秒时，绿灯闪烁；当时间等于50并且大于20时，黄灯闪烁；当时间等于20时，红灯闪烁。具体脚本代码如上右图所示。

### 第八步：设置游戏结束

[单击此处](http://www.haohaodada.com/video/b11009)或者扫描下方二维码可以观看相关的视频。

![](/files/-LX1paKb6eqepKm2r7CS)

本课范例游戏一开始，“游戏胜利”和“游戏结束”文字角色隐藏；当接收到“游戏胜利”或者“游戏结束”消息时，显示相应角色。具体这两个角色的脚本代码如下图所示：

![](/files/-LX1paKdwTU03snvKUyu)

#### 拓展思考

拓展思考

开动脑筋，你能让“森林小卫士”这个游戏更好玩吗？比如：可以添加合适的背景音乐；除了常规子弹外，还可以添加超级炸弹；在战斗过程中，森林小卫士得到不同的奖励等等。


# 基于Scratch的Nova智能造物入门


# 第1课  初识智能造物神器——Nova

“创客”，就是努力将自己的创意变成现实的人。可以说，“造物”就是创客最重要的特征之一。相对于中小学生来说，年龄较小、专业知识也比较缺乏，因此如果使用过于复杂的硬件和软件会大大增加造物的难度。 Nova是一款专门为少年儿童创客设计、开发的开源硬件，使用它可以非常方便、快速的造物，制作各种智能装置。 Nova套件主要包括主控板、各种功能模块和连接线（如下图所示）。主控板可以存储、运行程序，采集、处理和发送数据；功能模块包含各种常用的传感器模块、输出设备模块、电机驱动模块和通讯模块；使用连接线将主控板和不同的功能模块连接起来，可以创造出各种各样富有创意的智能装置。

![](/files/-LWo2kHSCXESpywbp-1g)

#### 试一试：

在Nova套件中，找到主控板以及按键、亮度、声音、超声波等传感器模块，LED、蜂鸣器等输出设备模块，电机、舵机等电机驱动模块，红外遥控器等通讯模块。

## 作品制作

使用Nova造物非常方便。下面就以制作一个用按键控制LED亮灭的作品为例，介绍造物的一般过程：

### 第一步：找到造物所需器材并连接起来

要制作一个按键控制LED亮灭的Nova智能装置，需要使用Nova主控板、按键模块、红色LED模块、电源适配器以及两根白色连接线。

先找到以上这些造物所需的器材，然后按以下步骤操作，将这些器材连接起来：

1. 将1根白色连接线插入LED模块接口中、另一根白色连接线插入按键模块接口中。Nova的插口采用了防呆设计，如果插不进去就说明插反了，调换方向就可以顺利插入。
2. 找到主控板上白色的“S0”和“S1”这两个端口，将连接LED模块的连接线另一头插入“S0”端口、连接按键模块的连接线另一头插入“S1”端口。
3. 找到主控板上的电源开关，确认开关处于“OFF”关闭状态。
4. 将电源适配器一头插入220V电源插座上，另一头插入主控板的电源插口（如果不方便使用220V电源，也可以使用配套的USB线，直接连接计算机或者充电宝，由计算机或者充电宝提供电源）。所有器材连接完成后，如下图所示：

![](/files/-LWo2kHVTaW9T3ftTcf_)

### 第二步：打开电源、运行程序

“按键控制LED亮灭”的程序在Nova套件产品出厂的时候都已经内置了，可以直接使用，不需要再编写、下载程序（如果Nova已经使用过、没有内置程序，可以直接阅读后面的内容，自己到网站上下载）。

将主控板的电源开关拨到“ON”位置、接通电源（如果使用USB线连接电源，不需要打开开关，自动接通电源）。这时主控板的绿色电源指示灯就会点亮。

如果“按键控制LED亮灭”程序已经内置在主控板上，接通电源会自动运行，按下按键，红色LED就会被点亮；松开按键，红色LED熄灭。

#### 试一试:

将电源关闭，尝试将红色LED模块换成另外颜色的LED模块，再打开电源，看看能不能也用按键将它们点亮？

### 第三步：在线修改Nova智能硬件作品程序

“好好搭搭”网站上有很多使用Nova套件制作的智能装置作品程序，要想查看、使用这些作品程序，可以按以下步骤操作：

1. 打开浏览器，进入“好好搭搭”网站（[haohaodada.com](http://haohaodada.com)），然后单击网站右上角的“登录”按钮登录网站（如果没有账号，可以先单击“加入”按钮免费注册）。
2. 登录完成后，单击网站浏览器地址栏，在地址栏中输入“[haohaodada.com/c1](http://haohaodada.com/c1)”，进入本书的范例程序网页。在该网页中找到名为“1-用按键控制LED亮灭”的作品缩略图，单击缩略图就会打开作品的程序项目页（如下图所示）。

![](/files/-LWo2kHYd0-CBOnXh84V)

与普通Scratch程序作品一样，Nova智能装置作品的程序项目页也是由作品名称、作者信息、作品预览以及作品说明等内容组成。一般特别需要关注“作品说明”部分，了解这个作品所能实现的功能、需要的器材以及它们的连接方法。 单击程序项目页右上角的“转到设计页”按钮，会进入这个作品的“设计页”（如下图1-4所示）。

![](/files/-LWo2kHa46E0R6A-C45o)

与普通Scratch的程序设计页比较，Nova的程序设计页有以下几点不同：

1. 整个程序设计页由三个区域组成，最右边增加了“代码”区域，可以查看这个程序的C语言代码。
2. 最左边舞台区缩小；中间只有一个“脚本”选项卡，可用的只有“数据”、“控制”、“数字和逻辑运算”以及“更多模块”这四种类别的指令；
3. 在“更多模块”指令类别中，添加了许多控制Nova各种功能模块的指令。

与普通Scratch程序脚本比较，Nova程序脚本有以下几点不同：

1. 脚本的第一个指令必须是“好好搭搭硬件程序”，其它指令都应该搭建在这个指令下方。
2. 每个Nova程序只能有一个主程序。
3. Nova程序不能通过单击“绿旗” 运行，必须先单击窗口右上角的“编译&下载”按钮，在线编译后下载到主控板上才能运行。

### 试一试:

范例作品中，“S0”端口连接的是红色LED模块、“S1”端口连接的是按键模块。如果将这两个模块所连接的端口调换一下：也就是红色LED模块连接到“S1”端口、按键模块连接到“S0”端口，程序应该如何修改？

### 第四步：连接主控板、运行插件程序

与Scratch传感器板一样，Nova程序编写完成后，必须把主控板和计算机连接起来，再运行一个插件程序，才能把程序代码下载到主控板上。具体可以按以下步骤操作：

1. 用USB线把主控板和计算机连接起来。将USB小口端的插头插入主控板的接口，大口端的插头插入计算机的USB接口。
2. 确认已经在计算机上安装了“好好搭搭插件”程序。如果没有安装，可以按照“阅读材料一”介绍的步骤安装。
3. 找到并且双击运行计算机桌面上的“硬件下载插件”程序图标，运行“好好搭搭硬件下载插件”程序。如果在计算机桌面上找不到这个图标，可以单击桌面左下角的“开始”按钮，在打开的“程序”中找到名为“haohaodada”的程序组，该程序组中就包含有“硬件下载插件”图标。
4. “好好搭搭硬件下载”插件程序运行以后，会显示如下图所示的对话框。如果对话框左下角显示“打开端口成功”，说明主控板与Scratch连接正常。

![](/files/-LWo2kHcnam86sNhmNdP)

### 第五步：在线编译、下载程序到主控板

与Scratch传感器板不同的是，用Scratch编写的Nova程序，是不能在线运行的。必须先编译成主控板能够识别的机器码，然后下载到主控板上才能运行。可以按以下步骤操作：

1. 单击窗口最右边“代码”区域中的“编译&下载”按钮，浏览器将编写完成的程序代码上传到服务器进行编译，编译成Nova能够运行的机器码。
2. 服务器编译一般需要3-5秒，编译完成后会弹出一个名为“提示”的对话框（如下图所示）。单击对话框中的“下载”按钮，可以将程序下载到Nova主控板上。
3. 下载的程序存贮在主控板的存贮器上，关闭电源也不会丢失，除非被新下载的程序替代。下载一旦完成，主控板马上会自动运行这个程序。

![](/files/-LWo2kHenYT_59iZacFD)

当主控板与计算机处于USB连接状态时，不需要外接电源，直接通过USB线使用计算机主板供电；当主控板脱离计算机单独运行时才需要外接电源。使用外接电源时，电源开关可以控制电源的通断；电源接通，主控板存贮的程序会自动运行。

## 拓展与思考

试着将LED插到其它的端口，然后修改程序代码，看看能不能通过按键将它点亮。


# 第2课  在Nova中使用单色LED——模拟红绿灯

自从20世纪60年代研制出能够发出红色光的LED以来，经过几十年的发展，目前的LED已能发出红、橙、黄、绿、蓝等多种有色光。本课我们将使用3个单色LED模块，制作一个模拟交通红绿灯的创客作品。

## 模块与指令

**要制作本课的范例作品，需要认识以下这些新的硬件：**

### 单色LED模块

Nova套件中包含3个单色LED模块，可以分别发出红、黄、绿三种颜色的光线（如下图所示）

![](/files/-LWo2kW7t6xNMLHPlRtb)

LED的中文名称叫做“发光二极管”，它是一种可以把电能转化成光能的电子元件。经常在电路以及仪器中作为指示灯使用，也可以用于显示文字或者数字，随着技术的发展，目前也广泛用于日常生活照明。

**要制作本课的范例作品，还需要使用以下新的指令：**

### “设置数字口”指令：

![](/files/-LWo2kW9GWwdNWS6kzal)

使用这个指令可以设置指定数字口的输出值。指令默认端口是数字口“S0”、输出值为“1”。通过单击下拉列表，可以选择S0-S3这4个数字端口、A0-A3这4个模拟端口；输出值可以设置为“1”或者“0”，也就是高电平或者低电平。

## 作品制作

要制作本课的范例作品，可以按以下步骤先连接硬件、运行插件程序，然后进入“好好搭搭”网站编写、调试、编译、下载程序。

### 第一步：搭建硬件、运行插件

首先将3根白色连接线分别插入3个LED模块的接口中；然后将红色LED模块插入S0端口、黄色LED模块插入S1端口、绿色LED模块插入S2端口（如下图所示）；接着用USB线把主控板和计算机连接起来，打开“好好搭搭硬件下载”插件，确认插件程序显示“打开端口成功”。

![](/files/-LWo2kWCWhKPAVdRm4n8)

### 第二步：进入网站、了解指令

打开浏览器，登录“好好搭搭”网站；单击网站上方的“创作”按钮，在“创作模版”网页中选择“haohaodada\_NOVA”模版，进入“模版项目页”；在“模版项目页”中单击网页右上角的“转到设计页”按钮，进入“NOVA编程设计页”。

单击“脚本”选项卡的“更多模块”类别，找到“设置数字口输出”指令，将这个指令拖动三个到脚本区，设置端口分别为“S0”、“S1”、“S2”，输出值分别为“1”、“0”、“1”。具体程序代码如下图所示：

![](/files/-LWo2kWKZHyiUyc0KT0c)

#### 试一试：

将上图2-3所示程序编译后下载到主控板，运行后观察3个LED亮灭的情况，将结果记录在下面的表格上。

![](/files/-LWo2kWNAg2xK48EZjbL)

### 第三步：控制红色LED亮灭

在本课的范例作品程序中，需要先对3个LED模块的状态初始化，设置相应端口输出值为“1”，让LED处于“高电平”，也就是“灭”的状态。 然后设置红色LED模块所在的端口“S0”的输出值为“0”，再设置等待时间为“10”秒，也就是红色LED亮10秒。最后再设置“S0”这个端口的输出值为“1”，让它处于“灭”的状态。具体程序代码如下图所示：

![](/files/-LWo2kWQLXRREie9ZpIi)

#### 试一试：

红色LED熄灭以后，你还能再继续编写代码，让绿色LED也亮10秒以后熄灭吗？

### 第四步：控制黄色LED闪烁

所谓的“闪烁”，其实就是设置LED快速的亮灭。

要让黄色LED闪烁（比如以0.2秒为间隔闪烁），同样先初始化3个LED模块状态；然后使用“控制”类别中的“重复执行”指令；每次重复都是先设置黄色LED输出值为“0”、等待时间为“0.2”秒，再设置黄色LED输出值为“1”、等待时间也是“0.2”秒，这样黄色LED就会以0.2秒为间隔一直闪烁。具体程序代码如下图所示：

![](/files/-LWo2kWTZPvbMGAiJe6w)

#### 试一试：

编写一个让2个LED交替闪烁的程序（比如红灯亮的时候黄灯灭、红灯灭的时候黄灯亮）。

## 拓展与思考

请你观察学校或者家附近十字路口红绿灯的变换情况，然后编写一个程序完整的模拟这个路口红绿灯的亮灭。

fs


# 第3课  在Nova中使用数码管与按键——送给妈妈的计时器

数码管也叫做LED数码管，主要用来显示数字。由于它价格便宜、使用简单，在日常生活中应用非常普遍。本课我们将使用数码管和按键，为爱做烘焙的妈妈制作一个定时器，帮助她更加精确的掌握时间。

## 模块与指令

**要制作本课的范例作品，需要认识以下这些新的硬件：**

### 数码管模块

Nova入门套件中包含1个数码管模块，它最多可以显示由四个数字组成的数，所以叫做“四位数码管”（如下图所示）。数码管的每个数都是由八段LED组成，其中七段LED用于显示数字，第八段在数字的右下角，用于显示小数点。

![](/files/-LWo2kXgI_2ws25DcoMo)

### 数码管模块

Nova入门套件中包含2个单按键模块，可以作为开关使用（如下图所示）。按键有“按下”和“弹起”两种状态。默认状态是“弹起”；当用手指按住按键帽往下按、并且保持不动的时候，就处于“按下”状态；松开手指，按键又会重回处于“弹起”状态。

![](/files/-LWo2kXiGkpLtR14PsFa)

**要制作本课的范例作品，还需要使用以下新的指令：**

### “读数字口”指令：

![](/files/-LWo2kXmvbMkrdr10DZi)

使用这个指令可以读取指定数字口的输出值。指令默认是数字口“S0”。通过单击下拉列表，可以选择S0—S3这4个数字端口、A0—A3这4个模拟端口（这些模拟端口具备数字端口功能，可以当作数字端口使用）。

### “数码管显示”指令：

![](/files/-LWo2kXo_VACN2S7d5Tg)

使用这个指令可以设置指定端口数码管显示指定的数值。指令默认是“C0”端口、“整数”类型、显示内容是“123”。通过单击下拉列表，可以选择C0-C1、M0-M3这6个端口；“Num”（整数）、“Float”（小数）这些数值类型；需要显示的数值可以在最后一个输入框中输入。

### “数码管清除”指令：

![](/files/-LWo2kXqyliWD75YnTDB)

使用这个指令可以清除指定端口数码管上显示的内容。指令默认是“C0”端口。通过单击下拉列表，可以选择C0-C1、M0-M3这6个端口。

## 作品制作

要制作本课的范例作品，可以按以下步骤先连接硬件、运行插件程序，然后进入“好好搭搭”网站编写、调试、编译、下载程序。

### 第一步：搭建硬件、运行插件

首先将1根白色连接线一头插入按键模块的接口，另一头插入主控板的“S0”端口；再用1根红色连接线一头插入数码管模块的接口，另一头插入主控板的“C0”端口；（如下图所示）；接着用USB线把主控板和计算机连接起来，打开“好好搭搭硬件下载”插件，确认插件程序显示“打开端口成功”。

![](/files/-LWo2kXsdWQBWOCg8lsB)

### 第二步：在数码管上显示指定数值

首先打开浏览器进入“好好搭搭”网站；然后单击进入网站的“创作”栏目，选择“haohaodada\_NOVA模版”，进入“模版项目页”；在“模版项目页”中单击网页右上角的“转到设计页”按钮，进入“NOVA编程设计页”。

在“NOVA编程设计页”中单击“脚本”选项卡中的“更多”指令类别，找到“设置数码管显示”指令，将它与“好好搭搭硬件程序”指令组合；将这段代码编译后下载到主控板上，就会在数码管上显示默认的“123”。

#### 试一试：

修改“设置数码管显示”指令参数，使得数码管分别显示：

* 一个你所喜欢的、四位以内的数；
* 一个你所喜欢的小数；
* 如果编译显示的是四位以上的数，数码管会怎么显示？
* 如果先编译显示一个四位数，再编译显示一个两位数，数码管上实际显示的是什么？如何让数码管显示正确的两位数？

### 第三步：在数码管上显示按键的值

要在数码管上显示按键的值，可以在“重复执行”指令中，使用“数码管清除”、“数码管显示”、“等待”指令；再将“读数字口”指令作为“数码管显示”指令的显示数值参数，设置等待时间为“0.2”秒。具体程序代码如下图所示：

![](/files/-LWo2kXvelOLI560C-3W)

#### 试一试：

将上图所示代码编译后下载到主控板上，然后“按下”或者“弹起”按键，观察数码管上显示的数值，并记录下来。

![](/files/-LWo2kXxJEUH0oaFdQ-5)

### 第四步：制作计时器

计时器的数值会自动变化，从一个初始值开始依次递增或者依次递减。要在数码管上显示这个不断变化的数，需要新建变量：

可以先单击“脚本”选项卡中的“数据”指令类别，再单击“新建变量”按钮，在打开的“新建变量”对话框中输入“变量名”为“time”，最后单击“确定”按钮新建一个名为“time”的变量。

```
注意：Nova程序中的变量名不能是中文，只能使用英文字母和数字作为变量名、并且首位必须是英文字母。
```

计时器程序一般先设置变量的值，也就是计时的初始值；然后重复执行，每次都是先清除数码管原有数值，再显示指定数值，等待指定时间后再增加变量的值。具体程序代码如下图所示：

![](/files/-LWo2kY2Wgg6-k8tV7Ap)

#### 试一试：

如果计时器是从“10”开始倒计时，计时到“0”结束。程序代码应该是怎样的？

### 第五步： 用按键控制计时器

要用按钮控制计时器，也就是如果“读数字口”指令的值等于“0”（按键处于“按下”状态），计时器开始计时。计时结束后继续处于条件判断状态，等待再次按下按键重新计时。具体程序代码如下图所示：

![](/files/-LWo2kY4iHzk0RrDO-uW)

#### 练一练：

能不能让这个计时器更好玩？比如再接上两个LED，当计时开始前绿色LED亮，数码管显示“0”；按下按键后开始计时，计时结束后闪烁红色LED。

## 拓展与思考

能不能再接上一个按键，这个新增加的按键可以调整计时器需要计时的值。比如按一下这个按键在数码管上显示“10”，再按分别显示“20”、“30”……；需要计时的数值确定后，按另一个按钮开始倒计时，倒计时结束后闪烁最后显示的数字“0”。


# 第4课  在Nova中使用蜂鸣器——音乐播放器

在创客作品中，经常会使用蜂鸣器，用于提醒或者警告使用者；除此之外，有时也会使用它演奏一些简单的乐曲。本课我们将使用蜂鸣器和按键模块制作一个音乐播放器，播放我们喜欢的乐曲。

## 模块与指令

**要制作本课的范例作品，需要认识以下这些新的硬件：**

### 蜂鸣器模块

蜂鸣器是一种能够发出指定频率声音的装置（如下图所示），由于结构简单、使用方便，因此在电子产品中应用非常广泛。

![](/files/-LWo2jOmx_d8_58DZ39l)

声音是由物体振动产生的声波。它有三个主观属性：音量、音调和音色。音量指人耳感受到的声音强弱，也叫做“响度”；音调指人耳能分辨一个声音调子的高低程度；音色指声音振动频率的特性，不同的物体由于材料、结构不同，发声时的振动频率也不相同，就会产生不同音色的声音。

对于蜂鸣器来说：它的驱动电流决定了所发声音的音量；它的工作频率决定了所发声音的音调；它的内部结构与发声原理决定了所发声音的音色。

**要制作本课的范例作品，还需要使用以下新的指令：**

### “设置PWM口输出”指令：

![](/files/-LWo2jOoUeyVWhQchE5h)

使用这个指令可以设置指定数字端口的PWM输出值。指令默认是“S0”、输出值为“0”。通过单击下拉列表，可以选择S0—S3这4个数字端口；具体输出值既可以单击下拉列表选择预置的数值，也可以直接输入。 对于蜂鸣器来说，使用这个指令可以控制所发出声音的音量。

### “设置PWM口频率”指令：

![](/files/-LWo2jOqjCZcFQTwQhiH)

使用这个指令可以设置指定数字端口的PWM频率。指令默认是“S0”、频率为“523”。通过单击下拉列表，可以选择S0—S3这4个数字端口；具体频率值可以在第二个参数的文本框中输入。

对于蜂鸣器来说，使用这个指令可以控制所发出声音的音调。

## 作品制作

要制作本课的范例作品，可以按以下步骤先连接硬件、运行插件程序，然后进入“好好搭搭”网站编写、调试、编译、下载程序。

### 第一步：搭建硬件、运行插件

首先将模块与主控板连接起来：蜂鸣器模块连接“S0”端口、按键模块连接“S1”端口（如下图所示）；接着把主控板和计算机连接起来，最后打开“好好搭搭硬件下载”插件，确认插件程序显示“打开端口成功”。

![](/files/-LWo2jOspqNjUgAcY6aa)

### 第二步：让蜂鸣器演奏一个音符

首先打开浏览器进入“好好搭搭”网站；登录后进入网站的“创作”栏目，选择“haohaodada\_NOVA模版”，进入“模版项目页”；在“模版项目页”中单击网页右上角的“转到设计页”按钮，进入“NOVA编程设计页”。

要让蜂鸣器演奏一个音符，可以在“重复执行”指令中，先使用“设置PWM频率”指令，不修改频率参数，让蜂鸣器发出频率为“523”的声音，也就是C调中的“do”；再使用“设置PWM输出”指令，设置输出参数为“100”，也就是蜂鸣器发出声音的音量是“100”；然后使用“等待”指令，让蜂鸣器持续发声“1秒”，也就是这个音符演奏的节拍；接着再使用“设置PWM输出”指令，设置输出参数为“0”，关闭蜂鸣器；最后再使用“等待”指令，等待“2秒”后重新演奏“do”这个音符。具体程序代码如下图所示：

![](/files/-LWo2jOuFBGb0ERMMWvE)

#### 试一试：

声音的频率与C调的音符有如下表所示的对应关系，请参考这张对照表，编写一段能够演奏一个你最喜欢音符的程序脚本。

![](/files/-LWo2jOw4QKEC4szWEM7)

### 第三步：让蜂鸣器演奏多个音符

要让蜂鸣器演奏多个音符，每个音符都应该使用“设置PWM频率”、“设置PWM输出”以及“等待”指令设置音调、音量、节拍，然后再使用“设置PWM输出”指令停止声音。如下图所示就是演奏“do”、“re”这两个音符的程序。

![](/files/-LWo2jOyT32rbVJlzMf5)

### 第四步：调用功能块演奏音符

像上图这样演奏音符太过于麻烦。可以定义一个“演奏音符”功能块，将重复使用的指令都放在这个功能块里，使程序代码更为简洁。

下面以新建一个名为“Note”的音符演奏功能块为例，介绍具体操作步骤：

1. 单击“更多模块”指令类别中的“新建功能块”按钮，在打开的“New Block”对话框中，输入新建的功能块名称“Note”。如下图所示：

![](/files/-LWo2jP-ps2Ijy423GVl)

```
注意：与变量一样，在Nova中功能块名称也不能是中文，只能使用英文字母和数字作为变量名、并且首位必须是英文字母。
```

1. 由于演奏音符需要指定音符的“音调”、“节拍”，因此需要为新建的功能块添加两个数字参数，并且应该为每个参数添加标签，说明参数的用途。

   要添加参数标签，可以先单击“新建功能块”对话框中的“选项”，展开进行具体的设置；再单击“添加文本标签”选项右边的图标，会在功能块名称右边自动出现一个文本标签，用键盘修改标签名称为“音调”。

   添加完标签后，继续单击“添加一个数字参数”选项右边的图标，在刚才添加的标签右边添加一个数字参数文本框，修改这个数字参数文本框的名称为“tone”，作为功能块的第一个数字参数。

   第二个参数的添加方法与前一个类似，也是先添加文本标签“节拍”，再添加数字参数“beat”。这两个参数添加完成后，如下图所示：

![](/files/-LWo2jP1SdVKpHagf8aw)

1. 功能块设置完成后，单击“确定”按钮关闭对话框 。会在“更多模块”指令类别的“新建功能块”按钮下方增加这个新添加的功能块；在脚本区也会增加一个名为“定义Note”的功能块脚本指令。
2. 在“定义Note”指令下方添加“设置PWM频率”、“设置PWM输出”、“等待”以及第二个“设置PWM输出”指令；将“定义Note”指令中的“number1”参数拖动到“设置PWM频率”指令参数位置，“number2”参数拖动到“等待”指令参数位置，设置第一个“设置PWM输出”指令参数为“100”，确认第二个“设置PWM输出”指令参数为“0”，如下图所示：

![](/files/-LWo2jP3NHdqSzPHItHH)

#### 试一试：

根据下面这首“两只老虎”的乐谱，编写这首儿歌的演奏程序。

![](/files/-LWo2jP5SVNXwMmc65Jt)

### 第五步： 用按键控制乐曲演奏

按照以上步骤编写的程序，程序编译后下载到主控板上会马上自动播放。为了更便于控制，可以添加用按键控制的功能：只有按下按键，乐曲才会播放。

在“重复执行”指令里面添加一个“如果……那么”指令，设置条件为：“读数字口”指令的值等于“0”，也就是按键处于“按下”状态时条件成立。条件一旦成立，就演奏刚才编写的这些音符。演奏完成后继续处于条件判断状态，等待再次按下按键重新演奏。具体的程序代码如下图4-9所示：

![](/files/-LWo2jP70kFOkzkyW0LT)

#### 练一练：

除了“两只老虎”这首乐曲，你还能编写其它喜欢的乐曲演奏吗？

## 拓展与思考

你能够使用7个按键和1个蜂鸣器模块，制作一个简单的电子琴吗？


# 第5课  在Nova中使用超声波传感器——魔法音乐盒

音乐盒又称八音盒，是一种通过机械力自动演奏音乐的玩具。它悠扬的乐声，经常勾起人们对美好往事的回忆。本课范例作品所制作的“魔法音乐盒”，能够让人隔空挥动手掌演奏音符，充满了魔幻色彩。

## 模块与指令

**要制作本课的范例作品，需要认识以下这些新的硬件：**

### 超声波传感器模块

超声波传感器模块是一种能够把超声波信号转换为电信号的传感器。Nova套件中的超声波传感器是一种专门利用超声波测量距离的传感器（如下图所示）。它可以发射和接收超声波，发射的超声波碰到障碍物后会反射，这些反射波被超声波传感器接收到以后，通过计算发射和接受的时间间隔来确定与障碍物之间的距离。

![](/files/-LWo2jq-ScWY7mRaf91q)

```
注：声音是由于物体振动产生的。人耳能听到的声音频率一般在20HZ—20KHZ范围内，超过20KHZ称为超声波，低于20HZ的称为次声波。
```

**要制作本课的范例作品，还需要使用以下新的指令：**

### “读2.0超声波传感器”指令：

![](/files/-LWo2jq2zvtFxQfK_5wg)

使用这个指令可以读取指定端口的超声波传感器测量出来的距离值，单位是“厘米”。指令默认是“S0”端口；通过单击下拉列表，可以选择S0—S3这4个数字端口以及A0—A3这4个模拟端口。

### “读超声波传感器”指令：

![](/files/-LWo2jq47wMICIp3JzL9)

这个指令也是读取指定端口的超声波传感器测量出来的距离值，但它读取的是好好搭搭2017年以前生产的超声波传感器数值。

## 作品制作

要制作本课的范例作品，可以按以下步骤先连接硬件、运行插件程序，然后进入“好好搭搭”网站编写、调试、编译、下载程序。

### 第一步：搭建硬件、运行插件

首先将模块与主控板连接起来：超声波传感器模块连接“S0”端口、蜂鸣器连接“S1”端口、数码管模块连接“C0”端口（如下图所示）；接着把主控板和计算机连接起来，最后打开“好好搭搭硬件下载”插件，确认插件程序显示“打开端口成功”。

![](/files/-LWo2jq7oanAUTcGKfmH)

### 第二步：在数码管上显示超声波传感器的值

登录“好好搭搭”网站，选择“创作”栏目中的“haohaodada\_NOVA模版”，进入“NOVA编程设计页”进行编程。 要在数码管上显示超声波传感器的值，可以使用“重复执行”指令，重复执行“数码管消除”、“数码管显示”及“等待”指令，再将“读2.0超声波传感器”指令作为“数码管显示”指令的显示数值参数。由于超声波传感器连接的是“S0”端口，因此会在数码管上每隔“0.5”秒刷新显示超声波传感器与被测量的障碍物之间的距离。具体程序代码如下图所示：

![](/files/-LWo2jq9U_6YtEdqjFkd)

#### 试一试：

将上图所示代码编译后下载到主控板上，然后按下表要求进行测试，将数码管上显示的数值记录下来，你发现了什么？

![](/files/-LWo2jqBjd-xsSP6LtfD)

### 第三步：用超声波传感器控制蜂鸣器发声

要让超声波传感器控制蜂鸣器发声，需要对超声波传感器的值进行判断：如果超声波传感器所连接的“S0”端口读取的值小于“10”、也就是在10厘米以内有障碍物，那么蜂鸣器发出一秒“do”的声音。具体的程序代码如下图所示：

![](/files/-LWo2jqDel62fyoj-ov8)

#### 想一想：

用这种方法控制蜂鸣器发声，与第4课用按键控制有什么不同？你喜欢哪种方式？

### 第四步：用超声波传感器控制的魔法音乐盒

本课所制作的“魔法音乐盒”可以用手掌隔空挥动来控制音符演奏。其实就是检测超声波传感器检测与手掌之间的距离，不同的距离值演奏不同的音符。 由于魔法音乐盒会用蜂鸣器演奏不同的音符，因此可以参照第4课所学知识，首先新建一个名为“Note”的功能块，用于演奏指定频率、时长的音符。具体这个功能块程序代码如下图所示：

![](/files/-LWo2jqFNTV6i4nSwl3b)

在如下图所示的“魔法音乐盒”范例主程序代码中，使用了七个“如果…那么”指令，根据超声波传感器所测量距离数值的不同，调用“Note”功能块，演奏不同的音符。

![](/files/-LWo2jqHLqJpZ6osjjys)

#### 练一练：

进一步完善程序，使得“魔法音乐盒”音符演奏控制更精准、更好玩。

## 拓展与思考

超声波传感器除了控制蜂鸣器发声、制作魔法音乐盒，你还能用它制作哪些更好玩的智能装置作品？


# 第6课  在Nova中使用RGB LED与电位器——多彩台灯

一般台灯发出的光线大多数是白色的，比较单调。本课我们将使用RGB LED和电位器模块，制作一台可以随心所欲改变颜色的多彩台灯。

## 模块与指令

**要制作本课的范例作品，需要认识以下这些新的硬件：**

### RGB LED模块

RGB LED是由红绿蓝三种颜色的发光二极管组成的、可以发出彩色光线的元件（如下图所示）。RGB LED模块由4个RGB LED灯珠组成，每个灯珠边上都有编号，可以使用指令，根据编号控制这些灯珠。

![](/files/-LWo2kd0T47RbGrnn6GM)

```
RGB是一种颜色模式，通过设置不同的R（红）G（绿）B（蓝）颜色值，可以显示出人类视力所能感知的几乎所有颜色。
```

### 电位器模块

Nova入门套件中的电位器是一种旋转变阻器（如下图所示），通过调节转轴调整电阻的大小，从而改变输出数值的大小。电位器模块输出数值的取值范围是（0，4095）。

![](/files/-LWo2kd3jxy-ZkSnC-UL)

**要制作本课的范例作品，还需要使用以下新的指令：**

### “读模拟口”指令：

![](/files/-LWo2kd6k_4kPVcIChn3)

使用这个指令可以读取指定模拟口的输出值。指令默认是数字口“A0”。通过单击下拉列表，可以选择A0—A3这4个模拟端口、S0—S3这4个数字端口。

### “RGB复位”指令：

![](/files/-LWo2kd8PzmQ-38rrSy5)

使用这个指令可以设置RGB LED模块复位，要点亮或者修改RGB LED颜色必须先使用这条指令。指令默认是“S0”端口；通过单击下拉列表，可以选择S0—S3这4个数字口、A0—A3这4个模拟端口。

### “发送RGB数据”指令：

![](/files/-LWo2kdAGxuNo6wP36WF)

使用这个指令可以设置RGB LED发出光线的颜色。指令默认是“S0”端口的RGB LED红色值为“10”，绿色、蓝色值均为“0”，也就是发红色光。通过单击下拉列表，可以选择S0—S3这4个数字端口、A0—A3这4个模拟端口；“红”、“绿”、“蓝”这三个参数既可以单击下拉列表选择预置的数值，也可以直接输入。

## 作品制作

要制作本课的范例作品，可以按以下步骤先连接硬件、运行插件程序，然后进入“好好搭搭”网站编写、调试、编译、下载程序。

### 第一步：搭建硬件、运行插件

首先将模块与主控板连接起来：电位器模块连接“A0”端口、RGB LED模块连接“S0”端口、数码管模块连接“C0”端口（如下图所示）；接着把主控板和计算机连接起来，最后打开“好好搭搭硬件下载”插件，确认插件程序显示“打开端口成功”。

![](/files/-LWo2kdEo6xcJ0pV6eVx)

### 第二步：在数码管上显示电位器数值

登录“好好搭搭”网站，选择“创作”栏目中的“haohaodada\_NOVA模版”，进入“NOVA编程设计页”进行编程。

要在数码管上显示电位器的值，可以使用“重复执行”指令，重复执行“数码管消除”、“数码管显示”及“等待”指令，再将“读模拟口”指令作为“数码管显示”指令的显示数值参数。由于电位器连接的是“A0”端口，因此会在数码管上每隔“0.1”秒刷新显示电位器当前的数值。具体程序代码如下图所示：

![](/files/-LWo2kdGXI4h1LJpB3EN)

#### 试一试：

将上图所示代码编译后下载到主控板上，然后按下表要求手动调节电位器上转轴的位置，将数码管上显示的数值记录下来。

![](/files/-LWo2kdIApe_HTmObr2y)

### 第三步：点亮RGB LED

要点亮RGB LED，应该先使用“RGB复位”指令，然后再使用“发送RGB数据”指令，最后根据实际连接情况设置端口参数、设置“红”、“绿”、“蓝”参数值。具体程序代码如下图所示：

![](/files/-LWo2kdKz24L0ldORpKh)

```
注意：由于Nova的RGB LED模块外部没有灯罩，因此“发送RGB数据”指令的三个颜色参数值可以设置的小一些，在使用时也尽量不要直视灯珠。
```

#### 试一试：

按下表数值分别设置上图程序中“发送RGB数据”指令的“红”、“绿”、“蓝”参数值，编译后下载到主控板，看看RGB LED发出的是什么颜色的光线。

![](/files/-LWo2kdMcE2lLb7HIJnt)

### 第四步：使用“功能块”点亮RGB LED

由于RGB LED模块有4个灯珠，要同时点亮这4个灯珠，需要使用4个“发送RGB数据”指令。发送的第1条指令用于设置第1个灯珠颜色、第2条设置第2个、……。

为了使程序更简洁，可以使用“更多模块”指令类别中的“新建功能块”，新建一个名为“RGB”的功能块。具体功能块代码如下图所示：

![](/files/-LWo2kdODWo4k4IcJGdF)

新建了“RGB”功能块后，就可以在主程序中调用。使用“重复执行”指令，重复执行“RGB功能块”和“等待”指令，设置“RGB”功能块指令的三个颜色参数值为随机数。每隔1秒种，RGB LED模块随机发出一种颜色的光线。具体程序代码如下图所示：

![](/files/-LWo2kdQz4acwJCnbjh9)

#### 想一想：

怎样让RGB LED模块的4个灯珠发出不同颜色的光线？

### 第五步： 用电位器控制RGB LED模块

要用电位器控制RGB LED模块，可以在上一步骤编写程序的基础上，加上电位器控制的脚本。

电位器数值的取值范围是（0，4095），“发送RGB数据”指令的三个颜色参数值是（0，255），前一个大约是后一个的16倍，因此应该先将读取的电位器数值除以16，然后使用“向下取整”指令得到一个255以内的整数。

为了使程序更简洁，还可以新建一个名为“color”的变量，设置这个变量的值是缩小、取整以后的电位器数值。最后使用如图6-6所示新建的“RGB”功能块指令，设置这个指令三个颜色参数值都是变量“color”。具体程序代码如下图所示：

![](/files/-LWo2kdSOklW2-bg2cmq)

#### 练一练：

除了电位器模块，能不能使用按键模块控制RGB LED模块？

## 拓展与思考

使用3个电位器模块制作多彩台灯，使得台灯光线的颜色控制更加方便、精确。


# 第7课  在Nova中使用声音与亮度传感器——智能声控灯

普通灯一般使用机械开关控制亮灭，而智能灯使用各种传感器控制亮灭。本课将学习制作一种智能声控灯，它能够在检测到周围光线比较暗、同时声音强度达到指定值时自动点亮。不仅能够给使用者带来方便，还可以节约用电。

## 模块与指令

**要制作本课的范例作品，需要认识以下这些新的硬件：**

### 亮度传感器模块

亮度传感器其实是一个光敏管，能够感知周围光线的强度，通过转化和采集后输出具体数值（如下图所示）。Nova套件中亮度传感器输出的光线强度取值范围是（0，4095）。

![](/files/-LWo2jafHgdBOqJShG_q)

### 声音传感器模块

声音传感器里面有一个对声音敏感的电容式驻极体话筒，声波会使话筒内的驻极体薄膜振动，产生电压变化，通过转化和采集后输出具体数值（如下图所示）。Nova套件中的声音传感器输出的声音强度取值范围是（0，4095）。

![](/files/-LWo2jahHnaY4WJCwEFX)

**要制作本课的范例作品，还需要使用以下新的指令：**

### “读模拟口”指令：

![](/files/-LWo2jakdiw_rfp8hrW8)

使用这个指令可以读取指定模拟口的输出值。指令默认是模拟口“A0”；通过单击下拉列表，可以选择A0—A3这4个模拟端口。

## 作品制作

要制作本课的范例作品，可以按以下步骤先连接硬件、运行插件程序，然后进入“好好搭搭”网站编写、调试、编译、下载程序。

### 第一步：搭建硬件、运行插件

首先将模块与主控板连接起来：亮度传感器模块连接“A0”端口、声音传感器模块连接“A1”端口、RGB LED模块连接“S0”端口、数码管模块连接“C0”端口（如下图所示）；接着把主控板和计算机连接起来，最后打开“好好搭搭硬件下载”插件，确认插件程序显示“打开端口成功”。

![](/files/-LWo2jamaBJwwM3RwM_G)

### 第二步：在数码管上显示亮度传感器的值

登录“好好搭搭”网站，选择“创作”栏目中的“haohaodada\_NOVA模版”，进入“NOVA编程设计页”进行编程。

要在数码管上显示亮度传感器的值，可以使用“重复执行”指令，重复执行“数码管消除”、“数码管显示”及“等待”指令，再将“读模拟口”指令作为“数码管显示”指令的显示数值参数。由于亮度传感器连接的是“A0”端口，因此就会在数码管上每隔“0.5”秒刷新显示当前环境的亮度值。具体程序代码如下图所示：

![](/files/-LWo2jaoB_TK5_ZTRHYG)

#### 试一试：

将上图所示代码编译后下载到主控板上，然后按下表要求测试不同环境下的亮度值，将数码管上显示的数值记录下来。

![](/files/-LWo2jaq8G7H2VLZHUlr)

### 第三步：在数码管上显示声音传感器的值

与数码管上显示亮度传感器值的程序类似，由于声音传感器连接的是“A1”端口，因此在数码管上显示声音传感器值的程序只需要修改“读模拟口”指令的参数为“A1”，这样在数码管上每隔“0.5”秒刷新显示的就是当前环境的声音响度值。具体程序代码如下图所示：

![](/files/-LWo2jasCPqIqBUdGgaI)

#### 试一试：

将上图所示代码编译后下载到主控板上，然后按下表要求手动调节电位器上转轴的位置，将数码管上显示的数值记录下来。

![](/files/-LWo2jauOiZvQDAxKADi)

### 第四步：用亮度传感器控制灯光的亮灭

要让亮度传感器控制LED亮灭，需要对亮度传感器的值进行判断：如果亮度传感器所连接的“A0”模拟口读取的值小于“1000”、也就是周围光线比较暗，那么点亮连接在“S0”端口的RGB LED；否则熄灭RGB LED。具体的程序代码如下图所示：

![](/files/-LWo2jawBGAslnvt6e2z)

为了使程序更简洁，上图7-6中的程序使用了名为“RGB”的功能块，具体功能块代码如下图所示。

![](/files/-LWo2jay2k6hrOin5iFe)

#### 试一试：

如何在用亮度传感器控制灯光亮灭的同时，用数码管显示实时的周围环境亮度值？

### 第五步： 用亮度和声音传感器同时控制灯光亮灭

要用声音和亮度传感器同时控制灯光亮灭，也就是周围光线比较暗的同时，声音的响度还要达到一定的值，灯才会亮。这个程序代码的核心是对判断的条件进行设置，可以使用“数字和逻辑运算”类别中的“且”指令。也就是连接亮度传感器“A0”端口的值小于“1000”的同时，连接声音传感器“A1”端口的值还必须大于“2000”，只有这两个条件都满足的情况下，灯才会亮；否则，设置灯是灭的。具体程序代码如下图所示：

![](/files/-LWo2jb-GRRssNC1xyjQ)

#### 想一想

如下图所示程序脚本，与上图有什么不同？它能否让智能声控灯正常工作？分析这两种程序编写方法有什么区别？你喜欢哪种方法？

![](/files/-LWo2jb19LdSTrOp1VPw)

#### 练一练：

根据实际环境光线及声音响度情况，调整具体数值，使得智能声控灯更有实用性。

## 拓展与思考

除了使用亮度和声音传感器控制灯光，你还能让灯光控制更智能、使用更方便吗？


# 第8课  在Nova中使用温湿度传感器——环境自动监测仪

人类舒适的生活环境，与温度、湿度的高低密切相关。本课我们将制作一个环境自动监测仪，它不仅能够在数码管上实时显示温度、湿度值，还可以通过RBG LED的颜色了解环境温度是否适宜。

## 模块与指令

**要制作本课的范例作品，需要认识以下这些新的硬件：**

### 温度、湿度传感器模块

温度、湿度传感器是指能够感受温度、湿度并转换成电信号的传感器。 Nova套件中的温度、湿度传感器采用的是“DHT11”温湿度传感器（如下图所示）。这是一款温湿度复合传感器，既能够检测温度、又能够检测湿度。它的温度检测范围是（0℃-50℃）、误差值±2℃；湿度检测范围是（20%-90%RH）、误差值±5%RH。

![](/files/-LWo2j5PZmM1Ksc2wI1B)

```
日常生活中所指的湿度是“相对湿度”，采用“%RH”表示。“90%RH”就是指空气中实际水蒸气的含量与相同温度下饱和水蒸气含量的百分比是90%。
```

**要制作本课的范例作品，还需要使用以下新的指令：**

### “读DHT11温湿度”指令：

![](/files/-LWo2j5SDA3ilt8-J_3K)

使用这个指令可以读取指定端口温湿度传感器上输出的温度、湿度值。指令默认读取的是“S0”端口的温度值；通过单击下拉列表，可以选择读“温度”还是“湿度”，还可以选择S0—S3这4个数字端口、A0—A3这4个模拟端口。

## 作品制作

要制作本课的范例作品，可以按以下步骤先连接硬件、运行插件程序，然后进入“好好搭搭”网站编写、调试、编译、下载程序。

### 第一步：搭建硬件、运行插件

首先将模块与主控板连接起来：温湿度传感器模块连接“S0”端口、RGB LED模块连接“S1”端口、数码管模块连接“C0”端口（如下图所示）；接着把主控板和计算机连接起来，最后打开“好好搭搭硬件下载”插件，确认插件程序显示“打开端口成功”。

![](/files/-LWo2j5UR_SEhBZ5PVxc)

### 第二步：在数码管上交替显示温湿度传感器的值

登录“好好搭搭”网站，选择“创作”栏目中的“haohaodada\_NOVA模版”，进入“NOVA编程设计页”进行编程。

要在数码管上交替显示温度和湿度，可以使用“重复执行”指令，重复执行“数码管消除”以及两个“数码管显示”、两个“等待”指令，第一个“数码管显示”指令显示温度，等待1秒后再使用第二个“数码管显示”指令显示湿度，最后再等待1秒后重复显示。具体程序代码如下图所示：

![](/files/-LWo2j5WDbEwrlSBE88B)

#### 试一试：

如果有两个数码管，请你编写程序，能够一个数码管显示温度、另一个数码管显示湿度。

### 第三步：在数码管上同时显示温湿度传感器的值

要在数码管上同时显示温度和湿度，需要先定义“a”、“b”、“c”、“d”四个变量；然后使用“数码管清除”以及“重复执行”指令。

在“重复执行”指令中，将变量“a”设定为湿度值除以10的余数、就是湿度值的个位数字；将变量“b”设定为湿度值除以10的商“向下取整”、就是湿度值的十位数字；复制这两个变量设定指令，再修改复制后的指令参数，将变量“c”设定为温度值的个位数字、变量“d”设定为温度值的十位数字。

然后使用四个“数码管指定位置显示”指令：第一个指令在第一位显示变量“a”、也就是湿度的个位数字，第二个指令在第二位显示变量“b”、也就是湿度的十位数字，第三个指令在第三位显示变量“c”、也就是温度的个位数字，第四个在第四位显示变量“d”、也就是温度的十位数字；其中第三个指令、也就是显示温度个位数字的指令，增加设置“小数点”参数值为“1”，使用“小数点”将温度值和湿度值在显示的时候隔开。

![](/files/-LWo2j5YgENLMbjds_5h)

具体程序代码如下图所示：

![](/files/-LWo2j5_m1rTOceIpMNb)

#### 试一试：

除了使用“数码管指定位置显示”指令，分数位同时显示温湿度值，也可以如下图程序代码所示，通过计算公式同时显示温湿度值。请将下图程序代码编译后下载到主控板上运行，观察数值显示是否正确。再试一试，如果要先显示湿度、再显示温度，程序应该如何修改。

![](/files/-LWo2j5b6EDEINIuKbPL)

### 第四步：用RGB LED直观显示温度状态

除了使用数码管显示温湿度值，也可以利用RGB LED直观显示温度状态：比如温度如果比较适宜，那么RGB LED显示绿色；如果温度太高了，那么RGB LED显示红色；如果温度太低了，那么RGB LED显示蓝色。具体的程序代码如下图所示：

![](/files/-LWo2j5dV-JGW7uJGSyu)

#### 练一练：

除了用RGB LED直观显示温湿度，对于异常的数值，还可以采用蜂鸣器报警。请进一步完善程序代码，使得环境自动监测仪能够使用蜂鸣器报警。

## 拓展与思考

除了温度和湿度，我们还可以监测周围环境的光线强度、声音强度……请进一步完善作品，使得环境自动监测仪功能更加强大。


# 第9课  在Nova中使用电机与红外遥控――智能小风扇

电风扇曾经是很多家庭上个世纪八、九十年代最重要的消暑电器，拥有一台自己独自享用的电风扇是那个年代很多孩子梦想的礼物。本课我们将制作一个能够用红外遥控器控制的小风扇，甚至还可以为它加上其它的传感器，使得小风扇更智能。

## 模块与指令

**要制作本课的范例作品，需要认识以下这些新的硬件：**

### 红外发射模块——红外遥控器

红外遥控器是一种红外线发射装置。Nova套件中的红外遥控器有17个按键，除了0-9这十个数字以外，还包括四个方向键、“OK”键以及“\*”、“#”键（如下图所示）。红外遥控器每个按键都有对应的按键值，可以根据需要在程序中定义不同的功能。

![](/files/-LWo2knchIBozI8DmGgM)

### 红外接收模块

红外接收模块一般与红外发射器一起使用，它能够接收发射器发射的红外线，然后将接收到的红外线信号转换为电信号，经过处理后还原为红外发射器发射的按键值（如下图所示）。

![](/files/-LWo2kneJmenmoRaGuVu)

```
在Nova套件中，红外遥控器和红外接收模块组成了一个完整的红外遥控系统。这类红外遥控方式在现实生活中几乎随处可见，比如绝大多数家庭都有的电视机、空调机，都采用了类似的红外遥控方式。
```

### 电机

电机，也叫“马达”，是依据电磁感应原理将电能转换为机械能的一种装置，很多常用电器和机械的动力源都是各种各样的电机。

电机根据输入电源的不同，可以分为使用直流电的直流电机、使用交流电的交流电机。Nova套件中的130电机就是一种直流电机，能够将输入的直流电能转换为机械能，可以带动套件中的风扇叶旋转（如下图所示）。

![](/files/-LWo2kng5uJPlS7SJ0v0)

### 单路电机驱动模块

Nova主控板是不能直接控制电机的，必须通过电机驱动模块才可以控制电机运行、停止、调节转速。Nova入门套件中的电机驱动模块只能连接一个电机，因此叫做“单路电机驱动模块”（如下图所示）。

![](/files/-LWo2kniTq2rbpdh4t3u)

**要制作本课的范例作品，还需要使用以下新的指令：**

### “读取红外值”指令：

![](/files/-LWo2knkYrp8nU4NT9-v)

使用这个指令可以读取指定端口红外接收模块的值。指令默认是“S0”；通过单击下拉列表，可以选择S0—S3这4个数字端口、A0—A3这4个模拟端口。。

### “红外按键值”指令：

![](/files/-LWo2knmesmjKvpDTCaJ)

使用这个指令可以读取红外遥控器按键的值。指令默认是“OK”键；通过单击下拉列表，还可以选择0-9这十个数字键、四个方向键、以及“\*”、“#”键。

### “电机输出”指令：

![](/files/-LWo2kno1EAZSjKTQ0Fc)

使用这个指令可以设置指定端口电机的输出值。指令默认端口是“M0”、输出值是“150”；通过单击第一个参数的下拉列表，可以选择电机的连接端口M0—M3；通过单击第二个参数下拉列表或者直接输入，可以设置电机的输出值，它的取值范围是（-255，255）。

## 作品制作

要制作本课的范例作品，可以按以下步骤先连接硬件、运行插件程序，然后进入“好好搭搭”网站编写、调试、编译、下载程序。

### 第一步：搭建硬件、运行插件

首先将模块与主控板连接起来：红外接收模块连接“S0”端口、数码管模块连接“C0”端口、单路电机驱动模块连接“M0”端口，将风扇叶安装到130电机的转头上、电机的连线插入单路电机驱动模块（如下图9-5所示）；接着把主控板和计算机连接起来，最后打开“好好搭搭硬件下载”插件，确认插件程序显示“打开端口成功”。

![](/files/-LWo2knqO0EJ00UrMt9l)

### 第二步：在数码管上显示红外接收模块接收到的值

登录“好好搭搭”网站，选择“创作”栏目中的“haohaodada\_NOVA模版”，进入“NOVA编程设计页”进行编程。

要在数码管上显示红外接收模块接收到的值，可以按以下步骤操作：

1. “新建变量ir”；
2. 使用“重复执行”指令，重复执行“将变量设定为”、“如果…那么”指令；
3. 将“读红外值”指令作为“将变量设定为”指令的参数；
4. 设置“如果…那么”指令的条件是“ir0”，条件满足后执行“数码管消除”和“数码管显示”指令，设置“数码管显示”指令最后一个参数是变量“ir”。

由于红外接收模块连接的是“S0”端口，因此当按下红外按键、也就是读取的“S0”端口值大于“0”，就会在数码管上显示红外接收模块接收到的红外值。具体程序代码如下图所示：

![](/files/-LWo2kns945e95TKKmGS)

#### 试一试：

将上图所示代码编译后下载到主控板上，然后按红外遥控器上的按键，观察数码管上显示的数值，思考以下问题：

1. 红外遥控器必须对准红外接收模块吗？如果不对准会怎么样？
2. 为什么要使用变量？只有这个变量的值大于“0”才显示红外值。而不是和前几课一样，直接显示红外值？

### 第三步：让风扇旋转起来

要让风扇旋转起来，可以使用“电机输出”指令，具体程序代码如下图9-7所示：

![](/files/-LWo2knueQHnGDs1GuaL)

#### 试一试：

根据上图所示代码，按下表要求分别修改电机输出值，编译后下载到主控板上，观察不同参数下风扇旋转的状态，将结果记录下来。

![](/files/-LWo2knwdv0Rc2gjx1wq)

### 第四步：用红外遥控器控制风扇旋转

要用红外遥控器控制风扇旋转：按数字“1”键控制风扇比较慢的旋转、“2”键比较快旋转、“3”非常快旋转，可以按以下步骤编写程序：

1. 单击“数据”类别中的“新建变量”按钮，在打开的“新建变量”对话框中输入新变量的名称“zhuansu”，单击“确定”按钮完成新建变量。
2. 添加“重复执行”指令，重复执行“将变量设定为”和“如果…那么”指令；将“zhuansu”变量设定为“读红外值”指令的值；
3. 设置“如果…那么”指令的条件为“zhuansu”变量“等于”“红外按键值”；单击“红外按键值”指令的下拉列表，选择“IR\_BUTTON\_1”选项，也就是红外遥控器上的“1”按键。
4. 设置“如果…那么”指令条件成立时执行“电机输出”指令，设置电机输出值为“-100”。
5. 将“如果…那么”指令再复制三个，分别修改“红外按键值”指令的参数为“IR\_BUTTON\_2”、“IR\_BUTTON\_3”、“IR\_BUTTON\_0”，再分别修改“电机输出”指令的输出值为“-150”、“-255”、“0”。

具体的程序代码如下图所示：

![](/files/-LWo2knyYroywCuv1Em0)

#### 想一想：

可以不新建“zhuansu”变量，直接设置“读红外值”指令“等于”“红外按键值”指令吗？

#### 练一练：

进一步修改程序，使得小风扇旋转的同时，数码管上能够显示相应的转速。比如显示比较慢的“1”档、比较快的“2”档以及非常快的“3”档。

## 拓展与思考

除了使用红外遥控器控制风扇，你还能让风扇的控制更智能、使用更方便吗？


# 第10课 在Nova中使用舵机——会摇头的电风扇

很多电风扇、特别是台式电风扇的风扇叶都会左右摆动，俗称“摇头电风扇”。这种结构的电风扇吹出的风更自然、使人感觉更舒适。本课我们将在上一课所制作的“智能小风扇”作品基础上，为电风扇增加风扇叶左右摆动功能。

## 模块与指令

**要制作本课的范例作品，需要认识以下这些新的硬件：**

### 舵机模块

舵机，也叫做伺服电机，是一种可以把接收到的电信号转换成精确旋转角度的电机。海模爱好者经常用这种电机来控制模型船的方向舵，所以约定俗成地都叫它“舵机”（如下图10-1所示）。

![](/files/-LWo2jy4pNw-abxtBMbw)

标准的舵机有3条控制线，分别是棕色的接地线（简称GND）、红色的电源线、橙色的信号线。

Nova套件中的舵机附送了“十字形”、“一字形”、“半一字形”这三种不同形状的摆臂，还有将摆臂固定到舵机上的一颗小螺丝、将舵机固定到结构件上的两颗大螺丝。

**要制作本课的范例作品，还需要使用以下新的指令：**

### “设置舵机输出角度”指令：

![](/files/-LWo2jy7NTFKynDMs2f4)

使用这个指令可以设置指定端口舵机的输出角度。指令默认端口是“S0”、输出角度是90度；通过单击第一个参数的下拉列表，可以选择S0—S3这4个数字端口以及A0—A3这4个模拟端口；通过单击第二个参数下拉列表或者直接输入，可以设置舵机的输出角度，它的取值范围是（0，180）。

## 作品制作

要制作本课的范例作品，可以按以下步骤先连接硬件、运行插件程序，然后进入“好好搭搭”网站编写、调试、编译、下载程序。

### 第一步：搭建硬件、运行插件

首先将模块与主控板连接起来：单路电机驱动模块连接“M0”端口，将风扇叶安装到130电机的转头上、电机的连线插入单路电机驱动模块；将十字型的摆臂用螺丝固定到舵机上，舵机连接线的另一头插入“S0”端口，由于舵机没有使用Nova防反插连接线，因此插的时候可以查看主控板“S0”端口的反面，确保棕色连接线对准“G”、红色连接线对准“V”、橙色连接线对准“P20”（如下图所示）；接着把主控板和计算机连接起来，最后打开“好好搭搭硬件下载”插件，确认插件程序显示“打开端口成功”。

![](/files/-LWo2jy9bmqS9Pg1yZp9)

### 第二步：校正舵机的旋转角度

登录“好好搭搭”网站，选择“创作”栏目中的“haohaodada\_NOVA模版”，进入“NOVA编程设计页”进行编程。

舵机装上摆臂、第一次使用之前，最好先校正一下它的角度。可以使用“重复执行”指令，重复执行“设置舵机输出角度”指令，设置这个指令的参数为“0”。由于舵机连接的是“S0”端口，因此这时舵机的方向应该是“0°”（具体程序代码如下图所示）。

![](/files/-LWo2jyB2TYRTXJECVRC)

由于本课范例作品使用的是“一字型”摆臂，0°状态正好和舵机垂直（如下图所示），如果安装的时候角度不正确，可以旋松固定摆臂的螺丝，重新安装。

![](/files/-LWo2jyFELILC3m10eWk)

#### 试一试：

上图所示代码中，请你再设置其它的舵机输出角度值，然后编译、下载到主控板上执行程序，观察舵机实际指向的角度，你发现了什么？

### 第三步：控制舵机顺时针旋转

要控制舵机顺时针旋转，也就是角度值从0°依次递增到180°，可以按以下步骤操作：

1. 单击“数据”类别中的“新建变量”按钮，在打开的“新建变量”对话框中输入新变量的名称“jiaodu”，单击“确定”按钮完成新建变量。
2. 添加“重复执行”指令，重复执行“将变量设定为”和“重复执行直到条件成立”指令；确认“将变量设定为”指令第一个参数是“jiaodu”、第二个参数是“0”。
3. 设置“重复执行直到条件成立”指令的条件为“jiaodu”变量“等于”“180”或者“jiaodu”变量“大于”“180”。设置“重复执行直到条件成立”指令条件成立时执行“设置舵机输出角度”、“将变量值增加”和“等待”指令；设置舵机输出角度值为“jiaodu”变量，确认“将变量值增加”指令第一个参数是“jiaodu”、第二个参数是“1”，设置“等待”指令参数为“0.1”秒。

具体程序代码如下图所示：

![](/files/-LWo2jyIBazHluBWhUHl)

#### 想一想：

上图所示程序中，重复执行的这段脚本叫做“当”循环。它可以一边重复执行、一边进行判断，一直到“jiaoda”变量值大于、等于180这个条件成立，才停止重复执行；反之也就是说，“jiaoda”变量值小于180时，舵机会一直顺时针旋转、累加角度值。

而下图所示的程序也可以控制舵机顺时针旋转，但它使用的是“重复执行指定次数”指令。

想一想，这两段程序脚本有什么不同？你喜欢哪一段脚本？为什么？

![](/files/-LWo2jyKTKvsfB8_4bkj)

### 第四步：控制舵机180°来回旋转

要让舵机180°来回旋转，也就是角度值从0°依次递增到180°，再从180°依次递减到0°，可以使用两次“重复执行直到条件成立”指令。第一次是旋转、累加角度值；第二次是旋转、累减角度值。具体的程序代码如下图所示：

![](/files/-LWo2jyNgCUd11-zOXQF)

#### 试一试：

上图所示程序代码中，每个“重复执行直到条件成立”指令里面都有一个“等待”指令。试一试删除这个指令，舵机还能够正常来回旋转吗？为什么？

### 第五步： 会摇头的电风扇

要让风扇一边摇头、一边扇，应该先把装有风扇叶的电机固定到舵机的一字形摆臂上（建议用胶枪固定），然后修改上图所示的程序，在顺时针和逆时针旋转的重复执行代码中，分别添加两个“设置电机输出”指令。具体程序代码如下图所示：

![](/files/-LWo2jyPV_Im6B60_KxI)

#### 练一练：

上图所示的程序，编译、下载到主控板上会马上运行。能不能再添加红外遥控的代码，只有按遥控器上的“OK”按键，风扇才会运行。

## 拓展与思考

请进一步完善程序，让红外遥控器不仅能够控制风扇开、关，还能够控制风扇的转速。


# 阅读材料一：“好好搭搭”插件的下载与安装

{% content-ref url="/pages/-LWnWVZpu2gSkAs2MhLB" %}
[插件](/hao-hao-da-da-ping-tai/cha-jian)
{% endcontent-ref %}


# WU-Link智能造物入门


# 第一课 初识物联网造物神器——WU-Link

\[TOC]

物联网就是物物相连的互联网。英文名称是：Internet of things，英文缩写是“IoT”。

物联网的核心和基础仍然是互联网，但在互联网的基础上扩展和延伸到了任何物品，在物品与物品之间通讯和信息交换。物联网是继计算机、互联网之后信息技术领域的第三次重大变革。

![](/files/-LWtC4XjUHs-DQeegjsL)

造物，是指自己动手制作物品。作为一名“创客”，就是努力要将自己的创意通过“造物”变成现实，变成看得见、摸得着的物品。

物联网造物，是指基于物联网技术的造物，所创造的物品能够通过互联网实现物物相连。对于中小学生来说，由于年龄较小、专业知识也比较缺乏，物联网造物如果使用过于复杂的硬件和软件会大大增加造物的难度。

WU-Link是基于物联网技术的一块开发板，集在线编程、无线下载、物物互联功能于一体，既能兼容于Arduino、开发一般的应用，也能非常方便地进行物联网造物。

![](/files/-LWt7X0naBwMlBsP_5Hz)

#### 试一试:

在WU-Link上找到点阵屏、按键、亮度传感器、温度传感器、红外发射器、红外接收器等板载元器件以及A0、A1、A2这三个模拟口，S0这个数字口，MA、MB这两个电机接口，C0这个I2C接口。

## 作品制作

使用WU-Link造物非常方便，在正式开始学习之前，先按以下步骤操作，整体了解WU-Link的基本使用方法、实际体验如何编写、修改WU-Link程序。

### 第一步：打开和关闭WU-Link电源

WU-Link的电源键在面板的左侧，单击就可以打开。打开电源后，电源键上方的电源指示灯点亮、蜂鸣器连续短促鸣叫两声，表明电源打开正常。

![](/files/-LWt7X0qn0MyLIALeeDq)

按住B键开机，蜂鸣器响一声，工作状态指示灯红色常亮，再按一下B键，蜂鸣器长响一声，设备进入WIFI配置模式，进入好好搭搭微信公众号的好搭物联网小程序进行配置，配置成功后指示灯变蓝色。

WU-Link正常连接无线网络后，如果内存中有事先保留的程序，会马上执行这个程序。

WU-Link内置有锂电池，所有数据也都通过无线网络传输，因此在使用过程中不需要连接计算机、一般也不需要连接电源。

要关闭WU-Link，可以快速单击两次电源键，如果电源指示灯熄灭，就表明WU-Link已经关闭电源、停止工作。

### 第二步：进入在线编程网站

WU-Link可以通过“好好搭搭”网站在线编写、保存程序。具体可以按以下步骤操作：

1.打开浏览器，进入“好好搭搭”网站（haohaodada.com），然后单击网站右上角的“登录”按钮，用事先注册好的账号登录。如果没有账号，可以先单击“加入”按钮免费注册。

2.单击网站左上角的“创作”按钮，打开如下图所示的“创作模版”网页。

![](/files/-LWt7X0wSxGStFsJODff)

3.在“创作模版”网页中找到并单击“WU-Link”模版缩略图，进入WU-Link编程网页（如下图所示）。

![](/files/-LWt7X0ymI-A0ZRBKnoE)

WU-Link默认进入的是图形化编程网页，它由以下几部分组成：

* 网页上方是“工具栏”，可以新建、保存、编译下载程序到设备，还可以查看“最新”、“我的”、“例程”项目，将程序“保存到本地”、“从本地打开”；
* 网页左边“指令区”，共有九大类、一百多个指令；
* 网页中间是“编程区”，将左边“指令区”的指令拖动到“编程区”、按一定的逻辑关系组合起来，可以编写出各种各样的程序；
* 网页右边是“代码区”，能够根据组合的指令自动生成C语言代码（如果在手机、平板上打开编程网页，默认不会显示“代码区”）。

#### 试一试：

进入WU-Link编程网页，单击“指令区”中不同的指令类别，看看都有哪些指令？找出你最感兴趣的三个指令？猜一猜它们可能有什么用？

### 第三步：编译、下载程序

WU-Link程序必须通过服务器编译成机器能够识别的机器码，然后下载到主板上才可以运行。下面以“例程”中的“计步器”程序为例，介绍具体的操作步骤：

1.单击WU-Link在线编程网页上方“工具栏”中的“例程”按钮，在打开的网页中找到并单击“计步器”程序缩略图，打开这个范例程序。

2.单击“工具栏”中的“下载到设备”按钮，打开如下图所示的提示对话框，单击“确定”按钮开始将程序上传到服务器编译（如果所使用的“好好搭搭”网站账号没有绑定WU-Link，会出现错误提示框。请按[阅读材料二](http://haohaodada.com/edu/WULink/b.html)所介绍的方法，添加并绑定设备）。

![](/files/-LWt7X10VyfxOXxmc8Wc)

3.服务器编译完成后，会通过无线网络将程序直接下载到账号绑定的WU-Link设备。如果编译、下载成功，会打开如下图所示的提示对话框。同时蜂鸣器鸣叫，稍等片刻下载完成后，蜂鸣器停止鸣叫。

![](/files/-LWt7X12MIZbJnxVzrJu)

4.程序下载到WU-Link后会替换原有的旧程序，然后自动运行新下载的程序。对于“计步器”这个程序来说，下载运行以后，可以拿着WU-Link走动，它会根据手臂摆动的频率自动计数。

#### 试一试：

在WU-Link编程网页的“例程”中，除了“计步器”程序，你还对什么程序感兴趣？尝试打开、编译、下载到WU-Link中运行，看看这个程序是怎样的？

### 第四步：在线修改程序

WU-Link默认采用的是与Scratch类似的积木式图形化编程方式，非常适合少年儿童使用。下面以“例程”中的“接收消息”、“发送消息”这两个范例程序为例，进一步熟悉这种图形化编程方式，体验使用WU-Link进行物联网编程的便捷性：

1.与同伴合作，两人一组，每组两块WU-Link。

2.使用第一块WU-Link绑定的账号登录好好搭搭网站，打开“例程”中的“接收消息”程序（程序代码如下图所示），将这个程序编译下载到第一块WU-Link中。

![](/files/-LWt7X14YAoe8DnwyP4E)

3.使用第二块WU-Link绑定的账号登录好好搭搭网站，打开“例程”中的“发送消息”程序，这个程序的代码如下图所示。

![](/files/-LWt7X16zJfGfivUehHq)

上图所示的程序能够重复执行条件判断：如果按下板载的按键“A”，那么会执行“通过物联网发送字符串”指令，发送字符串“Hello”到指定的MAC地址。

```
注：MAC地址是一组由六个十六进制数组成的网络地址，每个十六进制数之间用英文冒号分隔。全世界所有通过互联网连接的网络设备都会有这样一组网络地址，WU-Link的mac地址印刷在面板的背面。
```

4.删除上图程序代码中“通过物联网发送字符串”指令的“MAC地址”参数，用第一块WU-Link真实的“MAC地址”替代默认的地址。

5.完成程序代码的修改后，单击“工具栏”中的“下载到设备”按钮，将修改后的“发送消息”程序编译、下载到第二块WU-Link运行。

通过以上操作，这两块WU-Link通过互联网实现了“物物相连”：第一块WU-Link在没有接收到第二块WU-Link发送的消息时，默认显示的是网络时间；当按下第二块WU-Link面板上的按键“A”时，第一块WU-Link上显示的是第二块WU-Link发送的“Hello”。

#### 试一试：

第二块WU-Link除了可以向第一块WU-Link发送“Hello”以外，你还能够再修改程序，发送其它信息吗？

## 拓展与思考

第二块WU-Link除了可以向第一块发送信息以外，你还能够再修改程序，向第三块、甚至更多块WU-Link发送信息吗？


# 第二课 在WU-Link中使用点阵屏——玩转图案设计

\[TOC]

WU-Link面板上有一块LED点阵屏，可以非常方便地设计并显示各种图案，同时还能够为这些图案设置各种酷炫的动画。

## 模块与指令

**要制作本课的范例作品，需要认识以下这些新的模块：**

### "LED点阵屏"模块

LED点阵屏是将若干个LED以矩形阵列的方式组装为一个模块，通过控制这些LED的亮灭来显示文本或者图案的显示装置。 WU-Link面板中央就有一块LED点阵屏（如下图所示），它是由7x24、共168颗LED组成的，可以同屏显示四个字母或者数字。

![](/files/-LWt7Yh03pCxpdtSl7Ug)

**要制作本课的范例作品，还需要使用以下新的指令：**

### “点阵屏设置”指令：

![](/files/-LWtC4IrarlvGK5kMgrI)

属于“点阵屏”类别指令；使用这个指令可以设置WU-Link板载点阵屏显示的图案。

指令中间有7x24、共168个点，与WU-Link板载点阵屏相对应；黑色的点表示点亮相应的LED，粉色的点表示熄灭相应的LED；用鼠标单击可以改变这些点的状态。

指令上方是图案显示属性设置区域；主要有以下几项设置内容：

* “滚动方式”设置：默认为“无”，单击下拉列表还可以选择“↑”、“↓”、“←”、“→”这四种滚动方向；
* “滚动速度”设置：默认是“3”，可以在方框内输入其它数值，数值的取值范围是（0，15），数值越小，滚动速度越快。
* “显示图案”设置：默认是“I❤HD”，单击下拉列表还可以选择“雪花”图案、“全选”（全部点亮）、“清零”（全部熄灭）。

### “点阵屏亮度设置”指令：

![](/files/-LWt7Yh4faY-FIuTFyJn)

属于“点阵屏”类别指令；使用这个指令可以设置WU-Link点阵屏的亮度。

指令的参数默认是“30”，它的取值范围是（0，63）；数值越小亮度越低。

### “延时”指令：

![](/files/-LWt7Yh6PXIImFmrFL0h)

属于“控制”类别指令；使用这个指令可以设置延时（也就是程序暂停）的时间。

指令的第一个参数是延时的时间，默认是“1000”；第二个参数是时间单位，默认是“毫秒”，可以单击打开下拉列表，从中选择“毫秒”或者“微秒”选项。这两个时间单位与“秒”之间的换算关系是：1秒=1000毫秒，1毫秒=1000微秒。

## 作品制作

要设计各种点阵图案，先要掌握如何在WU-Link点阵屏上显示图案，知道让图案动起来的基本方法；然后编写代码，在WU-Link上显示各种酷炫的图案和图案动画。

### 第一步：在点阵屏上显示图案

要在点阵屏上显示图案，可以将“显示”类别中的“点阵屏设置”指令拖动到编程区，与默认的“重复执行”指令组合。具体的程序脚本如下图所示：

![](/files/-LWt7Yh8x4EdCQ-a92oW)

#### 试一试：

将上图所示程序下载到WU-Link，查看WU-Link点阵屏上显示的图案是否和“点阵屏设置”指令设置的相同？

除了“点阵屏设置”指令默认的图案，也可以自己设计图案：

1. 单击“点阵屏设置”指令右边的“显示图案”下拉列表中的“清零”选项，将原先设置的图案清除。
2. 用鼠标单击指令中间的显示区设置图案：黑色表示选中、也就是相应LED点亮；再次单击黑色点可以取消选中、也就是相应LED熄灭。

#### 试一试：

下图所示的是一些点阵图案，你还可以设计出其它更加好玩的图案吗？

![](/files/-LWt7YhAwbGszMooUUTF)

### 第二步：通过设置属性让点阵屏上的图案动起来

要让点阵屏上的图案动起来，可以更改“设置点阵屏”指令默认的“滚动方式”：单击“滚动方式”右边的下拉列表图标，在打开的下拉列表中选择需要的滚动方式，不同的滚动方式可以达到不同的动画效果。

除了可以设置“滚动方式”让图案动起来，还可以设置合适的“滚动速度”，使得滚动的效果更逼真。“滚动速度”默认是“3”，可以设置的数值范围是（0，15），数值越小，滚动速度越快。

下图所示的程序代码就是长颈鹿从WU-Link点阵屏右边以很快的速度向左移动，移动到最左边以后，再从右边开始重新向左移动。

![](/files/-LWt7YhCz60RF5xj82lS)

#### 试一试：

结合自己设计的图案，再添加合适的滚动方式和滚动速度，让图案动画更好玩。

### 第三步：通过切换图案让点阵屏上的图案动起来

要让点阵屏上的图案动起来，还可以通过两个图案的切换显示，让点阵屏上的图案动起来。

下图所示的程序代码，会在WU-Link点阵屏上依次显示一颗小的爱心和一颗大的爱心，从而产生爱心在跳动的效果。中间添加的两个“延时”指令，可以让图案跳动的动画更逼真。

![](/files/-LWt7YhEnyg2EpI7u8Xm)

#### 试一试：

除了跳动的爱心，你还能够设计哪些更好玩的图案切换动画？

### 第四步：改变点阵屏亮度让点阵屏图案更酷炫

在通过切换图案让点阵屏上的图案动起来的同时，如果再如下图所示添加“点阵面板设计亮度”指令，就可以让点阵屏图案的显示更酷炫。

![](/files/-LWt7YhGMaAJFvy_AL0Q)

## 拓展与思考

除了本课介绍的图案和图案的动画方式，你还能够设计出更多、更好玩的图案及动画效果吗？


# 第三课 在WU-Link中使用点阵屏——送给妈妈的计时器

\[TOC]

WU-Link面板上的LED点阵屏，不仅可以显示图案，还可以显示字母、数字等信息。本课我们将使用点阵屏和按键，为爱做烘焙的妈妈制作一个定时器，帮助她更加精确的掌握时间。

## 模块与指令

**要制作本课的范例作品，需要认识以下这些新的硬件：**

### “按键”模块

按键其实就是一种开关，它有“按下”和“弹起”两种状态：一般默认是“弹起”；当用手指按住按键帽往下按、并且保持不动的时候，就处于“按下”状态；松开手指，按键又会重新处于“弹起”状态。

WU\_Link面板中央左右两边各有一个按键，其中左边这个按键编号是“A”，右边编号为“B”（如下图所示）。

![](/files/-LWt7Xp9ZiI-uzJMvJaS)

**要制作本课的范例作品，还需要使用以下新的指令：**

### “点阵屏显示文本”指令:

![](/files/-LWt7XpBJ29kM4gM6ytl)

属于“点阵屏”类别指令；使用这个指令可以设置WU-Link点阵屏显示参数指定的文本内容。

指令的参数默认是“YES”，可以根据需要修改。由于WU-Link点阵屏只能显示四个字母，当输入字母数超过四个，就会以滚动方式显示。

### “点阵屏显示数”指令:

![](/files/-LWt7XpFZINKtIDzi2g3)

属于“点阵屏”类别指令；使用这个指令可以设置WU-Link点阵屏显示参数指定的数。

指令的参数默认是“123”，可以根据需要修改。由于WU-Link点阵屏只能显示四个数字，当输入数字超过四个，会以滚动方式显示。

### “点阵屏清除”指令:

![](/files/-LWt7XpItEIJCw6FCKxP)

属于“点阵屏”类别指令；使用这个指令可以清除WU-Link点阵屏原来的显示内容，为显示新的内容做准备。

### “读板载按键值”指令:

![](/files/-LWt7XpMEF-fr0-5cvXk)

属于“板载”类别指令；使用这个指令可以读取WU-Link板载按键的值。当按键处于正常状态、也就是“弹起”时，该指令返回的值是“0”；当按键被“按下”时，指令返回值是“1”。

指令默认是读取按键“A”的值；可以单击打开下拉列表参数，从中选择“A”或者“B”选项，选择读按键“A”还是“B”的值。

### “声明变量类型并赋值”指令：

![](/files/-LWtC5EJOdd4QHAb3ikS)

属于“变量”类别指令；用于声明指定变量的类型并对这个变量赋值。

指令有三个参数：

* 第一个参数是选择需要声明的变量名称（需要先创建变量，所创建变量名称才会在下拉列表中显示）。
* 第二个参数是所要声明的变量类型，共有七种类型，其中最常用的是“整数”、“小数”、“字符串”这些变量类型。
* 第三个参数是具体的赋值，需要组合其它指令，一般最常用的是“数学与逻辑”类别中的“数值”指令和“文本与数组”类别中的“字符串”、“字符”指令。

## 作品制作

要制作本课的范例作品，先要了解WU-Link点阵屏和按键的基本使用方法，能够在点阵屏上显示指定的字母、数以及按键当前状态的值。然后编写代码，将WU-Link点阵屏当作定时器显示屏，显示依次累加（累减）的数。

### 第一步：在点阵屏上显示指定的文本

要在点阵屏上显示指定的文本，可以将“显示”类别中的“点阵屏显示文本”指令拖动到编程区，与默认的“重复执行”指令组合。

具体程序代码如下图所示：

![](/files/-LWt7XpR1YtGB287BNX7)

#### 试一试：

将上图所示程序下载到WU-Link，看看WU-Link点阵屏上显示的是什么？然后按下表要求依次修改“点阵面板显示文本”指令的参数，重新下载到WU-Link运行，将点阵屏上显示的内容分别记录下来。

![](/files/-LWt7XpUr_JYHxTecldR)

### 第二步：在点阵屏上显示指定的数

要在点阵屏上显示指定数值，可以将“显示”类别中的“点阵屏显示数”指令拖动到编程区，与默认的“重复执行”指令中组合。

具体程序代码如下图所示：

![](/files/-LWt7XpX4hIuEhcea7gf)

#### 想一想：

如何才能够在点阵屏上同时显示字母和数字？

### 第三步：在点阵屏上显示按键的值

WU-Link点阵屏除了可以显示指定的数，还可以显示传感器的值。

要在点阵屏上显示按键的值，同样也是先将“显示”类别中的“点阵屏显示数”指令拖动到脚本区，与“重复执行”指令中组合；然后将“更多”类别中的“读板载按键值”指令拖动添加到“点阵屏显示数字”指令的参数位置。

具体程序代码如下图所示：

![](/files/-LWt7XpZ-w83ouOQvWWi)

#### 试一试：

将上图所示程序下载到WU-Link，然后按下表要求“按下”或者“弹起”按键，观察点阵屏上显示的数，把结果记录到表格中。

![](/files/-LWt7XpbGUfWFL2LC3ew)

### 第四步：制作计时器

计时器的数值会自动变化，从一个初始值开始依次递增或者依次递减。要在点阵屏上显示这个不断变化的数，需要新建变量：

可以先单击“变量”指令类别中的“创建变量”按钮，在打开的“新变量的名称”对话框中（如下图所示）输入“变量名”为“time”，输入完成后单击“确定”按钮，就会在“变量”指令类别中新建这个变量。

![](/files/-LWt7XpdcMKgwgXLaHK_)

```
注意：WU-Link程序中的变量名与Scratch一样，除了可以使用字母和数字作为变量名以外，还可以使用中文作为变量名；变量名最好有一定的意义。
```

变量创建完成后，在编写程序时，还需要先“声明变量类别”。也就是将“变量”指令类别中的“声明并赋值”指令拖动到编程区，与默认的“初始化”指令组合，再将“数字与逻辑”指令类别中“数值输入”指令作为“声明并赋值”指令的参数，设置“数值输入”指令参数为“1”。

具体初始化程序代码如下图所示：

![](/files/-LWt7XpgQ5eKCtMxHtgf)

在“初始化”脚本中声明变量后，可以在“重复执行”脚本中先累加变量的值，然后在点阵屏上显示累加后的变量值，等待1秒以后再重复执行。具体可以按以下步骤操作：

1.在“重复执行”指令中依次添加“重复执行指定次数”以及“赋值”指令；

2.在“重复执行指定次数”指令中依次添加“点阵屏清除显示”、“点阵屏显示数字”、“延时”以及“赋值”指令；

3.将“变量”指令类别中的变量“time”指令作为“点阵屏显示数字”指令的参数；修改后的这条指令可以在点阵屏上显示变量“time”的值；

4.将“数字与逻辑”指令类别中的“数值运算”指令添加作为“赋值”指令的参数，再将“变量”指令类别中的变量“time”指令作为“数值运算”指令的第一个加数；修改后的这条指令可以将变量“time”赋值为“time”+“1”，也就是变量依次累加；

5.将“数字与逻辑”指令类别中“数值输入”指令作为“声明并赋值”指令的参数，设置“数值输入”指令参数为“1”；这条指令使得变量“time”重复执行10次显示以后，重新赋值为“1”，再次从1开始依次累加。 具体主程序代码如下图所示：

![](/files/-LWt7XpjItBSo77_g3dm)

#### 试一试：

如果计时器是从“10”开始倒计时，计时到“0”结束。程序代码应该如何修改？

### 第五步：用按键控制计时器

要用按键控制计时器，也就是如果“读板载按键A”指令的值等于“1”，计时器开始计时，点阵屏重复执行从“1”显示到“10”。计时结束后继续处于判断状态，等待再次按下按键重新计时。

这段脚本可以在前面“计时器”程序的基础上修改：“初始化”脚本不变；在“重复执行”脚本中添加“条件判断”指令，将原有的“重复执行指定次数”以及“赋值”指令作为“条件判断”指令条件成立后执行的脚本，设置“条件判断”指令的条件为：“读板载按键A的值”“等于”“1”。

具体主程序代码如下图所示：

![](/files/-LWt7Xpm7Lc8HdS-xRn0)

#### 想一想：

能不能让这个计时器更好玩？比如计时开始前先闪烁数字“0”，计时结束后闪烁数字“10”？

## 拓展与思考

能不能把WU-Link面板上的按键“B”也用上，用按键“B”调整计时器需要计时的值。比如按一下这个按键在数码管上显示“10”，再按一下分别显示“20”、“30”……；需要计时的数值确定后，按按键“A”开始倒计时，倒计时结束后闪烁最后显示的数字“0”。


# 第四课 在WU-Link中使用板载传感器——环境自动检测仪

\[TOC]

人类舒适的生活环境，与环境温度、光线强度密切相关。本课我们将使用WU-Link制作一个环境自动监测仪，实时显示周围环境的光线强度、温度值。

## 模块与指令

**要制作本课的范例作品，需要认识以下这些新的硬件：**

### “亮度传感器”模块

亮度传感器其实是一个光敏管，它能够感知周围光线的强度，通过采集转化后输出具体数值。WU-Link主板上集成有一个亮度传感器，位于面板左下方，标记有英文单词“Light”（如下图所示）。

![](/files/-LWt7X3ehut4j8AWvuIM)

### “温度传感器”模块

温度传感器能够感受周围环境的温度，通过采集转化后输出温度值。WU-Link主板上也集成有一个温度传感器，位于面板右下方，标记有英文单词“Temp”（如上图所示）。

**要制作本课的范例作品，还需要使用以下新的指令：**

### “读板载亮度传感器”指令

![](/files/-LWt7X3kkrczHgcG6fIA)

属于“板载”类别指令；使用这个指令可以读取WU-Link板载亮度传感器输出值，输出数值范围是（0，4095）。

### “读板载温度传感器”指令

![](/files/-LWt7X3pFxVOEWHyFd92)

属于“板载”类别指令；使用这个指令可以读取WU-Link板载温度传感器输出值，输出数值范围是（0℃，50℃）。

## 作品制作

要制作本课的范例作品，先要掌握在WU-Link点阵屏上分别显示环境亮度、温度值的方法，了解亮度传感器、温度传感器的特点；然后编写代码，在WU-Link上同时显示亮度、温度传感器的值。

### 第一步：在点阵屏上显示亮度传感器值

要在点阵屏上显示亮度传感器的值，需要先对点阵屏初始化。

具体初始化代码如下图所示：

![](/files/-LWt7X3yi3ZxDiMQAUOZ)

初始化点阵屏以后，可以在“重复执行”指令中添加“点阵屏清除”和“点阵屏显示数”指令，再设置“点阵屏显示数”指令的参数为“读板载光线传感器”指令。这段代码先清除旧的点阵屏显示内容，然后显示新读取的板载光线传感器数值。

具体主程序代码如下图所示：

![](/files/-LWt7X40gLV32yWYn0gc)

#### 试一试：

将上图所示代码编译后下载到WU-Link，然后按下表要求将WU-Link放到不同的环境下测试亮度值，将点阵屏上显示的亮度值记录下来。

![](/files/-LWt7X47m8bXqYDYWb4K)

### 第二步：在点阵屏上显示温度传感器值

要在点阵屏上显示温度传感器值，也是先初始化点阵屏（初始化程序代码如第一步所示）；然后同样在“重复执行”指令中添加“点阵屏清除”和“点阵屏显示数”指令，最后设置“点阵屏显示数”指令的参数为“读板载温度传感器”指令。

具体主程序代码如下图所示：

![](/files/-LWt7X4Cj-fYBuIjGDM2)

#### 试一试：

将上图所示代码编译后下载到WU-Link，然后按下表要求测试不同环境下的温度值，将点阵屏上显示的温度值记录下来。

![](/files/-LWt7X4JC0LJ_qlwkmbL)

### 第三步：在点阵屏上交替显示亮度、温度值

如果要在点阵屏上交替显示亮度、温度值，也是先初始化点阵屏（初始化程序代码如第一步所示）；然后在“重复执行”指令中清除点阵屏显示内容后，再显示新读取的亮度传感器数值；延时“1000”毫秒以后再清除点阵屏显示内容、显示新读取的温度传感器数值、再延时“1000”毫秒。

具体主程序代码如下图所示：

![](/files/-LWt7X4Nmo_Q9NsQAYKl)

#### 试一试：

尝试删除上图所示程序中的两个“延时”指令，重新编译执行程序，还能够在点阵屏上正常交替显示亮度、温度值吗？为什么？

### 第四步：用A、B按键控制显示亮度、温度值

在点阵屏上交替显示亮度、温度值并不是一个比较好的显示方案，其实可以充分利用WU-Link面板上的两个按键，使用按键来控制传感器数值的显示：按下按键“A”显示亮度传感器值、按下按键“B”显示温度传感器值。具体可以按以下步骤编写程序：

1.初始化点阵屏（初始化程序代码如第一步所示）；

2.在“重复执行”指令中添加“判断”指令，在“判断”指令的条件中添加“读板载按键值”指令，确认该指令参数为“A”，也就是“判断”指令的条件是按键“A”按下。

3.如果“判断”指令的条件成立，那么就执行“点阵屏清除”和“点阵屏显示数”指令，设置“点阵屏显示数”指令的参数为“读板载光线传感器”指令。

4.由于需要判断两个条件，因此可以单击“判断”指令左边的设置图标，在打开的设置窗口中，将“否则如果”添加到“如果”的下方，为“判断”指令再添加一个判断条件。设置完成后再单击“判断”指令的设置图标关闭设置窗口。

5.在“判断”指令的“否则如果”条件中，同样添加“读板载按键值”指令，修改该指令的参数为“B”，也就是“否则如果”的判断条件是按键“B”按下。

6.“否则如果”条件成立，那么就执行“点阵屏清除”和“点阵屏显示数”指令，设置“点阵屏显示数”指令的参数为“读板载温度传感器”指令。 具体主程序代码如下图所示：

![](/files/-LWt7X4Q0pR_Oafw8KSr)

#### 想一想：

如果不像上图所示程序这样使用“判断”指令，要用A、B按键控制显示亮度、温度值，还可以怎么编写程序代码？

## 拓展与思考

除了在点阵屏上用数字显示亮度和温度值，你还能够在点阵屏上设计图案，形象的表示环境亮度、温度的适宜程度吗？


# 第五课 在WU-Link中使用加速度计——自制计步器

\[TOC]

WU-Link主板上集成了一块加速度计，可以检测WU-Link在各个方向上的移动。本课将利用这块板载的传感器，编写程序，让WU-Link成为可以累计步数的计步器。

## 模块与指令

要制作本课的范例作品，需要认识以下这些新的模块：

### 加速度计

加速度是描述物体速度变化快慢的物理量。加速度计就是能够检测到这种变化并转化、输出相应数值的传感器。在汽车安全系统、地震检测、游戏控制、佩带式智能设备等很多方面都有广泛的应用。

WU-Link在主板上集成的加速度计型号是“MMA7660FC（如下图所示）。它的大小是3 × 3 × 0.9（毫米），可以检测X、Y、Z三个方向的加速度大小，检测精度是±1.5个重力加速度。

![](/files/-LWt7X4wGteFhqhw9_71)

要制作本课的范例作品，还需要使用以下新的指令：

### “检测到摇晃”指令：

![](/files/-LWtC4np4zYRQWUK_Z-q)

属于“板载”类别指令；可以检测WU-Link有没有被晃动。如果检测到晃动，输出值为“1”；否则为“0”。

### “读板载加速度计”指令：

![](/files/-LWtC4nsk8DC9IflZNoc)

属于“板载”类别指令；可以读取WU-Link在左右(X)、垂直(Y)、前后(Z)三个方向上的加速度数值，可以更加精确的获取WU-Link的运动状态。

指令默认是读取按键“X”方向的值；可以单击打开下拉列表参数，从中选择“X”、"Y"、"Z"这三个选项，选择读取WU-Link在左右、垂直、前后这三个方向上的加速度数值。

## 作品制作

要制作“计步器”，先要通过在WU-Link点阵屏上显示“检测到摇晃”指令的值，了解这个指令的使用方法；然后编写代码，让WU-Link变成一个能够累计走路步数的“计步器”。

### 第一步：在点阵屏上显示是否摇晃

要在点阵屏上显示是否摇晃了WU-Link，可以按以下步骤操作:

1.将“点阵屏”类别中的“点阵屏清除”指令拖动到编程区，与默认的“初始化”指令组合。

2.将“点阵屏”类别中的“点阵屏显示数”指令与“重复执行”指令组合。

3.将“板载”类别中的“检测到摇晃”指令拖动到“点阵屏显示数”指令的参数位置，作为它的参数。

完整的程序代码如下图所示：

![](/files/-LWt7X54ryEqYYP9nL4j)

​

#### 试一试:

将上图所示代码编译后下载到WU-Link，然后按下表要求改变WU-Link的状态，将点阵屏上显示的数值记录下来。想一想，什么状态下显示“1”？什么状态下显示“0”？

![](/files/-LWt7X59BVCU_wdr3lqe)

### 第二步：创建变量并初始化

要在计步器上显示步数，首先需要创建变量用于累计所走的步数。具体可以按以下步骤操作:

1.单击“变量”类别中的“创建变量”按钮，创建新的变量（本课范例程序创建的变量名称是“步数”）。

2.将“变量”类别中的“声明变量类型并赋值”指令拖动到编程区，组合到原有“初始化”指令的“点阵屏清除”指令下方。确认“声明变量类型并赋值”指令所声明的变量名称是“步数”，类型为“整数”。

3.将“数学与逻辑”类别中的“数值”指令拖动组合到“声明变量类型并赋值”指令右边，将所创建的变量"步数"赋值为“0”。

完整的初始化程序代码如下图所示：

![](/files/-LWt7X5DXgWVwzdGzZcJ)

#### 想一想:

“步数”变量为什么要赋值为“0”？可以是其它数吗？为什么？

### 第三步：判断并累计步数

人在走路时，手臂一般都会自然的前后摆动。将WU-Link拿在手上走路，手臂摆动的同时，WU-Link也会跟随摆动。因此可以通过“检测到摇晃”指令来判断是否在走路，再通过数值的累加得到具体的步数。

要实现以上功能，可以按以下步骤编写程序：

1.在“重复执行”指令中添加“控制”类别中的“有条件执行”指令，将“板载”类别中的“检测到摇晃”指令作为“有条件执行”指令的条件。

2.将“变量”类别中的“赋值”指令拖动组合到“有条件执行”指令的执行位置，再将“数字与逻辑”类别中的“数学运算”指令拖动组合到“赋值”指令右边，将该指令参数设置为“步数”变量“+”“1”。

3.删除原有的“点阵屏显示数”指令参数，将该指令参数修改“变量”类别中的“步数”“变量”指令，在点阵屏上显示“步数”变量的值。

具体主程序代码如下图所示：

![](/files/-LWt7X5H80MfrM4gyjb-)

​

#### 试一试:

将以上代码编译后下载到WU-Link，然后将WU-Link拿在手上自然走路，一边走一边心里默数步数，走十步以后和WU-Link上显示的数字比较是否相同？为什么会不同？

### 第四步：让计步器更精确

* 一般人走路时，走一步手臂会自然摆动2次。而上一步所编写的程序中，点阵屏直接显示累加的变量“步数”，是真实步数的2倍，因此应该将“步数”除以“2”后再显示。具体如下图所示:

![](/files/-LWt7X5NDX3Un7CaXDYc)

* 为了进一步提高计步器的精度，还可以在“有条件执行”指令的执行位置再添加“控制”类别中的“延时”指令，设置“延时”指令的参数为“300”毫秒，也就是“0.3”秒。这样间隔“0.3”秒累加一次，可以防止通过故意快速摆动手臂作弊的漏洞。

  完整的主程序代码如下图所示：

![](/files/-LWt7X5Qc8-U6dTl8ja0)

试一试:

“延时”300毫秒是否最合适？你认为应该是多少？

## 拓展与思考

上网搜索专业的计步器软件算法是怎样的？然后进一步修改、调试程序，提高所编写的计步器软件的精确度，使它更具有实用价值。


# 第六课 在WU-Link中使用电子罗盘——指南针来了

\[TOC]

“要是你在野外迷了路”是我们所熟知的一篇小学课文，课文中介绍了四种天然的“指南针”，除此之外，大自然还有一种更为重要的“指南针”——地球的磁场。本课我们将学习如何使用WU-Link内置的电子罗盘，利用地球磁场制作指南针，让WU-Link也有指示方向的功能。

## 模块与指令

**要制作本课的范例作品，需要认识以下这些新的硬件：**

### 电子罗盘

罗盘也叫做指南针、司南，是中国古代四大发明之一。它能够利用地球磁场来指示方向，在航海中的应用非常广泛，可以说哥伦布到达美洲大陆、麦哲伦环球航行成功都离不开罗盘的帮助。

传统的罗盘相对都比较大。随着电子技术的发展，使用磁阻传感器可以生产出非常小巧的电子罗盘，WU-Link内部的电路板上就集成了一块电子罗盘芯片（如下图所示），使得WU-Link也具有识别方向的功能。

![](/files/-LWt7YdryilqSGMhKxJb)

**要制作本课的范例作品，还需要使用以下新的指令：**

### “校准板载指南针”指令：

![](/files/-LWt7YduZzvy1Rv1qbQr)

属于“点阵屏”类别指令；使用这个指令可以校准板载的电子罗盘。

由于地球磁场非常微弱，因此电子罗盘容易受到各种电子产品的干扰。为了提高数据准确性，电子罗盘在使用前一般都需要校准，让电子罗盘的数值更加准确。

### “读板载指南针角度”指令：

![](/files/-LWt7YdwQvJNeGB6CDsb)

属于“点阵屏”类别指令；使用这个指令可以读取板载电子罗盘的角度值。所读取数值的范围是（0-360），将WU-Link正面向上摆放，所读取的角度值和方向之间的关系是：“0”度—正北方、“90”度—正东方、“180”度——正南方、“270”度——正西方。

## 作品制作

要制作指南针，需要先运行校准指令，校准板载的电子罗盘；然后可以在点阵屏上直接显示WU-Link所指示方向的角度值，也可以在点阵屏上显示表示方向的字母。

### 第一步：校准板载电子罗盘

电子罗盘使用之间必须先进行校准。由于校准程序只需要在程序一开始的时候运行一次，因此可以将“校准板载指南针”指令作为“初始化”指令。

电子罗盘的校准过程会自动完成，为了让校准过程操作更加明确，可以在“校准板载指南针”指令前面添加“点阵屏”清除指令和“点阵屏显示文本”指令，修改“点阵屏显示文本”指令的参数为“Go!”；在“校准板载指南针”指令后面再添加“点阵屏”清除指令和“点阵屏显示文本”指令，修改第二个“点阵屏显示文本”指令“的参数为“OK”。这样运行校准指令之前会有提示开始校准程序，完成后也有提示已经完成校准。

具体初始化程序代码如下图所示：

![](/files/-LWt7YdyXWbExVODkcqN)

WU-Link电子罗盘校准操作可以按以下步骤操作：

1. 运行上图所示的校准程序。
2. 程序运行以后，点阵屏会显示“Go!”提示文本，这时让WU-Link在水平位置上旋转（比如放在桌面上旋转）。
3. 旋转一定时间以后（根据周围环境的不同，一般半分钟左右），当点阵屏显示“OK”时，表明电子罗盘校准完成。

#### 想一想：

除了以上介绍的校准提示方法，想一想，你还可以使用什么方法提示操作者开始校准、完成校准？

### 第二步：在点阵屏上显示方向角度值

电子罗盘校准完成后，就可以用它来指示方向。一般可以采用在点阵屏上显示方向角度值的形式指示方向。具体可以按以下步骤操作:

1. 将“点阵屏”类别中的“点阵屏清除”、“点阵屏显示数”指令拖动到编程区，与默认的“重复执行”指令组合，将“板载”类别中的“读板载指南针角度”指令拖动到“点阵屏显示数”指令的参数位置，作为它的参数。
2. 将“控制”类别中的“延时”指令拖动组合到“点阵屏显示数”指令的下方，修改它的参数值为“200”毫秒。

   具体的主程序代码如下图所示：

![](/files/-LWt7Ye-HJjTRtanvm2R)

#### 试一试：

将WU-Link从北面开始，顺时针或者逆时针旋转，观察点阵屏上显示的角度值，你发现有什么规律？

### 第三步：在点阵屏上显示方向字母

WU-Link电子罗盘显示方向的角度值按顺时针方向从0度到360度依次递增。正北方是0度、正东方是90度、正南方是180度、正西方是270度（如下图所示）。

![](/files/-LWt7Ye1xK_SNiDMvJgr)

在WU-Link上显示方向的角度值并不直观，还可以采用显示四个方向英文字母的方式：E（东）、S（南）、W（西）、N（北）。

要在点阵屏上显示这些表示方向的字母，首先需要创建变量保存角度值，然后根据变量值进行判断、显示相应的字母。具体可以按以下步骤操作:

1.单击“变量”类别中的“创建变量”按钮，在打开的“新建变量”对话框中，输入需要创建的变量名称“角度”，最后单击“确定”按钮完成变量创建。

2.变量创建完成后，还需要初始化。将“变量”类别中的“声明变量类型并赋值”指令拖动到编程区，组合到原有初始化指令的下方。确认“声明变量类型并赋值”指令所声明的变量名称是“角度”，类型为“整数”。

3.将“数学与逻辑”类别中的“数值”指令拖动组合到“声明变量类型并赋值”指令右边，将所创建的变量"角度"赋值为“0”。 完整的初始化程序代码如下图所示：

![](/files/-LWt7Ye3HwmwgxSs59cY)

4.将“变量”类别中的“赋值”指令拖动组合到默认的“重复执行”指令里，确认指令第一个参数是“角度”变量，再将“板载”类别中的“读板载指南针角度”指令拖动组合到“赋值”指令最后一个参数的位置，作为它的参数。

5.将“控制”类别中的“有条件执行”指令拖动组合到“赋值”指令的下方；单击指令左上角的“设置”按钮，在打开的设置窗口中，将左边的“否则如果”图标拖动两个组合到右边“如果”图标的下方，再拖动左边的“否则”图标、组合到右边“否则如果”图标的下方（如下图所示）；设置完成后，再次单击指令左上角的“设置”按钮关闭设置窗口。

![](/files/-LWt7Ye585jLd1B6P-ew)

6.将“数学与逻辑”类别中的“逻辑关系”指令作为“有条件执行”指令的条件，确认它是默认的“且”逻辑关系；再添加两个“逻辑比较”指令作为“逻辑关系”指令的两个参数，设置第一个“逻辑比较”指令为“角度”变量“”“45”，第二个“逻辑比较”指令为“角度”变量“≤”“135”。

7.将“点阵屏”类别中的“点阵屏显示文本”指令拖动组合到“有条件执行”指令的执行位置，修改这个指令的文本参数为“E”。

8.右键单击“有条件执行”指令的条件——“逻辑关系”指令，在打开的右键菜单中选择“复制”选项，将复制的“逻辑关系”指令拖动组合到“有条件执行”指令第一个“否则如果”的条件位置，修改这个指令第一个“逻辑比较”指令为“角度”变量“”“135”，第二个“逻辑比较”指令为“角度”变量“≤”“225”。

9.再次单击复制“逻辑关系”指令、添加到“有条件执行”指令第二个“否则如果”的条件位置，修改这个指令第一个“逻辑比较”指令为“角度”变量“”“225”，第二个“逻辑比较”指令为“角度”变量“≤”“315”。

10.复制三个“点阵屏显示文本”指令，添加到两个“否则如果”的执行位置，以及最后的“否则”的执行位置；依次修改这个三个指令的文本参数为“S”、“W”、“N”。 完整的主程序代码如下图所示：

![](/files/-LWt7Ye7ENo8UXRLjRHi)

#### 试一试：

以上程序只能判断、显示四个方向；能不能修改程序，再增加“东南”、“西南”、“西北”、“东北”这四个方向的判断、显示？

## 拓展与思考

“用角度值指示方向”这种方法比较精确，可以准确得知方向的数值；“用字母指示方向”这个方法比较直观，能够马上知道当前的方向。能不能编写一个兼顾这两种方法的程序，用按键根据需要切换显示。


# 第七课 在WU-Link中使用红外传感器——红外电子琴

\[TOC]

红外遥控是一种无线、非接触的控制技术，具有功耗低、成本低、易实现等优点。它在生活中几乎随处可见，比如绝大多数家庭的电视机、空调机，都可以用红外遥控技术控制。本课我们将深入学习了解红外遥控，制作一个可以用红外遥控器控制的电子琴。

## 模块与指令

**要制作本课的范例作品，需要认识以下这些新的硬件：**

### 板载红外遥控系统

一套完整的红外遥控系统由红外发射和红外接收两部分组成。红外发射装置通过红外发光二极管，发出经过编码、调制的红外光波；红外接收装置则通过红外接收二极管，将接收的红外光波转换为原来的编码信息。

在WU-Link点阵屏的上方，板载了一套红外遥控系统，包括两个红外发射模块和一个红外接收模块（如下图所示）。这套板载的红外遥控系统，使得WU-Link不仅能够发射、还能够接收红外编码信息。

![](/files/-LWtC4C2iW0jODmJaVUS)

```
注：红外光波又叫做红外线。我们人眼能够看到的各种光线叫做可见光，除此之外还有不可见光，可见光和不可见光都是电磁波。可见光的光谱包括红、橙、黄、绿、青、蓝、紫七种颜色，波长在0.38um~0.76um之间。而比红色光波更长的不可见光叫做红外光波，它的波长在0.76um~1000um之间。红外光波按波长范围分为近红外、中红外、远红外、极红外四类。一般红外遥控系统使用的是近红外光波传送编码信息，它的波长是0.76um~1.5um。
注：um是一种长度单位，也叫做“微米”。1mm（毫米）=1000um（微米)
```

### 红外遥控器

红外遥控器是一种红外发射装置。遥控器上有很多按键，每个按键都有对应的红外编码，按下按键，遥控器就会通过红外光波将相应的按键编码发射出去。不同厂家的红外遥控器由于编码方式不同，有可能所发射的红外按键编码是不同的，一般相互之间不能通用。

如下左图所示的是创客们常用的一种简易红外遥控器，一共有17个按键，除了0-9这十个数字以外，还包括四个方向键、“OK”键以及“\*”键、“#”键；如下右图所示的是一种电视机顶盒配套的红外遥控器，相比左图的遥控器，按键更多，能够遥控的功能也更多，但一般也都包含了数字键、方向键等常用的按键。

![](/files/-LWtC4C7wjcNwqEMkAkM)

另外还有一种“学习型”红外遥控器，其实这种遥控器内部同时集成了红外发射和接收模块，可以根据实际需要，“学习”不同遥控器的红外按键数值。

### 板载的蜂鸣器模块

蜂鸣器是一种能够发出指定频率声音的装置，WU-Link点阵屏的内部主板上，集成了一个蜂鸣器模块（如下图所示）。蜂鸣器由于结构简单、使用方便，因此在电子产品中应用非常广泛。

![](/files/-LWtC4CAd3Tap9L0ls-h)

```
注：声音是由物体振动产生的声波。它有三个主观属性：音量、音调和音色。音量指人耳感受到的声音强弱，也叫做“响度”；音调指人耳能分辨一个声音调子的高低程度；音色指声音振动频率的特性，不同的物体由于材料、结构不同，发声时的振动频率也不相同，就会产生不同音色的声音。
对于蜂鸣器来说：它的驱动电流决定了所发声音的音量；它的工作频率决定了所发声音的音调；它的内部结构与发声原理决定了所发声音的音色。
```

**要制作本课的范例作品，还需要使用以下新的指令：**

### “读板载红外接收值”指令：

![](/files/-LWtC4CCYrBaU0VvEonD)

属于“板载”类别指令；使用这个指令可以读取WU-Link板载红外接收模块接收到的红外数值。

### “板载红外发射”指令：

![](/files/-LWtC4CENw_ZdHSc0X_q)

属于“板载”类别指令；使用这个指令可以让WU-Link板载红外发射模块发射指定的红外数值。

指令的第一个参数是红外发射的“地址”，一般不需要设置；第二个参数是需要红外发射的“数据”，可以根据需要修改。

### “设置板载蜂鸣器音调”指令：

![](/files/-LWtC4CIy-bVtWWQu614)

属于“板载”类别指令；使用这个指令可以设置板载的蜂鸣器发出指定的音调。

指令默认是发出“低音DO”的声音；可以单击打开下拉列表参数，从中选择具体的音调。

### “设置板载蜂鸣器音量”指令：

![](/files/-LWtC4CKO46YkIvfdrXo)

属于“板载”类别指令；使用这个指令可以设置板载蜂鸣器所发出声音的音量。

指令的参数就是音量值，默认是“10”，取值范围是（0，255），可以根据需要修改；数值越小声音越轻，如果是“0”，就是关闭声音。

### “设置板载蜂鸣器频率”指令：

![](/files/-LWtC4CM80wN_tF54DL0)

属于“板载”类别指令；使用这个指令可以设置板载蜂鸣器发出指定频率的声音——也就是音调。

指令的参数就是频率值，默认是“523Hz”，可以根据需要修改。与“设置板载蜂鸣器音调”指令相比，这个指令更加灵活，除了音符，还可以设置各种声音的音调。

### “创建不带输出值的函数”指令：

![](/files/-LWtC4COHMzFsFownGbd)

属于“函数”类别指令；使用这个指令可以创建一个不带输出值的自定义函数。

指令的参数就是这个自定义函数的名称，默认是“PROCEDURE”，可以根据需要重新设置。函数创建以后，会在“函数”类别中新增一个以这个函数名称命名的指令，用于在程序中调用这个自定义函数。

单击指令左上角的“设置”图标，可以在打开的设置窗口中为所创建的自定义函数添加输入参数。

## 作品制作

要制作用红外遥控器控制的电子琴，除了WU-Link以外，还需要一块红外遥控器。首先编写第一段程序，获取所用红外遥控器各个数字按键的红外编码值； 然后编写第二段程序进行判断：按下遥控器的数字键，WU-Link板载的蜂鸣器演奏相应的音符。

### 第一步：在点阵屏上显示红外遥控器按键编码

要在WU-Link的点阵屏上显示遥控器按键的红外编码，需要先定义变量，用于存贮接收到的红外按键编码数值；然后根据这个变量值进行判断是否为“0”，如果不为“0”，那么就在点阵屏上显示这个变量值——也就是按键的编码值。

具体可以按以下步骤操作:

1. 单击“变量”类别中的“创建变量”按钮，创建“红外编码”变量；在默认的初始化指令中，使用“变量”类别中的“声明变量类型并赋值”指令初始化这个变量类型为“整数”、赋值为“0”。
2. 在“初始化”指令中再添加“点阵屏”类别中的“点阵屏清除”指令，对点阵屏初始化。

   完整的初始化程序代码如下图所示：

![](/files/-LWtC4CQE8MXRZpZUQ3f)

程序初始化完成后，可以在主程序中编写代码，获取接收到的红外编码并显示在WU-Link的点阵屏上。

具体可以按以下步骤操作：

1. 将“变量”类别中的“赋值为”指令拖动到编程区，与默认的“重复执行”指令组合。将“板载”类别中的“读板载红外接收值”指令拖动到“赋值为”指令的参数位置，作为它的参数。
2. 将“控制”类别中的“判断”指令拖动组合到“赋值为”指令的下方；将“数字与逻辑”类别中的“比较”指令作为“有条件执行”指令的条件；设置“比较”指令为“红外编码”变量“≠”“0”。
3. 将“点阵屏”类别中的“点阵屏清除”、“点阵屏显示数”指令拖动组合到“判断”指令的执行位置；设置“点阵屏显示数”的参数为变量“红外编码”。

   具体主程序代码如下图所示：

![](/files/-LWtC4CSiNDKO1K5c4qa)

#### 试一试：

将以上步骤编写的程序代码编译后下载到WU-Link上，然后用遥控器对准WU-Link接收模块，根据下表的要求，将遥控器上的按键红外值记录下来。

![](/files/-LWtC4CUjBT03T_hfI0T)

### 第二步：用红外遥控器控制蜂鸣器演奏音符

要让红外遥控器控制蜂鸣器发声——比如按遥控器上的“1”按键，能够发出“do”的声音。需要对所读取的红外编码数值进行判断：如果变量“红外编码”——也就是读取的红外接收值，等于上一步骤获取的遥控器按键“1”所对应的数值“255”，那么就设置蜂鸣器的音调为“中音do”、音量为“20”、延时为“1000毫秒”——也就是持续发1秒的声音，最后再设置音量为“0”、关闭蜂鸣器。

具体主程序代码如下图所示：

![](/files/-LWtC4CWPX1hxtteE4-V)

```
注：实际编写代码时，应该将上图所示代码中“判断”指令条件值“255”，修改为第一步程序所获取遥控器按键“1”的红外编码值。
```

#### 试一试

1. 除了“中音DO”，你能不能修改代码，让WU-Link演奏其它音符？
2. 如果不使用自定义变量“红外遥控”，直接在“判断”指令的条件参数中使用“读板载红外接收值”指令（如下图所示），还能够演奏音符吗？编译、下载后使用一下，你发现了什么？为什么？

![](/files/-LWtC4CYrmPDzfoWdyIA)

### 第三步：自定义函数演奏多个音符

如果需要蜂鸣器演奏的音符很多，如下图所示演奏“DO、RE、MI”音符的程序代码：

![](/files/-LWtC4C_1qPLEQSKCWSx)

在这段程序代码中，要演奏每个音符，除了需要设置音调以外，还需要包含以下三个指令：

* 第一个“设置蜂鸣器音量”指令让蜂鸣器演奏；
* “延时”指令用于保持一定时长的声音；
* 第二个“设置蜂鸣器音量”指令关闭蜂鸣器。

这样要演奏的音符越多，这些重复的指令也就越多，造成大量的冗余代码。

要解决这类代码冗余问题，可以使用自定义函数，将重复执行的代码放到自定义函数中，使程序代码更加简洁。

具体可以按以下步骤操作：

1. 拖动“函数”类别中的“创建不带输出值的函数”指令到编程区，单击设置函数的名称为“Note”。
2. 将需要重复执行的指令：第一个“设置蜂鸣器音量”指令、“延时”指令、第二个“设置蜂鸣器音量”指令拖动到新建函数的执行位置。

完整的自定义函数“Note”程序代码如下图所示：

![](/files/-LWtC4Cb3p8kRHFI7Dsa)

```
注意：WU-Link程序中的函数名称与变量一样，除了可以使用字母和数字命名以外，也可以使用中文作为变量名，但函数名最好有一定的意义。
```

创建了“Note”函数以后，在“函数”类别中就会增加一个名为“Note”的指令，用它替换原本程序代码中重复的三个指令（如下图所示），可以使程序更为简洁。

![](/files/-LWtC4CdD3W-kZM2UBIZ)

#### 试一试：

1. 进一步完善代码，让遥控器可以演奏其它中音的音调。
2. 除了中音的七个音调，能不能还能够演奏低音、高音的其它音调？

## 拓展与思考

除了使用“设置板载蜂鸣器音调”指令以外，也可以使用“板载”类别中的“设置板载蜂鸣器频率”指令设置需要演奏音符的音调。

声音的频率与C调的音符有如下表所示的对应关系：

![](/files/-LWtC4CfAznZKRZLNUcY)

请参考这张对照表，编写用遥控器演奏音符的程序。

然后想一想：这个程序与以上介绍的、使用“设置板载蜂鸣器音调”指令的程序有什么不同？


# 第八课 Scratch与WU-Link互联互控——物联网点读机

\[TOC]

很多同学都用过英语点读机，今天我们就制作一个“物联网点读机”。这个点读机可以通过Scratch点击，然后通过互联网把相应的信息发送给WU-Link，在WU-Link的点阵屏上显示出来。

## 模块与指令

**要制作本课的范例作品，还需要使用以下新的指令：**

### “物联网-检测到消息”指令：

![](/files/-LWt7XMkVrvBsillQbd1)

属于“物联网”类别指令；使用这个指令可以检测“好好搭搭”物联网服务器上有没有发送给当前绑定WU-Link的消息。如果有消息，指令的返回值为“1”，也就是逻辑值为“真”；如果没有消息，指令的返回值为“0”，也就是逻辑值为“假”。

### “物联网-读取消息”指令：

![](/files/-LWt7XMn-BJt9bRPEOr2)

属于“物联网”类别指令；使用这个指令可以读取“好好搭搭”物联网服务器上发送给当前绑定WU-Link的消息。指令的返回值就是消息内容。

### “给物联网发送消息”指令：

![](/files/-LWt7XMq0vqqkAqlrQy-)

属于“好好搭搭”在线版Scratch物联网扩展指令，必须通过“好好搭搭”网站的Scratch在线编程网页添加。

使用这个指令可以向“好好搭搭”网络服务器发送消息，通过服务器再将消息转发给指令参数指定的WU-Link。

指令的第一个参数是发送对象（也就是接收消息的WU-Link）的MAC地址； 第二个参数是要发送的消息内容。

## 作品制作

物联网点读机分为两个程序：一个是用Scratch编写的，用于向“好好搭搭”物联网服务器发送消息的程序；另一个是用WU-Link编程网页编写的，用于读取“好好搭搭”物联网服务器上消息的程序。

### 第一步：编写读取物联网服务器消息的WU-Link程序

要编写用于读取“好好搭搭”物联网服务器消息的WU-Link程序，首先初始化WU-Link点阵屏； 然后重复进行判断：如果检测到“好好搭搭”物联网服务器上有新的消息，就清除点阵屏原来显示的内容，显示从服务器上读取到的新消息。

具体可以按以下步骤操作：

1.在默认的“初始化”指令中添加“点阵屏”类别中的“点阵屏清除”、“点阵屏显示文本”指令，对点阵屏初始化。

具体的初始化程序代码如下图所示：

![](/files/-LWt7XMulXajZwTT5N1d)

2.将“控制”类别中的“判断”指令拖动组合到“重复执行”指令中；添加这个“判断”指令的条件为“物联网”类别中的“检测到消息”指令。

3.将“点阵屏”类别中的“点阵屏清除”、“点阵屏显示文本”以及“控制”类别中的“延时”指令作为“判断”指令条件成立后执行的脚本。

4.设置“物联网”类别中的“读取消息”指令作为“点阵屏显示文本”指令的参数。

具体的主程序代码如下图所示：

![](/files/-LWt7XMxFy72Ha9FDSEZ)

### 第二步：编写向物联网服务器发送消息的Scratch程序

要编写向“好好搭搭”物联网服务器发送消息的程序，方法很多，下面介绍的是采用Scratch编写的发送消息程序。

首先按以下步骤操作，进入“好好搭搭”Scratch在线编程网页、添加舞台背景图片和角色：

1.进入“好好搭搭”网站“创作”栏目，单击其中的“Scratch”模板缩略图，进入“Scratch模板项目页”。

2.在“Scratch模板项目页”中，单击右上角的“转到设计页”按钮，进入Scratch在线编程网页。

3.在Scratch中，添加名为“room3”的舞台背景图片以及名为“cat1”、“apple”的角色图片，用鼠标将他们拖动到合适的位置。

具体如下图所示：

![](/files/-LWt7XN0TL8-JgKH54Bx)

要在Scratch中编写向“好好搭搭”物联网服务器发送消息的程序，还必须添加“好好搭搭”物联网扩展指令。具体可以按以下步骤操作：

1.单击Scratch编程网页的“脚本”选项卡，再单击“更多模块”中的“添加扩展”按钮（如下图所示）。

![](/files/-LWt7XN233UMJk3BGwez)

2.在打开的如下图所示的对话框中双击“Haodaiot”缩略图。

![](/files/-LWt7XN6kNROKfoZTjh9)

3.在“脚本”选项卡的“更多模块”中，会自动添加三条如下图所示的“好好搭搭”物联网扩展指令。通过这三条指令，Scratch才可以向“好好搭搭”物联网服务器发送或者接收消息。

![](/files/-LWt7XNCuRIBMx1-Tknb)

```
注：“好好搭搭”物联网扩展指令，只能通过“好好搭搭”网站的Scratch在线编程网页添加，如果采用其它版本的Scratch是不能添加的。
```

做好以上准备工作以后，就可以按以下步骤编写程序，向“好好搭搭”物联网服务器发送消息：

1.在“角色列表区”单击“cat1”角色缩略图，添加如下图所示的脚本，让小猫被点击的时候会播放声音、给“好好搭搭”服务器发送消息“Cat”。其中“发送消息”指令就是上一步添加的“好好搭搭”物联网指令，中间的MAC地址参数应该修改为实际绑定WU-Link的MAC地址。

![](/files/-LWt7XNKFXryoLR95uZP)

2.同样再单击为“apple”角色缩略图，添加如下图所示的脚本，当它被点击的时候也播放声音、给“好好搭搭”服务器发送消息“Apple”。同样也需要将指令中的MAC地址修改为实际绑定WU-Link的MAC地址。

![](/files/-LWt7XNN_8yHtVcl5XMH)

#### 试一试：

范例中的两个角色，单击后播放的只是Scratch声音库中的声音，并不是这个单词的读音。能不能在“声音”选项卡中自己录制单词的读音，点击后播放的是这个单词的朗读声。

### 第三步：实际体验“物联网点读机”

通过前面的操作，已经用“好好搭搭”在线版的Scratch，编写了“物联网点读机”的消息发送程序；也在“好好搭搭”网站的WU-Link程序编写网页，编写了显示物联网消息的程序。接下来，可以按以下步骤分别运行这两个程序，体验“物联网点读机”的实际功能：

1. 将WU-Link物联网消息显示程序编译、下载到实际所绑定的WU-Link中。程序运行后，WU-Link会检测“好好搭搭”物联网服务器上有没有新的消息，如果有就会显示。
2. 再运行Scratch编写的消息发送程序，随着单击“cat1”或者“apple”角色，除了会在Scratch程序网页中播放声音，也会在WU-Link点阵屏上同步显示Scratch发送的单词。

#### 试一试：

范例中只有两个角色，能不能再添加其它的角色，让这个物联网点读机更有用？

## 拓展与思考

通过Scratch向WU-Link发送消息，除了可以制作点读机，还可以制作哪些更有趣的应用？


# 第九课 Scratch与WU-Link互联互控――物联网环境监测仪

\[TOC]

在第四课中，我们使用WU-Link制作了一个校园环境自动监测仪，能够监测周围环境的光线强度和温度值。本课我们将在此基础上添加物联网功能，使得监测仪能够将环境数据上传到“好好搭搭”物联网服务器上，然后通过Scratch显示出来。将这样的多个监测仪放置到校园的各个角落，就可以实时监测校园内多个场所的环境。

## 模块与指令

**要制作本课的范例作品，还需要使用以下新的指令：**

### “物联网-上传字符串”指令：

![](/files/-LWt7Y21oF1JUuKcBLss)

属于“物联网”类别指令；使用这个指令可以将指定的字符串上传到“好好搭搭”物联网服务器上。

指令的参数就是需要上传的字符串，默认是“haohaodada”，可以根据需要修改。

### “连接文本”指令：

![](/files/-LWt7Y251kmixpFjvnti)

属于“文本与数组”类别指令；使用这个指令可以将参数中的两个文本连接起来。

指令可以连接两个文本参数，一般最常用的是“文本与数组”类别中的“字符串”、“字符”等指令。

## 作品制作

物联网环境监测仪程序也是由两个程序组成：一个是用WU-Link编程网页编写的，用于检测并且上传亮度、温度值的程序；另一个是用“好好搭搭”网站的在线版Scratch编写的，用于从“好好搭搭”物联网服务器中获取绑定WU-Link上传的字符串、然后显示出来的程序。

### 第一步：编写能够轮替显示环境亮度和温度的WU-Link程序

在第四课中我们已经学过如何在点阵屏上交替显示亮度、温度值。需要先初始化点阵屏、声明两个变量“亮度”、“温度”为“整数”并赋值为“0”；然后在“重复执行”指令中清除旧的点阵屏显示后，将新读取的板载亮度传感器数值赋值给“亮度”变量，再在点阵屏上显示出来，“延时”后再清除点阵屏，将新读取的板载温度传感器数值赋值给“温度”变量，再在点阵屏上显示温度值、最后再“延时”。

完整的程序代码如下图所示：

![](/files/-LWt7Y29PkjSBqJn-r7j)

#### 试一试：

能够同时在点阵屏上显示亮度和温度值吗？

### 第二步：将WU-Link检测到的亮度、温度值发送到物联网服务器

要将WU-Link检测到的亮度、温度值发送到“好好搭搭”物联网服务器上，可以在上一步所编写的“在点阵屏上交替显示亮度、温度值”的主程序中，添加将信息上传到服务器的指令：

具体可以根据以下步骤操作：

1. 在第一个“点阵屏显示数”指令的下方，添加“物联网”类别中的“上传字符串”指令，再在指令的参数位置添加“文本与数组”类别中的“连接文本”指令，设置连接的文本为文本“a0=”和“亮度”变量。
2. 在第二个“点阵屏显示数”指令的下方，再添加“上传字符串”指令、在这个指令参数位置再添加“连接文本”指令，设置连接的文本为文本“a1=”和“温度”变量。

   完整的主程序代码如下图所示：

![](/files/-LWt7Y2DgM6dYRBCC7vZ)

```
注：向“好好搭搭”服务器上传的字符串必须要有一个名称，也就是程序中的“a0”、“a1”，具体名称可以自定义；在这个名称后面必须要用“=”与后面的字符串加以区分。
```

### 第三步：在Scratch上显示WU-Link检测到的亮度、温度值

WU-Link检测并上传到“好好搭搭”物联网服务器上的字符串，可以通过Scratch中的指令读取后显示出来。

具体可以按以下步骤操作：

1.进入“好好搭搭”网站的“创作”栏目，单击其中的“Scratch”模板缩略图，进入“Scratch模板项目页”，再单击网页右上角的“转到设计页”按钮，进入Scratch在线编程网页。

2.在Scratch中，添加名为“school2”的舞台背景图片以及名为“boy1”、“boy4”的角色图片，用鼠标将他们拖放到合适的位置。

具体可以如下图所示：

![](/files/-LWt7Y2INOm7B4sthOF9)

3.单击“脚本”选项卡“更多模块”中的“添加扩展”按钮，在打开的对话框中双击“Haodaiot”缩略图，将“好好搭搭”物联网指令添加到Scratch中。

4.为“boy1”角色添加如下图所示的脚本，将“教学楼的亮度是”文本与获取到的字符串合并在一起、然后用“说”指令显示出来。其中“获取指定MAC地址的值”指令就是新添加的“好好搭搭”物联网指令，中间的MAC指令应该修改为实际绑定WU-Link的MAC地址。

具体的程序脚本如下图所示：

![](/files/-LWt7Y2O5Asziyv52kQc)

5.同样再为“boy4”添加如下图所示的脚本，让他会说“教学楼的温度”值。同样也需要将范例中的MAC地址修改为实际绑定WU-Link的MAC地址。

具体的程序脚本如下图所示：

![](/files/-LWt7Y2SeJJHtJR1jlQk)

### 第四步：实际体验校园环境自动监测仪

通过以上步骤，已经分别编写了亮度、温度值的上传程序和显示程序，可以按以下步骤分别运行这两个程序，实际体验校园环境自动监测仪的功能：

1. 将第二步编写的WU-Link显示、上传亮度、温度值的程序编译、下载到实际所绑定的WU-Link中。运行程序后，WU-Link会不断的在点阵屏上显示亮度、温度值，同时将相关数值上传到“好好搭搭”物联网服务器上。
2. 运行第三步所编写的Scratch程序，如果一切正常，会在舞台上显示从“好好搭搭”物联网服务器上获取的亮度、温度值。

   具体如下图所示：

![](/files/-LWt7Y2VbzBrT-OEPc2t)

#### 试一试：

能不能让一个角色既说亮度值、同时又说温度值？

## 拓展与思考

与同学合作，将多块WU-Link放置到校园的不同地点，然后用Scratch监测这些地点的环境亮度、温度。


# 第十课 WU-Link之间的互联互控——抽签与抢答程序

\[TOC]

WU-Link不仅可以与Scratch互联互控，也可以在WU-Link之间互联互控。今天我们将使用两块甚至多块WU-Link，学习制作“抽签”和“抢答”程序。

## 模块与指令

**要制作本课的范例作品，需要使用以下新的指令：**

### “物联网-发送字符串”指令：

![](/files/-LWt7Xy5mel6r3K4YB9o)

属于“物联网”类别指令；使用这个指令可以将指定的字符串发送给指定MAC地址的WU-Link。

指令的第一个参数是需要发送的字符串；第二个参数是接收字符串的另一块WU-Link的MAC地址。

### “物联网-发送数值”指令：

![](/files/-LWt7XyAjaKDx9ALlsHR)

属于“物联网”类别指令；使用这个指令可以将指定的数值发送给指定MAC地址的WU-Link。

指令的第一个参数是需要发送的数值；第二个参数是接收数值的另一块WU-Link的MAC地址。

### “物联网-从消息中读取数”指令：

![](/files/-LWt7XyDZfGh05Mt5gYF)

属于“物联网”类别指令；使用这个指令可以从获取的物联网消息中读取数。

指令的参数就是从物联网获取的消息，一般使用“物联网”类别中的“物联网读取消息”指令。

## 作品制作

我们将通过制作三个范例来了解如何在WU-Link之间进行互联互控。范例一是一块WU-Link作为“发送端”，向另一块“接收端”的WU-Link发送消息；范例二也是一块WU-Link作为“发送端”，但可以向多块“接收端”的WU-Link发送消息；范例三则是多块WU-Link作为“发送端”，向一块“接收端”的WU-Link发送消息。

### 第一步：一块WU-Link向另一块WU-Link发送消息

要编写一块WU-Link向另一块WU-Link发送消息的程序，需要两块WU-Link：一块运行“发送端”程序，将消息发送出去；另一块运行“接收端”程序，接收并将消息显示出来。

具体可以按以下步骤编写程序：

1.编写“发送端”的“初始化”脚本。

使用“点阵屏清除”指令清除WU-Link点阵屏、使用“点阵屏显示文本”指令显示“Go!”，表明程序已经开始运行。

具体初始化程序代码如下图所示：

![](/files/-LWt7XyGs0lfJwip7D4y)

2.编写“发送端”的“主程序”脚本。

在“重复执行”指令中进行条件判断：如果按下了板载的按键“B”，就通过网络向指定MAC地址的另一块WU-Link发送字符串“Hello”；然后清除点阵屏、显示“OK”，表明消息已经发送完成；最后延时1秒、重新清除点阵屏、显示“Go!”，重新处于判断有没有按下按键的状态。

具体主程序代码如下图所示：

![](/files/-LWt7XyME4Z71u5f1rMu)

```
   注意：实际编写程序时，必须将“物联网-发送字符串”指令中的第二个参数，更改为实际用于接收信息那块WU-Link的MAC地址。
```

​

3.编写“接收端”的“初始化”脚本。

同样也是清除WU-Link点阵屏、显示“Go!”，表明程序已经开始运行。

具体初始化程序代码如下图所示：

![](/files/-LWt7XyQ8QnVthdftwAd)

​

4.编写“接收端”的“主程序”脚本。

在“重复执行”指令中进行条件判断：如果检测到网络上有发给自己的消息，就清除点阵屏、显示从服务器上读取的消息；然后延时1秒、重新清除点阵屏、显示“Go!”，重新处于判断有没有检测到消息的状态。

具体主程序代码如下图所示：

![](/files/-LWt7XyTtBz5_6hikU6F)

​

#### 试一试：

1. 将以上程序分别下载到用于发送和用于接收的两块WU-Link中，然后按下“发送端”WU-Link的按键“B”，看看“接收端”WU-Link上是否显示了1秒的“Hello”?
2. 除了发送文本信息，能不能发送数字信息？程序应该如何修改？

### 第二步：一块WU-Link向多块WU-Link发送消息

一块WU-Link向多块WU-Link发送消息，最典型的应用就是“抽签”程序。

下文步骤中制作的这个“抽签”程序共使用了四块WU-Link：其中一块WU-LinkWU-Link由教师使用，运行“发送端”程序，将随机产生的数——也就是抽中学生的编号消息发送出去；另外三块WU-Link由三位学生使用，运行“接收端”程序，接收并显示教师WU-Link发送过来的编号消息。

1.编写教师使用的“发送端”“初始化”脚本。

首先单击“变量”类别中的“创建变量”按钮，创建一个名为“编号”的变量，用于存贮学生的编号；然后在“初始化”脚本中清除WU-Link点阵屏、显示“Go!”，使用“声明并赋值”指令声明“编号”变量的数据类型为“整数”、赋值为“0”。

具体初始化程序代码如下图所示：

![](/files/-LWt7XyV6xz70epkWMZp)

​

2.编写教师使用的“发送端”“主程序”脚本。

在“重复执行”指令中进行条件判断：如果按下了板载的按键“B”，就在“1，2，3”这三个数中产生一个随机数（也就是在三个学生中抽中一个学生）并将这个数赋值给“编号”变量；然后在点阵屏上显示这个数并将这个数发送到三块指定MAC地址的WU-Link上；最后延时1秒以后清除点阵屏、重新显示“Go!”，等待重新按“A”按键再次抽签。

具体主程序代码如下图所示：

![](/files/-LWt7XyXaM1YtY9wu89j)

```
   注意：实际编写程序时，应该根据具体参与抽签的WU-Link数量修改“随机数”指令参数、增删“物联网-发送数”指令的数量、将这些指令中的第二个参数更改为实际用于接收消息WU-Link的MAC地址。
```

3.编写学生使用的“接收端”的“初始化”脚本。

同样也是先创建“编号”变量，用于存贮从网络上接收到编号消息；然后在“初始化”脚本中清除WU-Link点阵屏、显示“Go!”、声明“编号”变量的数据类型为“整数”并赋值为“0”。

具体初始化程序代码如下图所示：

![](/files/-LWt7Xy_OAKMYDI0N2hk)

4.编写学生使用的“接收端”“主程序”脚本。

在“重复执行”指令中进行条件判断：如果检测到网络上有发给自己的消息，就使用“物联网-从消息中读取数值”和“物联网-读取消息”指令，从网络上读取的消息中读取数值，并把这个数赋值给“编号”变量；然后再对“编号”变量进行判断，当它“不等于”“0”时（说明从网络上接收到的是抽中的学生编号），清除点阵屏、显示“编号”变量。

具体主程序代码如下图所示：

![](/files/-LWt7XybL-IFv8GMA-gC)

#### 试一试：

与两个以上的同学合作（合作的人数越多越有趣），确定一块WU-Link用于抽签、发送抽中的数，另外几块WU-Link用于接收、显示抽中的数，然后根据实际情况修改范例中的指令参数、将修改后的程序分别下载到这些WU-Link中，看看“发送端”和“接收端”的WU-Link是否运行正常。

### 第三步：多块WU-Link向一块WU-Link发送消息

多块WU-Link向一块WU-Link发送消息，最典型的应用就是“抢答”程序。

下文步骤中制作的这个“抢答”程序也使用了四块WU-Link：其中三块WU-Link由三位学生使用，运行“发送端”程序，当学生按下发送按键时向教师所用的WU-Link发送信息、参与抢答；最后一块WU-Link由教师使用，运行“接收端”程序，用于接收判断学生发送过来的消息、显示抢答成功的学生编号。

1.编写学生使用的“发送端”“初始化”脚本。

也是先创建一个名为“编号”的变量，用于存贮学生编号；然后在“初始化”脚本中清除WU-Link点阵屏、显示“Go!”、声明变量“编号”的数据类型为“整数”并赋值为“1”。

具体初始化程序代码如下图所示：

![](/files/-LWt7XydzxGowi3OyJmY)

```
   注意：实际在将以上程序下载到WU-Link之前，还必须修改“编号”变量的赋值。第一块学生使用的WU-Link“编号”变量赋值为“1”、第二块学生使用的WU-Link“编号”变量赋值为“2”……（依次类推）
```

​

2.编写学生使用的“发送端”“主程序”脚本。

在“重复执行”指令中进行条件判断：如果按下了板载的按键“B”，就将“编号”变量值发送到指定MAC地址的WU-Link上（也就是教师所用的WU-Link），然后清除点阵屏、显示所发送的“编号”信息；如果按下了板载的按键“A”，就清除点阵屏、显示“Go!”，重新开始参与抢答。

具体主程序代码如下图所示：

![](/files/-LWt7XyfC1pb2APYKmYB)

```
   注意：实际编写程序时，必须将“物联网-发送字符串”指令中的第二个参数，更改为实际用于接收信息那块WU-Link（也就是教师所用的WU-Link）的MAC地址。
```

​

3.编写教师使用的“接收端”“初始化”脚本。

先创建两个变量——“编号”变量和“标记”变量，“编号”变量用于存贮从学生WU-Link上接收到的编号消息、“标记”变量用于标记当前是否处于学生抢答环节；然后在“初始化”脚本中清除点阵屏、显示“Go!”文本信息、声明所创建的两个变量的数据类型都是“整数”、同时都赋值为“0”。

具体初始化程序代码如下图所示：

![](/files/-LWt7XyheEeWxKWGJANw)

4.编写教师使用的“接收端”“主程序”脚本。

在“重复执行”指令中进行条件判断：如果检测到网络上有发给自己的消息，就使用“物联网-从消息中读取数值”和“物联网-读取消息”指令，从读取的消息中读取出数值，并把这个数赋值给“编号”变量；然后再进行条件判断：如果“编号”变量的值“不等于”“0”（说明接收到的消息中有学生编号）、同时“标记”变量的值“等于”“1”（说明当前处于抢答状态），那么清除点阵屏、显示“编号”变量（也就是成功抢答学生的编号）、赋值“标记”变量为“0”（也就是结束抢答、不接收学生发过来的消息）。最后再增加一个“条件判断”指令：如果按下了板载的按键“A”，就清除点阵屏、显示“Go!”，重新赋值“编号”变量为“0”（清除原有消息数据）、“标记”变量为“1”（设置处于抢答状态），重新开始抢答。

具体主程序代码如下图所示：

![](/files/-LWt7Xyj9PrwZQECUN8n)

#### 试一试：

与两个以上的同学合作（合作的人数越多越有趣），确定一块WU-Link接收消息、判断抢答结果，另外几块WU-Link用于发送消息、参与抢答；然后根据实际情况修改范例中的指令参数、将修改后的程序分别下载到这些WU-Link中，看看抢答程序是否运行正常。

## 拓展与思考

能不能对“抢答”程序进一步完善，由教师统一控制整个抢答过程：

1. 教师端和学生端初始化完成后都在点阵屏上显示“REDY”，同时蜂鸣器鸣叫一声表明程序初始化完成；
2. 教师端按板载按键“A”以后，教师端和学生端WU-Link点阵屏都显示“Go!”、蜂鸣器鸣叫两声表明可以开始抢答；
3. 开始抢答以后，学生端可以按板载按键“B”参与抢答，按下后点阵屏显示“OK”、蜂鸣器鸣叫一声表明抢答完成，已经向教师端发送消息；
4. 开始抢答以后，教师端接收学生发送的消息并进行判断，当接收到第一个有效抢答学生的编号时结束抢答，在教师端和学生端WU-Link点阵屏都显示抢答成功学生的编号，同时蜂鸣器鸣叫三声表明抢答结束。


# 阅读材料一：WU-Link的无线网络连接设置

\[TOC]

WU-Link是基于物联网技术设计、开发的一套“造物”套件。它不需要数据线，只要处于开机状态并且通过无线网络接入互联网，那么无论身处何地都可以对它进行编程、控制。

由于WU-Link是基于物联网的，因此它应该在拥有良好无线网络接入的环境中使用，使用之前首先需要设置接入无线网络。

设置WU-Link接入无线网络主要有两种方式：Web网页配置方式和微信公众号配置方式。可以根据实际情况选择一种合适的方式设置。

## 通过Web方式配置无线网络连接

通过Web方式配置WU-Link连接无线网络，需要一台有无线网卡的智能终端设备：比如笔记本电脑、平板电脑或者手机。下面就以笔记本电脑为例，介绍具体的操作步骤：

1.确保WU-Link处于关机状态，然后用右手大拇指按住面板上的“B”键的同时、用左手大拇指按一下电源开关，打开电源（如下图所示）；WU-Link的红色电源指示灯会点亮、蜂鸣器响一声，提示WU-Link进入了配置模式；最后松开右手。

![](/files/-LWt7Yl6xA19qvzGXNLD)

2.WU-Link在配置模式状态下，本身会成为一个无线热点，这个无线热点的名称是由“haohaodada”开头、再加上这块WU-Link的mac地址组成的，可以用笔记本电脑搜索这个无线热点（如下图所示）。

![](/files/-LWt7Yl9yfv8DjdFl7wt)

3.搜索到WU-Link的无线热点以后，选择加入这个热点，在询问热点的连接密码时输入“haohaodada”（如下图所示）。

![](/files/-LWt7YlBCa-mV8lTmkZH)

4.WU-Link的无线热点连接成功后，就可以进入Web配置网页：打开网页浏览器，在地址栏中输入网址：192.168.4.1，打开如下图所示的网页：

![](/files/-LWt7YlDsSDMaf40hqsU)

5.首先单击上图a-4所示的下拉列表，选择所要连接的无线网络名称；如果在下拉列表中没有找到，可以在下方的第一个文本框内手工输入这个无线网络名称。然后在第二个文本框内输入所要连接无线网络的密码。最后单击“提交”按钮，打开如下图所示网页。

![](/files/-LWt7YlFToReHqq1vgRE)

6.按以上步骤设置并提交WU-Link所要连接的无线网络信息后，WU-Link的网络指示灯会呈红色闪烁状态、同时蜂鸣器持续鸣叫。如果一切顺利，稍等片刻后，WU-Link的网络指示灯变为蓝色常亮、蜂鸣器也会停止鸣叫，就代表WU-Link已成功接入了无线网络。

## 通过微信公众号配置

WU-Link也可以通过微信公众号的方式设置接入无线网络。下面就以手机操作为例，介绍具体的操作步骤：

1.单击WU-Link电源按钮，打开电源。WU-Link会试图去连接本地无线网络，当连接失败后，自动进入等待微信配置模式。此时WU-Link网络指示灯为红色慢闪状态、蜂鸣器持续鸣叫。

2.确认手机已经正常接入所要连接的无线网络、已经安装“微信”APP。

3.打开手机微信，使用“扫一扫”功能，扫描WU-Link背板上的二维码（如下左图a-6所示），

![](/files/-LWt7YlHsolYiHNXqvfv)

4.扫描二维码以后，根据提示关注“好好搭搭”微信公众号（如下图所示）。

![](/files/-LWt7YlJo0Ax2UWrSBLJ)

5.进入“好好搭搭”微信公众号，单击底部工具栏中的“WU-Link”→“WIFI配置”选项（如下图所示）；

![](/files/-LWt7YlLxHjrRxMNwn2_)

6.打开“WIFI配置”网页（如下右图a-9所示）。

![](/files/-LWt7YlN02POzySlzUs2)

7.单击“WIFI配置”网页下方的“开始配置”按钮，在打开的“配置设备上网”网页中确认所要连接无线网络的名称，在“Wi-Fi密码”文本框中输入无线网络的连接密码，最后单击“连接”按钮（如下图所示）。

![](/files/-LWt7YlP99QM-c-lsdQV)

8.等待一段时间后，WU-Link联网指示灯变为蓝色常亮之后，就代表WU-Link已经成功接入了无线网络。


# 阅读材料二：添加并绑定设备

将WU-Link接入无线网络后，如果是第一次使用WU-Link，还需要将WU-Link绑定到指定的账号。通过绑定，可以使得WU-Link和特定的账号相对应，用这个账号登录网页编写的程序，才能编译下载到绑定的WU-Link中。

1.打开浏览器，进入“好好搭搭”网站（haohaodada.com），然后单击网站右上角的“登录”按钮登录网站（如果没有账号，可以先单击“加入”按钮免费注册）。

2.登录完成后，单击网站浏览器地址栏，在地址栏中输入“haohaodada.com/wulink”，进入WU-Link编程网页。

3.单击网页上方“工具栏”→“设备列表”中的“添加”按钮，打开如下图a-11所示的“添加新设备”对话框。在这个对话框的“序列号”文本框中输入所要绑定WU-Link的mac地址（印刷在WU-Link的背面，“好好搭搭”公众号二维码的边上）。最后单击“添加”按钮关闭这个对话框。

![](/files/-LWt7YC5pfxjgzYn8BYm)

4.如果输入的mac地址正确，在编程网页上方“工具栏”→“设备列表”中，可以看到这块WU-Link的mac地址。今后使用这个账号编写的程序，默认都会编译、下载到这块WU-Link。


# Scratch传感器板

## 概述

好搭Scratch传感器板，是一款可以让Scratch动画和各种传感器交互的硬件，做出更加生动有趣的互动动画项目。好搭Scratch传感器板是一个让孩子从Scratch动画编程过渡到Scratch硬件编程的桥梁。

![](/files/-LY_lgLw9yq4ArEhNRMt)

也可以点击链接[宣传视频](http://haohaodada.com/art_show.php?id=157)

配套教材进入[好好搭搭淘宝店](https://shop117278445.taobao.com)，搜索基于Scratch的传感器板编程。

## 参数

* 32位ARM芯片
* 光线传感器
* 声音传感器
* 按钮
* 滑杆
* 摇杆
* LED灯x3
* 蜂鸣器
* 3路模拟输入扩展端口
* 一路通讯扩展端口
* 110x60x38mm
* 工作电压：DC5V

## 接口说明

![](/files/-LWK69XECyTU8LEvam4F)

## 使用方式

1.浏览器（不支持IE）登入“好好搭搭”网站（haohaodada.com），单击网站首页右上角的“登录”按钮，进行用户登录（如果没有账号，请先注册）。

2.使用USB线，将传感器板与计算机连接起来。连接正常时会有提示音响起，LED灯闪烁，“Power”LED长亮。

3.下载[好好搭搭插件](http://www.haohaodada.com/haohaodada_setup.exe) ，插件安装说明移步[好好搭搭插件说明](http://www.haohaodada.com/haohaodada_setup.exe)

4.打开

![](/files/-LXHWOc6tOXWPZn8oDcf)

（全程不能关闭）

![](/files/-LWK69XKR41pIwqOGe9V)

点击“连接”按钮，此时右下角仍显示“未连接”，正常。串口会自动选择为传感器板对应的串口，COM后接的数字不同电脑可能不一样。

5.单击“创作”按钮，选择“传感器板互动编程”

![](/files/-LrgR3OEAa226hs_xJlw)

进入“好搭传感器板”

![](/files/-LrgRGMmxQvUvRS2Bwv9)

6.点击“绿旗”图标，连接成功后，舞台中的传感器数值会不断跳动，插件右下角显示“已连接”。如不成功，请重复点击插件“连接”按钮——点击编程模板“绿旗”图标。

![](/files/-LrgRLMChXtXVEafMhIO)

![](/files/-LWK69XSxF4Z6d48SJD6)

7.点击“转到设计页”进入

![](/files/-LrgRTc0qu-2_C1E9xJ9)

![](/files/-LrgRgPI2puI1pmeKpJm)

## 常见问题

Q: 如何选择串口号（COM口）？

A:先连接传感器板，后打开在线编程插件，插件会自动选择正确的串口。

Q：使用过程中传感器板与电脑的连接丢失。

A：按顺序操作：

（1）关闭“在线编程插件”和所有错误提示弹窗；

（2）拔掉USB线，重新插上；

（3）打开“在线编程插件”，点击“连接按钮”。

## 注意事项

1.在工作过程中，切勿使其接触水、湿气或放在导电表面上；

2.好搭传感器板在室温下可正常工作，请勿靠近任何热源；

3.为预防静电损坏，在冬天干燥环境下可先用手触摸金属物体释放人体静电。

## 课程

{% content-ref url="/pages/-LWnXzWUiBD5xqYZsYyZ" %}
[基于Scratch的传感器板编程](/zai-xian-ru-men-ke-cheng/scratch-sensor-board-primer)
{% endcontent-ref %}


# 好搭Box

## 概述

![](/files/-LXNcpcv4p7CRi342X0v)

好搭BOX智能实验箱是一款定位于Scratch趣味编程课程与开源硬件课程之间的教育产品，是目前市场中最简单的硬件编程类产品。收纳方便的特点，非常适合大班教学。

## 参数

* 尺        寸：210 x 165 x 35mm
* 连接方式：磁性连接
* 电池容量：2000mA
* 充电电流：DC 5V 1A
* 下载方式：无线下载
* 内置程序：7种
* 模块数量：15种

## 清单

![](/files/-LWK5kDlk7e3SWjX35Ti)

![](/files/-LWK5kDn3jlchY05rwFm)

## 模块说明

![](/files/-LWK5kDpaT9bS9yDuTLu)

![](/files/-LWK5kDrofpe8NgMuZE9)

![](/files/-LWK5kDt7W8zDl4YL1R9)

![](/files/-LWK5kDv4HnTuzASLeyu)

![](/files/-LWK5kDxoNvSXQA2Wa_X)

## 侧边功能区

![](/files/-LWK5kDz55MbxS6S2yVw)

## 指示灯说明

![](/files/-LWK5kE00T8q4-4db2KU)

![](/files/-LWK5kE2Rqmk49MsnzsM)

## 网络配置

![](/files/-LWK5kE4_nBmiMYtKmFZ)

## 编程下载

1.进入新版好好搭搭网站“创作”界面，下拉选择无线下载模式编程中的“好搭BOX智能实验箱”，点击进入好搭BOX编程界面。

![](/files/-LrgVK7Blr-Mi3NNwHkB)

2.进入好搭BOX编程界面，添加设备。

![](/files/-LrgVm_weTaWqcNrfLoO)

3.编写程序，点击下载到设备。程序下载成功后，好搭BOX的LED模块上红灯闪烁。

![](/files/-LrgWNEj3xj5mMva-qJz)

示例程序：

![](/files/-LrgX3wrmH4mjS2aXLqc)

## 课程

## 常见问题


# Nova电子积木

## 概述

NOVA是基于Arduino开源硬件的基础优化而来，主要的特点是采用好搭定制32位芯片和2510防反插接口，把Arduino的引脚概念，重新布局抽象出端口的概念，并且端口都用不同颜色来区分功能。

具体可以看下NOVA主板的介绍

{% content-ref url="/pages/-LWFotyrgtSSo5bvdxZi" %}
[Nduino HD](/jiao-xue-chan-pin/nova-module/nduino-hd)
{% endcontent-ref %}

通过这样的优化处理后，相比与Arduino来说有如下几个优点：

* 接线方便，适合大班上课；
* 方便与结构件固定；
* 双串口功能，不会出现串口占用，程序下不进的情况；
* 最大能同时带动8个大电流舵机+8个小电流舵机；
* 最大支持4个直流电机/4个步进电机/2个编码电机；
* 驱动安装简单，适合国内情况；
* 红外、蜂鸣、舵机、电机可同时使用，不会出现定时器冲突；
* 2510接口不封闭，可以很好的兼容通用Arduino模块。

## 设计NOVA的初衷

在这个创意最宝贵的时代，Nova能快速的实现你 的创意，让创意不止步于脑海。

## 课程

{% content-ref url="/pages/-LWFUUFgqsJjoVMcxhNC" %}
[基于Scratch的Nova智能造物入门](/zai-xian-ru-men-ke-cheng/scratch-arduino-primer)
{% endcontent-ref %}


# Nduino HD

## 概述

![](/files/-LWFouNzIHCGSxuf9X87)

Nova是一款专门面向少年儿童创客设计、开发的开源硬件，使用它可以非常方便、快速的造物，制作各种智能装置。和Arduino开源硬件的区别是，更适合入门，能让孩子快速的实现创意，而不是被一些接线等奇奇怪怪的问题搞的失去兴趣。可以作为学过Scratch传感器板后的进阶套件。

## 特点

* 用颜色重新定义的防反插接口
* 优化电源设计，最大限度保证稳定性
* 卡槽外形设计，适配激光切割结构件

## 参数

* 输入电压：6-12V
* 输出能力：5V 1.5A
* 控制芯片：32位好搭定制ARM芯片&#x20;
* 尺        寸：66 x 55 x 15 mm(L x W x H)

## 接口说明

![](/files/-LWFouO0mqLj7_HLo1U9)

1.白色接口模块可以连接Nduino 的白色接口S0-S3，也可以连接主控板的黑色接口A0-A3；

2.黑色接口模块只能连接Nduino 的黑色接口A0-A3。

3.红色接口模块连接Nduino 的红色接口。

## 供电方案

1.Micro USB 连接可以为Nduino 提供5V 电压和最大500mA 电流。

2.由电源适配器（9V1A）或外接电池（电压6V 以上）供电，红色端口的电源VE等于外接电源电压。

## 教程

{% file src="/files/-LrCMlISaVQ1HD8J2Cpr" %}
NOVA标准课程教程
{% endfile %}

## 原理图

{% file src="/files/-LrCNdAq8YwromutR4GU" %}
Nduino HD 原理图
{% endfile %}


# Nduino BOT

![](/files/-LWJUj__cyDN-fnNdFgC)

## 概述

Nduino Bot主板是专为小车而设计，在延续了HD主板设计理念的同时，集成了锂电池管理、红外接收、蜂鸣器、双路电机驱动、启动按键、电源开关。

## 参数

* 输入电压：3.7V锂电池
* 输出能力：5V 1A
* 控制芯片：32位好搭定制ARM芯片&#x20;
* 尺        寸：66 x 55 x 15 mm(L x W x H)

## 接口说明

![](/files/-LWJUj_be0r1EVMXu4yb)

## 接线方式

![](/files/-LWJUj_dabiJx2UbPX9f)

## 编程界面

[Nova小车编程模板](http://haohaodada.com/show.php?id=581529)

## 相关资源

{% file src="/files/-LrCP-TaoLhdodfvMRoc" %}
NOVA智能小车V3.0使用说明书
{% endfile %}

{% file src="/files/-LrCPOw7IEuspe5q58cw" %}
基于Scratch的智能小车编程-V4
{% endfile %}

## 常见问题


# Nduino-Wulink

## 概述

Nduino-Wulink是在nova的BOT板的基础之上，增加了无线网卡，集云编程、无线下载、物联网通讯功能于一体，还将原来的USB下载模式改为U盘下载模式，不仅可以快速造物，还能进行物联网开发，使用更加方便有趣。

## 特色

* 用颜色定义的防反插接口
* 优化电源设计，最大限度保证稳定性
* 物联网相关设置通讯简单，便于快速上手

## 参数

* 输入电压：3.7V锂电池
* 输出能力：5V 1A
* 控制芯片：32位好搭定制ARM芯片&#x20;
* 尺        寸：70 x 54 x 15 mm(L x W x H)

## 接口说明

1.白色接口模块可以连接Nduino-Wulink的白色接口S0-S3，也可以连接主控板的黑色接口A0-A3；

2.黑色接口模块只能连接Nduino-Wulink的黑色接口A0-A3。

3.红色接口模块连接Nduino-Wulink的红色接口。

## 供电方式

1.Micro USB 连接供电。

2.3.7v锂电池供电。

## 使用方式

进入好好搭搭新版网站并进入创作界面，选择WULink-Nova编程界面。

![](/files/-Ls_uAjHdKAQtxuocT2J)

![](/files/-Ls_uKJBayIrrRZxT8bF)

Nduino-Wulink下载程序有wifi下载和U盘下载两种模式。

wifi下载模式：

1.连接wifi下载模块。

2.进行网络配置，按住WIFI配置键开机，蜂鸣器响一声，WIFI配置指示灯红色常亮，再按一下WIFI配置键，蜂鸣器长响一声，设备进入WIFI配置模式，进入好好搭搭微信公众号的好搭物联网小程序进行配置，配置成功后指示灯变蓝色。进行网络配置，按住WIFI配置键开机，蜂鸣器响一声，WIFI配置指示灯红色常亮，进入好好搭搭微信公众号的好搭物联网小程序进行配置，配置成功后指示灯变蓝色。

3.配置成功后，回到编程界面，添加设备mac地址，编写程序并点击“无线下载”，程序下载成功后浏览器弹出对话框提示下载成功，设备蜂鸣器滴滴滴响几声，即下载程序成功。

![](/files/-Ls_zTvShaxPyAal536y)

U盘下载模式：

1.将主板与电脑连接，电脑显示U盘：

![](/files/-LbR97njjdlOwbphTIij)

2.回到编程界面，编写程序，点击“U盘下载”选择下载路径为haohaodada U盘，点击保存即可下载。

![](/files/-Ls_wDBi2PhLMuB3Qxm8)

## 原理图

## 常见问题

1.微信配置不上网络

请尝试用WEB方式配置。

2.配置网络的原理是什么

通过手机把我们的路由器的网络账号告诉WU-Link，让她能顺利的连上网络

3.一个路由器最多能带几台设备

一般路由建议不要超过10台设备。

4.怎么解绑MAC地址 在原来绑定的账号里删除即可，如果忘记原来帐号，请联系技术支持。


# LED

## 概述

Nova的LED模块主要实现LED灯的亮度的控制。

## 参数

* 尺寸：40x23mm
* 工作电压：+3.3-5V
* 类型：数字模式
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3、S0、S1、S2、S3

## 使用方式

![](/files/-LWJerIe_rHTec_kJa55)

## 示例代码

![](/files/-LWJerIgGxxPxhgdHQGs)

[LED模块示例代码 ](http://www.haohaodada.com/show.php?id=946933)

## 原理图

{% file src="/files/-LrCRH-Suw8pfiEMo-07" %}
LED灯模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJerIitLh4U7ExO0pw)

## 常见问题


# 蜂鸣器模块

## 概述

NOVA的蜂鸣器模块，为无源蜂鸣器，根据输入的频率不同，产生不同的声音。蜂鸣器的工作原理是利用电磁感应现象，为音圈接入交变电流后形成的电磁铁与永磁铁相吸或相斥而推动振膜发声，接入直流电只能持续推动振膜而无法产生声音，只能在接通或断开时产生声音。

## 参数

* 尺寸：40x23mm
* 电源要求：+5V
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： S0、S1、S2、S3

## 使用方式

![](/files/-LWJlKfxZjCyvhOHLp5F)

## 示例代码

![](/files/-LWJlKfzNa9CVO3An3s5)

[蜂鸣器模块示例代码](http://www.haohaodada.com/show.php?id=947657)

## 原理图

{% file src="/files/-LrCRXPFklvMHJ4tJqHK" %}
蜂鸣器模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlKg0sztNpiOE_MVH)

## 常见问题


# RGB模块

## 概述

Nova的RGB模块主要实现LED灯的各种颜色、亮度的控制，从而产生绚丽的灯光效果。 RGB灯采用WS2812B，它是一个集控制电路与发光电路于一体的智能外控LED光源，5050封装，每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和可编程定电流控制部分，有效保证了像素点光的颜色高度一致。数据协议采用单线归零码的通讯方式，像素点在上电复位以后，DIN端接受从控制器传输过来的数据，首先送过来的24bit数据被第一个像素点提取后，送到像素点内部的数据锁存器，剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点，每经过一个像素点的传输，信号减少24bit。像素点采用自动整形转发技术，使得该像素点的级联个数不受信号传送的限制，仅仅受限信号传输速度要求。 LED具有低电压驱动，环保节能，亮度高，散射角度大，一致性好，超低功率，超长寿命等优点。将控制电路集成于LED上面，电路变得更加简单，体积小，安装更加简便。

## 参数

* 尺寸：40x23mm
* 电源要求：3.5-5.3V
* 逻辑输入电压：-0.5-VDD+0.5V
* 工作温度-25-80℃
* 振荡频率典型值800KHz
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3、S0、S1、S2、S3

## 使用方式

![](/files/-LWJhhCPinnIjI29P1eh)

## 示例代码

![](/files/-LWJhhCRhldy56MO4nML)

[RGB模块示例代码](http://www.haohaodada.com/show.php?id=947337)

## 原理图

{% file src="/files/-LrCRvYVsVP\_0R-a3OZ3" %}
RGB灯模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJhhCTcvS0441fbH-u)

## 常见问题


# RGB灯带模块

## 概述

Nova的RGB模块主要实现LED灯的各种颜色、亮度的控制，从而产生绚丽的灯光效果。 RGB灯采用WS2812B，它是一个集控制电路与发光电路于一体的智能外控LED光源，5050封装，每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和可编程定电流控制部分，有效保证了像素点光的颜色高度一致。数据协议采用单线归零码的通讯方式，像素点在上电复位以后，DIN端接受从控制器传输过来的数据，首先送过来的24bit数据被第一个像素点提取后，送到像素点内部的数据锁存器，剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点，每经过一个像素点的传输，信号减少24bit。像素点采用自动整形转发技术，使得该像素点的级联个数不受信号传送的限制，仅仅受限信号传输速度要求。 LED具有低电压驱动，环保节能，亮度高，散射角度大，一致性好，超低功率，超长寿命等优点。将控制电路集成于LED上面，电路变得更加简单，体积小，安装更加简便。

![](/files/-Lqjz1vf1P2NhYQWoVt5)

## 参数

* 尺寸：1米
* 电源要求：+5V
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3、S0、S1、S2、S3

## 使用方式

连接灯带与可用端口

## 示例代码

![](/files/-LXMd0V39-rx0fjOg1uD)

[RGB灯带模块示例代码](http://www.haohaodada.com/show.php?id=947363)

## 原理图

## 尺寸说明

灯带长一米，共有60个灯珠。

## 常见问题


# 单按键模块

## 概述

Nova的单按键模块，可输出一个高低电平，按键没有按下时是输出高电平，按下时为输出低电平，从而控制其他的外设等。

## 参数

* 尺寸：40x23mm
* 电源要求：+5V
* 类型：数字模式
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3、S0、S1、S2、S3

## 使用方式

![](/files/-LWJm8yQ_uYKouv9l9Da)

## 示例代码

![](/files/-LWJm8ySLhqKBHKZuJMd)

[单按键模块示例代码](http://www.haohaodada.com/show.php?id=947555)

## 原理图

{% file src="/files/-LrCSd9dC2MOc7N5m\_zH" %}
单按键模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJm8yUc3nksH95MJ2D)

## 常见问题


# 四按键模块

## 概述

NOVA的四按键模块，是通过AD采样实现的 ，所以只能接在模拟口。每个按键对应一个AD采样值（不同的输出电压值），从而实现不同按键的判别。

## 参数

* 输入电压：5V
* 工作电压：控制器工作电压
* 数据类型：模拟信号
* 尺寸：47.8x39.1mm
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3

## 使用方式

![](/files/-LWJlKCdzKyYZIENUmpw)

## 示例代码

![](/files/-LWJlKCfwO7wkydxryyt)

[四按键模块示例代码](http://www.haohaodada.com/show.php?id=1066977)

## 原理图

{% file src="/files/-LrCWh\_chQFjOfk0MIuT" %}
四按键模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlKChIqeQj26gNbqY)

## 常见问题


# 电位器模块

## 概述

电位器式传感器是一种常用的电子元件，广泛应用于各种电器和电子设备中。它是一种把机械的线位移和角位移输入量转换为与它成一定函数关系的电阻和电压输出的传感元件。

## 参数

* 输入电压：5V
* 尺寸：40x23mm
* 输出类型：模拟信号
* 转动角度：300°
* 重量：10g
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3

## 使用方式

![](/files/-LWJlLIcvK5L5BWiV6FE)

## 示例代码

![](/files/-LWJlLIe6j3HVL6oIBLZ)

[电位器模块示例代码](http://www.haohaodada.com/show.php?id=947651)

## 原理图

{% file src="/files/-LrCT2DeF-i1A1sjg50P" %}
电位器模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlLIgo3rVmcsGxQhv)

## 常见问题


# 亮度传感器模块

## 概述

NOVA光敏传感器以模拟量输出，光线越强AD采样值越大，反之越小。

## 参数

* 尺寸：40x23mm
* 检测环境光密度
* 环保光敏二极管
* 模拟输出电压：0\~5 VDC
* 适用电源电压：+3\~5VDC
* 模拟传感器
* 传感器匹配Arduino扩展板
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3

## 使用方式

![](/files/-LWJlKsalNHPIEK-zY59)

## 示例代码

![](/files/-LWJlKscLJ4b3Rm79S7G)

[亮度传感器模块示例代码](http://www.haohaodada.com/show.php?id=947651)

## 原理图

{% file src="/files/-LrCTDPdoPg3bfFAIy2P" %}
亮度传感器模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlKseECCfhFIYKSRm)

## 常见问题


# 超声波传感器模块

## 概述

NOVA超声波模块有效探测距离范围为4-400cm，一个发射探头，一个接受探头。此模块只需你提供一个10uS以上脉冲触发信号，该模块内部将发出8个40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到回响信号的时间间隔可以计算得到距离。建议测量周期为60ms以上，以防发射信号对回响信号的影响。

## 参数

* 尺寸：24x57mm
* 电源要求：+3.3-5V
* 类型：数字模式
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3、S0、S1、S2、S3

## 使用方式

![](/files/-LWJhcK5WCWfZ1ga3p6_)

## 示例代码

![](/files/-LWJhcK7VdQ2VObdhtSg)

[超声波传感器模块示例代码](http://www.haohaodada.com/show.php?id=947506)

## 原理图

{% file src="/files/-LrCTPUeoVmbM4vZcIgE" %}
超声波传感器模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJhcK9jxWKfoiVK3ll)

![](/files/-LWJhcKBTDRRnKd25TAj)

## 相关资源

{% file src="/files/-LrHHd-evie33VCKPUix" %}
STM8S003F3U6TR芯片手册
{% endfile %}

{% file src="/files/-LrHHjpmCqIREGnwk80t" %}
MAX232芯片手册
{% endfile %}

{% file src="/files/-LrHHsaomdt2JQBaiN4S" %}
LMV324IDR芯片手册
{% endfile %}

## 常见问题


# 声音传感器模块

## 概述

NOVA的声音模块采用咪头采集声音信号并转化成高低电平脉冲，这个电平脉冲再经过LM2904运算放大器放大输出，输出大于一定阈值就能点亮绿色LED，LED随着声音强度亮灭，声音越大，LED越亮。

## 参数

* 尺寸：40x23mm
* 工作电压：5V
* 工作电流：<10mA
* 最长相应时间：220ms
* 具有输出大小调节
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3

## 使用方式

![](/files/-LWJlJudpRGFHDMiPbRa)

## 示例代码

![](/files/-LWJlJuh7k50L7A3C9Li)

[声音传感器模块示例代码](http://www.haohaodada.com/show.php?id=947651)

## 原理图

{% file src="/files/-LrCTZyYG-a4Ua1Tq236" %}
声音传感器模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlJujicRsWiPCi_gv)

## 相关资源

{% file src="/files/-LrHI5mzCk4n6KTcNQDt" %}
LM2904芯片说明
{% endfile %}

## 常见问题


# 温湿度模块

## 概述

NOVA温湿度模块采用的是DHT11传感器，可以用来同时测量温度和湿度。

## 参数

* 供电电压：+5V
* 尺寸：40x23mm
* 接口类型：数字
* 温度范围：0-50℃ 误差±2℃
* 湿度范围：20-90%RH 误差±5%RH
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3、S0、S1、S2、S3

## 使用方式

![](/files/-LWJlLVzWIvbc0oWImUM)

## 示例代码

![](/files/-LWJlLW0J1Y6y2aQpLaw)

[温湿度模块示例代码](http://www.haohaodada.com/show.php?id=950150)

## 原理图

{% file src="/files/-LrCTkMvyRBSZ2cy0xY3" %}
温湿度传感器模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlLW2OQJ2R1Tz7kgR)

## 相关资源

{% file src="/files/-LrHIP-l-oVZ-waEMS3Y" %}
DHT11芯片说明
{% endfile %}

## 常见问题


# 灰度传感器模块

## 概述

NOVA的灰度模块具有微型化、智能化、多功能化的特点。它通过颜色采集，可以感知任意两种颜色然后输出相应的电压值。通过采集的顺序可以输出量可以根据需要在模拟量和数字量之间切换。采集到的颜色具有断电保持特性，如果是同样的两种颜色的分辨无需再次采集可直接使用。灵活的颜色采集方式可实现一次采集多次使用，亦可根据需要随时采集。

## 参数

* 尺寸：45x28mm
* 检测距离：8-20mm
* 电源要求：+3.3-5V
* 接口模式：2510-4p
* 引脚定义：1、2-控制端 3-电源 4-地

## 接口说明

* 可用端口： C0、C1、M0、M1、M2、M3

## 使用方式

![](/files/-LWJlL-OiaGC_eLjit9i)

## 示例代码

![](/files/-LWJlL-QT4E8HHftYyNS)

[灰度传感器模块示例代码](http://www.haohaodada.com/show.php?id=949877)

## 原理图

{% file src="/files/-LrCU43TJpsSRmMAtD4i" %}
灰度传感器模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlL-S_xDegX840KIt)

## 相关资源

{% file src="/files/-LrHIfJh2NsjlHAdmXn5" %}
SN74LVC1G14DBVR芯片说明
{% endfile %}

## 常见问题


# 4位计时数码管

## 概述

NOVA的数码管计时模块可以用来显示时间。配套的驱动程序，做了简化设计，方便用户快速上手。

## 参数

* 尺寸：57x24mm
* 工作电压：+5V
* 类型：4位8段共阴数码管
* 接口模式：2510-4p
* 引脚定义：1、2-控制端 3-电源 4-地

## 接口说明

* 可用端口： C0、C1、M0、M1、M2、M3

## 使用方式

![](/files/-LWJfRjSJGgKGep0wtrA)

## 示例代码

![](/files/-LWJfRjULe9rmGqonyfX)

[4位计时数码管模块示例代码](http://www.haohaodada.com/show.php?id=947104)

## 原理图

{% file src="/files/-LrCUGfLrLqRvzme4xeK" %}
4位计时数码管模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJfRjWCwGkXmxwEsMj)

## 相关资源

{% file src="/files/-LrHJ5AZ5NOZLK6phiU9" %}
TM1650芯片说明
{% endfile %}

## 常见问题


# 4位计数数码管

## 概述

NOVA的数码管计数模块可以用来显示数字。配套的驱动程序，做了简化设计，方便用户快速上手。

## 参数

* 尺寸：57x24mm
* 工作电压：+5V
* 类型：4位8段共阴数码管
* 接口模式：2510-4p
* 引脚定义：1、2-控制端 3-电源 4-地

## 接口说明

* 可用端口： C0、C1、M0、M1、M2、M3

## 使用方式

![](/files/-LWJfRjSJGgKGep0wtrA)

## 示例代码

![](/files/-LWJfRkLl1i8YpT8dCEw)

[4位计数数码管模块示例代码 ](http://www.haohaodada.com/show.php?id=947225)

## 原理图

{% file src="/files/-LrCUSHmO-lqWx3QuNJb" %}
4位计数数码管模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJfRkNstqu8hJGIwmP)

![](/files/-LWJfRkP1QYeikma0FOf)

## 相关资源

{% file src="/files/-LrHJCCY9c4Mf9nBujSZ" %}
TM1650芯片说明
{% endfile %}

## 常见问题


# 点阵模块

## 概述

点阵模块采用HT16K33驱动芯片驱动8\_8点阵，SPX3819-5.0V电源芯片，I2C接口输入输出数据。HTK16K33芯片集成RC振动器，16\_8位RAM可存储显示数据。

## 参数

* 尺寸：57x24mm
* 电源要求：+5V
* 接口模式：2510-4p
* 引脚定义：1、2-控制端 3-电源 4-地

## 接口说明

* 可用端口： C0、C1、M0、M1、M2、M3

## 使用方式

![](/files/-LWJlJv2w8kY2f2Xw-iL)

## 示例代码

![](/files/-LWJlJv4_BcXsRpbKa5i)

[点阵模块示例代码](http://www.haohaodada.com/show.php?id=947637)

## 原理图

{% file src="/files/-LrCUlteR7PO6F3us7R7" %}
点阵模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlJvBrKOiJRdeSWXw)

## 相关资源

{% file src="/files/-LrHJNaHsmldYEjFuhDZ" %}
HT16K33芯片说明
{% endfile %}

## 常见问题


# 红外接收模块

## 概述

NOVA的红外接收模块需要配套的NOVA红外遥控器一起使用。

## 参数

* 尺寸：40x23mm
* 电源要求：+5V
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3、S0、S1、S2、S3

## 使用方式

![](/files/-LWJlLaCjKhlxOkJUA11)

## 示例代码

![](/files/-LXRpfLLiQS32MIbj8r-)

[红外接收模块示例代码](http://www.haohaodada.com/show.php?id=1068035)

## 原理图

{% file src="/files/-LrCUzHI49cF85QRQ4NQ" %}
红外接收模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlLaGjEbCldvIcklM)

## 常见问题


# 红外对射模块

## 概述

红外对射传感器ITR9608,是一种槽型光电开关，内部结构由红外发射二极管和NPN型光敏三极管构成，能自己发送红外线并自己接收。正常通电情况下红外发射二极管发射出红外线，接收头光敏三极管接收到红外线，光敏三极管导通，板子输出低电平，绿色LED状态指示灯灭。当有遮挡物挡住槽子中间的红外线时，接收头光敏三极管不能导通，板子输出高电平，绿色LED状态指示灯亮。可以利用输出高低电平和状态灯的亮灭。 可以用在检测物体经过。

## 参数

* 输入电压：5V
* 尺寸：40x23mm
* 电气参数： 输入端（红外发射二极管）电压5V，最大输入反向电压5V，最大输入端峰值电流1A。输出端（NPN光敏三极管）Vceo最大30V，Veco最大5V，Ic最大20mA。
* 输入端（红外发射二极管）正向压降最大1.5V，典型值1.2V。
* 截止波长940nm。
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3、S0、S1、S2、S3

## 使用方式

![](/files/-LWJlKLpSk8hMI_MWJi2)

光电开关内部结构：

![](/files/-LWJlKLrqFocEK_UyeMI)

## 示例代码

![](/files/-LWJlKLtZJPZAQ7ZUwDe)

[红外对射模块示例代码](http://www.haohaodada.com/show.php?id=947645)

## 原理图

{% file src="/files/-LrCVrFvZeEU87Ip00Gz" %}
红外对射模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlKLvS99R4qNsKm57)

## 相关资源

{% file src="/files/-LrHJZR-w\_PiyVX9bO9t" %}
光电开关ITR9608芯片说明
{% endfile %}

## 常见问题


# 蓝牙4.0模块

## 概述

如今大多高端电子设备都配备蓝牙技术，如笔记本电脑、手机、PDA等等，蓝牙技术结束了“线缆噩梦”进入了全新的无线时代。蓝牙模块可与nova主控板连接，实现蓝牙无线控制。

## 参数

* 蓝牙芯片： TI CC2540
* 工作频率： 2.4GHz
* 数据速率-最大值： 1Mbps GFSK
* 调制或协议： 蓝牙低功耗，V4.0
* 功耗： 工作时：平均10.6mA；待机：8.7mA
* 灵敏度： -93dBm
* 尺寸：29x24mm
* 电压-电源： 3.3V
* 工作温度范围： -10 ℃ \~ +65 ℃
* 最远传输距离： 30m左右（空旷地带）

## 接口说明

* 可用端口： C0

## 使用方式

![](/files/-LWJlL5dRzfa_jb4x42K)

## 示例代码

![](/files/-LWJlL5fi2x9cO9vnYhc)

[蓝牙4.0模块示例代码](http://www.haohaodada.com/show.php?id=955396)

## 原理图

{% file src="/files/-LrCV8pc9lDR3Ev\_Fglv" %}
蓝牙4.0模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlL5h6WmGuiurYVXw)

## 常见问题


# 单路电机驱动模块

## 概述

NOVA的单路电机模块，可以实现单路电机的方向控制，支持PWM调速控制，在小车、风扇上有大应用。

## 参数

* 尺寸：40.1x39mm
* 驱动芯片L9110S是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件。
* 板载芯片L9110S的最大驱动电流为750mA-850mA，典型值800mA，峰值电流可达1.5-2.0A。
* 电源电压：2.2-12V，典型值6V；静态电流最大2.0uA，典型值0.1uA。
* 两个输入引脚兼容TTL/CMOS电平，可直接连CPU
* 两路输出通道，每通道具有800mA连续输出能力，并且输出内置钳位二极管，能释放感性负载的反向冲击电流，安全可靠，可直接驱动直流电机，输出具有正转、反转、高阻和刹车
* 接口模式：2510-4p
* 引脚定义：1、2-控制端 3-电源 4-地

## 接口说明

* 可用端口： M0、M1、M2、M3

## 使用方式

![](/files/-LWJlL_19jt73sAElHrG)

## 示例代码

![](/files/-LWJlL_36FC0kuY8h1X6)

[单路电机驱动模块示例代码](http://www.haohaodada.com/show.php?id=947557)

## 原理图

{% file src="/files/-LrCVJR8e31COCtyWDeg" %}
单路电机驱动模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlL_5bJHSEdBQGsvg)

## 常见问题


# 双路电机驱动模块

## 概述

NOVA的双路电机模块，每个驱动模块可以实现两路电机的同方向控制，支持高低电平控制、PWM调速控制。模块可以连续输出最高1.2A的驱动电流，最大峰值电流为2A，所以模块上在同一路并了两个直流电机，另一路也放了两个电极。同一路的两个电极方向和速度一样。板上有电机正负方向转动指示灯。

## 参数

* 尺寸：40.1x39mm
* TB6612FNG是一款新型直流电机驱动器，它具有集成度高、驱动能力强以及控制方式灵活等特点，具有大电流MOSFET-H桥结构，双通道电路输出，每通道可以连续输出最高1.2A的驱动电流，启动峰值电流可达2A/3.2A，电机控制模式有正转、反转、制动、停止。PWM支持频率高达100KHz。有待机状态，片内低压检测电路与热停机保护电路。
* 接口模式：2510-4p
* 引脚定义：1、2-控制端 3-电源 4-地

## 接口说明

* 可用端口： M0、M1、M2、M3

## 使用方式

![](/files/-LWJlKA5o_3S67Wp5Shu)

## 示例代码

![](/files/-LWJlKA7uxuNSPbnE4DW)

[双路电机驱动模块示例代码](http://www.haohaodada.com/show.php?id=950085)

## 原理图

{% file src="/files/-LrCZL1XvYTUkmGh64YA" %}
双路电机驱动模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlKA9NwwrYR8URYEd)

## 相关资源

{% file src="/files/-LrHJmwASShKzp4TyIO3" %}
TB6612FNG芯片说明
{% endfile %}

## 常见问题


# 大电流舵机驱动模块

## 概述

NOVA的舵机模块是专为驱动舵机而设计的，采用大电流MP1584芯片，它是高频率，快速响应，最高可输出3A电流，宽电压：4.5V-28V。静态电流100uA，开关频率100KHz-1.5MHz。当负载较轻时可以调到高脉冲跳跃模式，内部软启动。模块设置MP1584输出6V。 舵机有三根引出线，棕、红、橙分别对应负极、正极、信号线（有些是黑红白线，分别对应负极、正极、信号线） 控制信号由接收机的通道进入信号调制芯片，获得直流偏置电压。它内部有一个基准电路，产生周期为20ms，宽度为1.5ms的基准信号，将获得的直流偏置电压与电位器的电压比较，获得电压差输出。最后，电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时，通过级联减速齿轮带动电位器旋转，使得电压差为0，电机停止转动。 舵机的控制一般需要一个20ms左右的时基脉冲，该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分，总间隔为2ms。以180度角度伺服为例，那么对应的控制关系是这样的： 0.5ms--------------0度； 1.0ms------------45度； 1.5ms------------90度； 2.0ms-----------135度； 2.5ms-----------180度；

## 参数

* 尺寸：40.1x39.1mm
* 电源要求：+5V
* 接口模式：2510-4p
* 引脚定义：1、2-控制端 3-电源 4-地

## 接口说明

* 可用端口： C0、C1、M0、M1、M2、M3

## 使用方式

![](/files/-LWJhhKcjwv3TOGWXBH-)

舵机连接方式：

![](/files/-LWJhhKeaTQ5nMSjk7ln)

## 示例代码

![](/files/-LWJhhKg2uZgOY-IN6UN)

[大电流舵机驱动模块示例代码](http://www.haohaodada.com/show.php?id=947545)

## 原理图

{% file src="/files/-LrCVgAR98w59FrdQsd8" %}
大电流舵机驱动模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJhhKixHnzpmgZqFjS)

## 相关资源

{% file src="/files/-LrHJxA9US9AUWbVg46H" %}
MP1584芯片说明
{% endfile %}

## 常见问题


# MP3音乐模块

## 概述

NOVA的MP3模块是一款可以播放歌曲的模块，采用语音芯片YX5200进行解析音乐文件，通过喇叭发出音乐。

## 参数

* 尺寸：57x24mm
* 电源要求：+5V
* 类型：模拟模式
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3、S0、S1、S2、S3

## 使用方式

![](/files/-LWJgEBsCCxsISlEWKF0)

[nova制作控制mp3视频](http://www.haohaodada.com/art_show.php?id=149)

SD 卡内部 mp3 文件设置：

MP3 使用说明: SD 卡内部新建文件夹，将其命名为 mp3。 mp3 文件夹内部放置音乐，音乐文件后缀支持.mp3 及.wav 后缀名。内部放置音乐文件命名必须以 0001 开头，最多支持 65536 首曲目。

程序说明：

mp3 程序块有三个，分别为音量设置，指定曲目播放和播放模式设定。

音量设置一般放置在初始化中，设定音量 0\~100，根据实际需要设置即可。

![](/files/-LWJgEBuqemL8mHuPb0B)

指定播放曲目需按照 SD 卡内部 MP3 音乐设置，mp3 文件夹内部设置 0001.mp3 曲目设置即可设置第一首，mp3 文件夹内部有 0255.mp3 曲目设置就可播放 255，如图所示

![](/files/-LWJgEBwDhkZAsjC-g-4)

播放模式设定： 播放模式可以选择五种状态：播放模式选择播放即单曲循环文件夹内部第一首曲目；循环播放模式即为循环播放文件夹内部全部曲目；随机播放模式为随机播放文件夹内部曲目；暂停 是暂停当前曲目，当下一个播放命令执行时继续播放当前曲目；停止模式是停止播放。 播放方式还可选择4中方式：上一首即为播放编号排序上一首的曲目；下一首即为播放拨号排序下一首的曲目；增大音量一次即可增大一度音量；减小音量一次即可见效一度音量。

![](/files/-LWJgEByXRXSKTxKFTJk)

## 示例代码

![](/files/-LWJgEC-zXlEtzN5unaD)

[MP3音乐模块示例代码](http://www.haohaodada.com/show.php?id=947296)

## 原理图

{% file src="/files/-LrCVXdtsfPv\_Zcjbm0d" %}
MP3音乐模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJgEC1aQItylLmDqFt)

## 常见问题


# 火焰传感器模块

## 概述

火焰传感器是机器人专门用来搜寻火源的传感器，当然火焰传感器也可以用来检测光线的亮度，只是本传感器对火焰特别灵敏。火焰传感器利用红外线对对火焰非常敏感的特点，使用特制的红外线接受管来检测火焰，然后把火焰的亮度转化为高低变化的电平信号。

## 参数

* 尺寸：40x23mm
* 类型：模拟信号
* 电源要求: 3.3V到5V DC
* 探测距离:20cm（4.8V）\~ 100cm（1V）
* 能够探测的光谱带：760nm到1100nm
* 反馈时间：15us
* 接口模式：模拟
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3

## 使用方式

![](/files/-LWJlKnWnfsK85megN9F)

## 示例代码

![](/files/-LWJlKnYf0WfbIhkbjPu)

[火焰传感器模块示例代码](http://www.haohaodada.com/show.php?id=947651)

## 原理图

{% file src="/files/-LrCW97x7BM7c\_GesXVG" %}
火焰传感器模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlKn_ksanFOhS9ZLt)

## 常见问题


# 霍尔开关模块

## 概述

NOVA霍尔传感器是基于霍尔感应原理的超敏感磁性传感器，低功耗，数字锁存输出，可以用来对磁性材料（磁铁）的探测，且不分极性，探测范围和磁性强弱有关，具有对磁场敏感、结构简单、体积小、频率响应宽、输出电压变化大和使用寿命长等优点。与Arduino专用传感器扩展板结合使用，可以制作与磁性材料（磁铁）相关的互动作品。

## 参数

* 输入电压：5V
* 尺寸：40x23mm
* 接口类型：数字
* 输出信号：平时输出低电平，检测到磁性时输出高电平（同时板载LED亮）
* 重量：5g
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3、S0、S1、S2、S3

## 使用方式

![](/files/-LWJlLtOUkx5dOV80uzG)

## 示例代码

![](/files/-LWJlLtQPI8T3VadwqKR)

[霍尔开关模块示例代码](http://www.haohaodada.com/show.php?id=947645)

## 原理图

{% file src="/files/-LrCWKEHBa8po7TMvzmm" %}
霍尔开关模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LXNEMBvTPK5ZsmCeG4T)

## 常见问题


# 继电器模块

## 概述

NOVA继电器模块是一种可以用较小的电流去控制外部较大电流设备的一种“自动开关”，继电器内部的常开常闭端口引出到模块的输出端口，所以模块有两个输出端，一个常开NO，一个常闭端口NC，当继电器内部线圈没导通时，继电器内部开关处于常闭。当继电器内部线圈得电，继电器内部开关处于常开，常闭断开。这样就可以实现输出控制了。 调节原理：继电器有两组接口，一组是常闭接口NC-COM,一组是常开接口NO-COM，外部设备可以选择接常开或者常闭接口，比如接一盏220V的电灯，接法可以这样：火线接到NO端口，然后从COM口把火线接到电灯，电灯另一端接到零线上。这样就可以通过编程控制继电器的闭合来控制电灯的通断。

## 参数

* 尺寸：40x23mm
* 继电器型号：HF32F/005-ZS3，线圈电压5V，一组转换（常开常闭），塑封型，标准型线圈功耗，标准触点负载型，触点材料AgNi
* 最大切换电压250VAC/30VDC，最大切换电流3A（NC端），10A（NO）
* 最大切换功率750VA/90W（NC），1250VA/150W（NO）
* 额定线圈功耗450mW，接触电阻≤100mΩ
* 接口模式：2510-3p
* 引脚定义：1-控制端 2-电源 3-地

## 接口说明

* 可用端口： A0、A1、A2、A3、S0、S1、S2、S3

## 使用方式

![](/files/-LWJlK_Pf-le-pVnEl5E)

继电器根据输入信号接通或断开电路，此模块输入信号5V，但通过继电器控制输入为12V、24V、220V等电压更大的设备（图中的220V不是唯一的）。

![](/files/-LXNEN93Sz6wGLBzqAL6)

## 示例代码

![](/files/-LWJlK_TXKEHPy8aryfG)

[继电器模块示例代码](http://www.haohaodada.com/show.php?id=949881)

## 原理图

{% file src="/files/-LrCWr8J5tSZDKezIQex" %}
继电器模块原理图
{% endfile %}

## 尺寸说明

![](/files/-LWJlK_VeE6PIvV6OU90)

## 常见问题




---

[Next Page](/llms-full.txt/1)

