設為首頁收藏本站

圓創力科技.MakeBlock TW

 找回密碼
 立即註冊

QQ登錄

只需一步,快速開始

掃一掃,訪問微社區

查看: 97|回復: 0

Makeblock電子模組手冊-Me High-Power Encoder Motor

[複製鏈接]
iop0611651 發表於 2018-10-15 13:53 | 顯示全部樓層 |閱讀模式
概述:
  Makeblock的編碼馬達驅動模組是一個自帶控制器來進行PID運算的直流馬達驅動模組。該模組使用ATmega328P作為控制的主晶片,相容Arduino模式,因此高級玩家也可以把這塊驅動板當作一個主控單元來使用。
  我們的韌體代碼存放在https://github.com/Makeblock-official/Me_EncodeDriver,由於舊的韌體協議過於複雜,所以我們後續只會對新的韌體進行更新及維護,如果您希望獲得我們的最新服務支援,希望您參考第5章節的內容對您的韌體進行更新。
  使用Makeblock的編碼馬達驅動模組,您可以通過發送I2C指令來控制雙路馬達(帶編碼器)的正反轉速度,也可以直接設定馬達的運動距離或者轉動角度。在最新的韌體驅動中,兩路馬達的PID參數,碼盤解析度,減速比還有模組的I2C位址都可以通過I2C匯流排來進行設置,設置的參數會自動保存在EEPROM中,即使重新上電,也不會丟失您的配置。因此該驅動模組可以相容市面上絕大多數種類的直流編碼馬達。

如何使用舊韌體:
  模組預設的I2C位址是0x09,如果想控制3個以上的編碼馬達,就要使用到兩個編碼馬達驅動模組,這時候就需要使用設置工具重新設置模組的I2C位址。否則兩個模組的I2C位址一致,是無法獨立進行控制的。由於設置工具是通過串口與驅動模組通信的,所以需要使用到USB轉串口的工具,在第5章節中會進一步說明這個工具的選購。
  目前makeblock有磁編碼馬達和光編碼馬達兩種。不同的馬達所需要設置的參數是不一樣的。磁編碼馬達和光編碼馬達的區別如下圖所示。
磁編碼馬達露在碼盤外面的器件是一個4管腳的黑色霍爾感測器。而光編碼馬達露在碼盤外面的是一個兩管腳的LED發射管。同時光編碼的碼盤有8個間隙,而磁編碼馬達的碼盤是一個環形磁鐵。
如果您使用的是磁編碼馬達,那麼你需要使用設置工具,將值設定為:

  主要是減速比(reduction ratio)需要修改為46.67(預設值為 25.76852). 設置參數時,為了避免將不需要設置的參數給設置錯誤,請先使用<get>控制項讀取驅動模組原先的設置,然後重新設置減速比(reduction ratio)即可。關於馬達各個參數的說明,在第6章節的常見問題中會進一步說明,有不清楚的可以參見第6章的內容。
如果使用的是光編碼馬達,那麼有兩個參數需要修改,包括碼盤解析度(encoder resolution), 減速比(reduction ratio). 其設定的情況如下圖所示。
  一般情況下,您所使用的兩個馬達應該都是同一類型的,所以設置的時候,請注意兩個馬達參數的同步修改。否則兩個馬達的控制會出現不同步的情況。如果您需要使用三個以上的編碼馬達,那麼I2C位址(I2C address)也是您必須進行設置的一個選項,這個I2C位址與程式的關係在後面的程式示例中會具體展示給大家。

  設置好了韌體的參數,您就可以開始使用arduino來對編碼馬達進行控制使用了。
  首先您需要在您本地的arduino安裝目錄下添加我們makeblock的驅動庫,最新韌體庫的代碼位址: https://github.com/Makeblock-official/Makeblock-Libraries. 驅動庫的安裝說明在Git檔目錄的README.md中有詳細說明,請參考這個說明安裝即可。
  如果已經按照說明安裝makeblock驅動庫完畢,那麼打開arduino之後,你應該能看到Example-> MakeBlockDrive這個目錄,在這個目錄的Me_EncoderDriver_Old這個目錄中就能看到4個簡單的示例程式,把任意程式燒錄進你的BaseBoard/Orion/UNO Shield主機板中即可進對馬達以及驅動板進行測試。你也可以仿照示例程式,編輯自己的應用。
  示例程式中,在創建物件時有這個語句:
  這段代碼的 0x09即是驅動板的I2C位址,如果你沒有使用工具對I2C位址進行修改,那麼默認出廠的I2C位址一定是0x09。
  如果你已經設置了I2C位址,然而又忘記了I2C設備的位址號,你可以採用以下方法去輪訓獲取你的I2C位址。
  選擇示例程式 MakeBlockDrive->example->Me_I2CScan->Me_I2CScanTest
  按照章節2的內容連接好主機板與編碼馬達驅動板,將該示例程式燒錄進控制主機板,Arduino的串口監視介面的串列傳輸速率設置為9600,如果沒有異常的話,應該可以看到這樣的顯示。這裡顯示的 address就是I2C的從設備位址。

