使用LabVIEW2015來控制你的KNRm

沉寂了一段時間,我們家ReRe終於平安出生了!今天慶祝她順利喝到母奶,我們來教大家怎麼用LabVIEW2015或2014來控制你的KNRm喔~~

首先還是要按照官方網站的步驟把LabVIEW裝起來(可以只裝2015就好),接著要裝KNR OS 3.0 LabVIEW Toolkit,裝好後一樣要先按右鍵執行Recovery Utility更新一下KNRm的映像檔,到這邊準備結束。若是升級的用戶,只要準備好可以正常使用的KNRm一台跟安裝好的LabVIEW 2015 (with LabVIEW 2015 myRIO Toolkit),或者直接下載LabVIEW myRIO 2015 Software bundle(建議使用,這是搭配myRIO或KNRm一起出貨的LabVIEW版本,需要免費註冊NI帳號),除了Compilation Tools for Vivado 2014.4之外全選安裝即可。

接下來進入正式步驟:

  1. 把已經安裝在LabVIEW2013資料夾裡的KNR OS 3.0 LabVIEW Toolkit複製/搬移到LabVIEW2015裡,一樣放在User.lib就行。
    1. Move user.lib from 2013 to 2015
  2. 若有需要的話,我們也可以把範例程式一併複製一份到2015中。
    1.2 Move example folder from 2013 to 2015
  3. 接下來是最關鍵的一步,我們一樣要用右鍵「以管理員身份執行」打開LabVIEW 2015,
    2. Run LabVIEW2015 as Administrator然後再到Program files (x86)裡的KNR OS 3.0 LabVIEW Software (或自定的安裝路徑,但不建議)裡的「LVFPGA_Adv」資料夾中開啟FPGA Adv Install Helper_2013.vi
    3. Open FPGA Adv Install Helper_2013
  4. 以管理員身份執行才會看到如下的安裝畫面,打勾後按下Install完畢之後,電腦上軟體的安裝就結束了。
    4. Make sure you have see this install tool
  5. 接下來,既然我們用了LabVIEW 2015,KNRm裡的myRIO當然也要更新到2015版囉,首先是韌體,我們要打開NI MAX才能更新,一定要記得以下所有對控制器的操作都要接USB線才不會悲劇喔!按下Update Firmware後選擇最新日期的檔案按確定。
    5. Update firmware in NI MAX要輸入帳號密碼的話,預設是admin/「空白」。接下來要耐心等待,直到MAX上方顯示小小的更新完成訊息。
    6. Login with admin and blank password
  6. 接下來的重開機,應該就會有每次連上USB的歡迎畫面,這時候畫面下方會提示說KNRm (myRIO) 控制器內的軟體(RTOS – Real-Time作業系統)版本與電腦不符,所以「Go to LabVIEW」是不能按的,這時候按下「Launch the Getting Started Wizard」
    7. Launch the GSW等待一下,就會把myRIO上的RTOS更新到LabVIEW 2015對應的版本。
    7.2 Install recommand software on KNRm

這樣就全部完成了,打開範例程式也會都是可以執行的,enjoy it!

 

[閒聊] 2015秋,最近比賽有感 (I) – 技能競賽

幾個大型的比賽結束了,也因為有一些小狀況在網路上討論地沸沸揚揚,跟大家分享一點比賽心得…

先是八月的世界技能競賽:

這個比賽說是技職體系的奧運也不為過,兩年舉行一次,目前是43屆(2015),機器人職種成立第5屆,前4屆均以Festo公司生產,約台幣四十萬的Robotino機器人為標準平台。但國內初賽時無平台限制,原因無它,就怕被冠上官商勾結的罪名,非常荒謬,是一種可以以蛙式選拔捷泳選手的概念,但是後來想想雖無奈但也不全是壞事,原因後述。

國手是由勞動部主辦的「全國技能競賽」選出,每年約五月初賽,八或九月(因世賽順延)全國賽,若為世賽年(如今年2015),全國賽選出來的前三名,要再跟2016年(國手選拔年)各區初賽的前五名(共十五隊)角逐全國前三名。這三隊選手再訓練一個月後舉行賽外賽,以全國賽成績40%、賽外賽60%的比重選出國手,參加2017(世賽年)的44屆比賽,因此每年的全國冠軍也不是保證出任國手,像今年(2015)的國手育運和培志,就是去年(選拔年)全國賽的季軍,但在賽外賽中打敗所有其它選手取得國手資格。而國內的裁判長到世界賽時也會擔任國際裁判,這點倒是跟WRO挺像的,只是國內的裁判長還要兼負代表隊總教練的重任,非常辛苦。

