2015/05/03


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

會寫這系列文章, 主要是好奇這兩個小朋友 (小三&小一) 的學習歷程會如何? 萊恩大兵自己是在大一才接觸電腦. 從計算機概論, 程式設計一路走來, 知道這段知識累積堆疊過程的辛苦與領悟. 而咱家這兩個小朋友沒有任何基礎, 要怎麼走, 路上會遇到什麼困難或障礙, 會有什麼樣的領悟與成長... 這過程應該會挺有趣的.



2015/4/25, 第二課 (1.5hr)


第一段, 程式是什麼?


老師才剛坐下, 兩兄弟就在問~ 今天要用電腦寫程式嗎? 老師給的答案很神奇~ 今天要寫程式, 卻不需要用電腦. (這個答案讓兩兄弟對寫程式更有遐想了.)





萬里之行, 如於足下. 

老師講解程式的基本概念~ 程式就是用電腦去控制事物, 電腦很笨, 只能聽令行事, 你講一它就做一. 因此, 寫程式很重要是 (1) 將任務分拆成逐步的動作 (2) 處理任務分岔的 case. 




又問了兩兄弟~ 將電腦開機, 會看到什麼畫面? (老師想要講解 OS shell, command, 0/1 等概念. 不過這主題不好舉例, 難為老師了.)


//-- 這邊 Willie 有個大哉問, 為什麼不是 1 和 2? 而是 0 和 1. 嗯.. 要從十進制轉念為二進制的運算系統, 對這年紀的小朋友是很難理解沒錯. --//


寫程式會不會有錯誤? 當然會, 吃燒餅哪有不掉芝麻的.


程式有錯誤會發生什麼事嗎? 會造成電腦當機. 

//-- One of 啦, 這邊就不深究了. --//

那要怎麼解決? Debug 囉. 

//-- 兩兄弟對 debug 的印象很刻板, 認為就是重開機. --//

老師仔細的講解 debug 的要點~ 要找出問題的原因: 檢查線路, 看零件是否正常? 接線有無鬆脫? 積木結構是否合理? 程式邏輯, 變數或設定值是否正確?


第二段, 積木車實作


今天的實作主題是一台能用程式控制的車. 


先有車.. 老師動手示範. NXT 的馬達變大變重了, 得多用插銷才能安裝穩固. 車體要做的扎實不搖晃, 程式的執行結果才會穩定. 而兩邊輪胎的連接, 以前在動力機械課是用同軸心的設計, 現在得用分離軸心的結構. 還有, 實作車體時, 儘量都把積木零件放在桌面上做. 一則是桌面平穩, 二則可避免積木零件砸落地上摔壞.




老師的示範









兩兄弟早在動力機械課就一直在練習做車子, 仿照老師的示範做台車子出來不是難事. 值得一提的是 Kenny 的作品, 他比較有心思, 做出來的車體很不一樣.

哥哥 Willie 做的車








弟弟 Kenny 做的車









第三段, 不用電腦的簡易程式怎麼寫?


重點來了. 不用電腦的簡易程式怎麼寫? 原來是 NXT 主機裡面有內建一個直譯式圖形介面的指令編排程式. 它提供了像是前進, 後退, 左/右轉彎, 暫停3/5/10秒, 重覆數次等的動作指令, 更能搭配感測器因應外在的變化, 例如超音波或觸控感測器偵測到障礙物就做某件事... 這的確是個練習動作與程序安排的好入門, 至少兩兄弟一下子就上手寫出自己獨特的程式控制車了. 


//-- 兩兄弟是寫出自己獨特的程式控制車沒錯, 但有不少 bug. 解這些 bug 不難, 難的反而是要向他們解釋為什麼這是 bug. --// 










[萊恩大兵的其它文章]

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 意見:

張貼留言