***
## 函數目錄
[TOC]
***
python有兩種控制器方式可與VSR連接和編程,分別為Mbus-S以及Mbus-R。兩種控制器分別功能和特點如下:
>Mbus-S與Mbus-R的區別既是:Mbus-R具有兩個機械臂的標準虛擬接口,可以直接操作控制機械臂,而Mbus-S則有8個自定義的虛擬電機。
***
## 初始化函數
**圖形模塊**:
Mbus-S初始化
>
Mbus-R初始化
>
**功能**:將控制器初始化為Mbus-S或Mbus-R控制器。
**說明**:`import ZtModTcp`庫文件包含,必須添加. `mod_client=ZtModTcp(1,502,0) `建立名為`mod_cloient`的`ZtModTcp()`實例。
`ZtModTcp(id, port=502, type = 0) `
參數:id連接編號;Port 端口號,默認端口502;type控制器類型,0為Mbus-S型,1為Mbus-R型,默認Mbus-S型。
**Mbus-S控制器**
```
import ZtModTcp
mod_client=ZtModTcp(1,502,0)
```
**Mbus-R控制器**
```
import ZtModTcp
mod_client=ZtModTcp(1,502,1)
```
***
## IO輸出操作(Mbus-S,Mbus-R)
**圖形模塊**:
>
**功能**:控制虛擬IO口輸出高/低電平。
**說明**:`digital_VSR_Write(pin, val)`pin: 引腳編號0-31;val: 寫入值 0或1。
**示例**:
```
mod_client.digital_VSR_Write(0,0)
```
***
## IO輸入引腳讀取(Mbus-S,Mbus-R)
**圖形模塊**:
>
**功能**:讀取虛擬IO口輸入電平。
**說明**:`digital_VSR_Read(pin, val)`pin: 引腳編號0-31。
**示例**:
```
mod_client.digital_VSR_Read(0,0)
```
***
## 軟IO中斷操作(Mbus-S,Mbus-R)
### 功能解釋
**圖形模塊**:
定義中斷回調函數
>
配置軟中斷并開啟
>
關閉軟中斷
>
**功能**:該組操作函數為:(1)開啟某IO引腳為輸入狀態并檢測中斷;(2)、當該IO引腳發生中斷自動執行某函數;(3)、關閉某IO引腳中斷功能。
**開啟IO軟中斷**:
`digital_VSR_AttachInterrupt(pin,func,mode)`設置軟中斷Pin:中斷管腳0-31;func:中斷回調函數;mode:中斷模式mod_client.RISING上升沿mod_client.FALLIN下降沿mod_client.CHANGE 改變。
**關閉IO軟件中斷**:
`digital_VSR_InterruptDisable(pin)`關閉引腳軟中斷。pin:引腳編號0-31。
### 示例
>
***
```
#定義VSR_AttachPinInterrupt_fun_0函數,執行中斷任務
def VSR_AttachPinInterrupt_fun_0():
# 觸發中斷后1管腳輸出高電平
mod_client.digital_VSR_Write(1,1)
#開啟IO引腳0軟中斷,上升沿觸發,調用VSR_AttachPinInterrupt_fun_0()函數
mod_client.digital_VSR_AttachInterrupt (0,VSR_AttachPinInterrupt_fun_0,mod_client.RISING)
```
```
#關閉0管腳軟中斷
mod_client.digital_VSR_InterruptDisable(0)
```
***
## 模擬量輸出控制(Mbus-S,Mbus-R)
**圖形模塊**:
>
**功能**:控制單片機寄存器模擬量輸出至虛擬模型,如操作速度、大小等變量控制。
**說明**:`Float32_Write(pin,val)`向虛擬模擬量輸出口。pin:模擬量引腳,0-7;val:模擬量值。
```
mod_client.Float32_Write(0,0)
```
***
## 模擬量輸入讀取(Mbus-S,Mbus-R)
**圖形模塊**:
>
**功能**:讀取虛擬世界的模擬量反饋,如旋鈕開關,坐標數據等;
**說明**:`Float32_Read(pin)`讀取虛擬模擬量。pin:模擬量引腳0-7;返回模擬量值。
```
mod_client.Float32_Read(0)
```
***
## 虛擬伺服電機速度控制(Mbus-S)
**圖形模塊**:
>
**功能**:設置某M電機的轉動速度值為當前值,0~100;
**說明**:`Set_ServoSpeed(motor,peed)`設置電機速度。motor:伺服電機編號,0-7;speed:給定轉速。
```
mod_client.Set_ServoSpeed(0,0)
```
***
## 虛擬伺服電機位置控制(Mbus-S)
**圖形模塊**:
>
**功能**:設置某M電機要達到的執行位置,輸入值為浮點數float32;
**說明**:`Set_ServoPos(motor,pos)`設置電機位置。motor:伺服電機編號,0-7;pos:給定位置坐標。
```
mod_client.Set_ServoPos(0,0)
```
***
## 讀取虛擬電機位置值(Mbus-S)
**圖形模塊**:
>
**功能**:讀取某M電機當前的位置坐標值;
**說明**:`Get_ServoPos(motor)`讀取電機坐標。motor:伺服電機編號,0-7;返回電機位置坐標。
```
mod_client.Get_ServoPos(0)
```
***
## 等待電機執行完成上一個動作(Mbus-S)
**圖形模塊**:
>
**功能**:阻塞線程,等待該M電機執行并達到目標位置pos點。
**說明**:`WaitFinish_ServoPos(motor)`等待電機運行結束。motor:伺服電機編號0-7。
```
mod_client.WaitFinish_ServoPos(0);
```
***
:-: 分界線,以下為工業機器人操作指令,對Mbus-R有效
***
## 設置四軸碼垛機器人運行速度(Mbus-R)
**圖形模塊**:
>
**功能**:設置四軸碼垛類型機器人的運行速度值。
**說明**:`Set_R4Speed(speed)`speed:運行速度。
```
mod_client.Set_R4Speed(0)
```
***
## 四軸碼垛機器人單軸動作(Mbus-R)
**圖形模塊**:
>
**功能**:設置四軸碼垛機器人某一個關節軸運行到某一點動作;
**說明**:`Set_R4SerialPos(motor, pos)`motor:軸編號,0-3;pos:運動位置。
```
Set_R4SerialPos(0, 0)
```
***
## 四軸碼垛機器人本體動作(Mbus-R)
**圖形模塊**:
>
**功能**:設置四軸碼垛機器人四個軸聯動運行到某一個姿態點;
**說明**:`Set_R4Pos(pos1, pos2, pos3, pos4)`pos1, pos2, pos3, pos4四個軸的運動位置。
```
Set_R4Pos(pos1, pos2, pos3, pos4)
```
***
## 獲取四軸碼垛機器人某軸的位置值(Mbus-R)
**圖形模塊**:
>
**功能**:獲取該機器人某一個軸的位置角度值;
**說明**:`Get_R4Pos(motor)`返回軸位置角度值;motor:軸編號0-3。
```
mod_client.Get_R4Pos(0)
```
***
## 等待四軸碼垛機器人上一個動作執行完畢(Mbus-R)
**圖形模塊**:
>
**功能**:等待該動作完全執行完畢,才進行下面的代碼運行(中斷除外);
**說明**:`WaitFinish_R4()`
```
mod_client.WaitFinish_R4()
```
***
## 設置Scara機器人運行速度(Mbus-R)
**圖形模塊**:
>
**功能**:設置Scara類型機器人的運行速度值;
**說明**:`Set_ScaraSpeed(speed)`speed:運行速度。
```
mod_client.Set_ScaraSpeed(0)
```
***
## Scara機器人單軸動作(Mbus-R)
**圖形模塊**:
>
**功能**:設置Scara機器人某一個關節軸運行到某一點動作。
**說明**:`Set_ScaraSerialPos(motor, pos)`motor:軸編號0-3;pos:運動位置。
```
mod_client.Get_ScaraPos(0)
```
***
## Scara機器人整體動作(Mbus-R)
**圖形模塊**:
>
**功能**:設置Scara機器人四個軸聯動運行到某一個姿態點。
**說明**:`Set_ScaraPos(pos1, pos2, pos3, pos4)`pos1、 pos2、 pos3、 pos4四個軸的運動位置。
```
Set_ScaraPos(pos1, pos2, pos3, pos4)
```
***
## 獲取Scara機器人某軸的位置值(Mbus-R)
**圖形模塊**:
>
**功能**:獲取該機器人某一個軸的位置角度值。
**說明**:`Get_ScaraPos(motor)`返回軸位置角度值;motor:軸編號,0-3。
```
mod_client.Get_ScaraPos(0)
```
***
## 等待Scara機器人上一個動作執行完畢(Mbus-R)
**圖形模塊**:
>
**功能**:等待該動作完全執行完畢,才進行下面的代碼運行(中斷除外)。
**說明**:`WaitFinish_Scara()`
```
mod_client.WaitFinish_Scara()
```
- VS-Robot簡介
- 機器人等級與課程
- 我的機器人世界
- 快速上手與使用
- 控制與編程
- 多人協作與VR
- Py-Tech機器人編程
- 什么是Py-Tech
- Py-Tech編程語法
- 探索與發現
- VSR電子積木編程
- 認識VSR電子積木
- UNO控制器
- ESP32控制器
- 擴展Arduino-mega控制器
- 擴展接口板
- 人機交互配件
- Arduino-UNO編程與搭建
- Arduino-Mega編程與搭建
- ESP32物聯網與編程
- Python編程與二次開發
- 如何搭建Python編程
- VSR-Python編程語法
- VSR-Python與視覺
- VSR-KATA機器人
- 認識KATA機器人
- 編程與控制
- 創新與應用
- 科技工廠創作案例
- 讓你的工廠動起來
- 讓工廠更聽話
- 永不疲倦的機器人
- 會自己移動的小車
- 創作一個智能的科技工廠
- Arduino-uno編程與仿真
- VSR-UNO控制器
- UNO與Mixly
- Arduino-mega編程與仿真
- mega控制器
- mega與Mixly
- Python編程與控制
- python編程工具
- 基礎模塊
- 虛擬工廠模塊
- 物聯網模塊
- 環境搭建
- ESP32編程與控制
- ESP32與VSR
- ESP32-S物聯網基礎控制器
- ESP32-R機器人物聯網控制
- 帶上VR眼鏡進入我的機器人世界