有趣且特別的是,這個比賽在42屆(2013)比完後,委員們就決議要改變方式,跳脫以套裝的機器人來比賽,轉換至Natrional Instrument (NI) 的myRIO控制器和LabVIEW作為機器人的語言,但就我了解,在國手正式選出後(2015年初),他們才知道這回事。過完農曆年後,大湖農工的吳老師透過積木創意中心的黃老師介紹,才找到了我。當初只是覺得有趣,又剛好跟之前開發KNRm的經驗雷同(就是拿myRIO開發成一個好用的機器人套件),就一口答應了下來,沒想到後來結下不解之緣,也因此改變職涯。
繼續閱讀 [閒聊] 2015秋,最近比賽有感 (I) – 技能競賽

使用 KNRm 控制器快速打造國內技能競賽教學平台 (IV) – 2015全國公開試題試走III

終於的終於,我們在「104年第45屆全國技能競賽」正式登場前,完成了這個試走。

世界賽落幕已經兩週,這幾天國手們忙著遊街慶祝,John 忙裡偷閒火燒屁股地完成了競賽公開試題的試走。想參考規則的人可以按這裡下載。

簡單的說就是4m x 2m 的場地上,會在中央有個區域,外圍會有六個郵局便利箱,另外有方型鋁箱包或圓柱型鋁罐兩種物件。任務可能是從中央將物件放置對應的便利箱,或是由便利箱上將物件拿回中央區域。

因為有沒有引導線,定位點都是由現場決定,所以John決定這次試走都盡量以簡單的方式場上有的物品完成,不另外預設會出現的定位點或引導線。

為了能方便製作夾具來夾到物件,John使用了Matrix官方的「The Little Gripper」改裝,加上兩個Servo Motor連動的雙四連桿的升降臂,雖然拍攝的時候物件是空的,但是實測應該能使用KNRm自帶的Servo Motor舉起裝滿的物件沒問題。另外也在夾爪上安裝了10cm ~ 80 cm的紅外線,車身下方也安裝超音波,確保物件與夾爪/機身的距離。有興趣的朋友可以下載組裝圖

 

IMG_0926

 
繼續閱讀 使用 KNRm 控制器快速打造國內技能競賽教學平台 (IV) – 2015全國公開試題試走III

使用 KNRm 控制器快速打造國內技能競賽教學平台 (III) – NXT光感循跡、電子羅盤校正

這次我們不會再偷懶只放影片了 XD

John手上這個平台,是「貝登堡國際」為了「國內的」「機器人技能競賽」所打造的樣品,它是由兩塊厚約半公分,狀似正三角形的大小兩塊六邊形,加上三個厚超過1公分的L型馬達座組成,非常堅固耐用,再也不用擔心用Matrix組成的平台會有鎖不正、壓就彎的問題。IMG_0825

請忽略娃娃跟經絡圖,那些不是本篇重點 XDIMG_0824

比起KNRm Robotics Set的內容,要組一台一樣的車,我們只需要再多一個馬達組裡的大扭力馬達兩個Matrix萬向輪(搭配6mm軸的Hub),最後是一個Hitechnic的Compass Sensor和兩個NXT的Light Sensor。
8-thickbox_default

接線的方式,因為我們用的是KNRm裡支援三個馬達一個I2C Sensor Adapter的FPGA – DDDC,所以KNRm主機上的Port1 2 3分別接上左輪、右輪和後輪,Port4接上I2C Adapter,為了方便我把兩個類比光感的線接在Adapter同一邊的Port3 Port4。

如下圖:小盒子左邊是類比通道接往KNRm的線(接上圖中主機有接線的右邊),右邊是數位通道接上主機Port4,小盒子下面是Port3 4分別接上機器人左邊和右邊的光感。Compass Sensor我們是直接接上主機上的LEGO port(圖中主機左邊)。

IMG_0822

一般來說我們如果在I2C Adapter上只用類比的NXT Sensor,是不需要接主機Port4的那條10P10C的線(那條線只傳數位訊號和供5V給模組),只要接6P6C的電話線(傳類比訊號到主機和供5V給模組)但是NXT的類比光感有使用I2C的訊號腳決定要不要開紅色的LED燈,所以我們還是得接,否則燈不會亮。

接下來就看影片吧!我們下回見~

使用 KNRm 控制器快速打造國內技能競賽教學平台 (I) – 簡介

又到了每週更新的時間了(默默跳過上週不提),因為John還要一陣子才會拿到myRIO平台的機器人,所以myRIO的部分就先暫時休刊,不過大家有相關問題還是可以直接回覆John的文章,我一定會找時間回答大家的疑問的!

