Scratch3.0与Micro:bit图形化编程实战:从环境搭建到项目开发
2026/7/29 8:18:52 网站建设 项目流程

1. 项目概述:当Scratch遇上Micro:bit

如果你玩过Scratch,也听说过Micro:bit这块神奇的小板子,那你一定想过一个问题:能不能用Scratch那种拖拖拽拽的积木,去控制Micro:bit上的LED点阵、按钮和传感器,让它动起来、亮起来,甚至感知世界?答案是肯定的,而且这正是“Scratch3.0使用Micro:bit”这个项目最吸引人的地方。它把图形化编程的直观易用,和物理硬件的真实交互完美结合,让编程从屏幕里的虚拟动画,延伸到可以触摸、可以互动的现实世界。无论是教育者想设计一堂生动的创客课,还是家长想带孩子入门编程和电子,亦或是爱好者想快速验证一个交互点子,这个组合都是一个绝佳的起点。

简单来说,这个项目就是搭建一个桥梁,让你在Scratch 3.0的在线或离线编辑器中,通过添加一个特殊的扩展插件,就能用编程积木直接向连接的Micro:bit发送指令,同时也能读取Micro:bit上传感器传回的数据。你不再需要先学习复杂的文本编程语言(比如MicroPython或JavaScript),就能让Micro:bit根据你的创意做出反应。比如,你可以编一个游戏,用晃动Micro:bit来控制Scratch里的小猫跳跃;或者做一个温度计,让Micro:bit测量室温,然后在Scratch舞台上用柱状图动态显示。它的核心价值在于降低了物理计算的门槛,让创意能更快地转化为可交互的原型。

2. 环境搭建与连接原理全解析

要把Scratch 3.0和Micro:bit连起来,可不是简单插上线就行。这背后有一套清晰的软件和通信流程。理解这个原理,能帮你避开很多连接上的坑。

2.1 核心组件与通信链路拆解

整个系统由三部分组成:Scratch 3.0编辑器连接代理程序Micro:bit硬件。它们之间的关系,就像一场需要翻译的跨国会议。

  1. Scratch 3.0编辑器:这是你的“指挥中心”。你在这里用积木编写逻辑。但原生的Scratch并不认识Micro:bit,所以你需要加载一个叫“Micro:bit”的扩展。这个扩展提供了一系列新的积木,比如“当按钮A被按下”、“显示图案❤️”、“设置引脚P0输出为高电平”等。

  2. 连接代理程序:这是至关重要的“翻译官”和“信使”。因为Scratch 3.0通常运行在浏览器中,通过WebSocket协议通信;而Micro:bit通过串行端口(Serial Port,即我们常说的COM口)与电脑连接。两者语言不通,协议不同。连接代理程序(如官方推荐的scratch-link)就负责居中协调。它会在你的电脑后台运行,一方面通过WebSocket与Scratch编辑器对话,另一方面通过串口与Micro:bit对话,实现协议的转换和数据的中转。

  3. Micro:bit硬件:这是最终的“执行者”。它需要运行一个特殊的固件程序。这个固件就像一个“接线员”,时刻准备接收从串口传来的、由连接代理转发过来的Scratch指令,并立即执行(如点亮LED);同时,它也会把传感器数据(如温度、加速度)打包,通过串口发回。

整个数据流是这样的:你在Scratch中拖拽一个“显示图案”积木并点击执行 -> Scratch扩展通过WebSocket将指令发送给本机运行的scratch-link->scratch-link将指令翻译成Micro:bit能理解的串口数据格式,并通过USB线发送到指定的COM口 -> Micro:bit上的固件接收并解析指令,控制5x5 LED点阵显示出相应的图案。

注意:确保Micro:bit上烧录了正确的固件(通常是scratch-microbit-1.2.0.hex这类文件)是成功连接的前提。一个空白的或者运行了其他程序的Micro:bit是无法与Scratch对话的。

