2015年7月29日 星期三

演算法訓練 9 ─ 循跡車

http://4rdp.blogspot.com/2015/07/9.html?m=0



無論是玩樂高 NXT/EV3 抑或是 mBot,學習課程內容通常包含循跡車,其中最難的部分在走 8 字形,這宛如像汽車考照 S 行進倒退一樣,本週的程式練習題就是你會怎樣寫循跡車程式,也就是甚麼是你的控制規則?

要設計 mBot 版的 ROSA ,自然就要加入循跡車功能,所以自己先寫寫看,上面的影片就是成果。不過循跡過程仍會見到凸槌的狀況,我的分析是軌跡圖用銅版紙印刷,即使印刷黑線仍有時反光,感測器可能會誤判,當我使用樂高 NXT 圖就不曾見過錯誤情況,如下面影片。



要解決圖紙反光,建議用黑色「電火布」(Vinyl Plastic Electrical Tape) 貼在容易反光處,下面是成功版影片。

9 則留言:

  1. 這是兩個光電傳感器的做法:
    當兩邊都是白色就證明車沒有偏離;
    當某邊變作黑色,則車向該側轉彎;
    當兩邊都是黑色也是直行,此時車正在過十字路口。

    回覆刪除
    回覆
    1. 上述規則是光電傳感器相距較遠,剛好跨在黑線兩邊的白色上,mBot 的兩個光電傳感器距離較近,正好壓線時兩邊都黑色,因此不容易判別是不是過十字路口。

      你是 Linke 嗎?好久不見。

      刪除
    2. 我是Linke,我發現原來我一直用公司帳戶登入。
      不久前換了工作,卻發現不能登入了 - - #
      前段忙考試,還有新工作要適應,所以很久沒來。

      刪除
    3. 這款mBot的傳感器也是測反射光數值的嗎(類似lego)?
      如果是,可以用P循綫。

      刪除
    4. Linke,

      原來是換工作,難怪好久不見,新工作仍是教職嗎?

      mBot的循跡感應器並非反射光讀值型,因此無法用PID控制,它僅能判別黑色或非黑色兩種,看似控制邏輯不複雜,但是仍有玄機。

      最近正在發文ROSA系列文章,將有一篇說明如何控制,敬請期待。

      刪除
    5. 仍是教職,仍屬同一教育團體。
      因前校競爭上崗塵埃落定,眼見轉正無望,就出來闖江湖了 = = #
      閒時做了一個小遊戲,準備給學生玩玩,bug還沒除,請您多提意見才好。
      地址如下:
      http://yunpan.cn/cHgKwmr4EPQhy (提取码:7a24)

      刪除
    6. Linke

      謝謝分享,點方塊遊戲蠻有趣,訓練反應力,老頭子反應慢最高分58,^_^!!
      有幾個花招可以加進來,開始時方塊可以面積較大,越玩越久,面積就縮小增加難度。
      當限時內分數達成,自動進下一關,或加時間
      黑暗摸索,只有滑鼠周圍是明亮的,其它為黑色,像是以手電筒照明探索

      對了,這是用甚麼程式語言設計的?我想這應該可以當教案教小朋友寫程式。

      刪除
    7. 這是大名鼎鼎的遊戲設計軟件game maker的產品。
      語言不清楚,bing一下顯示是delphi
      半圖形化編程,適合有一定基礎的小朋友。
      其實我的遊戲説明部分還沒更新,黃色方塊的效果是加一分並加0.3秒。(因爲測試時黃色方塊使用率低而作的增強)
      紅色方塊在開頭階段連續按收益又過於大,所以加入了棕色炸彈方塊作爲制衡。
      想想自己以前玩的一些競技類網絡遊戲,無外乎也是這樣被開發者改來改去……

      刪除
    8. 謝謝,學到 game maker 新東西了,Delphi 二十年前蠻熱門的東西,它的語言是 Pascal,一個語法非常嚴謹的程式語言,大學時學過,現在已經忘光光。

      遊戲程式功能改來改去,這是很正常的,因為沒有人是「先覺」,就自己已知的技術或想法設計出個雛形,然後再事後追加好玩的東東。

      整體來說,這遊戲構想,讚!!

      刪除