在這段沒有myRIO的期間呢,就讓John老王賣瓜,為大家介紹另一個比國內技能競賽的神兵利器「KNRm」。為什麼說是老王賣瓜呢?因為KNRm其實是John之前擔任貝登堡產品經理時開發的產品,KNRm控制器本身其實是myRIO的裸裝版(myRIO-1950),加上我們玩機器人不可獲缺的電源整流、彈性模組化IO…等整合於一身的超強控制器。豐富的週邊模組也都可以直接讓老師或學生開箱就組成一台基本車,以最短的時間進入LabVIEW開發/控制機器人的奇幻世界。

跟myRIO盒裝版(myRIO-1900)相比,KNRm不需要再透過馬達控制板就可以直接使用兩種不同的馬達,也不需要另外由升/降壓板來提供週邊穩定的電流,最簡易的Controller Set就另外附上了可以直接使用NXT/HT Sensor的模組,進階一點的Base Set更提供了4cell 3300mAh 25C 鋰聚合物電池及充電器、兩大一小的高扭力馬達、兩個RC伺服馬達及模組;最划算的Robotics Set還包含了一包專為KNRm量身訂做的金屬機構,相當超值。全新的KNR OS 3.0 LabVIEW Toolkit,除了讓你不需要開Project就能透過Toolkit存取KNRm上的FPGA電路資料之外,也向下相容KNR,讓KNR也能使用與KNRm一同推出的週邊模組。至於LabVIEW為myRIO設計的Express VI和教案及教學,當然也適用在KNRm裡的myRIO-1950上,從LabVIEW控制EV3般簡單的Toolkit,功能強大的myRIO Express VI到像使用cRIO、sbRIO般的自行設計FPGA,KNRm都能滿足您教學/競賽上的需求,WiFi跟USB webcam的支援更讓它如虎添翼,說是神兵利器一點也不過份啊!

簡單的KNRm介紹,可以參考貝登堡帥哥業務Mike的影片

KNRm主機介紹


打開控制器的第一件事就是要照著這個說明安裝軟體,別忘了一定要用「管理員權限」來執行LabVIEW FPGA Advanced Interface Tools跟KNR OS 3.0 Recovery Utility的安裝跟執行。簡單的範例程式使用教學如下:

其它模組的介紹也可以參考官方教學影片,下回我們就直接進入平台打造的部分吧!

WorldSkills Mobile Robotics Collection (IV) – NI myRIO

很快的六天又過去了,又到了我們每週發文的時間(大誤!),John絕對不是故意一個星期才上來廢話一次的啊,而是真的在打混有難言之隱。廢話不多說,我們就來介紹今天的主角吧…

===以下節錄自NI「什麼是NI myRIO」影片===

NI myRIO是一台嵌入式設計裝置,可以讓學生在短短一個學期內體驗現實世界中的工程開發。NI myRIO搭載了NI的RIO系列技術(Reconfigurable I/O),與NI被業界廣泛使用的CompactRIO及Single-Board RIO是相同的科技。myRIO採用了Xilinx的Zynq晶片,該晶片整合了雙核心的ARM處理器及FPGA(現場可程式化閘陣列),可提供充裕的效能來滿足專案的需求。與cRIO和sbRIO不同的是,myRIO在出廠時已經預先設定好一組FPGA,為了方便已經加入許多控制與電機專案常用的I/O,像是I2C、SPI、UART、PWM和編碼器輸入…等,當然也可以自行客製化,以滿足日後的應用需求。

可以講中文嗎?

===以下節錄自NI「什麼是RIO技術?」影片===

簡單的說,RIO系列控制器都搭載了可以用LabVIEW快速且重覆編寫的FPGA晶片,讓使用者自行設定電路程式,而不是用VerilogVHDL寫到天昏地暗日月無光,大大的降低了一些業界工程師日常應用的難度,像是「移動機器人」、「長時間收集資料」或「測試控制的演算法」…等。當然不是說Verilog或VHDL不重要,但是對於要在短時間內開發或得到顯著研究成果的老師或學生們,這些設計電路的「實驗前準備過程」當然是愈快速有效愈好,FPGA的穩定和快速和可重覆修改因此成為了最佳工具。另外,RIO系列控制器也都使用了Real-Time的作業系統,它的最大特色就是穩定。舉例來說,Windows作業系統必須平均分配處理器資源給各項應用程序,像是瀏覽器、自動更新和防毒軟體…等,但是這麼一來特定的程式效能就會隨著分配到的資源多有增減;Real-Time作業系統會跟據優先權來優先執行指定的程式碼,這對控制應用來說非常重要。此外Real-Time作業系統不需要電腦也可以獨立運作,有電腦的時候也可以監控運作狀況,完全不會影響效能。我們將程式碼佈署至Real-Time作業系統上來與FPGA的I/O讀寫資料,就能夠準確且即時的完成很多時間先決的任務。