2.2 分步搭建实操指南

理论清楚了,我们一步步来搭建环境。这里以Windows系统为例,macOS和Linux步骤类似,主要区别在串口驱动和安装包上。

第一步:准备Micro:bit固件

  1. 访问Micro:bit教育基金会的官方固件发布页面,找到与Scratch3.0配套的最新版本固件(文件扩展名为.hex)。
  2. 用USB数据线将Micro:bit连接到电脑。此时电脑会将其识别为一个名为“MICROBIT”的U盘。
  3. 将下载好的.hex文件直接拖拽或复制到这个“MICROBIT”U盘中。Micro:bit板载的黄色指示灯会快速闪烁,表示正在烧录固件。闪烁停止后,固件烧录完成。

第二步:安装并运行Scratch Link

  1. 根据你的操作系统,从Scratch官网下载对应的Scratch Link安装程序。
  2. 运行安装程序,按照提示完成安装。安装后,Scratch Link通常会设置为开机自启,你也可以在开始菜单中找到并手动启动它。启动后,它常驻在系统托盘(右下角),图标是一个绿色的链条。

第三步:在Scratch 3.0中添加Micro:bit扩展

  1. 打开浏览器,访问Scratch 3.0的在线编辑器(或启动离线编辑器)。
  2. 点击左下角的“添加扩展”按钮(蓝色图标)。
  3. 在扩展库中找到“Micro:bit”并点击。此时,Scratch会尝试与后台运行的Scratch Link建立连接。
  4. 如果一切正常,会弹出一个硬件选择窗口,列表中应该能看到你的Micro:bit设备(可能显示为COMx或/dev/tty...)。选择它并点击“连接”。

连接成功后,积木区会出现一整套淡蓝色的Micro:bit积木,同时舞台区上方会显示“Micro:bit已连接”的提示。至此,你的软硬件桥梁就正式通车了。

实操心得

  • 驱动问题:如果电脑无法识别Micro:bit为串口设备,可能需要手动安装mbed串口驱动,尤其是在较老的Windows系统上。
  • 端口占用:确保没有其他软件(如串口监视器、Mu编辑器)占用了Micro:bit所在的COM口,否则Scratch Link会连接失败。
  • 固件版本:务必使用Scratch官网推荐或Micro:bit基金会提供的专用固件,不要使用Arduino或MicroPython等其他环境生成的固件。

3. Micro:bit扩展积木深度应用指南

连接成功后,工具箱里多出来的那套蓝色积木就是你的魔法棒。我们来逐一拆解,看看每类积木能做什么,以及背后对应的Micro:bit硬件原理。

3.1 事件与输入类积木:让硬件触发程序

这类积木用于响应Micro:bit硬件上发生的事件,是交互设计的基础。

  • “当按钮A被按下”:这对应Micro:bit板载的A、B两个物理按钮。你可以用它来作为游戏的开始、角色的切换等触发条件。注意:这是一个“事件帽子”积木,下方可以拼接其他积木。它和Scratch自带的“当绿旗被点击”是同一逻辑层级。
  • “当手势【晃动】”:这利用了Micro:bit内置的加速度计。除了“晃动”,还有“屏幕朝上”、“屏幕朝下”、“自由落体”等。实操技巧:“晃动”的灵敏度可以通过调整阈值在固件层面微调,但对于初学者,直接使用默认值即可。设计项目时,考虑用户的实际操作姿势,避免因误触发影响体验。
  • “当引脚【P0】被按下”:这是连接外部按钮或触摸传感器的接口。Micro:bit底部边缘有一排金手指引脚(P0, P1, P2, 3V, GND)。你可以用鳄鱼夹线将P0与3V之间连接一个按钮,或者甚至直接用手同时触摸P0和GND(因为人体导电),来触发这个事件。重要提示:引脚输入有上拉和下拉模式之分,Scratch的Micro:bit扩展默认引脚为“上拉”模式,意味着引脚内部通过一个电阻连接到高电平(3V),当外部按钮将引脚与GND短接时,引脚变为低电平,即被识别为“按下”。理解这一点对连接外部电路至关重要。

