Micro Bit
Micro Bit(也叫做BBC Micro Bit,或风格化为micro:bit)是基于ARM架构的單板電腦,由英國廣播公司(BBC)设计,用于英国的计算机教育。
研發商 | BBC Learning, BBC R&D, ARM Holdings, Nordic Semiconductor, NXP Semiconductors, Lancaster University, Microsoft, Python Software Foundation, element14, TechnologyUs, Samsung, ScienceScope, Barclays |
---|---|
类型 | 单板微控制器 |
发布日期 | 学校:2015年9月(延期) 公众:2015年10月(延期) 首次递交给教师于2016年2月[1] |
系统芯片 | Nordic nRF51822 SoC。 |
中央处理器 | 16 MHz ARM Cortex-M0微控制器。 |
記憶體 | 256 KB Flash,16 KB RAM。 |
连接接口 | Bluetooth LE,MicroUSB,边缘连接器。 |
網站 | microbit |
电路板大小为4cm×5cm,拥有1个ARM Cortex-M0处理器,內建加速度传感器和磁力传感器,通訊介面包括蓝牙和USB,可透過網頁编程,直接把程式導入。显示屏由25个 (5*5) 紅色LED组成,可以顯示單色圖案或動畫。2个可编程按钮,可以用USB或者外部电池包来供电[2]。设备输入和输出為环孔连接器和边缘连接器。
硬件
编辑设备大小可描述为信用卡的一半大小[3],首发的最终制造产品[4][update],实测为43mm×52mm,它包括有:
- Nordic nRF51822 SoC – 16 MHz 32-bit ARM Cortex-M0微控制器,包含了256 KB闪存,16 KB静态内存,集成了2.4 GHz蓝牙低功耗协议栈和Nordic专有RF无线传输协议的模块[2][5][6][7][8],nRF51由于低功耗设计,不内置SysTick可编程间隔定时器。
- NXP/Freescale KL26Z MCU – 48 MHz 32-bit ARM Cortex-M0+核心微控制器,包含了全速USB 2.0 OTG控制器等。它担任串行及调试适配器[9],是在用户计算机和nRF51目标MCU之间的接口MCU,用户PC通过USB HID类连接经由接口MCU对目标MCU进行调试(JTAG-AP)和刷写程序(MEM-AP)[10],并通过CDC类连接经由接口MCU与目标MCU进行串行通信[11]。
- 三轴加速度传感器 – 经由I²C总线[12],v1.3*版是NXP/Freescale MMA8652,v1.5版是运动传感器ST LSM303AGR。
- 磁力传感器 – 经由I²C总线,可充当罗盘等[12],v1.3*版是NXP/Freescale MAG3110,v1.5版并入运动传感器ST LSM303AGR。
- 前面有由25个LED构成5×5矩阵的显示屏[8]。
- 3个触觉按钮,前面2个为用户按钮A和B,背面1个为reset[13]。
- 背面有MicroUSB连接器,和电池连接器[2][8][12][14]。
I/O包括环孔连接器:3个GPIO(P0、P1、P2),1个电源正极(3V),1个接地即电源负极(GND),它们接纳鳄鱼夹或4mm香蕉插头[13];边缘连接器针脚(也称为金手指)的标号,依次为micro:bit设备抽象层(DAL)指定的:P3、P0、P4-P7、P1、P8-P12、P2、P13-P16、3V(3个)、P19-P20、GND(3个),共19个可设置的GPIO(未引出内部使用的P17、P18)。其中5个可完全自由使用(P0-P2、P8、P16),6个共用于LED阵列显示屏(P3、P4、P6、P7、P9、P10),2个共用于按钮A、B(P5、P11),1个保留给无障碍接口输入(P12);可设置出1路SPI总线(P13-P15),1路I²C总线(P19-P20),1对UART串行收发;可设置出6个模拟输入(P0-P4、P10),3个触摸感应输入(P0-P2),3个PWM输出[15]。
在连接了USB的情况下,KL26Z负责对这个PCB余下部份供电,将USB供给的5V±5%电压规整降至3.3V。KL26Z限定最大电流120mA,电源环孔或针脚输出可能只余下90mA。在使用电池连接器供电时,电池不为KL26Z供电,nRF51供电和电源环孔或针脚输出都来自电池。还可以谨慎的从电源环孔或针脚向micro:bit供电,从电池连接器、环孔或针脚择一供电时都不可超过3.6V极值[16]。
v2
编辑版本2(v2)在2020年10月13日发行,包括了[17]:
- Nordic nRF52833 – 64 MHz 32-bit ARM Cortex-M4微控制器,512 KB闪存,128 KB静态内存,Nordic S113 SoftDevice[18]提供的2.4 GHz蓝牙低功耗无线网络,集成的温度传感器。
- NXP/Freescale KL27Z – 48 MHz ARM Cortex-M0+核心微控制器,预编程为全速USB 2.0控制器,用在USB和CPU之间的通线接口。
- 要么ST LSM303要么NXP FXOS8700 – 三轴的组合加速度和磁力传感器,经由I²C总线。
- Knowles MEMS麦克风,具有内建LED指示灯。
- Jiangsu Huaneng MLT-8530电磁式扬声器。
- MicroUSB连接器,JST PH电池连接器,25针边缘连接器。
- 由25个LED构成的5×5矩阵显示屏。
- 三个触觉按钮(两个给应用,一个给reset)和一个触摸传感器按钮。
软件
编辑Micro Bit的软件是使用ARM Mbed开发工具建立的[22],并且采用了其编程接口DAPLink[23],设备在连接到计算机的时候,是作为一个USB大容量存储设备而出现的[14]。兰卡斯特大学开发了micro:bit运行时系统(有时称为设备抽象层),提供了事件驱动编程和键-值存储机制[24],采用了Nordic半导体的nRF51 SDK[25]和S110 SoftDevice[26],以及Mbed的BLE API[27],并与蓝牙技术联盟协作开发了定制的BLE profile[28]。用户用C/C++语言编写的应用程序,可以通过Mbed在线编译器[22]、Mbed CLI[29]、GNU MCU Eclipse[30]或Keli µVISION[31]等开发工具,利用ARM编译器[32]或GNU ARM工具链[33]来进行编译,编译后的目标代码接着通过USB连接或手机app蓝牙连接而被刷写到设备中。
在micro:bit基金会网站[34]上有侧重于教育的2个官方在线代码编辑器:
- Microsoft MakeCode[35],是JavaScript Blocks编辑器和浏览器内编译器,曾经称为Microsoft PXT编辑器,PXT[36](编程实验工具包)完全在用户浏览器中运行,它通过内置的ARM Thumb编译器生成目标代码,浏览器同时还装载了预编译的micro:bit运行时系统,从而与用户目标代码链接成最终目标代码,还可以在刷写入设备之前在内置的micro:bit模拟器中见到它的运行效果[37]。
- MicroPython,是完整的Python 3语言实现,包含了Python标准库的一个小子集,带有音乐编程语言和语音合成器,本地文件系统,被推荐用于做进一步的编程实验[38][39]。用户可以在web编辑器中写Python脚本,其源代码被附加于MicroPython实现固件的后面,把这个最终复合固件下载后刷写到设备中,MicroPython运行后将附随的源代码编译成字节码并在虚拟机中运行,由于内存限制在MicroPython内未启用nRF51的蓝牙协议栈[40]。可以通过USB串行连接访问MicroPython REPL,从而可直接交互于Micro Bit的外设。MicroPython的编辑器还有给初学者在PC上用Mu[41],和在线blocks编辑器EduBlocks[42]。
针对micro:bit的其他开发工具有:
- Espruino[43],是面向网络应用开发的JavaScript解释器固件[44],解释器有运行状态持久保存和复位机制,支持内联汇编语言,由于将micro:bit的内存大量用于了蓝牙功能,不提供ES6特征和高级库函数。可以通过USB串行连接,或通过在支持了Web Bluetooth[45]的浏览器中运行Web IDE[46]对它进行交互访问,IDE也有可选的blocks编辑器。
- Arduino nRF5[47],是针对基于Nordic半导体nRF5开发板的Arduino Core[48]。
- Node.js库:node-bbc-microbit[49],从Node.js用BLE控制micro:bit;bbc-microbit-io[50],针对micro:bit的Johnny-Five[51](JavaScript机器人及IoT平台)IO插件。
除了micro:bit运行时系统所采用的Mbed OS 2[52],以及nRF51 SDK支持的CMSIS-RTOS RTX[53][54][55],可以在micro:bit上运行的嵌入式操作系统还有:Zephyr,Apache Mynewt,RIOT。
针对micro:bit的其他编程语言有:uLisp[56]、Mecrisp Forth[57]、Free Pascal[58]、GNAT Ada[59]、TinyGo[60]、Rust[61]、Swift[62]等。其他交互语言有Scratch3.0[63]、Dyalog APL[64]、Simulink编码器支持包[65]、Node-RED模块[66]、App Inventor + IoT[67]、BlockyTalkyBLE[68]等。
历史
编辑Micro Bit被设计用来鼓励儿童活跃的投入为计算机书写软件和建造新东西,而不是成为媒体的消费者[2]。它被设计为并肩工作于其他系统,比如Raspberry Pi[69],它也建造在BBC在计算机教育中的BBC Micro这项遗产之上[70]。
合作伙伴
编辑Micro Bit的开发汇集了众多伙伴与BBC一起工作:
- ARM控股 – 提供Mbed开发工具、固件和编译器服务[71]。
- Nordic半导体 – 为这个设备提供目标MCU和BLE协议栈[2]。
- NXP半导体 – 提供接口MCU、USB控制器和传感器[2]。
- 蓝牙技术联盟 – 与兰卡斯特大学协作开发定制的Bluetooth LE profile[72]。
- 兰卡斯特大学 – 开发这个设备的运行时系统,与蓝牙技术联盟协作开发定制的Bluetooth LE profile[71]。
- 微软 – 贡献了自己在TypeScript等方面的软件专门知识。它在其TouchDevelop平台上为这个设备定制了专题项目[73],还开发了这个设备的教师训练材料[2]。
- Python软件基金会 – 将MicroPython移植到这个设备,建立本机和基于web的初学者友好的Python代码编辑器,出品大量教育资源并为教师建立有组织的开发者领导的工场[74][75]。
- Farnell element14 – 监督这个设备的制造[2]。
- Technology Will Save Us – 设计这个设备的物理外观,编写出厂演示程序[13]。
- 三星集团 – 开发Android app并帮助把设备连接到智能手机和平板电脑[71]。
- ScienceScope – 开发iOS app并把这个设备发布到学校[71]。
- 巴克莱银行 – 提供产品递送和外展活动[71]。
- 惠康基金会 – 为教师和学校提供学习机会[71]。
- STEMNET – 提供STEM大使来支持学校和教师并联系第三方比如Bloodhound SSC和Cisco[76]。
- 思科系统 – 向STEMNET提供人员和资源来资助国家首展[76]。
- Creative Digital Solutions – 开发教师材料,工场和外展活动[76]。
- Code Club – 建立一系列引导9到11岁儿童的编码资源并通过志愿者递送运行编码俱乐部[76]。
- Kitronik – 为BBC micro:bit生产并分发5500份e-textile kit给英国内的D&T教师。设计硬件比如Motor Driver board来允许BBC micro:bit控制设备比如电动机和伺服系统[76]。
- Tangent Design – 建立BBC micro:bit品牌标识并开发web站点[76]。
BBC研究发展部建立了原型设备和软件栈[77],在最初宣布中进了展示[78],在学校中测试了这项提议,并为合作伙伴后续建设提供了参考规定[79]。
Microbit教育基金会
编辑在成功的于英国推出了micro:bit之后,BBC将BBC micro:bit的未来交付给新成立的非营利性Micro:bit教育基金会[80]。从BBC到Micro:bit教育基金会的迁移首先是将官方网站从www.microbit.co.uk转移到了microbit.org[81]。
制造
编辑Premier Farnell负责管理BBC micro:bit的制造,监督各厂商进货所有部件并在各自的加工工厂生产micro:bit[82]。
各地發展
编辑於2018年,香港教育城與資訊科技教育領袖協會(AiTLE)、香港大學專業進修學院(HKUSPACE)及 Micro:bit Alliance合辦了十七場「Micro:bit 教師工作坊」,工作坊分五種程度授課,由Micro:bit的基礎功能至進階應用技巧皆有涵蓋。部份內容被納入香港中小學的資訊科技課程中[83]。
参见
编辑书籍
编辑引用
编辑- ^ Computing at School Community. [11 February 2016]. (原始内容存档于2019-10-18).
- ^ 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 Anthony, Sebastian. BBC Micro:bit—a free single-board PC for every Year 7 kid in the UK. arstechnica.uk. 7 July 2015 [8 July 2015]. (原始内容存档于2017-11-08).
- ^ Wired: Micro bit hands on. [2018-03-28]. (原始内容存档于2016-05-22).
- ^ Bell, Lee. BBC teams with ARM, Microsoft and Samsung to launch Micro:bit and get kids coding. The Inquirer. 7 July 2015 [2018-03-29]. (原始内容存档于2019-12-20).
- ^ Sherwin, Adam. BBC micro:bit: Can a pocket-sized computer 'inspire digital creativity' in Britain's children?. The Independent. 7 July 2015 [7 July 2015]. (原始内容存档于2015-08-16).
- ^ Austin, Jonathan. Working with the BBC on micro:bit: Part 1 – using the mbed HDK. 7 July 2015 [2018-03-29]. (原始内容存档于2016-05-05).
…we plugged them into a Nordic NRF51822 development kit, which uses the same chip as the micro:bit…
- ^ Introducing the BBC micro:bit (Shockwave Flash) (Television production). BBC. 事件发生在 00:39. 7 July 2015 [2018-03-29]. (原始内容存档于2020-10-23). 存档副本. [2018-03-29]. 原始内容存档于2020-10-23.
- ^ 8.0 8.1 8.2 Franklin-Wallis, Oliver. BBC unveils final Micro:Bit computer design. wired.co.uk. 7 July 2015 [8 July 2015]. (原始内容存档于2015-11-01).
- ^ 串行及调试适配器 (页面存档备份,存于互联网档案馆)
- ^ CMSIS DAP (页面存档备份,存于互联网档案馆).
- ^ Serial Communication with a PC (页面存档备份,存于互联网档案馆).
- ^ 12.0 12.1 12.2 BBC micro:bit. mbed.org. [8 July 2015]. (原始内容存档于2017-08-02).
The BBC micro:bit is based on the mbed HDK. The target MCU is a Nordic nRF51822 with 16K RAM, 256K Flash. As well as the nRF51822 there's also an onboard accelerometer and magnetometer from Freescale.
- ^ 13.0 13.1 13.2 Groundbreaking initiative to inspire digital creativity and develop a new generation of tech pioneers. BBC. [8 July 2015]. (原始内容存档于2020-12-04).
- ^ 14.0 14.1 Williams, Alun. Micro Bit reunites BBC and ARM for grand education initiative. Electronics Weekly. [8 July 2015]. (原始内容存档于2015-07-14).
- ^ Edge Connector & micro:bit pinout. [2020-09-20]. (原始内容存档于2020-11-28).
- ^ Power Supply.. [2018-04-21]. (原始内容存档于2020-12-02).
- ^ 存档副本. [2018-12-07]. (原始内容存档于2022-02-01).
- ^ S113 SoftDevice —— Memory-optimized Peripheral-only Bluetooth Low Energy protocol stack. [2022-02-22]. (原始内容存档于2022-02-22).
- ^ Everything You Need To Know About The BBC micro:bit V2. [2021-02-22]. (原始内容存档于2022-03-29).
- ^ micro:bit shield for MakeCode Arcade. [2021-02-22]. (原始内容存档于2022-02-01).
- ^ Meet the new BBC micro:bit. [2021-02-22]. (原始内容存档于2022-02-01).
- ^ 22.0 22.1 BBC micro:bit on ARM Mbed (页面存档备份,存于互联网档案馆).
- ^ DAPLink (页面存档备份,存于互联网档案馆)
- ^ micro:bit runtime.. [2018-03-30]. (原始内容存档于2020-09-15).
- ^ nRF51 SDK (页面存档备份,存于互联网档案馆)
- ^ S110 SoftDevice (页面存档备份,存于互联网档案馆)
- ^ BLE API (页面存档备份,存于互联网档案馆)
- ^ profile (页面存档备份,存于互联网档案馆)
- ^ Mbed CLI (页面存档备份,存于互联网档案馆)
- ^ GNU MCU Eclipse (页面存档备份,存于互联网档案馆)
- ^ Keli µVISION (页面存档备份,存于互联网档案馆)
- ^ ARM编译器 (页面存档备份,存于互联网档案馆)
- ^ GNU ARM工具链 (页面存档备份,存于互联网档案馆)
- ^ micro:bit基金会网站 (页面存档备份,存于互联网档案馆)
- ^ Microsoft MakeCode (页面存档备份,存于互联网档案馆)
- ^ PXT (页面存档备份,存于互联网档案馆)
- ^ In Browser Compilers.. [2018-04-21]. (原始内容存档于2020-10-21).
- ^ Williams, Alun. Hands on with the BBC Micro-Bit user interface. ElectronicsWeekly.com. [8 July 2015]. (原始内容存档于2015-10-01).
- ^ The Story of MicroPython on the BBC micro:bit. ntoll.org. [13 November 2015]. (原始内容存档于2020-11-08).
- ^ Python on the micro:bit.. [2018-04-21]. (原始内容存档于2020-10-21).
- ^ Mu (页面存档备份,存于互联网档案馆)
- ^ EduBlocks
- ^ Espruino (页面存档备份,存于互联网档案馆)
- ^ The Espruino project enables JavaScript for embedded development on multiple levels.. [2021-02-07]. (原始内容存档于2018-10-21).
- ^ Web Bluetooth (页面存档备份,存于互联网档案馆)
- ^ Espruino Web IDE (页面存档备份,存于互联网档案馆)
- ^ Arduino nRF5 (页面存档备份,存于互联网档案馆)
- ^ Core (页面存档备份,存于互联网档案馆)
- ^ node-bbc-microbit (页面存档备份,存于互联网档案馆)
- ^ bbc-microbit-io (页面存档备份,存于互联网档案馆)
- ^ Johnny-Five (页面存档备份,存于互联网档案馆)
- ^ Mbed OS 2 (页面存档备份,存于互联网档案馆)
- ^ CMSIS-RTOS RTX (页面存档备份,存于互联网档案馆)
The SDK provides an implementation of an extension to ARM Keil RTX that is referred to as tickless mode. It allows waking up the MCU only when it is needed.. [2018-12-04]. (原始内容存档于2018-12-05). - ^ CMSIS-RTOS is the fundation of the offical mbed RTOS.. [2018-12-10]. (原始内容存档于2020-11-06).
- ^ It is possible to use mbed 5 without the whole of mbed OS, and this would be a good step for micro:bit.. [2018-04-27]. (原始内容存档于2020-11-17).
- ^ uLisp on the BBC Micro Bit. [2018-11-23]. (原始内容存档于2021-02-04).
- ^ Forth for the BBC micro:bit. [2018-04-22]. (原始内容存档于2020-11-30).
- ^ build FPC for the controller used by the micro:bit. [2018-03-30]. (原始内容存档于2020-10-26).
- ^ Ada on the Micro:Bit. [2018-11-23]. (原始内容存档于2020-11-09).
- ^ Go on microcontrollers > BBC micro:bit. [2020-09-19]. (原始内容存档于2020-11-06).
- ^ Rust on BBC micro:bit. [2018-11-24]. (原始内容存档于2020-11-08).
- ^ Swift playgrounds for the micro:bit (页面存档备份,存于互联网档案馆).
- ^ The new version of Scratch is officially compatible with the micro:bit via their Scratch Link plug-in. [2018-11-24]. (原始内容存档于2021-02-04).
- ^ Tools for using the micro:bit with Dyalog APL on the Pi. [2018-11-24]. (原始内容存档于2020-09-18).
- ^ Simulink Coder Support Package for BBC micro:bit Board. [2018-03-30]. (原始内容存档于2020-10-23).
- ^ A node-red module with limited capabilities to interface with Micro:bits. [2018-11-24]. (原始内容存档于2020-09-11).
- ^ Control a micro:bit via Bluetooth with App Inventor, a visual programming environment for Android applications. [2018-11-24]. (原始内容存档于2020-09-11).
- ^ MakeCode and App Inventor extension that makes it easy to connect AppInventor mobile phone apps with the BBC micro:bit wirelessly over Bluetooth. [2018-11-24]. (原始内容存档于2020-11-27).
- ^ Stuart Dredge. BBC Micro Bit will complement Raspberry Pi not compete with it. The Guardian. [2018-03-30]. (原始内容存档于2020-11-08).
- ^ Pritchard, Stephen. Raspberry Pi: A BBC Micro for today's generation. ITPRO. 1 March 2012 [15 March 2012]. (原始内容存档于2020-10-01).
- ^ 71.0 71.1 71.2 71.3 71.4 71.5 Bell, Lee. BBC teams with ARM, Microsoft and Samsung to launch Micro:bit and get kids coding. The Inquirer. [8 July 2015]. (原始内容存档于2019-12-20).
- ^ 存档副本. [2018-03-30]. (原始内容存档于2020-11-08).
- ^ Brian, Matt. How the BBC's Micro:bit came to be. Engadget. 7 July 2015 [8 July 2015]. (原始内容存档于2019-04-20).
- ^ A Million Children. Python Software Foundation News. [24 April 2016]. (原始内容存档于2018-03-30).
- ^ BBC launches MicroBit. Python Software Foundation News. [13 November 2015]. (原始内容存档于2018-03-30).
- ^ 76.0 76.1 76.2 76.3 76.4 76.5 存档副本. [2018-03-30]. (原始内容存档于2017-01-29).
- ^ 原型设备和软件栈 (页面存档备份,存于互联网档案馆)
- ^ Wakefield, Jane. BBC gives children mini-computers in Make it Digital scheme. BBC News. 12 March 2015 [6 August 2015]. (原始内容存档于2020-12-02).
- ^ Sparks, Michael. Prototyping the BBC micro:bit. BBC. 7 July 2015 [6 August 2015]. (原始内容存档于2016-03-14).
- ^ 存档副本. [2016年11月8日]. (原始内容存档于2016年11月8日).
- ^ https://microbit.org/ (页面存档备份,存于互联网档案馆)
- ^ Where to buy the BBC micro:bit and BBC micro:bit accessories (页面存档备份,存于互联网档案馆).
- ^ Micro:bit基礎教學 STEM / 創客教育. [2023-08-28]. (原始内容存档于2023-08-28).
外部链接
编辑- 官方网站
- GitHub上的BBC micro:bit repository
- GitHub上的micro:bit Educational Foundation repository
- GitHub上的Awesome micro:bit - A curated list of BBC micro:bit resources
- GitHub上的micro:bit target for PXT repository
- The micro:bit runtime (developed by Lancaster University) (页面存档备份,存于互联网档案馆)
- Bitty Blue provides a collection of fun things to do with the micro:bit and Bluetooth. Available for Android and iOS.
- Bluetooth troubleshooting guide (页面存档备份,存于互联网档案馆)
- Reset the micro:bit to factory defaults (页面存档备份,存于互联网档案馆)