超音波的數據利用

超音波與其他零件接線

在這個範例中,四顆led燈分別接到IO板的PIN13~16(注意正負極,正極接訊號負極接GND),超音波的Trig接P1、ECHO接P2(當然正VCC負極GND也要記得接)

利用超音波數據操控LED

這個範例影片中,Micro:bit的25小燈的圖案及四顆外接的LED燈會隨著紙片的接近而變化

範例程式

這其實很單純的,設定一個變數不斷取得目前超音波模組偵測的數字,然後利用邏輯判斷屬於那個距離區間,藉以讓LED做出相對應的反應(不是亮就是暗呀!),在程式中,我使用了二個函式,其中LED_CONTROL是帶參數的,用以傳給四顆LED燈,而SONAR_CHK則是接在超音波取得數據之後的判斷…

在IO板上加上舵機馬達(Servo)

接線

舵機有三個pin要接,橘色訊號紅色正電棕色GND,剛好IO板上的PIN設計就是這個順序,在這個例子中,我把一顆Servo接在P12

給予充足的電壓及電流

一旦開始接觸馬達類的零件,就得開始關心一個問題:電壓電流夠嗎?跟其他偵測類的零件比起來,馬達對於電壓電流的要求是比較高的,不足的話,馬達就不動或不正常抖動

有一個禁忌的行為就是直接用手去硬轉舵機,這種便宜的sg90舵機說壞就壞!

Micro:bit的A鍵B鍵控制舵機

這個測試很明確就是把程式寫在Micro:bit的A和B鍵上,按A要求舵機依序轉動到幾個角度,B鍵則是舵機角度的完整測試(0~180度之間的旋轉),其實180度只是號稱,它的反應沒那麼好,實際上中位數(90度)+-60度就很不錯了,要注意一件事,在下命令給同一顆舵機時,只間一定要有「暫停」,要不然它受不了~

舵柄的用途可以讓我們判斷目前的位置(通常我們會先下命令要求舵機90度,然後接上舵柄到我們想要的位置),按一下B鍵可以觀察到要求往0度及180度時,舵機轉動的方向(順時鐘還是逆時鐘)

讓大家思考一下:如何利用超音波取得的數據來決定舵機怎應轉,做個超音波測距儀瞧瞧

SONAR的數據拿來操控SERVO

除了使用按鍵下命令要求SERVO轉動,是不是也可以利用別的數據來當命令下,比如使用SONAR測得的數據來當作SERVO轉動的依據

理論上舵機應該要接在類比腳位才行,但在這個例子中,因為我把它接到P12也一樣可以運作

小朋友做的實驗

這是王小妹做的裝置,當物體在超音波前方移動時,它變會轉回距離給Micro:bit而她在程式中依這個不斷變化的數值決定舵機轉動的角度