3.2 输出与控制类积木:指挥硬件行动

这类积木用于主动控制Micro:bit上的输出设备。

  • “显示图案【❤️】” / “显示文字【Hello】”:控制5x5的LED点阵。图案是预定义的图标,文字会以滚动方式显示。深度解析:LED点阵的刷新是非阻塞的。意思是,当你执行“显示文字‘ABC’”(这需要几秒钟滚动显示)时,Scratch脚本并不会停下来等待显示完毕,而是会立刻继续执行后面的积木。如果你需要等待显示完成再做下一步,就需要用“等待”积木或者用“显示图案”积木(它是瞬时完成的)来设计逻辑。
  • “清除显示”:关闭所有LED灯。
  • “设置引脚【P0】输出为【高电平】”:这是控制外部元件的核心。高电平约3V,低电平为0V。你可以用它来点亮一个LED(需串联限流电阻),驱动一个蜂鸣器,或者控制一个继电器模块。电路安全须知:Micro:bit每个引脚的最大输出电流约为5mA,整板所有引脚总电流不得超过90mA。直接驱动电机、多个大功率LED等负载是危险的,会损坏板子。务必使用三极管、MOS管或电机驱动模块来驱动大电流负载。
  • “设置引脚【P0】输出为【PWM】值50”:这是模拟输出功能,通过快速开关(Pulse Width Modulation,脉冲宽度调制)来模拟0-3V之间的电压。值0代表始终低电平(0V),值255代表始终高电平(3V),中间值则对应不同宽度的脉冲。典型应用:控制LED亮度(需接在支持PWM的引脚P0、P1、P2上)、控制舵机角度(舵机控制信号就是PWM信号)。这是实现“渐变”、“平滑控制”效果的关键。

3.3 传感器与数据类积木:感知物理世界

这类积木用于读取Micro:bit传感器和引脚的状态值,将物理信号转化为程序可以处理的数字。

  • “按钮【A】被按下?”:这是一个条件判断积木,返回“是/否”(布尔值)。通常与“如果...那么”积木搭配使用,用于查询按钮的实时状态,而非响应按下事件。
  • “加速度【x】值”:返回三个轴(x, y, z)的加速度值,单位是毫g(mg)。静止水平放置时,z轴约为1024(即1g),x和y轴约为0。应用场景:不仅可以做手势识别,还可以通过计算加速度矢量和来粗略计算倾斜角度,制作水平仪。
  • “温度【℃】”:读取Micro:bit主处理器(nRF51822)的温度。重要认知:这个温度更接近处理器的工作温度,而非精确的环境温度。当板子持续工作发热后,读数会显著高于环境温度。对于要求不高的环境温度感知可以,但如需精确测量,应连接外部的专用温度传感器(如DS18B20到引脚)。
  • “引脚【P0】的模拟读数” / “引脚【P0】的数字读数”:这是连接丰富模拟传感器的窗口。模拟读数(0-1023)对应引脚上的电压(0-3V),例如可以读取旋钮电位器、光敏电阻、土壤湿度传感器等的值。数字读数(0或1)则判断引脚是高低电平。

综合应用示例:制作一个声控灯

  1. 使用事件积木:当响度 > 10(Scratch本身的声音感应积木,非Micro:bit)。
  2. 使用输出积木:在事件下拼接显示图案【闪烁的星星】设置引脚P0输出为高电平(假设P0接了一个LED灯)。
  3. 使用控制积木:在事件下再拼接等待1秒然后清除显示设置引脚P0输出为低电平。 这样,当你拍手(响度触发)时,Micro:bit的LED点阵和外部LED都会亮起1秒后熄灭。

