1. 程式人生 > >微軟機器人開發軟體——MSRDS

微軟機器人開發軟體——MSRDS

Microsoft Robotics Studio可以使你在PC機上建立程式來遠端控制機器人,在這個軟體所支援眾多公司的機器人控制器中,當然也支援樂高迷手頭的NXT控制器。所以趕快去安裝免費的微軟機器人軟體Microsoft Robotics Studio,簡稱MSRS。2008版的軟體才是免費的!

   在安裝MSRDS之前,首先要確保計算機上已經安裝了Visual Studio Express Editions C#,如果安裝該軟體,讓你重啟動,你必須重啟,因為重啟後,這個軟體要繼續安裝後續程式。徹底安裝完Visual Studio Express Editions C#後,再安裝Microsoft Robotics Developer Studio Express Edition。希望您的電腦安裝Win7作業系統。

R3版安裝

Visual Studio 2008 Express Editions C#下載地址:

MRDS 2008 R3版下載地址:

 MSRDS機器人開發平臺網址:

 中文說明:

MSRDS開發團隊WiKi網頁

MSRDS開發團隊成員Young Joon Kim的教學網站

利用簡單的程式碼與VPL來教學,讀者可以在該網站學習到CCR與DSS、以及VSE上的開發技巧。

   安裝成功後,就可以為NXT機器人套件程式設計了,看來樂高在國際上還蠻吃香,各大軟體公司紛紛把NXT機器人作為他們的硬體物件。MSRS軟體與NXT控制器的通訊是藍芽通訊,你就用XP SP2作業系統自帶的藍芽軟體來設定兩者通訊介面就行。以下是藍芽連線方法。

         插入藍芽介面卡,在XP作業系統的右下角工作列中會出現藍芽圖示,點選它,產生設定視窗。如果你安裝的是精簡版XP作業系統,工作列中就不會出現藍芽圖示,因為精簡版XP作業系統精簡掉了藍芽驅動軟體。

點選“新增”。

下一步,

PC機藍芽介面卡與NXT控制器,密碼配對。密碼為1234

按下NXT控制器的“橙色”按鈕,密碼配對成功。

        看看XP作業系統的自帶藍芽軟體視窗“COM埠”選項,藍芽輸入輸出埠是多少,記住“傳出”埠號。你的PC機生成的埠號不一定與我這次配對成功的埠號一樣,我的埠為COM7,這個數值“7”將會出現在下面的MSRS程式的NXT控制器模組設定中。

         我這次程式設計的任務很簡單,就是:按下NXT控制器上的“Left”按鍵,A埠電機正轉,按下“Right”按鍵,電機反轉,鬆開按鈕,則電機停轉。

 看看用Microsoft Robotics Studio 給NXT控制器程式設計的視訊演示:

  我在網上找到了一個樂高中國代理西覓亞公司撰寫的MSRS for NXT入門,可以下載看看。

        首先從NXT控制器的設定說起。從軟體介面左側的“Services”庫找到“Lego NXT Brick”,雙擊它,它就自動跑到程式設計頁面上去了。

 

         再點選NXT控制器模組,在軟體介面右側“Properties”設定欄裡,設定引數,PC機軟體與NXT控制器的通訊方式為Bluetooth,根據XP作業系統自帶的藍芽軟體中顯示的串列埠號設定串列埠為“7”,波特率設定為“0”,意思是讓系統來選擇合適的波特率。

         我把NXT控制器模組的名字從原來“LegoNXTBrickV2”改為“NXT1”,後面介紹的模組也可以改名字。

         注意:SerialPort的引數值必須是:XP自帶藍芽設定軟體和NXT控制器配對後,產生的“傳出”埠號。

         上圖中,引數設定欄中的ShowInBrower的“勾”,可以打,如果有“勾”,當程式執行時,就會出現一個瀏覽器頁面,用來監視任務中用到的NXT各電氣部件動作,視訊裡有演示。

上圖的瀏覽器頁面,就實時監視是否有NXT控制器上的按鍵被按下。

         NXT控制器引數設定好後,就可以從“Basic Activities”庫找出“if”模組,從“Services”找出“Lego NXT Buttons”模組,如下圖。

          用“飄逸”的連線把“NXTButtons”模組的“圓點”輸出埠與“if”模組的“三角形”輸入埠連線起來。我把模組的名字從“LegoNXTButtonsV2”改為“NXTButtons”。

         上圖紅圈標註的位置值得注意,要按圖示方法把“NXTButtons”模組與掌控它的名為“NXT1”的控制器關聯起來。

         現在開始書寫if模組裡的邏輯,有趣的是游標位置出現了快捷選單,提供我選擇將要書寫的命令,我選擇了“PressedLeft”,接著輸入了“==”關係符,快捷選單依然跟著幫助我書寫命令,我再選擇 “true”,於是“if PressedLeft == true”的邏輯就這樣“快捷”地生成了。

        點選上圖“紅圈”標註的“+”,產生新的邏輯行,按照上面介紹的方法,“快捷”書寫“PressedRight == true”,後面跟著的是“Else”邏輯行,這三個邏輯行的含義是:如果NXT控制器上的“Left”按鍵按下,則NXT電機正轉,如果“Right” 按鍵按下,則電機反轉,否則,電機停止。

         繼續,把“Data”常數模組和“NXTMotor”模組紛紛提取出來,放在程式設計頁面中。

        當我連線“Data”模組和“NXTMotor”模組時,那個快捷選單又出來幫忙了!,太好了,點選選擇“SetMotorPower”,意思是“Data”模組裡的數值以功率值的形式賦值給“NXTMotor”。

       “Data”模組裡的數值“1”是滿量程功率值,與我們常用的 NXT-G軟體的功率值不同,NXT-G軟體的滿量程功率值是“100”。那麼用MSRS軟體為NXT機器人程式設計,想把電機功率降低一半,功率值為多少?答案是“0.5”。當有小數點數值時,要把資料格式從上圖顯示的“int”切換為“double”,否則雖然可以編譯通過,但電機不會轉,它把“0.5” 當成“0”了。

         這次任務,我只用了一個電機,把它連線在控制器A馬達埠上,在程式中的“NXTMotor”模組也要體現這種連線設定,看下圖。

         程式全景圖中,有三個名字一樣的“NXTMotor”模組,它們都指向同一個電機,而且設定也是一樣的,我設定好一個“NXTMotor”模組,其它兩個,複製貼上就OK,如果不用這種方法,另兩個“NXTMotor”模組無法設定成同名模組。

         程式編寫完畢,下一步咋辦,自然是點選軟體介面頂部選單欄中的“>”執行按鈕,當然前提是MSRS軟體與NXT控制器藍芽連線要正確,然後出現了“編譯與執行視窗”。

         視窗中出現“Your project is now running.”,說明編譯正確,MSRS軟體不斷髮出藍芽命令,控制著NXT控制器的執行。注意:程式在PC機的MSRS軟體中,不在NXT控制器裡,NXT控制器只是執行者。

         NXT控制器發出一聲“嘟”的聲音,NXT控制器已被MSRS程式控制,立即會出現一個瀏覽器頁面,在這個頁面中,你可以監視NXT機器人的電氣部件動作。

         微軟機器人軟體支援NXT套件,NI公司的Labview軟體也支援NXT套件,說明國際上,NXT機器人的影響是很大的,看來我玩樂高NXT機器人還是有道理的,它可能是目前唯一的較低成本、方便快捷和豐富國際資訊的機器人學習和研究工具。