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 (頁面存檔備份,存於互聯網檔案館)