09 測試感應器

(2017/08/17)

今天要來認識 micro:bit 內建的感應器,先介紹比較簡單的【方位感應器】、【溫度感應器】、【加速度感應器】及【光線感應器】,另外還有【磁力感應器】及【旋轉感應器】下次再來測試。所以這次先做5個簡單入門的作業,如下:

另外,寫程式的部分,除了之前介紹的JavaScript Blocks Editor,還有一款類似Google Blockly的 Blocks Editor

作業一:製作一個【指北針】

  • 利用【方位感應器】來測得【方位感應值】(compass heading),並將方位顯示在LED上

  • 東、西、南、北方位及【方位感應值】的關係,如下圖

  • 結果:

    • 使用前會先要求【畫一個圓】(類似做磁場校正)

    • 水平移動板子,當面向南邊時出現S

作業二:測試【SG90伺服馬達】

    • micro:bit板子與SG90伺服馬達連接

    • 當按A鍵時,伺服馬達轉到0度;當按B鍵時,伺服馬達轉到90度;當按A+B鍵時,伺服馬達轉到90度;

  • 結果:

    • 當按A鍵時,伺服馬達轉到0度;當按B鍵時,伺服馬達轉到90度;當按A+B鍵時,伺服馬達轉到90度;

    • 剛開始轉動時,會有卡卡的現象

作業三:製作一個【指針溫度計】

  • 利用【溫度感應器】來測得【溫度感應值】(temperature),並將溫度值顯示在LED上

  • 再利用SG90伺服器來製作一溫度介於15度到45度的溫度計

  • 程式如下:

  • 結果:

    • 我發現溫度值偏高,不是很準

    • 當改變溫度時(利用吹風機吹板子),指針跟著改變。

作業四:製作一個【模擬雲台】

  • 利用【加速度感應器】來測得【X軸的加速度感應值】(acceleration(mg)(x)),並將其值顯示在LED上

  • 測試時發現:板子垂直向上時,測得其【X軸的加速度感應值】為0,向右轉90度時,其值為1024, 向左轉90度時,其值為-1024

  • 加速度感應值有分X、Y、Z三個值,不是很了解其所代表的意思!

  • 程式如下:

  • 結果:

    • 由於我的SG90還是卡卡的,反應不是很順暢,沒有馬上跟著改變角度(沒有同步),但隔幾秒後,角度才會改變,但至少角度是正確的!

作業五:製作一個【天黑自動開燈系統】

  • 利用【光線感應器】來測得【光線感應值】(light level),並將其感應值顯示在LED上

  • 測試後,發現將板子完全遮光時,其【光線感應值】為0,如果打光,其值最大為255

  • 實驗:當【光線感應值】小於15時,接在P0上的LED燈會亮起來,否則LED燈會滅掉。

  • 程式如下:

  • 結果:

    • 當【光線感應值】小於15時,接在P0上的LED燈會亮起來,否則LED燈會滅掉。