4. 经典项目实战:从创意到实现

理解了单个积木的功能后,我们通过两个完整的项目,将知识串联起来,看看如何从零开始构思并实现一个有趣的Scratch+Micro:bit作品。

4.1 项目一:体感互动游戏——躲避陨石

项目构思:在Scratch舞台上,玩家控制一艘飞船左右移动,躲避从上方不断落下的陨石。飞船的移动不再用键盘,而是通过倾斜Micro:bit来控制。

Scratch角色与舞台

  • 角色1:玩家飞船(一个简单的三角形或飞船 sprite)。
  • 角色2:陨石(可以克隆多个,从舞台顶部随机位置出现并下落)。
  • 背景:星空背景。

Micro:bit硬件:无需额外连接,仅使用板载加速度计。

核心脚本拆解

  1. 飞船控制(Scratch角色脚本)

    当绿旗被点击 重复执行 将x坐标设为((加速度【x】值) / 10) // 将加速度x轴读数(范围约-1024到1024)映射到舞台x坐标(-240到240) 结束
    • 原理:Micro:bit水平放置时,左右倾斜会改变x轴加速度值。除以10是一个缩放因子,需要根据实际灵敏度调整。你可以先测试一下加速度【x】值的读数范围,然后使用将数值映射到这个运算积木进行更精确的映射。
  2. 陨石生成与下落(Scratch角色脚本)

    当绿旗被点击 隐藏 重复执行 等待(在1到3之间取随机数)秒 建立【自己】的克隆体 结束 当作为克隆体启动时 显示 移到x:(在-220到220之间取随机数) y:180 重复执行直到 <碰到【舞台边缘】> 或 <碰到【飞船】> 将y坐标增加 -5 结束 如果 <碰到【飞船】> 那么 广播【游戏结束】 结束 删除此克隆体
  3. 游戏启动与结束

    • 用Micro:bit的当按钮A被按下事件来广播开始游戏消息。
    • 飞船和陨石脚本的当绿旗被点击可以改为当接收到消息【开始游戏】
    • 当飞船被撞,广播游戏结束,所有角色停止脚本,Scratch中可以用停止【全部】

避坑技巧

  • 控制灵敏度:直接使用加速度原始值控制移动可能会“飘”或不够跟手。可以在Scratch中引入一个“平滑变量”:设定【目标x】为(加速度【x】值 / 10),然后让飞船的x坐标将x坐标设为((x坐标) * 0.8 + (目标x) * 0.2)。这样移动会有缓动效果,更平滑。
  • 校准:游戏开始前,可以设计一个校准步骤。例如,提示玩家“请将Micro:bit水平放置,然后按下按钮B”,此时记录下当前的加速度【x】值作为“零点基准”,后续的控制都减去这个基准值,可以抵消Micro:bit放置不绝对水平带来的偏差。

4.2 项目二:智能植物养护助手

项目构思:制作一个能监测土壤湿度、自动提醒浇水,并可通过按钮查询当前状态的小装置。

硬件连接

  • 土壤湿度传感器(模拟输出型)的信号线接Micro:bit的P0引脚,VCC接3V,GND接GND。
  • 一个LED(加220Ω限流电阻)接在P1引脚上,作为报警指示灯。
  • (可选)一个蜂鸣器或有源喇叭接在P2引脚,用于声音提醒。