myRIO的詳細硬體介紹可以看這邊,配備雙核心 ARM® Cortex™-A9 處理器與 FPGA,並且共有 28,000 個可設定的邏輯單元、10 個類比輸入通道、6 個類比輸出通道、音訊 I/O 通道,以及高達 40 個數位輸入/輸出 (DIO) 通道。除此之外還內建 WiFi、3 軸式加速規與數個可設定的 LED和一個可程式化的按鍵。

今天就先到這吧~ 我們下回見!

WorldSkills Mobile Robotics Collection (III) – 馬達驅動板 Digilent Motor Adapter for NI myRIO

在經過了一番努力之後,官方套件的麥克姆輪總算和馬達合體,也可以組裝到機構件上了。

IMG_0237

不過,光只是這樣還不能讓馬達動起來,我們還得裝上控制器(這裡指的當然就是myRIO囉)和馬達驅動板(本篇主角),當然也得接上電池…等。寫著寫著就發現光是要讓馬達動起來就還得再寫很多篇文章,邊想怎麼有系統地說明,頭又邊痛了起來,我們還是一步一步來吧…(所以這些文章雖然發表了,可能還會再反覆地被修改或加上超連結,大家可以常常來複習喔!)

除了上圖有拍到的零件外,之所以會需要控制器(myRIO)的理由很簡單,我們是透過控制器發出的PWM( pulse width modulation) 訊號來改變驅動板輸出給馬達的電壓大小,由這一個電壓「操控」馬達的正反轉轉速、同時也利用控制器的數位輸入(兩組)來得到馬達編碼器的資訊、一組數位輸出決定馬達正轉或反轉,所以一共是用掉四個數位I/O(每個需要讀編碼器的直流馬達)。但是myRIO的數位輸出最高只有3.3V,電流也相當微小,完全沒辦法產生足以推動馬達的電力,因此我們需要另一塊板子,讓大電流通過這張板子,再根據控制器的數位訊號當作開關控制輸出給馬達的電壓,這張板子就是馬達驅動板。

myRIO控制器的規格和簡介我們會再專文補充,就讓我們直接來看看今日主角吧:

MotorAdapter

Digilent 這間公司大家可能比較不耳熟能詳,但是也沒關係,因為它已經被NI買了下來,雖然沒有改組,但是出了一系列適用於myRIO的週邊,這塊馬達驅動板就叫Motor Adapter for NI myRIO,用的是Allegro 4973的晶片,列出一些比較重要的特色如下:(詳細看這裡)

  • 可以直接插入myRIO的MXP腳位(練習時用),也可以彈性選擇想要接上需要的I/O(比賽時用)
  • 可以一次控制兩個DC馬達,或者一個步進馬達、或者兩個伺服機(不可同時)
  • 可接受6-16V的輸入,內建電流監控的功能,最高兩組1.5A的輸出(直流馬達)
  • 可以接受最高70kHz的PWM訊號

接線方式(練習用):

  • 直接將板子插入myRIO的MXP_A或MXP_B插槽
  • 馬達的電源接上J4的M1+及M1-或J5的M0+或M0-
  • 編碼器的A相訊號線接上J7或J13的E1A或E0A,B相訊號線接上E1B或E0B
  • 編碼器的電源線正負分別接上J12或J14的myRIO 5V和GND
  • 外接的12V電池接上J6的Motors PWR

接著我們看下圖:

motorAdapter

可以發現在第一個馬達(M0),也就是「黃、橘、綠、綠」這組,沒什麼問題,我們只要使用myRIO裡的Express VI就可以設定對應的:

  • 黃:DIO6(23)為DO並控制正或反轉(DIR0)
  • 橘:DIO8(27)為PWM並輸出自訂頻率的PWM訊號(PWM0)
  • 綠:DIO11,12(18,22)為編碼器AB相輸入(ENCA,B)並自動解讀

但是第二個馬達,「紅、藍、粉粉」這組

  • 紅:DIO10(31)要做DO沒問題,但是就浪費了一組能做PWM的DIO
  • 藍:DIO9(29)做PWM沒問題(PWM1)
  • 粉:DIO4,5(19,21)只能當作DI接上AB相,無相自動解讀,必需再利用J2跳至myRIO後方MSP插槽上的DIO0,2(11,13)才能用Express VI自動解讀(ENC0.A,B),如下圖:
    motorAdapterMsp

