用micro:bit做一個可以用的指南針

本文可以學到:

1. 什麼是 Micro:bit

2. 用Micro:bit做一個可以用的指南針

3. 磁偏角的相關知識

Micro:bit 是英國廣播公司(BBC)聯合很多企業推出的一個基於ARM Cortex-M0晶元的微型可編程計算機,balabala。看到這裡,你可能會想,又騙我買Micro:bit?這玩意和以前的單片機、51、Arduino有啥區別?

Micro:bit 設計的初衷是為了讓每個孩子都能零基礎的接觸計算機編程。整個設備是一片4厘米寬5厘米長的電路板,上面有加速計、磁力計、光電感測、藍牙和USB介面、一個25個LED組成的5*5顯示屏、2個可編程按鈕等,由USB口或外置電源供電。下方的輸入和輸出環可以通過鱷魚夾或香蕉插頭連到其他設備,併發送接收指令。

Advertisements

在編程方式上支持模塊拖拽、JavaScript和Python等,如果使用圖形編程界面(如微軟推出的Maker Code平台,可以在線編程)也就是模塊拖拽的話,不需要任何編程語言學習就可以直接上手。要把程序刷到這個組件上也很簡單,通過USB和電腦連接,不用安裝任何驅動就可以使用,Micro:bit會被識別為一個電腦硬碟。

一般我們是進入https://makecode.microbit.org這個網址,在這裡進行網頁編程,界面左邊是模擬界面,中間是指令區,右邊是腳本區。寫好指令後下載到micro:bit盤符里就行了,或者直接把hex文件拷貝到這個盤符里也可以。

今天,我們先通過一個小小的指南針實例,來初步了解一下怎麼玩這個micro:bit吧。

Advertisements

常見的指南針主要部件是一根磁針,在地磁場的作用下可以轉動並指向北方(指南針其實是指北的),用來辨別方向。Micro:bit內部就有一個磁力計,我們可以讀取這個磁力計的讀數來判斷方位。

最終要實現的指南針程序功能是,開機進行初始校準后,箭頭始終指向地磁北極方向,按下左邊的按鍵時在屏幕上顯示當前的磁力計讀數。

材料和工具清單

  • Micro:bit主控板

  • 數據線

  • Makecode在線網站 https://makecode.microbit.org

磁力計指令

「compassheading」讀取方向指令

注意這個模塊的顏色是紫色,和指令區中的Input菜單項的紫色對應,也就是說當我們看到一個已完成項目中某個圖形編程模塊的顏色時,就可以在對應顏色的菜單欄里找到這個模塊。

比如說上面這個功能塊中的藍色模塊就可以在Basic菜單欄里找到。

我們的micro:bit有1個內置的磁力計,能夠得到相對於北磁極的數值。

返回值是0到360之間的數值,在磁力計首次開始工作(帶到新位置后)時系統會自動要求我們把micro:bit板子轉一圈以作校準,校準期間返回值是1003(需要校準時返回1004),正確的校準方式是保持板子水平旋轉一圈。需要注意的是,附近要是有金屬物件可能會影響讀數和校準準確性。

一些地球物理學家們確信,地球磁場是因為固態鐵質內核被液態金屬「海」所包圍而形成的。磁力計指向的北是地磁北極,目前地磁南北極位置位於地理南北極地區,但並不與地球的南北極點完全重合,磁北極和真正的地理北極之間存在一個磁偏角。需要指出的是磁極位置是一直在變化的,歷史上還出現過地磁逆轉的情況。

我們稱呼上的地磁南極,其實是物理上的磁北極,而地磁北極是物理上的磁南極,磁力線從磁北極出射,從磁南極進入,即地磁場從地理南極出來從地理北極進去。

用到的幾個基本命令

1將「item」設定為()

變數模塊,「item」可以重命名,⽤這個模塊我們可以把變數定義為某⼀個數。

2. 顯示LED命令

可以在LED屏幕顯示1個圖形

3.邏輯指令

幾個基本的邏輯判斷指令

寫程序

創建1個循環,將不斷更新指南針的讀數。

將micro:bit的磁力計讀數存儲在一個變數x中。

當按下按鈕A的時候,直接在屏幕上顯示磁力計讀數。

北、東、南、西對應0°、90°、180°、270°。

這個模塊意思是,在循環中,不斷讀取磁力計的讀數,並根據讀數範圍判斷所指方向,讓箭頭指向當前的地磁北方。

如圖所示,如果讀數在292.5和337.5之間,就讓顯示屏顯示一個指向右上方的箭頭,由於代碼里不能輸入0.5,所以取的判斷數值是293和338。

之後再加入其它邏輯判斷條件,就得到了完整的代碼。

後續完善

把編譯的hex文件下到板子里,就可以運行了,首次運行會要求初始化磁力計,記得把板子按前面的視頻演示轉一圈。如果有時間的話也可以做個羅盤面,比如我們這裡就自己試著激光切割了一個羅盤面。

磁偏角

地磁北極和地理北極並不在同一點,存在磁偏角magnetic declination,即地磁北極(指南針指的方向)與地理北極間的夾角。

北京的磁偏角是-6°50′,北偏西。 如果所在地區磁偏角較大的話,可以在程序里設置磁偏角數值進行補正,大家可以查詢自己所在地區的磁偏角,試試修改代碼。

磁偏角可通過這個網站來查詢(http://www.magnetic-declination.com)。

最後附上我們的源代碼(點擊查看原文可以看到),大家在網頁編程界面的項目里選擇導入這個hex文件,就會自動顯示出編碼的圖形拖拽模塊了。

石斧創客

石斧(Handaxe)可能是人類最早製造出的工具。從石器木棒到3D列印,讓我們像祖先一樣愉快地造點東西。

Advertisements

你可能會喜歡