Micro Bit
BBC micro:bit 微控制器的背面。 | |
研發商 | BBC Learning, BBC R&D, ARM Holdings, Nordic Semiconductor, NXP Semiconductors, Lancaster University, Microsoft, Python Software Foundation, element14, Technology Will Save Us, 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 |
Micro Bit(也叫做BBC Micro Bit,或风格化为micro:bit)是基于ARM架构的嵌入式系统,由BBC设计用于英国的计算机教育。
电路板大小为4cm×5cm,拥有1个ARM Cortex-M0处理器,感應器方面,包括︰加速度传感器和磁力传感器,通訊包括︰蓝牙和USB连接,可透過網頁编程,直接把程式導入。由25个 (5*5) 紅色LED组成的显示屏,可以顯示單色圖案或動畫。2个可编程按钮,可以用USB或者外部电池包来供电[2]。设备输入和输出包括环孔连接器和边缘连接器。
硬件
设备大小可描述为信用卡的一半大小[3],首发的最终制造产品[4][update],实测为43mm×52mm,它包括有:
- Nordic nRF51822-QFAA-R rev 3 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控制器等。它担任串行及调试适配器 (页面存档备份,存于互联网档案馆),是在用户计算机和nRF51目标MCU之间的接口MCU,用户PC通过USB HID类连接经由接口MCU对目标MCU进行调试(JTAG-AP)和刷写程序(MEM-AP)[9],并通过CDC类连接经由接口MCU与目标MCU进行串行通信[10]。
- 三轴加速度传感器 – 经由I²C总线[11],v1.3*版是NXP/Freescale MMA8652,v1.5版是运动传感器ST LSM303AGR。
- 磁力传感器 – 经由I²C总线,可充当罗盘等[11],v1.3*版是NXP/Freescale MAG3110,v1.5版并入运动传感器ST LSM303AGR。
- 前面有由25个LED构成5×5阵列的显示屏[8]。
- 3个触觉按钮,前面2个为用户按钮A和B,背面1个为reset[12]。
- 背面有MicroUSB连接器,和电池连接器[2][8][11][13]。
I/O包括环孔连接器:3个GPIO(P0、P1、P2),1个电源正极(3V),1个接地即电源负极(GND),它们接纳鳄鱼夹或4mm香蕉插头[12];边缘连接器针脚(也称为金手指)的标号,依次为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输出[14]。
在连接了USB的情况下,KL26Z负责对这个PCB余下部份供电,将USB供给的5V±5%电压规整降至3.3V。KL26Z限定最大电流120mA,电源环孔或针脚输出可能只余下90mA。在使用电池连接器供电时,电池不为KL26Z供电,nRF51供电和电源环孔或针脚输出都来自电池。还可以谨慎的从电源环孔或针脚向micro:bit供电,从电池连接器、环孔或针脚择一供电时都不可超过3.6V极值[15]。
软件
Micro Bit的软件是使用ARM Mbed开发工具建立的[16],并且采用了其编程接口DAPLink (页面存档备份,存于互联网档案馆),设备在连接到计算机的时候,是作为一个USB大容量存储设备而出现的[13]。兰卡斯特大学开发了micro:bit运行时系统(有时称为设备抽象层),提供了事件驱动编程和键-值存储机制[17],采用了Nordic半导体的nRF51 SDK (页面存档备份,存于互联网档案馆)和S110 SoftDevice (页面存档备份,存于互联网档案馆),以及Mbed的BLE API (页面存档备份,存于互联网档案馆),并与蓝牙技术联盟协作开发了定制的BLE profile (页面存档备份,存于互联网档案馆)。用户用C/C++语言编写的应用程序,可以通过Mbed在线编译器[16]、Mbed CLI (页面存档备份,存于互联网档案馆)、GNU MCU Eclipse (页面存档备份,存于互联网档案馆)或Keli µVISION (页面存档备份,存于互联网档案馆)等开发工具,利用ARM编译器 (页面存档备份,存于互联网档案馆)或GNU ARM工具链 (页面存档备份,存于互联网档案馆)来进行编译,编译后的目标代码接着通过USB连接或手机app蓝牙连接而被刷写到设备中。
在micro:bit基金会网站 (页面存档备份,存于互联网档案馆)上有侧重于教育的2个官方在线代码编辑器:
- Microsoft MakeCode (页面存档备份,存于互联网档案馆),是JavaScript Blocks编辑器和浏览器内编译器,曾经称为Microsoft PXT编辑器,PXT (页面存档备份,存于互联网档案馆)(编程实验工具包)完全在用户浏览器中运行,它通过内置的ARM Thumb编译器生成目标代码,浏览器同时还装载了预编译的micro:bit运行时系统,从而与用户目标代码链接成最终目标代码,还可以在刷写入设备之前在内置的micro:bit模拟器中见到它的运行效果[18]。
- MicroPython,是完整的Python 3语言实现,包含了Python标准库的一个小子集,带有音乐编程语言和语音合成器,本地文件系统,被推荐用于做进一步的编程实验[19][20]。用户可以在web编辑器中写Python脚本,其源代码被附加于MicroPython实现固件的后面,把这个最终复合固件下载后刷写到设备中,MicroPython运行后将附随的源代码编译成字节码并在虚拟机中运行,由于内存限制在MicroPython内未启用nRF51的蓝牙协议栈[21]。可以通过USB串行连接访问MicroPython REPL,从而可直接交互于Micro Bit的外设。MicroPython的编辑器还有给初学者在PC上用Mu (页面存档备份,存于互联网档案馆),和在线blocks编辑器EduBlocks。
针对micro:bit的其他开发工具有:
- Espruino (页面存档备份,存于互联网档案馆),是面向网络应用开发的JavaScript解释器固件[22],解释器有运行状态持久保存和复位机制,支持内联汇编语言,由于将micro:bit的内存大量用于了蓝牙功能,不提供ES6特征和高级库函数。可以通过USB串行连接,或通过在支持了Web Bluetooth (页面存档备份,存于互联网档案馆)的浏览器中运行Espruino Web IDE (页面存档备份,存于互联网档案馆)对它进行交互访问,IDE也有可选的blocks编辑器。
- Arduino nRF5 (页面存档备份,存于互联网档案馆),是针对基于Nordic半导体nRF5开发板的Arduino Core (页面存档备份,存于互联网档案馆)。
- Node.js库:node-bbc-microbit (页面存档备份,存于互联网档案馆),从Node.js用BLE控制micro:bit;bbc-microbit-io (页面存档备份,存于互联网档案馆),针对micro:bit的Johnny-Five (页面存档备份,存于互联网档案馆)(JavaScript机器人及IoT平台)IO插件。
除了micro:bit运行时系统所采用的Mbed OS 2 (页面存档备份,存于互联网档案馆),以及nRF51 SDK支持的CMSIS-RTOS RTX (页面存档备份,存于互联网档案馆)[23][24][25],可以在micro:bit上运行的嵌入式操作系统还有:Zephyr,Apache Mynewt,RIOT。
针对micro:bit的其他编程语言有:uLisp[26]、Mecrisp Forth[27]、Free Pascal[28]、GNAT Ada[29]、TinyGo[30]、Rust[31]、Swift[32]等。其他交互语言有Scratch3.0[33]、Dyalog APL[34]、Simulink编码器支持包[35]、Node-RED模块[36]、App Inventor + IoT[37]、BlockyTalkyBLE[38]等。
历史
Micro Bit被设计用来鼓励儿童活跃的投入为计算机书写软件和建造新东西,而不是成为媒体的消费者[2]。它被设计为并肩工作于其他系统,比如Raspberry Pi[39],它也建造在BBC在计算机教育中的BBC Micro这项遗产之上[40]。
合作伙伴
Micro Bit的开发汇集了众多伙伴与BBC一起工作:
- ARM控股 – 提供Mbed开发工具、固件和编译器服务[41]。
- Nordic半导体 – 为这个设备提供目标MCU和BLE协议栈[2]。
- NXP半导体 – 提供接口MCU、USB控制器和传感器[2]。
- 蓝牙技术联盟 – 与兰卡斯特大学协作开发定制的Bluetooth LE profile[42]。
- 兰卡斯特大学 – 开发这个设备的运行时系统,与蓝牙技术联盟协作开发定制的Bluetooth LE profile[41]。
- 微软 – 贡献了自己在TypeScript等方面的软件专门知识。它在其TouchDevelop平台上为这个设备定制了专题项目[43],还开发了这个设备的教师训练材料[2]。
- Python软件基金会 – 将MicroPython移植到这个设备,建立本机和基于web的初学者友好的Python代码编辑器,出品大量教育资源并为教师建立有组织的开发者领导的工场[44][45]。
- Farnell element14 – 监督这个设备的制造[2]。
- Technology Will Save Us – 设计这个设备的物理外观,编写出厂演示程序[12]。
- 三星集团 – 开发Android app并帮助把设备连接到智能手机和平板电脑[41]。
- ScienceScope – 开发iOS app并把这个设备发布到学校[41]。
- 巴克莱银行 – 提供产品递送和外展活动[41]。
- 惠康基金会 – 为教师和学校提供学习机会[41]。
- STEMNET – 提供STEM大使来支持学校和教师并联系第三方比如Bloodhound SSC和Cisco[46]。
- 思科系统 – 向STEMNET提供人员和资源来资助国家首展[46]。
- Creative Digital Solutions – 开发教师材料,工场和外展活动[46]。
- Code Club – 建立一系列引导9到11岁儿童的编码资源并通过志愿者递送运行编码俱乐部[46]。
- Kitronik – 为BBC micro:bit生产并分发5500份e-textile kit给英国内的D&T教师。设计硬件比如Motor Driver board来允许BBC micro:bit控制设备比如电动机和伺服系统[46]。
- Tangent Design – 建立BBC micro:bit品牌标识并开发web站点[46]。
BBC研究发展部建立了原型设备和软件栈 (页面存档备份,存于互联网档案馆),在最初宣布中进了展示[47],在学校中测试了这项提议,并为合作伙伴后续建设提供了参考规定[48]。
Microbit教育基金会
在成功的于英国推出了micro:bit之后,BBC将BBC micro:bit的未来交付给新成立的非营利性Micro:bit教育基金会[49]。从BBC到Micro:bit教育基金会的迁移首先是将官方网站从www.microbit.co.uk转移到了https://microbit.org/ (页面存档备份,存于互联网档案馆)。
制造
Premier Farnell负责管理BBC micro:bit的制造,监督各厂商进货所有部件并在各自的加工工厂生产micro:bit[50]。
Microbit在香港
Micro:bit 已被廣泛利用到香港中小學的資訊科技課程中,亦被視爲是正式課程裡的一環。
参见
书籍
引用
- ^ 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).
- ^ 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 (页面存档备份,存于互联网档案馆).
- ^ 11.0 11.1 11.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.
- ^ 12.0 12.1 12.2 Groundbreaking initiative to inspire digital creativity and develop a new generation of tech pioneers. BBC. [8 July 2015]. (原始内容存档于2020-12-04).
- ^ 13.0 13.1 Williams, Alun. Micro Bit reunites BBC and ARM for grand education initiative. Electronics Weekly. [8 July 2015]. (原始内容存档于2015-07-14). 引用错误:带有name属性“elecweekly_reunites”的
<ref>
标签用不同内容定义了多次 - ^ Edge Connector & micro:bit pinout. [2020-09-20]. (原始内容存档于2020-11-28).
- ^ Power Supply.. [2018-04-21]. (原始内容存档于2020-12-02).
- ^ 16.0 16.1 BBC micro:bit on ARM Mbed (页面存档备份,存于互联网档案馆).
- ^ micro:bit runtime.. [2018-03-30]. (原始内容存档于2020-09-15).
- ^ 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).
- ^ The Espruino project enables JavaScript for embedded development on multiple levels.. [2021-02-07]. (原始内容存档于2018-10-21).
- ^ 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).
- ^ 41.0 41.1 41.2 41.3 41.4 41.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).
- ^ 46.0 46.1 46.2 46.3 46.4 46.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日).
- ^ Where to buy the BBC micro:bit and BBC micro:bit accessories (页面存档备份,存于互联网档案馆).
外部链接
- 官方网站
- 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 (页面存档备份,存于互联网档案馆)