對於BBC(英國廣播公司),相信大部分同志都不陌生,尤其在那個恨天恨地苦學英語的年代,BBC廣播的一些節目是很多前輩都推薦的練習英語聽力的素材,然而,讓人大跌眼鏡的是,BBC推開發板——微型可編程計算機micro:bit,這是什麼鬼?
事情的起因其實是這樣的,前段時間,手頭拿到了一塊國外的開發板,就如下面這樣子的。
當時也沒在意,不過後來發現開發板的廠商居然是BBC,一開始呢,還以為只是跟我印象中的BBC重名而已,但事實證明這只是我一廂情願的想法而已,micro:bit的廠商竟然真就是我記憶中的BBC(英國廣播公司)。
那麼問題來了,BBC為什麼推micro:bit?這是一塊什麼樣的開發板?好用嗎?帶著這些疑問決定好好了解一番micro:bit。
因為板卡是直接從國外購買回來的,所以基本是全英文介紹。整套開發平臺除了micro:bit板子,還附帶了一個MicroUSB數據線,一個電池供電盒以及兩節7號電池。據說,一開始的設計是考慮用紐扣電池,然後可以直接卡在學生的衣服上,作為可攜式的編程DIY平臺,後來證實這樣的方式不安全就換成如今模樣。
仔細調查了下micro:bit的「背景」,發現這玩意的來頭還不小,它由BBC和很多大腕(包括了微軟、三星、ARM、北歐半導體和惠康基金會等)共同合作的項目,而它的實際用途,跟樹莓派還挺類似,鼓勵兒童和年輕人學習編程等技術,作為英國本土的學生,每年都能免費獲取到一些micro:bit,而作為別人家孩子的我們,想要體驗的話就只能花錢購買了,含稅價格約為24英鎊,價格不算便宜,幾乎趕上樹莓派的價格了。
不過,不得不說,micro:bit板子本身做工還是相當好的,又比較精緻,大小也只有43mm*52mm,便攜性很方便,即視的喜愛感。
千萬別被micro:bit板子的簡潔給欺騙了,板子的功能還是相對較多的,正面有低功耗藍牙通信晶片,支持USB2.0 OTG功能的NXP 微控制器、加速度計、磁力計等。
nRF51822低功耗藍牙晶片/MMA8652三軸加速度計/MAG3110三軸磁力計
有必要說下的是NXP KL26Z微控制器,這裡的作用不是作為板子的主控,而是作為ARM mbed開發環境的支持,依賴微控制器USB2.0 OTG的功能,實現drag and drop式的U盤下載,畢竟對於青少年學習編程,最簡單的下載方式莫過於複製粘貼了。
NXP KL26Z微控制器
背面則是兩個可編程機械按鍵,25個紅色LED組成的矩陣,另外就是板子上還帶有23pin的金手指接口(其實算25pin,但是其中有兩個pin腳是沒有信號連接的)。
micro:bit整體就是這個樣子,板子雖然看起來很簡單,但是板載的資源還是相對豐富,包括了:
Nordic nRF51822低功耗藍牙晶片:16MHz ARM Cortex-M0,256KB Flash、16KB RAM
NXP KL26Z微控制器:48MHz ARM Cortex-M0+,支持USB2.0 OTG
NXP MMA8652三軸加速度計
NXP MAG3110三軸磁力計
25個紅色LED組成5*5矩陣
3個機械按鍵:包括兩個用戶按鍵一個復位按鍵
MicroUSB供電/下載接口,電源接口,23pin金手指信號接口:包括SPI、PWM、I2C以及最大支持17個GPIO
文章一開始已經提過,micro:bit主要是針對青少年朋友學習編程技術,所以相應的開發語言不是我們熟知的C/C++類型,還是比較簡單的圖形化界面編程工具,當然也有如MicroPython這樣的更高級的開發語言,可以說,micro:bit支持的開發語言種類還是比較豐富,給人不同的多樣的選擇,也非常適合傳播教育之用。
主要四種開發方式:
JavaScript
Microsoft Block Editor
Microsoft TouchDevelop
MicroPython
JavaScript是由Code Kingdoms提供支持的,這也是一個致力於讓青少年採用計算思維方式來學習程式語言。
而最新的JavaScript已經「進化到」JavaScript Blocks Editor,即支持圖形編輯,又支持文本編輯。並且可以在左側界面中看到micro:bit運行的預覽顯示,如下圖所示
支持從圖形化編輯轉換成文本代碼編輯
micro:bit實際運行狀態
另外,JavaScript還提供專門的學習課程,這個可不同我們一般的開發板例程一樣,它有專門的講解,內容非常豐富,是以學習目的的教材。
微軟的Block Editor同樣是基於圖形化編輯工具,熟悉Blockly的都知道這是谷歌推出的一個圖形化開源編輯工具,微軟的這個應該是借鑑這Blockly修改而來的,具體的操作也是相當簡單。
同樣也可以支持轉換成代碼
微軟的TouchDevelop是一個文本編輯工具,但是從命名大家也能猜出一二,非常適合觸摸操作開發,也就是非常適合像手機/平板這些移動平臺上做開發,但是相對圖形化工具,Microsoft TouchDevelop會顯得更加複雜一些。
micro:bit上實際運行狀態
Python同樣為計算機腳本語言,事實上,micro:bit上所使用的Python算是MicroPython,這是脫胎於Python,基於基於ANSI C(C語言標準),然後在語法上又遵循了Python的規範,主要是為了能在嵌入式硬體上(這裡特指微控制器級別)更易於的實現對底層的操作。
在micro:bit板子的開發上,同樣提供了在線的MicroPython的在線編輯工具,操作非常簡單,可以保存原始碼文件XX.py或者可以下載生成的供micro:bit開發板執行的.hex文件。
如果本身對JavaScript或者Python比較熟悉的朋友,用這兩個開發語言比較方便,如果是完全的新手,推薦用Microsoft Blockly Editor或者JavaScript Blocks Editor,而對於青少年朋友,無疑這種圖形化編程工具更容易加深理解,況且它還支持代碼的轉化。
micro:bit的四種開發語言讓板子本身更具有魅力,更具學習娛樂教育一體,但是僅僅這樣還不至於讓我讚嘆,BBC無疑將micro:bit打造的更人性化,更通用、更方便,比如它還可以通過目前的智慧型手機進行編程,並且支持Andriod系統和ios系統。
手頭暫時只有iphone,所以ios為例,看看手機編程又是怎麼一回事?
micro:bit app界面簡潔直觀,體驗了一下,主要使用的功能就是創建代碼以及下載代碼,與PC版的體驗幾乎無異,非常不錯。而手機編程重要的前提是與micro:bit開發板配對,建立藍牙連接。
藍牙連接的過程還是充滿趣味的,不像一般的智能產品設備配對。
首先,藍牙連接的步驟通過有趣的app引導動畫非常容易操作,而其中特別有意思的是配對中的兩點。
在配對過程中需要輸入micro:bit上5*5 LED矩陣實現的pattern,如下
輸入正確後才可以進入下一步,基本上是為了防止隨便連接和當有多個板子出現的時候連接的不確定性。
另外一個是藍牙配對的時候需要提供配對碼,而配對碼同樣通過micro:bit上5*5的LED 矩陣顯示。
藍牙配對完成,我們可以通過創建代碼來實現Flash的編程,而創建代碼的步驟就跟在PC機上操作一樣,同樣是之前提供的四個開發工具。
具體流程這裡就不再累述,下面則是創建好的代碼通過無線藍牙執行下載,考慮到BLE的連接,下載速度其實很慢,但實際上即使在PC機上通過mbed的下載方式同樣也是很慢。
下載過程中5*5 LED矩陣中間橫著的3個LED呈常亮狀態
下載完成有提示
最後可以看到micro:bit正確運行通過藍牙傳輸的程序。
而且別忘了,micro:bit本身提供了外設的移動電源接口,當你完成你的程序後,可以通過外置電源供電將其展示。
使用micro:bit的感受,只能說太了不起了!從一開始的驚訝,到看到硬體抱著無所謂的態度,再到見證多種開發工具,支持手機編程時的讚嘆,可以說,體驗micro:bit不亞於一次從驚訝到失望再到驚喜的過程,在我看來,micro:bit已超脫於硬體的本身,現在已經改變了一開始的看法,算上硬體加上這整套完美的開發工具,24英鎊的價格確實不算貴。
對於青少年學習編程,國外一些發達國家的重視本身就遠高於國內,況且如果是英語母語國家本身還是具有非常大的優勢,micro:bit是我體驗過眾多專為青少年學習編程的益智類教育產品中可以說是最「完美」的一套,不僅包含了專有的學習課程,而且各種開發語言環境體驗都不錯。如果你家有小孩對編程感興趣,強烈推薦購買一套micro:bit,或者也可以先去micro:bit官網體驗下這些在線的開發工具,相信會給你不少驚喜。
全球第一款基於RISC-V架構的商用SoC——差一點就追上STM32F7性能的HiFive1到底有多拽