符蓉 王向豐
[摘要]樂高機器人是一種把電機、傳感器、齒輪、輪軸等電子產(chǎn)品、機械產(chǎn)品組合成的智能設備,它是一種能夠用內(nèi)置程序或外部無線電操作的教娛玩具。目前樂高機器人以套裝的形式發(fā)售,過去樂高機器人出售過RCX套裝,目前開發(fā)的樂高機器人NXT套裝系列比RCX套裝系列多出一個端口。
[關(guān)鍵詞]樂高機器人 編程軟件 教學實踐
一、樂高NXT機器人的編程軟件教學和實踐的意義
如果說,機器人的硬件決定機器人能夠“做什么”,那么機器人的軟件程序決定它能“怎樣做”。優(yōu)秀的程序能夠給予機器人豐富的指令,讓機器人實現(xiàn)多樣化的功能。
樂高機器人目前可用C語言、VB語言、JAVA語言編程,讓樂高機器人完成各式各樣的操作命令,可是這類的語言過于專業(yè),如果不是專業(yè)的計算機工作人員,很難完成復雜的程序編輯。為了讓編程過程變得可視化和簡單化,樂高機器人以ROBOLAB圖形化為思路,開發(fā)出G語言,它能用簡單的方式完成動作循環(huán)、條件選擇等程序編程,這些編程過程均有一套批處理化的專門的圖標負責完成,編程人員只需要將編程模塊組合并設定動作參數(shù)。豐富、簡單、易用的G語言賦予了樂高機器人強大的生命力,樂高機器人的使用者和開發(fā)者若能學習好G語言,就能讓樂器機器人發(fā)揮無窮的創(chuàng)意。
二、樂高NXT機器人的編程軟件教學和實踐的平臺
1.引導學生熟悉操作環(huán)境
所謂的操作環(huán)境,就是指要完成編程和實現(xiàn)編程必須具有的工作平臺,教師要引導學生了解到在開始編程以前,要先檢查編程的工作平臺是否齊備,以免在工作中發(fā)現(xiàn)無法順利的完成編程過程。一臺樂高NXT機器人的編程環(huán)境如下:
通過USB2.0,樂高NXT編程程序可與計算機PC端連接起來,程序員可在計算機中完成編程程序,然后導入樂高NXT機器人處理器中。
2.引導學生熟悉操作面板
學生要學會編程,首先就要熟悉操作面版,教師可以讓學生理解到樂高的編程軟件分為兩種版本,一種是玩具版本,一種是教育版本,其區(qū)別在于玩具版本只有英語版,而教育版自帶漢化版本,然而兩者的功能卻是一樣的。學生只有熟悉了面板的分布,在編程的時候才能知道軟件的功能應當如何使用。
(1)引導學生熟悉菜單分布 圖1為G語言菜單界面,教師可以引導學生觀察菜單界面分布的規(guī)律,讓學生以最快的速度了解如果自己需要操作一個功能時,要在菜單哪個范圍中尋找這項功能。
(2)引導學生熟悉編程模塊
G語言與非圖形化編程軟件的區(qū)別為,非圖形化編程軟件需要編程人員自己編寫每一條程序命令,使程序命令能夠完成批處理化操作。而G語言的每一個模塊都已自帶有批處理命令,編程人員使用G語言編程時,只用把模塊串聯(lián)起來,即完成編程過程。教師要引導學生熟悉編程模塊的使用方法,圖2為G語言的編程模塊與線程,兩者結(jié)合起來使用,能夠達到編程的目的。
(3)引導學生熟悉程序輸入與輸出
編寫G語言除了要做模塊設置以外,還要做參數(shù)設置,圖3為參數(shù)設置的面板,要做參數(shù)設置就要用數(shù)據(jù)線和數(shù)據(jù)中心的功能,當學生做完模塊編程,設置好參數(shù)以后,即完成編程過程。教師要引導學生學生學會用數(shù)據(jù)線把數(shù)據(jù)中心連接起來,開始調(diào)試程序。學生熟悉了面板操作,是學會用G語言編程的基礎(chǔ)。
3.引導學生繪制程序流程圖
所謂的流程圖,是指用一套標準的圖形符號,說出一套算法。如果學生在編程的時候,先用流程圖整理自己算法,然后再用編程軟件實現(xiàn)自己的算法,這個程序就容易編得簡潔、有序、嚴謹,一旦學生的程序出現(xiàn)問題,學生可以對應著繪制的流程圖檢查編程中存在的問題。反之,如果學生不畫流程圖,一味只憑自己的感覺去編程,如果程序出現(xiàn)了問題,學生將很難找到到底是哪個編程環(huán)節(jié)出現(xiàn)問題,應該從哪個環(huán)節(jié)著手開始調(diào)試等。不管學習任何哪一門程序,學生都要學會繪制流程圖,教師要引導學生重視繪制流程圖的思想,讓學生養(yǎng)成在編程以前先繪制流程圖的習慣,然后依照流程圖的算法開始編程。
三、樂高NXT機器人的編程軟件教學和實踐的方法
1.引導學生嘗試簡單的編程
教師引導學生學會G語言編程時,不應一開始就讓學生編寫復雜的程序,而是應該讓學生先編寫非常簡單的程序,這是為了讓學生熟悉G語言的操作。教師可以從以下的幾個編程步驟讓學生摸索G語言界面分布的規(guī)律,并且引導學生熟悉菜單、圖標的操作:
第一步,引導學生熟悉運動操作的方式,讓學生了解到如何讓樂高NXT機器人作前近、后退、旋轉(zhuǎn)、停止等運動。
第二步,引導學生摸索設置傳感器的方法;
第三步,引導學生思考,如何能讓樂高機器人做連續(xù)的運動或者做循環(huán)的運動。
其中有一堂課,我引導學生編寫了一個讓樂高NXT轉(zhuǎn)彎的程序。學生初開始的時候,是以動作停止的方式作為緩停,可是學生在調(diào)試程序的時候發(fā)現(xiàn)有時樂高NXT走到特定的角度時,無法立即停止,而繼續(xù)向前緩沖,這說明該程序有時不能準確的指揮機器人行動。學生又嘗試第二種方法,即動作結(jié)束以后即停止,可是它雖然能準確停止,卻易出現(xiàn)卡死的問題,這也會造成程序的不準確性。教師引導學生摸索一些簡單的程序,是為了讓學生在調(diào)試簡單程序的過程中了解編程的方法、熟悉樂高NXT機器人的性能,使自己的編程與指揮機器人完成動作能真正的結(jié)合起來。
經(jīng)過調(diào)試,學生的編程結(jié)果如圖4:
2.給學生一個綜合的學習目標
學生了解了簡單的G語言編程原理,且能將編程與樂高NXT機器人的性能結(jié)合起來以后,教師可以給學生一些富有趣味性的任務,讓學生嘗試完成一些動作較復雜的、富有變化性的程序,讓學生在編程的過程中能感受到樂高NXT機器人的強大性能。比如,教師可以給學生布置習題:
通過遙控器讓樂高NXT機器人自動行走,如果遇到某個抓取目標,則自動抓取目標,送往某個特定地點。
教師通過這個題,可以讓學生感受到操控樂高NXT機器人的趣味性,學生在編程的過程中能理解到這樣的機器人既可以成為一個教娛玩具,然而如果給予豐富的程序,它還可以完成自動拆彈、搬運物體、搜救等功能,成為具有實用性能的機器設備。
3.讓學生交流彼此的編程成果
如果學生能與更多的同好一起編程,學生會感受到更多編程的樂趣。教師可以引導學生應用信息技術(shù),讓學生把自己編寫的程序發(fā)布到論壇上、博客上,與同好共同交流、彼此促進,通過這種方式,學生的編程能力能持續(xù)進步。
四、總結(jié)
樂高NXT機器人是一種既具教娛功能,又具實用功能的機器人,它具有廣闊的市場前景,要為這種機器人注入更多的活力,就需要樂高NXT機器人的使用者和開發(fā)者為它編寫各種程序。G語言是一種圖形化的編程軟件,教師要通過合理的教學和實踐普及這種語言程序,使樂高NXT機器人的功能變得更豐富,更能滿足人們的需求。
參考文獻:
[1]谷子瑞.樂高NXT機器人無線技術(shù)設計[J].科協(xié)論壇,2010,(10).
[2]甘辰予,陳勁生.LEGO智能除冰機器人的設計[J].大眾科技,2009,(10).
[3]張明.樂高機器人轉(zhuǎn)彎問題的探討[J].中國現(xiàn)代教育裝備,2007,(05).