Gyro Sensor

陀螺儀

多看、多學、多觀察,原來mBot和陀螺儀可以這樣玩。

維持直線行走:https://class.tn.edu.tw/modules/tad_web/news.php?WebID=1384&NewsID=11921

搭配Me 2.2吋 TFT 液晶屏,偵測偏移:https://mbotandstem.blogspot.com/2017/10/spirit-level.html

不倒翁mBot:http://aharu.blogspot.com/2019/11/xodpidmbot.html 馬克思.丹尼爾

發揮創意、mBot玩遊戲:https://www.mblock4u.com/296092110924847/category/mbot3124324335

mBot+陀螺儀,在「創客平台」裡只有一個指令方塊,供讀取x,y,z三軸的轉動資料,無歸零的指令方塊,想要知道轉動角度,只有一個方法:『自己計算』。

偏偏是誰?

偏偏」不如人意,偏偏」就是陀螺儀,一個懶惰的傢伙。

當轉動角度逐漸遞增時、到了+180度時、會突然跳到-180度、再往0遞增。

當轉動角度逐漸遞減時、到了-180度時、會突然跳到+180度、再往0遞減。

這就意謂著:你沒辦法隨心所欲的計算轉動角度。

我就只好假設一些變數來幫忙了:

p=陀螺儀初始z值

z=陀螺儀目前角度

θ =角度變化量

我們來看一下底下這兩張表格

角度遞增變化

模擬從0~+180突然跳到-180情況。

角度遞減變化

模擬從0~-180突然跳到+180情況。

Bingo、情況變明朗了,接下來你只要弄清楚往哪邊轉是角度遞增?哪邊是角度遞減?就搞定了。

【演算法】

遞增時:θ=z-p

遞增θ必須再加上360判斷:p>0且z<0

遞減時:θ=p-z

遞減θ必須再加上360判斷:p<0且z>0

陀螺儀正面

往左旋轉角度遞增、往右則遞減。

這個圖請轉180度觀察,

就會是右圖安裝位置。

陀螺儀背面

往右旋轉角度遞增、往左則遞減。

控制左轉90度

控制右轉90度

Ranger有內建「板載陀螺儀」,無角度歸零方塊,角度計算方式同mBot。

mBot2有內建「板載陀螺儀」,角度歸零方塊,角度計算方便許多

沒有陀螺儀時的解決方案

使用等待秒數也能達到目的,只是實測總覺得沒陀螺儀準。

1.先建一個「等待」積木,取名continued,使用整數累加當成計時器。

2.下馬達轉彎指令之後,呼叫continued積木、傳入等待累計最大值,藉以控制轉彎角度。

※傳入continued的數字與轉彎速度相關,必須依實際情況調整,每台機器人可能會不一樣。