Micro Bit

（也叫做BBC Micro Bit，或風格化為micro:bit）是基於ARM架構的單板電腦，由英國廣播公司（BBC）設計，用於英國的計算機教育。
電路板大小為4cm×5cm，擁有1個ARM Cortex-M0處理器，內建加速度傳感器和磁力傳感器，通訊介面包括藍牙和USB，可透過網頁編程，直接把程式導入。顯示屏由25個 (5*5) 紅色LED組成，可以顯示單色圖案或動畫。2個可編程按鈕，可以用USB或者外部電池包來供電。設備輸入和輸出為環孔連接器和邊緣連接器。

** 硬件**
加速度傳感器三軸方向
設備大小可描述為信用卡的一半大小，，實測為43mm×52mm，它包括有:- Nordic Semiconductor nRF51822 SoC – nowrap|16 MHz 32-bit ARM Cortex-M0微控制器，包含了256 KB閃存，16 KB靜態內存，集成了nowrap|2.4 GHz藍牙低功耗協議棧和Nordic專有RF無線傳輸協議的模塊，nRF51由於低功耗設計，不內置SysTickProgrammable interval timer。- 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），並通過CDC類連接經由接口MCU與目標MCU進行串行通信。- 三軸加速度傳感器 – 經由I²C總線，v1.3*版是NXP/Freescale MMA8652，v1.5版是運動傳感器ST LSM303AGR。- 磁力傳感器 – 經由I²C總線，可充當羅盤等，v1.3*版是NXP/Freescale MAG3110，v1.5版併入運動傳感器ST LSM303AGR。- 前面有由25個LED構成5×5矩陣的顯示屏。- 3個觸覺按鈕，前面2個為用戶按鈕A和B，背面1個為reset。- 背面有MicroUSB連接器，和電池連接器。
I/O包括環孔連接器：3個GPIO（P0、P1、P2），1個電源正極（3V），1個接地即電源負極（GND），它們接納Crocodile clip或4mmBanana connector；Edge connector（也稱為金手指）的標號，依次為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輸出。 
在連接了USB的情況下，KL26Z負責對這個PCB餘下部份供電，將USB供給的5V±5%電壓規整降至3.3V。KL26Z限定最大電流120mA，電源環孔或針腳輸出可能只餘下90mA。在使用電池連接器供電時，電池不為KL26Z供電，nRF51供電和電源環孔或針腳輸出都來自電池。還可以謹慎的從電源環孔或針腳向micro:bit供電，從電池連接器、環孔或針腳擇一供電時都不可超過3.6V極值。

**v2**
版本2（v2）在2020年10月13日發行，包括了：- Nordic nRF52833 – nowrap|64 MHz 32-bit ARM Cortex-M4微控制器，512 KB閃存，128 KB靜態內存，Nordic S113 SoftDevice提供的nowrap|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按鈕來關閉主板。

**軟件**
Micro Bit的軟件是使用ARM Mbed開發工具建立的，並且採用了其應用程序接口DAPLink，設備在連接到計算機的時候，是作為一個USB大容量存儲設備而出現的。蘭卡斯特大學開發了micro:bit運行時系統（有時稱為硬件抽象層），提供了事件驅動編程和鍵-值存儲機制，採用了Nordic Semiconductor的nRF51 SDK和S110 SoftDevice，以及Mbed的BLE API，並與藍牙技術聯盟協作開發了定製的BLE profile。用戶用C/C++語言編寫的應用程序，可以通過Mbed在線編譯器、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模擬器中見到它的運行效果。- MicroPython，是完整的Python 3語言實現，包含了Python標準庫的一個小子集，帶有音樂編程語言和語音合成器，本地文件系統，被推薦用於做進一步的編程實驗。用戶可以在web編輯器中寫Python腳本，其源代碼被附加於MicroPython實現固件的後面，把這個最終複合固件下載後刷寫到設備中，MicroPython運行後將附隨的源代碼編譯成字節碼並在虛擬機中運行，由於內存限制在MicroPython內未啟用nRF51的藍牙協議棧。可以通過USB串行連接訪問MicroPython REPL，從而可直接交互於Micro Bit的外設。MicroPython的編輯器還有給初學者在PC上用Mu，和在線blocks編輯器EduBlocks。
針對micro:bit的其他開發工具有：- Espruino，是面向網絡應用開發的JavaScript解釋器固件，解釋器有運行狀態持久保存和復位機制，支持內聯彙編語言，由於將micro:bit的內存大量用於了藍牙功能，不提供ES6特徵和高級庫函數。可以通過USB串行連接，或通過在支持了Web Bluetooth的瀏覽器中運行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 RTXdead-url=no ，可以在micro:bit上運行的嵌入式操作系統還有：Zephyr，Apache Mynewt，RIOT。
針對micro:bit的其他編程語言有：uLisp、Mecrisp Forth、Free Pascal、GNAT Ada、TinyGo、Rust、Swift等。其他交互語言有Scratch3.0、Dyalog APL、Simulink編碼器支持包、Node-RED模塊、App Inventor + IoT、BlockyTalkyBLE等。

