2010-06-20

NXT-G 教學:NXT電子指北針的應用--程式說明

上回提到要詳細解釋NXT電子指北針程式,一拖就是好幾個禮拜,真是該打屁股。現在終於要『還債』了!


先來看看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教學下回見!




沒有留言:

張貼留言

探奇歡迎大家留言討論!謝謝分享你的意見。