2016/12/13


原本幫小孩安排的 NXT 電腦積木課程已結束. 評估小孩們的學習狀態, 是會抓感測器值做反應以及一點點程式邏輯與迴圈的觀念. 在新一階段課程還沒有著落的空檔, 萊恩大兵乾脆自己來教小孩玩積木寫程式. 就這樣, 萊恩大兵變身成自己兒子的電腦老師, 帶他們一起做玩具了.


萊恩大兵列了幾個計概與程式設計的主題, 做為教學的課綱:

* 計算機基本架構
* 寫程式一定要加註解
* My Blocks (sub routine)
* 各種不同的迴圈 (if else, for loop, while loop)
* 變數 (variable) 的用法

另外, 也目標對 NXT 積木零件做更深度的瞭解:

更精準的控制角度感應器
* 結構更穩固的萬向輪


以上種種... 萊恩大兵抓的第一個實作題目是~ 寫字車. 一台能握筆, 能在地板寫數字的車. 

做這台車會要克服的難題有:


* 這台車要能精準地左右轉向 —> 車子的萬向輪要做得扎實.
* 這台車要綁一隻筆, 即便地板凹凸不平, 筆頭都要能有效接觸到地板上 —> 可用以前學過的連續印章結構, 利用橡皮筋的拉力讓筆頭能接觸到地板.


直接把筆固定在馬達上,
筆頭既不能正面接觸地板,
也無法克服凹凸不平的地面.

以前做的蓋章機. 要利用它的結構來讓寫字車握筆.
* 這台車要有機械手臂, 適當的時候要能把筆提高, 讓筆頭不會踫到地板.
* 要編寫程式, 讓車能提筆與放筆, 在地板上把數字寫出來.


萊恩大兵本來以為一堂課能講完, 結果走了四週, 才把車子做出來.

(2016/9/4) 第一堂課

進行了幾個課題:

[i] 計算機基本架構

講解計算機基本架構, 包括輸入, 運算 (CPU, 記憶體, 硬碟/儲存裝置), 輸出等.


[ii] 結構更扎實的萬向輪

兩兄弟以前做出來的萬向輪, 結構都很搖晃不穩定. 雖然車子還是能左右轉, 但執行結果很不穩定. 


這台車後面接的並不是一台小拖車, 而是萬向輪.
兩兄弟以前做的萬向輸差不多都是這模樣, 結構很搖晃不穩定.

寫字車需要精準地左右轉, 萬向輪做不夠扎實的話, 會影響執行結果的精確度.


新版本的萬向輪.
在結構的穩定性增強很多.

[iii] 寫程式一定要加註解

加註解能幫助瞭解程式, 是一定要培養起來的好習慣.



[iv] Sub routine / 函式 / 程式庫 / My Blocks 

NXT 電腦積本也是有函式 (或程式庫) 的, 叫做 My Blocks. 把某段寫好的程式碼加到 My Blocks, 日後就可重覆使用. 善用 My Blocks 能讓程式變得結構化, 也節省開發時間.



將寫好的一段程式碼, 存成 My Blocks. 
My Blocks 的名稱要取得清楚有意義才行
善用 My Blocks 能讓程式變得結構化,
節省程式開發時間.

[v] 做第一版的寫字車

萊恩大兵要兩兄弟暫且忽略機械手臂提筆與筆頭接觸地板兩項要求. 先做一台車出來練習寫程式. 

在固定筆的時候, 有遇到筆身太細握不住的問題, 藉著捲紙條把筆身加厚. 然後又遇到翹翹板問題 (固定筆身的機構有高低差, 使得筆身逐漸歪斜), 再花了一些心思才終於能穩穩握住筆.





[vi] 程式練習



* 寫一小段程式, 精確地控制車轉 90度. 
* 寫一小段程式, 精確地控制車轉圈, 須懂得抓半徑大小.



* 將兩段程式碼儲存成 My Blocks
* 利用 my blocks, 讓車子繞桌子一圈.







(2016/9/11) 第二堂課

延續前一堂課的基礎, 繼續進行了幾個課題:

[vii] 利用連續印章的概念, 來改善握筆的結構.

固定筆身的時候, 故意要讓筆頭頂到地板. 筆會有個向上的力, 剛好會被橡皮筋的拉力抵消. 這樣一來, 筆頭就會牢牢地接觸到地板了. 即使是凹凸不平的地方, (應該)也都是能畫到線的.




[viii] 做第二版的寫字車

把固定筆的機構換成連續印章的結構.





(2016/9/17) 第三堂課
延續前一堂課的基礎, 繼續進行了幾個課題:

[ix] 編寫程式, 畫弧線與直線來組成阿拉伯數字.





程式碼: 讓車子在地板寫 '2' 

(2016/9/24) 第四堂課

延續前一堂課的基礎, 繼續進行了幾個課題:

[x] 做第三版的寫字車

要加上機械手臂, 做到提筆與放筆的動作. 




這台是 Willie 的寫字車.






這台是 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 意見:

張貼留言