** 歷史**
Micro Bit被設計用來鼓勵兒童活躍的投入為計算機書寫軟件和建造新東西，而不是成為媒體的消費者。它被設計為並肩工作於其他系統，比如Raspberry Pi、Arduino，它也建造在BBC在計算機教育中的BBC Micro這項遺產之上。

**合作伙伴**
Micro Bit的開發彙集了眾多夥伴與BBC一起工作：- ARM控股 – 提供Mbed開發工具、固件和編譯器服務。- Nordic Semiconductor – 為這個設備提供目標MCU和BLE協議棧。- NXP半導體 – 提供接口MCU、USB控制器和傳感器。- 藍牙技術聯盟 – 與蘭卡斯特大學協作開發定製的Bluetooth LE profile。- 蘭卡斯特大學 – 開發這個設備的運行時系統，與藍牙技術聯盟協作開發定製的Bluetooth LE profile。- 微軟 – 貢獻了自己在TypeScript等方面的軟件專門知識。它在其TouchDevelop平臺上為這個設備定製了專題項目，還開發了這個設備的教師訓練材料。- Python軟件基金會 – 將MicroPython移植到這個設備，建立本機和基於web的初學者友好的Python代碼編輯器，出品大量教育資源併為教師建立有組織的開發者領導的工場。- Farnell element14 – 監督這個設備的製造。- Technology Will Save Us – 設計這個設備的物理外觀，編寫出廠演示程序。- 三星集團 – 開發Android app並幫助把設備連接到智能手機和平板電腦。- ScienceScope – 開發iOS app並把這個設備發佈到學校。- 巴克萊銀行 – 提供產品遞送和外展活動。- 惠康基金會 – 為教師和學校提供學習機會。- STEMNET – 提供STEM大使來支持學校和教師並聯系第三方比如Bloodhound SSC和Cisco。- 思科系統 – 向STEMNET提供人員和資源來資助國家首展。- Creative Digital Solutions – 開發教師材料，工場和外展活動。- Code Club – 建立一系列引導9到11歲兒童的編碼資源並通過志願者遞送運行編碼俱樂部。- Kitronik – 為BBC micro:bit生產並分發5500份e-textile kit給英國內的D&T教師。設計硬件比如Motor Driver board來允許BBC micro:bit控制設備比如電動機和伺服系統。- Tangent Design – 建立BBC micro:bit品牌標識並開發web站點。
建立了原型設備和軟件棧，在最初宣佈中進了展示，在學校中測試了這項提議，併為合作伙伴後續建設提供了參考規定。

**Microbit教育基金會**
在成功的於英國推出了micro:bit之後，BBC將BBC micro:bit的未來交付給新成立的非營利性Micro:bit教育基金會。從BBC到Micro:bit教育基金會的遷移首先是將官方網站從www.microbit.co.uk轉移到了microbit.org。

**製造**
負責管理BBC micro:bit的製造，監督各廠商進貨所有部件並在各自的加工工廠生產micro:bit。

**各地發展**

****
於2018年，香港教育城與資訊科技教育領袖協會（AiTLE）、香港大學專業進修學院（HKUSPACE）及 Micro:bit Alliance合辦了十七場「Micro:bit 教師工作坊」，工作坊分五種程度授課，由Micro:bit的基礎功能至進階應用技巧皆有涵蓋。部份內容被納入香港中小學的資訊科技課程中。

**參見**
 Arduino- Raspberry Pi- BBC Micro

**書籍**
 micro:bit IoT In C date=20201022090530 - Networking with the micro:bit date=20190126173606 

**引用**

**外部鏈接**
 BBC micro:bit repository - micro:bit Educational Foundation repository- Awesome micro:bit － A curated list of BBC micro:bit resources- micro:bit target for PXT repository-  The micro:bit runtime (developed by Lancaster University) date=20200915212824 -  Bitty Blue provides a collection of fun things to do with the micro:bit and Bluetooth. Available for Android and iOS. -  Bluetooth troubleshooting guide date=20201020091204 -  Reset the micro:bit to factory defaults date=20201102030700