講到這裡還沒有消化不良的話,趕快試試看四個馬達一起動,線都要接去哪才好呢?另外為了不浪費I/O,我們之後會再另外介紹比較複雜的接法喔!

WorldSkills Mobile Robotics Collection (II) – 與車體不契合的輪與馬達

最近John真的有點偷懶比較忙…加上我這裡的官方比賽指定套件被xxx公司收回去了,只好用一些以前的照片和程式來繼續分享給需要的老師和同學囉。

上次講到套件的內容,有些老師以為它全部就這麼多個(那也太坑啦…),再重申一次我貼的照片只有種類,數量還是以官方網頁上的表格為準喔,而且有些零件我是沒收到的,所以也就不會在照片上啦。

今天先說套件裡的馬達:(借用一下網路上拍賣商家的圖片)

faulhaber_2342_encoderfree-shipping-germany-faulhaber-coreless-motor-2342-l012cr-12v-120rpm-with-encoder-and-gearbox_1420168 (1)

這個馬達是Faulhaber 12V 的 DC馬達,搭配64:1的行星齒輪減速箱、12CPR光學式的編碼器可以得到馬達轉一圈編碼器數3072下,不論價格或規格都稱得上是一時之選,除了編碼器因為是另外鎖上去的,有時候位置鬆掉轉的時候那個像風扇的東西會有點卡到,用十字起子調整一下就好,沒什麼大問題。詳細的規格如下:

  • Type: Faulhaber 12V DC Coreless Motor
  • Power: 17W
  • No Load Speed: 8100RPM/minute
  • Reduced Speed: 120RPM/minute
  • Diameter: 30mm
  • Length: 42mm
  • Total Length: 85mm
  • Diameter of Shaft: 6mm
  • Length of Shaft: 35mm
  • No Load Current: 75mA
  • Load Current: 1400mA
  • Gearbox Ratio: 64:1

Encoder

  • Type: Optical
  • Encoder Phase: AB
  • Encoder Resolution: 12CPR

問題出在與平台組合的方式,借用一下網路上的某組合平台的圖來說明:

T2OymUXjtXXXXXXXXX_!!20394626.jpg_600x600

上面這張圖,馬達是鎖在一塊黑色的L型的鋁合金上,這塊L可以鎖上馬達隨附的黑色軸承,再把萬向輪與鎖上6mm的hub,將hub的突起插入軸承,再把hub上兩個呈九十度的止付螺絲鎖緊固定馬達的軸,最後接上平台,靠的也是這塊黑色L件。

接著我們看官方的套件:

IMG_0234IMG_0233

首先第一張圖片中固定住馬達的鋁殼,是兩片L型扣成的,還不錯,給予編碼器的電路更好的保護…但是要裝上黑色軸承時就沒辦法兩片L都使用了,因為兩片互咬的L在軸承那面會突起,所以只好捨棄其中一片,但這麼一來這個銀色的L好像略顯單薄。另外照片中有很多較小的孔,那是學生自己打上去的(有些洞是打錯位置),原本沒有,這些洞是用來固定圓形的軸承(沒錯,原本的L沒有能夠固定承軸的孔)。我們還可以從第二張圖看出,官方套件的面積不夠,所以軸承沒辦法四個孔都鎖到銀色的鋁殼上,另外鋁殼的長邊也沒有預留孔位來跟套件中的C型件接合,下面這張圖的四個孔也都是學生自己打的:

IMG_0230IMG_0235

寫到這我都快昏了,這些孔的位置如果沒辦法打準(約在兩條內),除了馬達無法跟車體垂直,軸承轉動的時候也有可能受力不平均影響運轉,這些是我們一般玩機器人的學生或老師,花了大把的鎂應該得到的產品嗎?真的覺得痛心啊…

WorldSkills Mobile Robotics Collection (I) – 清單簡介

一直很掙扎要不要花時間寫這一篇文章介紹一下這個世界技能競賽(以後都簡稱WSC)官方的指定平台,因為光是看到這些零件就讓我一肚子火啊,居然有廠商這麼不負責任推出這些「套件」,我都不知道該說什麼了,沒有成套也不太容易組裝起來,這還能叫「套件」嗎?但是為了讓大家理解錢花在刀口上的重要性,還是隨便漫罵簡單介紹一下好了。 以下是從官方贊助商網頁擷圖下來的套件清單繼續閱讀 WorldSkills Mobile Robotics Collection (I) – 清單簡介