====== micro:bit从入门到进阶 ====== 官方推荐使用MakeCode编辑器(主要使用基于块和文本编辑器的JavaScript语言)或MicroPython编辑器(使用基于文本编辑器的Python语言)编程,在移动设备可以使用Apple Inc.为Swift创建的开发环境Swift Playgrounds。还有更多的方式可以支持micro:bit编程,甚至Scratch、Python和JavaScript,不过micro:bit只能接受HEX文件,最终需要将程序项目文件转化成 .hex 格式的文件。 HEX文件需要将micro:bit通过TYPE C线连接台式机(Mac,PC,Chromebook,Linux,包括Raspberry Pi)、或者通过micro:bit 配套应用蓝牙连接移动设备(Mobile、Table)进行“烧录”。 ===== 仅需四步,快速上手 ===== * 第一步:使用 Micro USB 线将 Micro:bit 连接到电脑,Micro:bit 支持Macs、PCs、Chromebooks 和 Linux 系統; * 第二步:登录 Microsoft MakeCode 线上平台,通过 JavaScript Blocks Editor 编辑器编写第一个程序; * 第三步:将编写的程序下载到Micro:bit; * 第三四:通过 Micro:bit 获取程序运行结果。 ===== MakeCode编辑器 ===== {{:40.oshw:micro_bit:javascript-editor-face.png|}} Microsoft提供的MakeCode编辑器(JavaScript Blocks Editor)使您可以轻松地使用块和JavaScript对micro:bit进行编程,可以在实际硬件或模拟目标上创建和运行用户程序。 MakeCode的主要目标是以一种易于接近且引人入胜的方式介绍编程。为此,MakeCode使用块编程模型让用户以更切实的方式学习编码概念。一旦用户对编码元素和结构感到满意,他们就可以继续创建更复杂的程序。这些块直接映射到编程语言中的实际代码行。因此,一旦用户对块的工作方式有了信心和熟悉度,他们就可以过渡到使用编程语言本身对更复杂的程序进行编码。 ==== 安装MakeCode ==== 可以在PC上下载(http://aka.ms/microbitapp)并安装MakeCode for micro:bit,并提供比在线编程器(makecode.microbit.org)更多的额外功能—— * 通过USB自动对micro:bit进行编程,而无需将文件拖放到micro:bit驱动器上; * 直接从您的micro:bit读取串行数据以进行数据记录和其他有趣的实验。 其他系统可以使用在线MakeCode https://makecode.microbit.org/ ==== MakeCode界面 ==== MakeCode编辑器的基本要素包括:块编辑器,语言编辑器,目标模拟器和目标代码生成器。 用户可以在“块编辑器”中通过“拖动”或“拖动”块到编辑器工作区来交互式地创建程序。可以在工作区旁边的“块工具箱”中的可用类别下找到块。 {{:40.oshw:micro_bit:blocks-editor.png|}} 语言编辑器是MakeCode中“块”编辑器的补充。在语言编辑器中,用户可以编写比代码块更复杂的代码。 {{:40.oshw:micro_bit:javascript-editor.png|}} 模拟器具有代表目标板功能的视觉元素,以模拟程序在micro:bit上运行时发生的情况。 {{:40.oshw:micro_bit:simulator.png|}} 当程序可以在目标板上测试或使用时,用户便开始下载。下载操作会将编辑器中的代码转换为目标的本机格式,并生成一个HEX文件以复制到板上。 {{:40.oshw:micro_bit:download-button.png|}} ==== 支持Python ==== Makecode作为微软的通用编程平台,正在不断升级,功能也越来越多了。近日Makecode已经在Arcade的测试版中开启了python功能,大家可以预先体验一下在makecode中使用python编程的感觉了。https://arcade.makecode.com/ {{:50.program:scratch:makecodepython.png|}} 打开Arcade beta版的编程网站; 进入编程界面,点击右上角的齿轮图标,在菜单中选择“关于”; 在关于界面中点击“实验”按钮; 启用Static Python功能; 返回编程界面,就会显示python编程标签,就可以在图形编程、javascript编程和python编程之间切换了。 据makecode团队说,makecode会先将Static Python编译为Static TypeScript。 Makecode的官方文档: * https://makecode.microbit.org/docs * https://www.microsoft.com/en-us/makecode/resources ===== MicroPython编辑器 ===== {{:40.oshw:micro_bit:python-editor.png|}} MicroPython是Python3的精简实现,并支持micro:bit。 ==== micro:bit Python ==== MicroPython(http://micropython.org/)是Python 3编程语言的一个完整软件实现,用C语言编写,被优化于运行在微控制器之上。MicroPython是运行在微控制器硬件之上的完全的Python编译器和运行时系统。提供给用户一个交互式提示符来立即执行所支持的命令。除了包括选定的核心Python库,MicroPython还包括了给予编程者访问低层硬件的模块。MicroPython是澳大利亚程序员和物理学家Damien George,在2013年一次成功的Kickstarter众筹活动之后最初创建的,其初衷是用Python来控制单片机,实现对机器人的操控。2016年,Python软件基金会创建了MicroPython的BBC Micro Bit版本——micro:bit Python编辑器,作为其BBC Micro Bit合作伙伴贡献的一部分。 micro:bit Python编辑器(https://python.microbit.org/)的2019年10月版带来了许多新功能和用户界面更改。 * 对新文件系统的访问:Python Script(.py) & Project Hex(.hex); * WebUSB:当使用支持WebUSB的浏览器(例如Google Chrome或最新的Edge Beta)时,将启用用于在浏览器中连接至micro:bit并与之交互的选项; * 菜单翻译。 ==== Mu ==== {{:40.oshw:micro_bit:mu.gif|}} Mu(https://codewith.mu/)是一个用Python编写的跨平台编辑器,它最初是为了micro:bit开发的,它只有最基本的核心功能,没有复杂的界面和设置,也没有各种各样的插件。是面向初学者提供支持micro:bit的离线应用(Windows, OSX 和 Linux)。 使用Mu的简单三步骤: * 下载并安装Mu; * 选择Mu的BBC microb:bit模式; * 使用python代码对micro:bit进行开发。 在发布micro:bit Python编辑器之前,Mu被官方推荐,并被认为可能是人们在BBC micro:bit上进行MicroPython编程最简单的方式。 ==== MicroPython IDE ==== [[https://marketplace.visualstudio.com/items?itemName=dphans.micropython-ide-vscode|MicroPython IDE]]是VS Code(Visual Studio Code)的Micropython集成开发环境。 {{ :40.oshw:micro_bit:screenshot-getting-started.png |}} ===== 兼容编程软件 ===== 国内兼容编程软件众多,可以尝试使用慧编程[[https://www.mblock.cc/zh-cn/download/|mBlock5]]、DF创客社区[[http://mindplus.cc/|Mind+]]等。 ===== Swift Playgrounds ===== {{:40.oshw:micro_bit:code_playground_large.jpg|}} Swift Playgrounds是Apple Inc.为Swift创建的开发环境,适用于iPad,能以互动有趣的方式来学习 Swift。它不要求用户具备编程知识,非常适合初学者。https://www.apple.com/cn/swift/playgrounds/ 苹果公司于2014年在苹果开发者年会发布了Swift编程语言。Swift与Objective-C用来撰写基于macOS/OS X、iOS、iPadOS、watchOS和tvOS的软件。 ===== Scratch ===== {{:40.oshw:micro_bit:code-workspace-with-script.png|}} 最新发布的Scratch3.0在硬件方面最先支持的除了LEGO机器人,另外一个就是micro:bit。使用Scratch对micro:bit编程,首先需要在Scratch 3.0上连接micro:bit: * 根据计算机的操作系统,下载并安装适合的Scratch Link,并启动; * 下载Scratch micro:bit HEX文件,并存入micro:bit; * 在Scratch扩展列表中选择micro:bit,并选择连接BBC micro:bit; * 使用Scratch增加的micro:bit指令区编程。 实际上,在初学者熟悉Scratch 3拖拽编程后,可以转向MakeCode编辑器,利用其 块编辑器 > 语言编辑器 的一键切换功能,实现编程的平滑过渡,包括Javascript和Python。 注意:在连接能力上,Scratch Link目前只支持 BLE (蓝牙低功耗,Bluetooth Low Energy),因此利用micro:bit官方的Scratch Link在没有蓝牙设备的计算机上并不能够成功连接。[[50.program:scratch:adapter#codelab-adapter|CodeLab Adapter]] 支持USB、WIFI、Bluetooth2.0/Bluetooth4.0等任何的连接。 {{:40.oshw:micro_bit:20191110154119.png?200|}}{{:40.oshw:micro_bit:20191110154146.png?200|}} ===== uFlash ===== uFlash是一个命令行工具,用于将原始Python脚本上传到BBC micro:bit上。https://uflash.readthedocs.io/en/latest/ uFlash提供两项功能: - 通过内置函数库将一个 Python 脚本转化成 .hex 格式的文件 - 通过命令行将 Python 脚本刷到 micro:bit 主控板中 这两项功能实际上包含了一些重要的操作: * 将 Python 代码编码成 hex 格式 * 将 hex 化的 Python 代码嵌入到 MicroPython 运行时的 hex 文件中 * 从 MicroPython hex 文件中提取 Python 脚本(可将 hex 格式解码为 py 格式) * 发现已连接的 micro:bit 设备 (包括蓝牙连接、USB 串口连接) * 烧录 hex 文件直接传到 micro:bit 中完成烧录 * 指定板子当前的 MicroPython 运行时,也就是烧录固件。 ===== 官方项目 ===== [[https://makecode.microbit.org/projects|官方项目]]包含在[[https://makecode.microbit.org/docs|官方文档]]中,这份在线文档还包括课程、语法、扩展、块、Javascript、类、硬件等内容。 {{ :40.oshw:micro_bit:csintro-educator.jpg |}} 在线课程非常丰富,计算机科学概论课程(Computer Science course)提供在线入门的14周计算机科学课程。 在《[[https://www.lagou.com/lgeduarticle/12645.html|micro:bit 软件生态系统介绍]]》中有对本文的补充说明。