核心脚本逻辑

  1. 数据监测与报警(Scratch主要逻辑)

    当绿旗被点击 重复执行 如果 <(引脚【P0】的模拟读数) < (300)> 那么 // 300为干燥阈值,需根据传感器实际调试 广播【需要浇水】 否则 广播【湿度正常】 结束 等待 10 秒 // 每10秒检查一次,避免过于频繁 结束 当接收到消息【需要浇水】 重复执行 5 次 将引脚【P1】输出设为 高电平 等待 0.5 秒 将引脚【P1】输出设为 低电平 等待 0.5 秒 结束 // 同时可以在Scratch舞台上让一个角色说“该浇水啦!” 当接收到消息【湿度正常】 清除显示 // 或者显示一个笑脸图案 将引脚【P1】输出设为 低电平
  2. 手动状态查询(Micro:bit事件触发)

    当按钮【A】被按下 说(连接【当前湿度:】和(引脚【P0】的模拟读数))持续 2 秒 // 或者在Micro:bit点阵上滚动显示数值 显示数字(引脚【P0】的模拟读数)
  3. 自动数据记录(进阶):在Scratch中,可以创建一个列表变量叫“湿度历史记录”。在监测循环中,每次读数后都将(引脚【P0】的模拟读数)加入【湿度历史记录】。再创建一个角色,绘制折线图来可视化湿度变化趋势。

硬件连接注意事项

  • 土壤湿度传感器模块通常有数字和模拟双输出。我们使用模拟输出(AO)以获得更精细的湿度百分比信息,而不是简单的干/湿判断。
  • 首次使用时,需要校准阈值。将传感器完全插入干燥的土壤中,读取模拟值(比如850);再插入完全浸湿的土壤中,读取模拟值(比如300)。那么你的报警阈值可以设定在这两个值之间,例如500。
  • Micro:bit的3.3V输出能力有限,如果传感器或外设耗电较大,建议使用外部电源(如3节AA电池盒)为它们单独供电,但务必共地(GND连接在一起)。

5. 高级技巧与疑难问题排查

掌握了基础项目和连接后,你可能会追求更复杂的交互或遇到一些棘手的问题。这一章分享一些进阶玩法和常见故障的解决方法。

5.1 扩展边界:与Scratch其他功能联动

Micro:bit扩展的强大之处在于它能与Scratch庞大的内置功能库产生化学反应。

  • 语音与音乐:用当按钮A被按下触发Scratch的播放声音演奏鼓声积木,制作一个简单的电子乐器。更进一步,可以用加速度【y】值来控制将音调增加()积木的参数,实现通过倾斜改变音高的特雷门琴效果。
  • 视频感知:Scratch 3.0的视频运动感知扩展非常强大。你可以设计这样的项目:当摄像头检测到有物体运动(如挥手)时,通过广播消息,触发Micro:bit上的显示图案或控制外部LED闪烁。这就实现了“隔空控物”。
  • 变量与列表:这是实现复杂逻辑的核心。例如,用Micro:bit的按钮A和B作为加减控制器,来改变Scratch中的一个“速度”变量,从而控制游戏中角色的移动速度。或者,将Micro:bit传感器读取的数据(如每小时的温度)存入一个列表,然后在Scratch中计算平均温度、最高最低温度等。
  • 克隆与广播:在多人互动项目中,可以准备多套Micro:bit和电脑。每台电脑上的Scratch项目都连接各自的Micro:bit,并通过网络广播功能(需要Scratch Link和网络环境支持特定的扩展,或使用云变量)进行通信。例如,一个玩家按下按钮A,所有其他玩家屏幕上的角色都会收到一个“攻击”消息。

5.2 常见连接与通信故障排查

连接问题是最常见的拦路虎。请按照以下清单逐一排查:

问题现象可能原因排查步骤与解决方案
Scratch中找不到Micro:bit扩展或无法连接1. Scratch Link未运行
2. 浏览器/Scratch离线版版本过旧
3. 系统防火墙/安全软件阻止
1. 检查系统托盘,确保Scratch Link已启动(绿色链条图标)。重启它。
2. 尝试使用Chrome、Edge等最新版浏览器。确保离线编辑器是最新版本。
3. 暂时禁用防火墙或安全软件,或将Scratch Link加入白名单。
连接时提示“未找到设备”1. Micro:bit未连接或USB线故障
2. 固件错误或未烧录
3. 端口被占用
1. 重新插拔USB线,尝试不同的USB口。检查电脑设备管理器中是否出现“mbed Serial Port”或类似COM口。
2.重新烧录正确的Scratch专用固件,这是最常见的原因。确保烧录时MICROBIT盘符的指示灯在闪烁。
3. 关闭所有可能占用串口的软件(如Arduino IDE、串口助手、Mu编辑器)。
连接成功但积木无反应1. 积木逻辑错误
2. 硬件连接错误
3. 引脚冲突
1. 检查脚本是否被正确触发(如绿旗点击、事件发生)。用最简单的显示图案❤️测试。
2. 检查外部电路:线是否接牢?LED正负极是否接反?限流电阻是否加上?
3. Micro:bit上有些引脚有复用功能(如P0、P1也用于LED点阵)。避免在使用LED显示相关积木时,同时将这些引脚用于其他重要输出输入。
连接不稳定,时断时续1. USB线接触不良
2. 电脑USB口供电不足
3. 无线电干扰(如蓝牙)
1. 更换一条质量好的Micro-USB数据线,确保连接牢固。
2. 尝试将Micro:bit连接到电脑后置的USB口,前置口可能供电不稳。
3. 如果环境中有强无线电干扰,可能会影响USB通信。远离大功率无线设备。

终极调试大法:当所有积木都不起作用时,进行最小化测试。

  1. 在Scratch中新建一个空白项目。
  2. 只添加Micro:bit扩展。
  3. 只写一个脚本:当绿旗被点击->显示图案❤️
  4. 点击绿旗。如果这时Micro:bit的LED点阵显示了心形,说明基础通信完全正常,问题一定出在你项目更复杂的脚本逻辑或外部硬件上。如果连这个都不行,那就回到上述表格,从Scratch Link和固件开始从头检查。

5.3 性能优化与项目规划建议

对于复杂的项目,以下几点能提升体验和成功率:

  • 减少无线干扰:虽然Scratch Link通过USB有线连接,但Micro:bit本身也具备蓝牙功能。如果烧录的固件版本不对或配置有冲突,可能会引起问题。在仅使用USB串口通信时,确保固件是纯粹的“串口固件”,而非蓝牙固件。
  • 优化Scratch脚本效率:Scratch是解释执行的,复杂循环和大量克隆体会导致卡顿。避免在重复执行循环内使用等待()积木来精确计时,这会影响整体响应。对于需要定时执行的任务(如每10秒读取一次传感器),使用Scratch的计时器或利用重复执行等待的组合,但要意识到这会让循环内该时刻之后的所有积木都被延迟。
  • 分模块开发与测试:不要一次性写完所有功能。先确保Micro:bit能正确响应单个命令(如按钮控制LED)。再测试传感器读数是否准确。然后在Scratch中单独调试游戏逻辑或动画效果。最后将两者用变量和广播消息耦合起来。这种“分而治之”的策略能极大降低调试难度。
  • 电源管理:如果你的项目需要移动使用,考虑用电池盒为Micro:bit供电。注意,通过USB口连接电脑时,电脑会为Micro:bit供电。断开USB前,确保你的外部电路在3V电池供电下也能正常工作(某些传感器或执行器可能需要5V)。

从简单的点亮一个LED,到完成一个融合了体感、声光反馈和复杂游戏逻辑的互动项目,Scratch 3.0与Micro:bit的组合为你提供了一个几乎零代码门槛的物理计算沙盒。它的意义不在于完成多么复杂的工业控制,而在于快速、直观地将创意落地,让编程和电子变得可触摸、可玩耍。我自己的体会是,最有趣的项目往往诞生于“如果……会怎样?”的简单提问,并用这套工具去快速验证它。不妨就从今天开始,拿起你的Micro:bit,在Scratch里拖出第一个积木,看看这个小小的板子,能为你想象中的世界打开一扇怎样的大门。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询