首頁>Club>
8
回覆列表
  • 1 # 蠻夷豈敢犯邊

    ASCII格式協議

    如何傳送指令

    透過 USB :Windows : 使用Zadig將ODrive的驅動程式設定為usbser。隨後將使該裝置識別為COM埠。您可以使用PuTTY手動傳送指令或使用您喜歡的程式語言開啟COM埠自己編寫程式碼傳送指令。Linux/macOS : 在命令終端中輸入ls /dev/tty*Enter來列出所有串列埠。在Linux下ODrive顯示為/dev/ttyACM0,在macOS下顯示為/dev/tty.usbmodem[...]。找到了ODrive顯示的串列埠名稱後,您可以使用screen/dev/ttyACM0(請自行替換為您的串列埠名稱) Enter來手動傳送指令或者使用您喜歡的其它串列埠工具來發送指令。

    透過 UART : 將ODrive的TX(GPIO1)連線到主機的RX。將ODrive的RX(GPIO2)連線到 主機的TX。ODrive的邏輯電平為3.3V。Arduino : 您可以呼叫我們的庫和ODrive通訊,該庫位於ODrive原始碼根目錄/Arduino/ODriveArduino下。Windows/Linux/macOS : 您可以使用USB轉串列埠模組(如CP2102)連線ODrive進行通訊。

    指令格式

    使用ASCII 格式協議方便直接閱讀,它的格式如下:

    command *42; comment [new line character] 11

    *42表示相容GCode的校驗和,它可以被省略。當且僅當提供校驗和時,裝置才會在響應中包括校驗和(如果有)。如果提供了校驗和,但無效,則忽略該行。校驗和計算為星號(*)之前所有字元的按位異或。

    註釋也是相容GCode。

    一旦遇到換行符,將開始解釋該指令。

    指令格式

    電機軌跡指令

    t motor destination 11

    t表示軌跡控制模式

    motor表示電機編號,0或1

    destination目標位置,值表示編碼器的計數

    例如:t 0 -200對於一般繞軸運動,推薦使用這種命令。以上命令傳送後會觸發對應電機的內部看門狗餵狗動作。

    電機位置指令

    對於一次傳送一個設定位置的應用,請使用q命令。如果您的應用是實時控制位置,您應該不斷的傳送處於軌跡上的各個位置,來實現自定義的軌跡跟蹤,請使用p命令。

    q motor position velocity_lim current_lim 11

    q表示位置控制模式

    motor表示電機編號,0 或 1

    position目標位置,值表示編碼器的計數

    velocity_lim轉速限制,單位為turns /s (可選的)

    current_lim電流限制,單位為A(可選的)例如: q 0 -200 10 10

    p motor position velocity_ff current_ff 11

    p表示位置控制模式

    motor表示電機編號, 0或1

    position目標位置,值表示編碼器的計數

    velocity_ff速度前饋,單位為turns /s(可選的)

    current_ff電流前饋,單位為A(可選的)

    例如: p 0 -200 0 0

    請注意,如果您不瞭解前饋和它的作用,只需將其忽略即可。以上命令傳送後會觸發對應電機的內部看門狗餵狗動作。

    電機電流指令

    c motor current 11

    c表示電流控制模式

    motor表示電機編號,0或1

    current目標電流,單位為A

    以上命令傳送後會觸發對應電機的內部看門狗餵狗動作。

    電機電流指令

    f motor response: pos vel 12341234

    f表示請求返回資訊

    motor 表示電機編號,0或1

    pos當前編碼器計數值(float)

    vel當前轉速,單位為turns/s (float)

    更新電機看門狗

    u motor 11

    u表示更新/餵狗

    motor表示電機編號,0或1

    此命令僅僅更新電機的看門狗定時器,不影響其它任何指令。

    引數讀/寫

    並非所有引數都可以透過ASCII協議讀寫,但支援所有float和integer型別的引數。

    讀:

    r [property] 11

    property屬性名稱,如ODrive Tool中所示

    response: 返回所請求引數值的文字表示

    例如: r vbus_voltage => response: 24.087744

    寫:

    w [property] [value] 11

    property屬性名稱,如ODrive Tool中所示

    value想要設定的值

    例如:w axis0.controller.pos_setpoint -123.456

    系統指令:

    ss-儲存配置

    se-擦除配置

    sr-重啟。

  • 中秋節和大豐收的關聯?
  • 當代社會學習傳統文化的意義是什麼?