Gyro Sensor
陀螺儀
多看、多學、多觀察,原來mBot和陀螺儀可以這樣玩。
維持直線行走:https://class.tn.edu.tw/modules/tad_web/news.php?WebID=1384&NewsID=11921
不倒翁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的數字與轉彎速度相關,必須依實際情況調整,每台機器人可能會不一樣。