Micro Bit
研發商 | 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 |
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 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 v2中,可以長按3秒reset按鈕來關閉主板[19][20][21]。
軟件
[編輯]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 (頁面存檔備份,存於網際網路檔案館)