先來看看NXT電子指北針的程式:
這個程式最主要的目的就是:不論NXT主機如何旋轉移動,NXT螢幕永遠有一個箭頭指向北方。
請參考下圖:一開始的NXT樂高機器人如左圖,北方為正前方;
當NXT機台順時針轉動三十度時,我們需要在『-30度』畫出指北針。
利用廣義三角函數,計算sin(θ)及cos(θ)的值,也就是偏移角度後的XY數值。
將圓心當作線段起點,偏移距離XY當作線段終點。以display命令方塊在NXT螢幕畫出線段。
程式流程如下:
1. 讀取電子羅盤的絕對值角度
2. 計算相對角度= 0-絕對值角度
3. 將相對角度x10 (符合sin cos block的用法,單位是整數的十分之一度)
4. 將相對角度值送入sin cos Block得到正弦及餘弦數值。
5. 將數值除以1000,乘上圓的半徑。
(這個圓就是畫在NXT螢幕上的圓圈,我們設定半徑為30。上圖的程式說明寫成x 1000,應該是x 0.001)
6. 再加上圓心的座標就是線段終點的座標。
7. 畫出線段。
利用這些原理,我們也可以在NXT主機上做出類似 "誰去買午餐"的遊戲喔!
你也可以自己挑戰看看,程式設計很像探奇書籍『NXT樂高機器人:創意樂趣,隨心所欲!』第15章的猜猜我是誰。
NXT-G教學下回見!
沒有留言:
張貼留言
探奇歡迎大家留言討論!謝謝分享你的意見。