如何使用新韌體
  • 新韌體的使用與老韌體類似,這裡僅列出有差異的地方
    • 原始程式碼
    • 示例程式
      如果已經按照說明安裝makeblock驅動庫完畢,那麼打開arduino之後,你應該能看到Example-> MakeBlockDrive這個目錄,在這個目錄的Me_EncoderDriver_New這個目錄中就能看到4個簡單的示例程式,把任意程式燒錄進你的BaseBoard/Orion/UNO Shield主機板中即可進對馬達以及驅動板進行測試。你也可以仿照示例程式,編輯自己的應用。
      示例程式中,在創建物件時有這個語句:
      這段代碼的 0x09即是驅動板的I2C位址,如果你沒有使用工具對I2C位址進行修改,那麼默認出廠的I2C位址一定是0x09。


怎麼升級您的韌體
  升級韌體需要使用到USB轉串口工具,由於升級過程需要對模組進行重定操作,所以選購串口模組時,請一定注意選用有RESET管腳的串口工具。
  根據模組的絲印標識,以及您串口工具的標識把驅動模組與串口工具連接在一起。有5根線需要連接,TXD, RXD, 5V, GND, RESET. 其中TXD和RXD與串口工具的TXD和RXD可能需要交叉連接。
下圖是連線後的示意圖,

然後使用arduino IDE打開 EncodeDriver-New\slave\slave.ino 檔,選擇arduino UNO以及正確的COM口即可按照通用arduino UNO的燒錄方式更新韌體。

常見問題
1) 什麼是減速比?
  減速比,即減速裝置的傳動比,是傳動比的一種,是指減速機構中暫態輸入速度與輸出速度的比值。是減速馬達中很重要的一個參數,都會標示在馬達的標籤上。例如我們的編碼馬達就有標示 Gear Ratio 1:46, 這裡是進行了取整處理。
2) 什麼是碼盤解析度
  碼盤解析度是編碼馬達中一個很重要的參數,用來表示碼盤在轉動一圈中所能檢測到的精度。我們的磁編碼馬達的碼盤解析度是12,光編碼馬達的碼盤解析度是8,因為老韌體是針對磁編碼馬達寫的,而霍爾感測器的一對磁極組合起來可以識別 4 個相位。所以設置碼盤解析度時,設置的值是真實碼盤解析度的4倍。
3) Makeblock編碼馬達驅動的速度參數是什麼
  我們的驅動使用的速度參數是RPM,rpm 是round per minute (revolution per minute) 的意思,即每分鐘馬達轉動的圈數。

故障排查
  • 燒錄程式正常,連線正常,但是馬達無法轉動
  可能是主機板的電源撥碼開關沒有打開,或者直流電源沒有接入6-12V的直流插座。可以通過觀察編碼馬達驅動板上的LED是否被點亮來進行排查。

  • 燒錄程式後,馬達轉速或者位置移動異常
  可能是驅動板的碼盤解析度或者減速比設置異常

  • 馬達在轉動是有明顯抖動
  需要重新設置PID參數,以達到較好的調整效果。
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

QQ|Archiver|手機版|小黑屋|圓創力科技有限公司 IOP Robotic Technology Co.,Ltd Tel: 07-3924582   

GMT+8, 2018-11-17 10:59 , Processed in 0.038817 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表