多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

microbit 入门

microbit 入门 你有没有想过一块只有 5 厘米 × 4 厘米的小电路板也能成为一台可以编程的“微型电脑”它能用 25 颗小灯显示文字和图案能感知光线、温度和晃动还能通过蓝牙和无线电与其他设备“聊天”——这就是英国广播电视公司BBC为青少年编程教育推出的 micro:bit 开发板。更棒的是学习它并不需要敲复杂的代码打开 MakeCode 图形化编程环境像搭积木一样把“积木块”拖拉拽到一起再通过 USB 线把程序下载到板子上程序就能立刻运行起来。今天这份任务说明书带你从认识硬件开始搭好编程环境理解“函数”和“代码复用”的思想再亲手完成一个 25 秒倒计时程序并拓展做出抢答器和抛硬币两个有趣的小作品。1.1 任务介绍本任务介绍如何认识并使用 micro:bit 开发板通过图形化拖拉拽方式编写程序并下载到板子上运行。整个实现流程为认识 micro:bit 及其硬件组成 → 搭建 MakeCode 编程环境离线版安装或在线使用→ 理解函数与代码复用 → 认识“当开机时”“当按钮被按下时”“无限循环”等核心控件 → 导入并运行 25 秒倒计时程序 → 拓展完成抢答器、抛硬币小作品。完成本任务后将掌握 micro:bit 的开机、按钮、循环、函数、LED 显示等基本概念并能够独立搭建简单的 micro:bit 程序。1.2 知识储备1.2.1 micro:bit 介绍micro:bit 是一款面向青少年编程教育的微型电脑开发板具体情况介绍如下1. micro:bit 产品概况1.micro:bit 是由英国广播电视公司BBC推出的专为青少年编程教育设计的微型电脑开发板旨在使学习与教学变得轻松有趣。BBC 希望通过 micro:bit 驱动青少年参与到创造性的硬件制作和软件编程中去而不是每天沉浸在各式的娱乐和消费中。2. micro:bit 硬件组成micro:bit 板子小巧却集成了丰富的输入输出部件。下图展示了开发板正面与背面的主要组成LEDLED 是指发光二极管。micro:bit 有 25 颗可独立编程的 LED 灯可以用它来显示文本、数字以及图像。按钮在 micro:bit 板子前面有 2 个按钮标记了 A 和 B按下这些按钮即可运行代码。引脚在 micro:bit 连接器的边缘有 25 个外部接口称为“引脚”。引脚可以用来为电机、LED 灯或其他带引脚的电子元器件编程也可以连接外部传感器来控制代码。光线传感器通过反转 LED 屏幕micro:bit 进入输入模式此时 LED 屏幕起到一个基础的光线传感器的作用可以用它来检测周围的光线。温度传感器这个传感器可以让 micro:bit 检测当前环境温度以摄氏度为单位。加速度传感器加速度传感器可以测量 micro:bit 的加速度从而检测它的移动也可以检测摇动、倾斜以及自由落体等其他动作。指南针指南针用于检测地球磁场可以让你探测到 micro:bit 面对的方向。使用之前需要先校准指南针。无线电无线电可以让两块 micro:bit 板子之间进行无线通讯。用无线电发送信息到其他的 micro:bit 板子上可以创建多人游戏以及更多有趣的发明。蓝牙蓝牙天线可以让 micro:bit 接收蓝牙信息从而与电脑、手机、平板进行无线通信。例如可以用 micro:bit 控制手机也可以用手机发送无线代码到 micro:bit 上。USB 接口USB 接口允许通过 USB 线将 micro:bit 连接到计算机既为设备供电也用于将程序下载到 micro:bit。1.2.2 编程环境介绍1. MakeCode 图形化编程环境MakeCode 是 micro:bit 的图形化编程环境通过“拖拉拽”积木块的方式形成应用不需要手写代码。它有两种使用方式一是离线版安装“makecode-v5 Setup 3.6.3.exe”后在电脑本地使用二是在线版用浏览器访问 https://makecode.microbit.org 即可使用。编辑界面主要由四部分组成左侧是模拟器可以预览程序效果中间是积木分类栏右侧是代码编辑区底部是【下载】按钮和项目名称。界面顶部可以在“方块”和“JavaScript”两种编程方式之间切换。2. 二进制文件与程序下载程序搭建完成后需要下载成二进制文件格式.hex 文件再将二进制文件拷贝进 MICROBIT 文件夹micro:bit 连接电脑后会显示为名为“MICROBIT”的磁盘中即可运行应用。在线版还支持连接 micro:bit 后直接 download 二进制文件。1.2.3 编程基础函数和代码复用1. 数学中的函数 yf(x)在数学中函数可以理解为“输入 → 函数 → 输出”的加工过程给定输入 x经过函数 f 的处理得到输出 y。例如f(x) 在 x 为偶数时等于 x²在 x 为奇数时等于 x5则输入 2 得到 f(2)4输入 3 得到 f(3)8。同一个函数输入不同得到的结果也不同。2. 生活中的函数在生产和生活中许多工作同样是“一段不断重复的流程”。以砌筑机器人的工作流程为例start → 1 上料 → 2 抓取 → 3 搬运 → 4 砌筑 → 5 抓取 → 6 搬运 → 7 砌筑…… → end。其中“抓取 → 搬运 → 砌筑”会在条件满足时反复执行。如果把这样一段重复的流程封装起来并取一个名字每次需要时直接调用就是函数和循环的思想。3. 自定义函数函数表示一段具有特定功能、可重用的语句组合用函数名表示并通过函数名进行功能调用。函数可以看成一段具有名字的子程序能够在需要的地方调用执行而无须在每个执行位置重复编写。使用函数时无须了解其内部实现原理只要了解输入输出方式即可。每次输入不同的参数将执行相似但不同的处理过程产生相应的结果。Python 解释器自带了一些函数和方法称为 Python 标准函数例如 print()、input()、abs()、pow()、len() 等由当前程序自己定义的函数则称为自定义函数。使用函数有两个目的降低编程难度和重用程序代码。作为一种功能抽象函数具有“黑盒”特性可以把一个复杂的大问题分解成一系列简单的小问题小问题还可以继续划分为更小的问题并利用函数表达问题分解之间的关系形成程序的组织框架。4. 函数举例下面用 Python 给出两个自定义函数的例子先创建定义函数再通过函数名调用。上面的 min 函数返回两个数中较小的一个下面的 max 函数返回较大的一个。# 函数的创建 def min(a, b): if (a b): c b else: c a return c 函数的调用 result min(10, 20) print(result) 函数的创建 def max(a, b): if (a b): c a else: c b return c 函数的调用 result max(10, 20) print(result)运行后min(10, 20) 输出 10max(10, 20) 输出 20。在 MakeCode 中函数同样以积木的形式存在例如后面 25 秒倒计时程序中自定义的 doSomething1 doSomething5需要时用“调用”积木即可无须重复搭建。1.2.4 核心控件介绍1. 当开机时On Start“当开机时”是一个特殊的事件在程序启动时、在其他任何事件之前运行且仅执行一次代码块中的指令。通常用它来初始化程序例如设置开机动画、默认显示数值、变量初始值或屏幕亮度等。2. 当按钮被按下时On Button Pressed这是一个事件处理程序当某件事发生例如按下按钮时才会运行其中的代码。它可以选择按钮 A、按钮 B或 AB 同时按下按钮 A 或 B 被按下并在 1 秒内松开时触发A 和 B 同时按下时在两个按钮都被按下后若其中一个在按下第二个按钮的 1.5 秒内松开则触发。在网页浏览器中使用时点击屏幕上的虚拟按钮即可代替板子上的实体按钮。按钮控制通过编程实现交互功能典型应用场景有显示反馈按下按钮时显示图标、文字或数字如“闪烁的心”“笑脸”等图形化交互。逻辑控制根据按键状态执行不同的代码分支如“剪刀石头布”游戏中的出招逻辑。变量操作记录按键次数、设置变量值如“冷或热”游戏中的温度感知。3. 无限循环forever“无限循环”用于在后台保持程序的一部分持续运行。把程序的一部分放入无限循环中它就会一直重复执行同时无限循环会让程序中的其他代码有机会运行确保它们在需要时能得到执行时间。“无限循环”和“每个循环”都是基于事件的循环其中的代码作为函数的一部分运行这与 for 和 while 循环不同——后者是编程语言本身的一部分可以在其中使用 break 和 continue 语句而在无限循环或每个循环中不能使用 break 或 continue。1.3 任务要求能够说出 micro:bit 的硬件组成以及 LED、按钮、引脚、各类传感器等部分的功能。能够安装 MakeCode 离线版或使用在线版搭建 micro:bit 的编程环境。能够理解函数与代码复用的思想并使用“当开机时”“当按钮被按下时”“无限循环”等控件。能够通过拖拉拽编程实现 25 秒倒计时并将程序下载到 micro:bit 板子上运行。能够独立搭建“10、9、8……1、0比心”的倒计时程序。1.4 任务准备micro:bit 开发板一块microUSB 线一根Windows 电脑一台MakeCode 离线版安装包makecode-v5 Setup 3.6.3.exe使用在线版时可不准备1.5 任务实施1.5.1 认识 micro:bit 开发板取出 micro:bit 开发板对照硬件特征图依次找到正面的 25 颗 LED 灯阵列、A 和 B 两个按钮、底部的金属引脚背面的蓝牙天线与处理器、微型 USB 接口、电池接口以及指南针和加速度计。再用 microUSB 线把开发板连接到电脑的 USB 接口USB 接口既为开发板供电也是后面下载程序的通道。1.5.2 搭建 MakeCode 编程环境MakeCode 编程环境有离线版和在线版两种方式任选其一即可。方式一安装 MakeCode 离线版双击安装包“makecode-v5 Setup 3.6.3.exe”在“选定安装位置”界面选择目标文件夹可保持默认点击【安装】。安装完成后打开软件即可看到 MakeCode 主页点击【新建项目】可以创建新的程序下方还提供了“Flashing Heart”等示例项目可以直接打开学习。用离线版拖拉拽形成应用后下载成二进制文件格式再将二进制文件拷贝进 MICROBIT 文件夹中即可运行应用。方式二使用在线版打开浏览器访问 https://makecode.microbit.org无需安装即可使用。使用方式与离线版一致拖拉拽形成应用下载成二进制文件格式将二进制文件拷贝进 MICROBIT 文件夹中即可运行应用也可以连接 micro:bit直接 download 二进制文件。1.5.3 导入示例代码文件在 MakeCode 主页右侧点击【导入】在弹出的对话框中选择【导入文件…】找到示例代码文件“1-microbit-25sec_countdown.hex”并导入。导入成功后进入编辑界面左侧是模拟器可以预览程序效果中间是积木分类栏右侧是代码编辑区可以看到 25 秒倒计时程序的完整代码左下角的【下载】按钮用于下载程序项目名称为“25sec_countdown”。1.5.4 下载程序到 micro:bit方式一先下载再拷贝点击编辑界面底部的【下载】按钮将生成的二进制文件.hex保存到电脑。用 microUSB 线连接 micro:bit 后电脑中会出现名为“MICROBIT”的磁盘将 .hex 文件拷贝进去待进度条走完程序便开始在板子上运行。方式二连接后直接下载在在线版中连接 micro:bit 后可以直接下载程序到板子上按提示操作即可。第一步按提示用 USB 线把 micro:bit 连接到电脑Connect your micro:bit to your computer点击【下一步】第二步点击【Pair】将 micro:bit 与浏览器配对Pair your micro:bit to your browser。在浏览器弹出的设备列表中选择“BBC micro:bit CMSIS-DAP”点击【连接】即可完成配对。连接成功后在电脑“蓝牙和其他设备”的设备列表中也能看到“BBC micro:bit CMSIS-DAP”设备说明电脑已经识别到了开发板。此时可以下载程序了。1.5.5 运行并解读 25 秒倒计时程序程序下载完成后micro:bit 即开始运行。按下按钮 A 启动倒计时LED 灯阵的图案会随时间逐步变化约 25 秒后倒计时结束按下按钮 BLED 屏幕显示爱心。25 秒倒计时的程序可以分为以下五部分来理解当开机时显示字符“0”。当按钮 A 被按下时把变量标识为开始即 start_flag 1。当按钮 B 被按下时micro:bit 的 LED 屏幕显示为爱心。在主循环无限循环中根据开始标识运行程序判断条件为 start_flag 1条件成立时依次调用 doSomething1 doSomething5调用结束后将 start_flag 重置为 0。自定义了 doSomething1 doSomething5 几个函数其实就是简单地显示不同的 LED 图案每一帧的持续时间为 1 秒。下图是五个自定义函数的内容每个函数依次显示若干帧 LED 图案每帧暂停 1000 ms1 秒五个函数依次被调用串联成完整的倒计时动画。运行机制小结按钮 A 的事件只负责把 start_flag 设为 1相当于“发出开始信号”真正的倒计时是在无限循环中检测到 start_flag 等于 1 之后才执行的。也就是说事件负责“发信号”循环负责“干活”函数则把每一段显示动画封装起来重复使用。想一想25 秒倒计时你能联想到哪些应用场景视频如下1-25秒倒计时视频1.5.6 拓展案例案例1做一个抢答器比赛时两个选手站在抢答器两边当主持人提出问题谁更快地按下抢答器上的按钮谁就能获得抢先回答问题的资格。现在用micro:bit来制作一个抢答器哪个按钮先被按下LED点阵上就显示对应方向的箭头如果两个按钮同时按下就显示一个爱心。实现时用到三个“当按钮被按下时”事件按钮A按下显示向左的箭头并播放铃声按钮B按下显示向右的箭头并播放铃声按钮AB同时按下显示爱心图标并停止所有声音。视频如下2-看谁按的快抢答案例2做一个抛硬币程序当我们想吃冰激凌又想吃糖果而妈妈只允许吃一个时可以用抛硬币的方法来做决定。现在用micro:bit来实现同样的功能按下A按钮micro:bit就会随机显示向上或向下的箭头分别代表硬币的正面或反面。实现时把程序放在无限循环中如果按钮A被按下先依次显示几个图标形成“抛”的动画然后用“随机选取 true 或 false”作为判断条件——为真时显示向上的箭头否则显示向下的箭头。视频如下3-抛硬币1.5.7 效果验收你能搭建一个“10、9、8、7、6、5、4、3、2、1、0比心”这样的倒计时程序吗可以参考25秒倒计时的程序结构用按钮A作为开始信号在无限循环中依次显示数字最后显示爱心图标。1.6 任务巩固1.6.1 判断题1micro:bit是由英国广播电视公司BBC推出的专为青少年编程教育设计的微型电脑开发板。答案正确解析micro:bit确实是由BBC推出的专为青少年编程教育设计的微型电脑开发板。2micro:bit上的LED灯只能显示数字不能显示图像或文字。答案错误解析micro:bit有25颗可独立编程的LED灯可以用来显示文本、数字以及图像。3micro:bit可以通过USB接口连接到计算机用于供电和下载程序。答案正确解析USB接口允许通过USB线将micro:bit连接到计算机用于供电和下载程序。4micro:bit的无限循环forever loop中可以使用break语句来提前退出循环。答案错误解析无限循环是基于事件的循环其中不能使用break和continue语句。1.6.2 单选题5micro:bit板子正面有几个可编程按钮A. 1个 B. 2个 C. 3个 D. 4个答案B解析micro:bit板子正面有2个按钮标记了A和B。6在micro:bit编程中“当开机时”事件主要用于A. 循环执行程序B. 初始化程序设置C. 响应按钮按下D. 无线通信答案B解析“当开机时”事件用于初始化程序例如设置初始值、显示开机动画等。7micro:bit的加速度传感器不能用于检测以下哪种动作A. 摇动B. 倾斜C. 自由落体D. 温度变化答案D解析加速度传感器可以检测micro:bit的移动包括摇动、倾斜和自由落体但不用于检测温度变化温度由温度传感器检测。1.6.3 多选题8以下哪些功能是micro:bit具备的A. 蓝牙通信 B. 无线电通信C. 光线传感 D. 声音识别答案A、B、C解析micro:bit具备蓝牙通信、无线电通信和光线传感功能但课程中未涉及声音识别功能。9在micro:bit编程中使用函数的主要目的包括A. 降低编程难度B. 增加代码长度C. 实现代码复用D. 提高程序运行速度答案A、C解析使用函数的主要目的是降低编程难度和实现代码复用而不是增加代码长度或直接提高程序运行速度。
返回列表