2017/06/16

想像這是一佪海盗桶
觸壓一下即是插一把刀進去

NXT 電腦積木新課程. 這個階段會著重在初階的計概觀念, 邏輯與程式編寫.

2017/3/25, 第十一堂課. 

今天課程介紹 OR 邏輯運算元, 實作主題是海盗桶. 就是那種桶狀, 上面有許多刀孔, 玩家逐一插刀進去, 若插中機關, 小海盗即會彈跳起來的玩具.






先來分析海盗桶的功能需求:

[1] 要有觸動機關與彈射海盗玩偶的機制.
[2] 要有隨機性, 不能每次都一樣的觸發位置.




該怎麼做這個海盗桶呢? 逐一分析各項需求:

[1] 要有觸動機關與彈射海盗玩偶的機制.

* 彈射海盗玩偶的機關可用馬達來實作. 



* 觸動機關當然就是使用感應器囉 (光源, 超音波, 觸踫均可).



[2] 要有隨機性, 不能每次都一樣的觸發位置.

這項需求比較有難度. 直覺的想是寫程式來隨機指定感測器做為觸動機關. 對程式初學者的兩兄弟當然不是走這路徑囉. 既然不能隨機指定感測器, 山不轉路轉, 就在外面加個能旋轉的外殼, 讓觸動機關被隱藏起來, 間接造成隨機性. 

* 讓外殻與觸動機關兩者之間僅有一個支點, 就能旋轉了.
(實作的時候, 老師僅要求做到能旋轉即可, 不須做出外殼.)


旋轉結構
NXT 主機盒與底座僅有一個支點


程式演算法很簡單:
* 將兩個感應器的輸出使用 OR 邏輯, 值為真時, 即轉動馬達彈射小海盗.
* 可再加上啟動與觸發的音效.




實作檢討

Willie 的海盗桶~ 馬達轉得有點慢, 小海盗比較像是在坐飛天海盗船, 並不是被彈射出來.






Willie 的程式碼
他寫了一大段的觸發音效


Kenny 海盗桶~ 馬達轉動的擺幅太小, 小海盗像是被震一下, 並沒有彈射.







Kenny 的程式碼
他有加註解, 是好習慣.

兩兄弟的作品合照





[萊恩大兵的其它文章]

LEGO NXT 機器人 學習記錄

學習記錄, LEGO NXT 機器人, (20) 伸縮毛毛蟲 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (26) 母雞帶小雞之排隊機器人 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (27) 小雞找母雞之雷達機器人 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (28) 高爾夫球機器人 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (30) 會闖迷宮的機器人 (LEGO, NXT)
學習記錄, LEGO NXT 機器人, (31) 線控車 (LEGO, NXT)

或請參考


0 意見:

張貼留言