从屏幕到物理世界:为什么要学硬件编程

Scratch 里的小猫再生动,也只活在浏览器里。当孩子第一次亲手写一段程序、按下下载键,看到桌上那块小板子上的 LED 真的亮起来、真的因为他摇晃板子而改变显示时,那种代码让物理世界动起来的震撼,是纯软件课给不了的。这就是硬件编程的魅力。

micro:bit 是英国 BBC 为青少年计算机教育设计的一块巴掌大的开发板。它把 LED 点阵、两个按钮、加速度计、磁力计、蓝牙都塞进一块带 USB 接口的小板子里,孩子只需要用 Scratch 风格的积木拖一拖,就能让板子执行各种动作。它不需要焊接、不需要插线到面包板就能跑起来,门槛极低。

硬件编程不是为了让孩子变成电工,而是让他理解:程序不是虚拟玩具,它可以控制真实世界的开关、灯和动作。
本文核心知识点
  • LED 点阵板子正面 5×5 共 25 颗小灯,可以逐颗点亮成图案。
  • 按钮事件板子上有 A、B 两个物理按键,对应 Scratch 里的"当按下 A"。
  • 加速度计感知板子朝哪个方向倾斜、有没有被摇晃。
  • 下载运行把积木编译成 hex 文件,拖进板子的 U 盘盘符即可执行。
micro:bit 小创客实战配图:蓝色渐变背景上一块带 LED 点阵和两个按钮的小板子居中,周围彩色积木互相咬合,发光电路线把积木连到板子,旁边一个小机械臂夹着跳线
micro:bit 的世界:一块小板子就是一个可编程的微型计算机,积木写好就能下载运行。

认识 micro:bit:一块掌心大小的单片机

把板子翻到正面,最先看到的是 25 颗排成 5 行 5 列的小灯,这就是 LED 点阵。点阵下方左边写着 A、右边写着 B,这是两个物理按钮。板子背面有一根 USB 口,插上线就能给电脑识别成一个 U 盘,同时供电。

打开浏览器访问 micro:bit 官方的 MakeCode 编辑器,界面就是孩子熟悉的积木世界。左边是积木分类,中间是脚本区,右边是一块仿真板子——在下载到真实硬件之前,孩子可以先在仿真板子上试效果。

部件位置编程作用
LED 点阵正面中央显示图案、数字、文字滚动
A / B 按钮点阵下方当按下时触发对应事件积木
加速度计板子内部感知摇晃、倾斜、自由落体
USB 接口板子边缘供电并把程序文件拖进去运行

第一次使用时,用一根 USB 数据线把板子连到电脑。电脑会把它识别成一个叫 MICROBIT 的 U 盘。以后写完程序点"下载",把生成的 .hex 文件拖进这个 U 盘,板子自动重启,新程序立刻生效。

第一块板子:让 LED 点阵亮起一颗星

在 MakeCode 里,所有程序都从"当开机时"这块事件积木开始。我们先让板子一启动就显示一个爱心图案。

当开机时
显示 爱心

点下载、拖进 U 盘,板子上 25 颗小灯里,指定的几颗会亮成一颗心形。孩子会立刻反应过来:原来 LED 点阵是一个二维网格,每颗灯都有自己的坐标。

再玩一步,让心一秒钟亮一秒钟灭,做出心跳效果:

当开机时
重复执行
  显示 爱心
  等待 500 毫秒
  清除显示
  等待 500 毫秒

这里"清除显示"就是把 25 颗灯全关掉。孩子可以自己改数字:把 500 改成 200,心跳就变快;改成 1000,心跳就变慢。这种即时反馈和 Scratch 里改小猫速度一模一样,孩子零门槛上手。

按钮与事件:按 A 画笑脸,按 B 画哭脸

板子上的 A、B 两个按钮是物理输入。我们用事件积木把它们绑到不同的画面上:

当 按钮 A 被按下
显示 笑脸

当 按钮 B 被按下
显示 哭脸

下载后,孩子按 A,板子显示笑脸;按 B,板子显示哭脸。这就是硬件版的事件驱动——和 Scratch 里"当空格键被按下"逻辑完全一样,只是触发器从键盘换成了板子上的物理按键。

再加一个小挑战:同时按 A 和 B 怎么办?MakeCode 里有"当按钮 A+B 被按下"的积木。让它显示一个问号图案,就组成了一个三态小表情切换器。孩子会开始意识到:同一个硬件可以被不同的输入触发不同的反应。

加速度计:摇晃它,骰子就转起来

micro:bit 内部藏着一个加速度计,能感知板子有没有被摇晃、朝哪个方向倾斜。这是做小游戏最有意思的传感器。我们来做一个电子骰子:

当 被摇晃时
显示数字 随机从 1 到 6

下载后,孩子把板子拿在手里摇一下,点阵上就随机亮起 1 到 6 的数字,像真骰子一样。这里"随机从 1 到 6"是运算积木,"被摇晃时"是加速度计事件积木,两个一组合就是一个完整的物理小玩具。

再进阶一步:让板子根据倾斜方向让一颗光点移动。孩子把板子往左歪,光点就往左;往右歪,光点就往右。这其实就是把物理世界的动作映射成屏幕上的坐标变化,和成年后做手机重力感应游戏用的是同一套原理。

本节用到的核心结构
  • 事件当被摇晃时、当按钮被按下,都是硬件事件触发器。
  • 随机数运算积木里的"随机从 1 到 6",是骰子的灵魂。
  • 传感器加速度计把物理动作翻译成数字信号给程序。
  • 输出LED 点阵把数字信号翻译回人眼能看到的图案。