序言
當我剛剛接觸樂高機器人的時候,馬上就被它深深吸引住了。原因很簡單,它能動,聽指揮,是一個優秀的創作平台。
按照網路上的草稿,我很快就製作出了幾個機器人的模型。但是如何處理機器人的核心部分:控制程式,卻一時沒有頭緒。如何讓機器人像人類一樣「思考」呢?為了達到這個目的,我先後嘗試了多種程式語言,直到使用過LeJOS之後,我終於發現,這正是我想要的。LeJOS 源自於Java 語言,它很強大,同時又十分小巧,可以提供給樂高同好無限的創作空間。對於像筆者這樣從事軟體開發工作多年的人來講,只要經過簡單的學習馬上就可以上手開發程式。
而對於程式設計知識了解不多的讀者,則有了一個學習Java 程式設計的好機會!只要幾行程式,就可以指揮機器人動起來,這種「學以致用」的方式一定會觸發你的學習熱情!同時,LeJOS 又在樂高機器人和真正的工業機器人之間架起了一座橋樑,為你的未來提供更多的選擇方向。下面,開始我們的學習之路吧!
本書的內容主要分為以下幾個部分:
第一、二章,從樂高的基礎知識講起,先帶領大家全面認識樂高機器人NXT8547。
第三、四章,介紹樂高的程式設計環境。樂高公司提供了NXT-G 語言來為樂高機器人設計程式。這是一種圖形化的程式語言,使用者透過拖放圖形達到撰寫程式的目的,而不用直接撰寫程式。這樣的程式設計方式雖然直觀,但是遇到過於複雜的邏輯,僅依靠圖形總會感到難以清楚表達自己的想法。本書介紹的是目前極為流行的一種程式語言:Java。Java 有一個專用於樂高NXT 開發的工具套件,就是前面提到的LeJOS。本書的主要內容就是向讀者介紹Java 和LeJOS 的程式設計方法。
第五章說明的是程式設計的基礎知識。如果讀者以前學習過一種程式語言,例如C 或VB,那麼這一章的內容學習起來會十分輕鬆。沒有基礎的讀者也不用擔心,本書使用Java 作為載體,簡單明快的說明了型態、變數、循環敘述這些概念,這些知識用作樂高機器人開發已經足夠了。
第六、七章說明樂高機器人程式設計。本書本著循序漸進的原則,依次說明了螢幕輸出、馬達控制、感測器程式設計等幾部分內容。並對每個物件的操作方法一一說明。結合書中例題,力求做到內容詳實、使用案例準確、深入淺出、易學好用。
第八章向讀者介紹了程式設計中較為進階的技巧:執行緒和監聽。運用多執行緒知識,樂高機器人可以在捕捉外界實體量變化的同時及時作出回饋。這部分內容可以使簡單的程式更加精簡,同時也是開發複雜程式必不可少的知識。
第九章是對前面各章節知識的綜合運用。透過5 個小實例,筆者帶領大家一邊思考一邊動手,分析程式設計想法,整理基礎知識,最後完成程式的撰寫。
第十、十一章的內容是網路通訊和遠端控制。樂高機器人的連接方式有USB 和藍牙兩種,遠端控制分為PC 控制機器人,機器人控制機器人和手機控制機器人。現在Android 智慧型手機的使用已經十分普遍,本書利用Android 手機上的重力感應器撰寫了一個控制程式,遙控樂高小車作出前進,後退等動作。
第十二章作為擴充閱讀,主要向讀者介紹LeJOS 提供的圖形化工具的使用方法。此外,初學程式設計的同學,經常會遇到語法知識已經掌握了幾分,但是撰寫程式卻不知從何入手這個難題。在12-5 節會告訴讀者如何檢視LeJOS 提供的範例程式,認真閱讀之後會對你有所幫助。
因為本人所學有限,書中難免存在疏漏和錯誤。歡迎讀者朋友批評和指正,我將十分感謝並及時發佈勘誤資訊。我的電子郵件是:wxh1907@sina.com。在本公司官網www.topteam.cc 可以下載到本書的全部程式。
最後,對正在閱讀的您表示由衷的感謝!希望本書能給您帶來快樂和收穫!
魏曉暉