2010年2月3日 星期三

NXT Radar

http://4rdp.blogspot.com/2010/02/nxt-radar.html?m=0

繼續利用超音波偵測器,這回加裝馬達做一個雷達站,把這雷達站放在兩垂直牆面之間任意位置,讓它180度旋轉擺動,找出離這兩個牆面最短位置,把這兩距離同時顯示在螢幕上,然後計算距離牆角有多遠並顯示這距離,然後將雷達指向牆角位置。

禁止使用浮點數及開根號函數,可以參考研發養成所開根號方法,最好算到小數一位,不懂開根號的小朋友,不必計算牆角距離。來回擺動掃描次數不限制,原則上越少越好。

程式上傳前,請先確認兩個位置點可以正確找出來,一個是(100 cm, 100 cm) 另一個為 (100 cm, 10 cm)。另外註記,你的雷達在45度線上,可以量測到最近與最遠的距離。

網友們的程式,
Jerry,CornerRadar.rarCornerRadar.lxf
薛老師(蒲公英的願望),radar_detect_distance.vi

8 則留言:

  1. 程式(CornerRadar.rar)已經上載到論壇中,語言為Java,如果程式有問題歡迎告知。

    回覆刪除
  2. 不好意思,忘記把CornerRadar.lxf模型檔加入壓縮檔,已經傳上去了。

    回覆刪除
  3. Jerry大好快啊,真厲害.
    這幾天要上台北,回來再用NXT_G挑戰看看.
    看到Jerry大還把牆角圖形畫出來,不知道NXT-G做不做得到.

    回覆刪除
  4. Jerry 大大又奪得第一風采,看程式是用三角函數解決,這是解決方案之一。

    可能我寫的不夠清楚,讓你誤解題意,我是想盡量讓大家站在同一基礎來設計這程式,NXT-G 是沒有特殊函數可以使用的,我的考題主要是讓大家不使用這些外部函數時,該如何解決問題?

    另外,注意 double 是雙精準的浮點數(有小數點的數),請大家使用整數型態來處理,以後有時間我會為大家解釋這些數值型態的基本知識。

    因此 Jerry 大大試試看,修改外部函式的引用,改成自己創造這些函式,這是另一種層次的挑戰,加油,謝謝大家的參與。

    回覆刪除
  5. To Bridan:

    因為Jerry也很想吃王品啊, 哪天有空一起吃個飯吧.

    nissin

    回覆刪除
  6. Hi Nissin,

    沒問題,過年後讓我們聚聚吧,只不過王品牛排太高檔了,改吃別的好了。

    不知道有沒有人,用純整數並且自己寫函式解出這個考題?

    Bridan ^_^

    回覆刪除
  7. Hi,Bridan:
    這一題我寫了好久!光是處理浮點數的問題就做了很久,而且如果不用atan()函數我看更不用說,恐怕要寫到天昏地暗了。在論壇上已上載robolab完成的作品。

    回覆刪除
  8. 薛老師,

    這個題目用純整數設計有浮點數的三角函數,的確很難,能解出這題的人,數學程度要很高,至少要懂泰勒級數展開,由此可知學好數學才有辦法寫一些特殊程式,否則只能擔任初階設計師。

    感謝您的分享。

    回覆刪除