使用 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) – 清單簡介

Hello the world!

哈囉!為了世界技能競賽指定平台從Festo的Robotino換到NI myRIO而苦惱的老師和學生們~ 我是John,不管你認不認識我,不要懷疑,改變已經悄悄發生了,雖然國內的比賽向來沒有指定平台,但今年(2015)八月將前往巴西比賽的小國手們就被指定要使用官方贊助商(Studica)提供的myRIO平台比賽套件,除此之外只能再花500鎂來添購機器人的「行頭」,當然有規則就會有一些「例外」,像是選手自己製作的零組件,或是結構件可以不被計算在內…等,但是這些應該都不是太大的問題,只要賽前能講清楚說明白就好了。 最大的問題就是以往使用Festo Robotino的良好經驗,像是只要輸入座標,就能走的很直,可以很輕易的讀出平台內建的紅外線和光感應器的值…等,在myRIO平台和LabVIEW程式裡幾乎都得靠自己組裝和接線,也得從最基本的讀取編碼器、給馬達PWM訊號控制轉速、從類比輸入獲得電壓值…等,一步一步自己打造屬於自己的機器人程式指令。 當然有這些麻煩的地方相對的也會有不少優點,利如學生可以學習到更紮實的程式技巧、機電整合和控制的實作,到比賽現場會有更多不同的機型可以觀摩學習(因為從底盤到夾爪都得自己設計組裝)…等,另外只要原來不到1/3的價格也讓更多學生可以參與,額外的500鎂規定讓比賽的公平性也增加了。只是學校老師就必需更辛苦的尋找不同專長的教練、收集各種資源來培訓選手,但是這樣台灣的未來也才會更有競爭力啊不是嗎! 趁著我的滿腔熱血還沒有被現實的無奈澆熄,接下來會陸續分享一些經驗和資訊,聊表我對那些在台灣有點失敗的教育體制下還能無私奉獻的老師、好學不倦的學生們的一些敬意。 John 2015.05.20