***
## 函数目录
[TOC]
***
python有两种控制器方式可与VSR连接和编程,分别为Mbus-S以及Mbus-R。两种控制器分别功能和特点如下:
>Mbus-S与Mbus-R的区别既是:Mbus-R具有两个机械臂的标准虚拟接口,可以直接操作控制机械臂,而Mbus-S则有8个自定义的虚拟电机。
***
## 初始化函数
**图形模块**:
Mbus-S初始化
>![](https://img.kancloud.cn/90/5d/905db7adf05ce9edb935939c04e5cb95_317x39.png)
Mbus-R初始化
>![](https://img.kancloud.cn/8f/75/8f75321a90e3503eb7003cba9d84b0f3_318x39.png)
**功能**:将控制器初始化为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)
**图形模块**:
>![](https://img.kancloud.cn/08/c3/08c32d3c0092fdd3b49e2bece4c72541_282x39.png)
**功能**:控制虚拟IO口输出高/低电平。
**说明**:`digital_VSR_Write(pin, val)`pin: 引脚编号0-31;val: 写入值 0或1。
**示例**:
```
mod_client.digital_VSR_Write(0,0)
```
***
## IO输入引脚读取(Mbus-S,Mbus-R)
**图形模块**:
>![](https://img.kancloud.cn/a6/74/a67460222c2ac5e9bfdb870c807ad41a_174x36.png)
**功能**:读取虚拟IO口输入电平。
**说明**:`digital_VSR_Read(pin, val)`pin: 引脚编号0-31。
**示例**:
```
mod_client.digital_VSR_Read(0,0)
```
***
## 软IO中断操作(Mbus-S,Mbus-R)
### 功能解释
**图形模块**:
定义中断回调函数
>![](https://img.kancloud.cn/68/ac/68ac9925b08688320f59a75b9608398d_220x61.png)
配置软中断并开启
>![](https://img.kancloud.cn/83/c7/83c7e1506aea56b8f4b5ed47b0246f6f_353x39.png)
关闭软中断
>![](https://img.kancloud.cn/64/3b/643bb6f3a2a30a7e6b586f8e9a033eca_258x39.png)
**功能**:该组操作函数为:(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。
### 示例
>![](https://img.kancloud.cn/a1/c3/a1c3462f444357a1bf7e2c19383b3f00_458x279.png)
***
```
#定义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)
**图形模块**:
>![](https://img.kancloud.cn/7a/f3/7af38ca97886b4e290ed6114d0df0cf6_262x39.png)
**功能**:控制单片机寄存器模拟量输出至虚拟模型,如操作速度、大小等变量控制。
**说明**:`Float32_Write(pin,val)`向虚拟模拟量输出口。pin:模拟量引脚,0-7;val:模拟量值。
```
mod_client.Float32_Write(0,0)
```
***
## 模拟量输入读取(Mbus-S,Mbus-R)
**图形模块**:
>![](https://img.kancloud.cn/ae/af/aeaf4b83f63479cbc9e68fd4e52b24e3_162x36.png)
**功能**:读取虚拟世界的模拟量反馈,如旋钮开关,坐标数据等;
**说明**:`Float32_Read(pin)`读取虚拟模拟量。pin:模拟量引脚0-7;返回模拟量值。
```
mod_client.Float32_Read(0)
```
***
## 虚拟伺服电机速度控制(Mbus-S)
**图形模块**:
>![](https://img.kancloud.cn/b6/f4/b6f4a3925ea0ae792da175f49a8752e6_302x39.png)
**功能**:设置某M电机的转动速度值为当前值,0~100;
**说明**:`Set_ServoSpeed(motor,peed)`设置电机速度。motor:伺服电机编号,0-7;speed:给定转速。
```
mod_client.Set_ServoSpeed(0,0)
```
***
## 虚拟伺服电机位置控制(Mbus-S)
**图形模块**:
>![](https://img.kancloud.cn/12/15/1215b708af94fa2ed7a4c22af37897d8_317x39.png)
**功能**:设置某M电机要达到的执行位置,输入值为浮点数float32;
**说明**:`Set_ServoPos(motor,pos)`设置电机位置。motor:伺服电机编号,0-7;pos:给定位置坐标。
```
mod_client.Set_ServoPos(0,0)
```
***
## 读取虚拟电机位置值(Mbus-S)
**图形模块**:
>![](https://img.kancloud.cn/10/57/10572a14f1202d2b20878bfc04f690a9_230x25.png)
**功能**:读取某M电机当前的位置坐标值;
**说明**:`Get_ServoPos(motor)`读取电机坐标。motor:伺服电机编号,0-7;返回电机位置坐标。
```
mod_client.Get_ServoPos(0)
```
***
## 等待电机执行完成上一个动作(Mbus-S)
**图形模块**:
>![](https://img.kancloud.cn/ab/63/ab633484e79751ef1bb6842057ef9370_252x28.png)
**功能**:阻塞线程,等待该M电机执行并达到目标位置pos点。
**说明**:`WaitFinish_ServoPos(motor)`等待电机运行结束。motor:伺服电机编号0-7。
```
mod_client.WaitFinish_ServoPos(0);
```
***
:-: 分界线,以下为工业机器人操作指令,对Mbus-R有效
***
## 设置四轴码垛机器人运行速度(Mbus-R)
**图形模块**:
>![](https://img.kancloud.cn/4e/f2/4ef2dcbf60a3bec219474a7e08938699_294x39.png)
**功能**:设置四轴码垛类型机器人的运行速度值。
**说明**:`Set_R4Speed(speed)`speed:运行速度。
```
mod_client.Set_R4Speed(0)
```
***
## 四轴码垛机器人单轴动作(Mbus-R)
**图形模块**:
>![](https://img.kancloud.cn/72/97/72971d38c0b7ea1ea60ce996357197c6_310x39.png)
**功能**:设置四轴码垛机器人某一个关节轴运行到某一点动作;
**说明**:`Set_R4SerialPos(motor, pos)`motor:轴编号,0-3;pos:运动位置。
```
Set_R4SerialPos(0, 0)
```
***
## 四轴码垛机器人本体动作(Mbus-R)
**图形模块**:
>![](https://img.kancloud.cn/bf/67/bf67c7c4a903877ef18b9e8d4cc9853e_163x158.png)
**功能**:设置四轴码垛机器人四个轴联动运行到某一个姿态点;
**说明**:`Set_R4Pos(pos1, pos2, pos3, pos4)`pos1, pos2, pos3, pos4四个轴的运动位置。
```
Set_R4Pos(pos1, pos2, pos3, pos4)
```
***
## 获取四轴码垛机器人某轴的位置值(Mbus-R)
**图形模块**:
>![](https://img.kancloud.cn/ae/f9/aef9e9dc9c9bf74d526f5855b85961be_311x25.png)
**功能**:获取该机器人某一个轴的位置角度值;
**说明**:`Get_R4Pos(motor)`返回轴位置角度值;motor:轴编号0-3。
```
mod_client.Get_R4Pos(0)
```
***
## 等待四轴码垛机器人上一个动作执行完毕(Mbus-R)
**图形模块**:
>![](https://img.kancloud.cn/41/02/41023f551d6bb192b62dbe31ce0218ad_229x28.png)
**功能**:等待该动作完全执行完毕,才进行下面的代码运行(中断除外);
**说明**:`WaitFinish_R4()`
```
mod_client.WaitFinish_R4()
```
***
## 设置Scara机器人运行速度(Mbus-R)
**图形模块**:
>![](https://img.kancloud.cn/e2/ea/e2ea8b86d9d8b8a703399caa3b78573d_314x39.png)
**功能**:设置Scara类型机器人的运行速度值;
**说明**:`Set_ScaraSpeed(speed)`speed:运行速度。
```
mod_client.Set_ScaraSpeed(0)
```
***
## Scara机器人单轴动作(Mbus-R)
**图形模块**:
>![](https://img.kancloud.cn/44/05/44059c01a9555ec046dd86745d4a66eb_329x39.png)
**功能**:设置Scara机器人某一个关节轴运行到某一点动作。
**说明**:`Set_ScaraSerialPos(motor, pos)`motor:轴编号0-3;pos:运动位置。
```
mod_client.Get_ScaraPos(0)
```
***
## Scara机器人整体动作(Mbus-R)
**图形模块**:
>![](https://img.kancloud.cn/96/22/962284d7b20ce6e28c480db20a9d1c95_184x158.png)
**功能**:设置Scara机器人四个轴联动运行到某一个姿态点。
**说明**:`Set_ScaraPos(pos1, pos2, pos3, pos4)`pos1、 pos2、 pos3、 pos4四个轴的运动位置。
```
Set_ScaraPos(pos1, pos2, pos3, pos4)
```
***
## 获取Scara机器人某轴的位置值(Mbus-R)
**图形模块**:
>![](https://img.kancloud.cn/40/23/4023d5548ad343933e634c90bb631364_331x25.png)
**功能**:获取该机器人某一个轴的位置角度值。
**说明**:`Get_ScaraPos(motor)`返回轴位置角度值;motor:轴编号,0-3。
```
mod_client.Get_ScaraPos(0)
```
***
## 等待Scara机器人上一个动作执行完毕(Mbus-R)
**图形模块**:
>![](https://img.kancloud.cn/01/1e/011e0a57c7ef09e1afadce55e57b88c5_249x28.png)
**功能**:等待该动作完全执行完毕,才进行下面的代码运行(中断除外)。
**说明**:`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眼镜进入我的机器人世界