2015/06/03


本篇的主角是萊恩大兵的兩個兒子 Willie 和 Kenny. 萊恩大兵為他們兩個安排了 LEGO NXT 機器人的家教.

2015/5/23, 第六課, 模仿動作的學習機器人


第一段, Record/Play 程式格, 參上

今天要教新的指令~ Record/Play 程式格.


一如往常, 老師舉例講解 Record(錄) 與 Play(播) 的概念. 可是呢.. 錄音帶, 錄放影機與 V8 已是時代的眼淚, 兩兄弟根本沒見過. 數位相機邊緣化, 能錄影的機上盒不普遍.. 還真不好舉例. 其實老師多慮了, 就直接說 iPhone/iPad, 兩兄弟早就用過錄影錄音與播放的功能了.



老師話鋒一轉~ 錄與播, 可不只是對聲音或影像而已, 動作也是可以被錄與播的 (兩兄弟的眼睛瞪大了, 一副不可置信的表情). Record/Play 程式格, 搭配馬達, 就可以把轉動的角度與方向記錄起來.



Record/Play 程式格的屬性有:

  * Action: 有 Record (錄) 和 Play (播) 兩種動作選項. 
  * Name: 標示這段動作的名稱, 避免混淆或模糊.
  * Recording: 指定要錄哪些 port 的動作. 
  * Time: 指定錄動作的時間長短.

第二段, Record/Play 程式格與馬達的第一次親蜜接觸

老師在 NXT 主機接上馬達與積木連桿, 並在 Mindstorm 程式開發介面加了兩個 Record/Play 程式格, 設定第一個的動作為錄, 時間十秒, 第二個的動作為播. 下載程式到 NXT 主機並執行後, 轉動積木連桿帶動馬達錄下動作, 稍後馬達就會自動轉起來, 播出一模模一樣樣的動作. 



測試的時候發現, 程式需要有適當的提示與回應, 使用者才容易知道~ 開始/結束錄動作的時間或開始/結束播放動作的時間. 老師又多介紹了 Sound, Display, Wait 等三種程式格. 因為不是本週課程的主軸, 就簡單地帶過~ 

Sound 程式格
能發出聲音, 包括嗶剝咚嗆叮噹咻蹦等音效或 hello, goodbye 等語句.

Display 程式格
能在 LCD 面板顯示畫面, 可以做為機器人的表情或互動提示.

Wait 程式格 
能讓程式暫停一段時間.


//-- 萊恩大兵仔細觀察錄與播的動作, 其實並不真的一模模一樣樣. 如果往前往後的變化是在 90度左右, 錄與播的動作大致是相符的. 如果往前往後的變化達到180度, 錄與播的動作會差很多. --//

第三段, 程式與實測

老師給兩兄弟的課題是~ 用 NXT 主機與馬達, 做出一個能模仿動作的學習機器人.





基本的程式演算法為為: 
[1] 錄動作, 十秒鐘 
[2] 發出提示聲音數秒鐘 
[3] 播放前面錄下的動作 
[4] LCD 顯示表情 
[5] 暫停數秒, 讓 LCD 的畫面呈現出來.


Willie 的學習機器人







Willie 安排的演算法為 
(1) 錄動作 
(2) LCD 顯示笑臉表情 
(3) 發出嗶提示音 
(4) 播放前面錄下的動作 
(5) 用 Move 程式格做自訂動作 
(6) LCD 顯示倦眼表情 
(7) 發出 goodbye 語音

Willie 懂得把 Move 程式格加進來, 還在不同段落改變機器人的表情, 看來應該是真的有了解這幾個指令的應用方式.


Kenny 的學習機器人



Willie 當小老師指導 Kenny 寫程式





Kenny 安排的演算法為 
(1) 錄動作 
(2) 發出嗶提示音 
(3) 播放前面錄下的動作 
(4) 發出 hello 語音
(5) LCD 顯示挑眼表情 
**(6) 暫停數秒, 讓 LCD 的畫面呈現出來.

Kenny 踩到一個 bug, 他的機器人沒有顯示挑眼的表情. 萊恩大兵幫他檢查, 原來他在 (5) 後面沒有做 (6), 使得挑眼表情一閃即逝. 加上 (6) 的暫停數秒後, LCD 顯示挑眼表情的效果就出來了.

順道, Kenny 還幫他的機器人做了一個頭.





[萊恩大兵的其它文章]

LEGO NXT 機器人 學習記錄

學習記錄, LEGO NXT 機器人, (1) 聲控自走車 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (2) 簡易程式控制車 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (3) 第一隻程式與荷蘭風車 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (4) 雙馬達驅動車 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (5) 萬向輪與三輪車 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (6) 模仿動作的學習機器人 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (7) 拉小提琴的音樂機器人 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (8) 和聲音啟動車玩一二三木頭人 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (9) 用觸踫感應器做賽馬比賽 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (10) 用超音波感應器玩鬼抓人 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (11) 用光源感應器讓車車折返跑 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (12) 用光源感應器做直線遊園車 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (13) 用光源感應器做迴轉遊園車 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (14) 踫踫車, 感應器與程式格進階應用 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (15) 絕地逢生車, 感應器與程式格進階應用 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (16) 自動車庫門, 迴圈程式格進階應用 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (17) 摩天輪, 減速齒輪組進階應用 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (18) 直線競速車, 加速齒輪組進階應用 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (19) 倒車入庫 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (20) 伸縮毛毛蟲 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (21) 學習手臂 (LEGO, NXT)

0 意見:

張貼留言