我们使用Mixly图形化编程来对 Ardyino-UNO编程开发。
## 函数目录
[TOC]
***
## Mixly For VSR
Mixly For VSR是由VSR科技工厂和北京师范大学博士团队合作可以发的强大的图形化编程软件,通过图形化模块的方式像搭积木一样的搭出ArduinoIDE程序代码。
![](https://img.kancloud.cn/ba/13/ba13739023384089e38b605ccd127e39_908x702.png)
## 初始化函数
**功能**:将控制器初始化为UNO-S或UNO-R控制器
**说明**:库文件包含,必须添加. 初始化函数,`_VsrCtrl.Init();`
**UNO-S控制器**
**mixly编程**:
>![](https://img.kancloud.cn/fe/fb/fefb456eb7318953334aed69db4864b3_240x70.png)
**arduino-IDE编程函数**:
>```
>#include "ZtVsr.h"
>void setup(){
>_VsrCtrl.Init(DEVICE_TYPE_S);
>}
>void loop(){
>}
>```
**UNO-R控制器**
**mixly编程**:
>![](https://img.kancloud.cn/c3/cb/c3cb8dff4c0c63fa511fb4b7e80bda93_363x102.png)
**arduino-IDE编程函数**:
>```
>#include "ZtVsr.h"
>void setup(){
>_VsrCtrl.Init(DEVICE_TYPE_R);
>}
>void loop(){
>}
>```
## IO输出引脚操作(UNO-S,UNO-R)
**功能**:控制单片机的IO口为输出模式,并置位为高/低电平;
**mixly编程**
>![](https://img.kancloud.cn/71/6c/716c9bb7b55099452cb9d1fc1684f89f_321x45.png)
**arduino-IDE编程函数**:
>```
>digital_VSR_Write(uint8_t pin,uint8_t val);
>```
**说明**:参数pin为引脚号码,参数val为0/1高低电平信号;
***
## IO输入引脚读取操作(UNO-S,UNO-R)
**功能**:将单片机IO置为输入应用,并读取其输入状态为高/低;
**mixly编程**:
>![](https://img.kancloud.cn/e9/d5/e9d5795e741d5025cfc4a716803d0690_218x46.png)
**arduino-IDE编程函数**:
>```
>digital_VSR_Read(uint8_t pin);
>```
**说明**:输入为引脚号,返回值为0低电平,1高电平;
***
## 软IO中断操作(UNO-S,UNO-R)
### 功能解释
**功能**:该组操作函数为(1)开启某IO引脚为输入状态并检测中断,(2)、当该IO引脚发生中断自动执行某函数,(3)、打开/关闭某IO引脚中断功能;
**mixly编程**:
>![](https://img.kancloud.cn/6f/11/6f11abf9d0cb290b6f9eb7d414fbcedb_480x334.png)
**arduino-IDE编程函数**:
>```
>//开启软中断
>digital_VSR_InterruptEnable(uint8_t pin); //开启pin引脚中断;
>//配置软中断函数
>//参数pin输入引脚号,VSR_AttachPinInterrupt_fun_0回调函数指针,
>//软中断触发方式参数CHANGE 突变触发、FALLING 下降沿触发,RISING上升沿触发
>digital_VSR_AttachInterrupt( uint8_t pin ,VSR_AttachPinInterrupt_fun_0,RISING);;
>//当中断响应时候,调用中断回调函数:
>void VSR_AttachPinInterrupt_fun_0() {
>//中断执行的子函数;
>};
>//关闭中断
>digital_VSR_InterruptDisable(0);//关闭该引脚中断响应;
>```
### 代码示例
**mixly图形化程序**:
>![](https://img.kancloud.cn/de/9d/de9d9895fd2b7738224dad6eed683c3f_404x184.png)
**翻译IDE函数**:
>```
>//定义中断回调函数
>void VSR_AttachPinInterrupt_fun_0() {
> Float32_Write(0,0);
>}
>void setup(){
> _VsrCtrl.Init(DEVICE_TYPE_R);
> pinMode(0, INPUT);
> digital_VSR_InterruptEnable(0);
> digital_VSR_AttachInterrupt(0,VSR_AttachPinInterrupt_fun_0,RISING);
>}
>```
**说明**:设置引脚0为中断响应,设置为上升沿中断,当发生引脚0上升沿则执行: Float32_Write(0,0)
函数
***
## 模拟量输出控制(UNO-S,UNO-R)
**功能**:控制单片机寄存器模拟量输出至虚拟模型,如操作速度、大小等变量控制;
**mixly编程**
>![](https://img.kancloud.cn/34/32/3432d071ad85a4bf90a9aff231ce1bec_338x47.png)
**arduino-IDE编程函数**
>```
>Float32_Write(0,50);
>```
**说明**:设置通道寄存器float32-0输出值为50;
***
## 模拟量输入读取(UNO-S,UNO-R)
**功能**:读取虚拟世界的模拟量反馈,如旋钮开关,坐标数据等;
**mixly编程**
>![](https://img.kancloud.cn/49/65/49650f3e0b264c48bbd2a2f6d633a968_237x44.png)
**arduino-IDE编程函数**
>```
>Float32_Read(0);
>```
**说明**:读取通道float32-0的寄存器的值,并返回值;
***
## 字符串文本输出(UNO-S,UNO-R)
**功能:**输出字符串文本至虚拟工厂;
**mixly编程**
>![](https://img.kancloud.cn/a5/67/a567bf88702f8b5245029d45d2e44e5c_290x44.png)
**arduino-IDE编程函数**
>```
>Text_Write("hello");
>```
**说明**:输出hello文本至虚拟工厂;
***
## 虚拟伺服电机控制(UNO-S)
**功能**:设置某M电机的转动速度值为当前值,0~100;
**mixly编程**
>![](https://img.kancloud.cn/1a/61/1a6165f9ff9b8649fb918add9fe2f22f_311x51.png)
**arduino-IDE编程函数**
>```
>Set_ServoSpeed(0,0);
>```
**说明**:输入电机编号0~7,输入电机速度为0~100;
***
## 虚拟伺服电机位置控制(UNO-S)
**功能**:设置某M电机要达到的执行位置,输入值为浮点数float32;
**mixly编程**
>![](https://img.kancloud.cn/7f/5f/7f5f2674c944afc2f018db9a16f94314_322x45.png)
**arduino-IDE编程函数**
>```
>Set\_ServoPos(0,0);
>```
**说明**:输入电机编号0~7,电机要执行达到的位置值pos(float32);
***
## 读取虚拟电机位置值(UNO-S)
**功能**:读取某M电机当前的位置坐标值;
**mixly编程**
>![](https://img.kancloud.cn/71/0e/710eede4418f50e3abf6dc448cc13081_221x31.png)
**arduino-IDE编程函数**
>```
>Get_ServoPos(0);
>```
**说明**:输入电机编号0~7,返回该电机目前虚拟位置pos的值(float32);
***
## 等待电机执行完成上一个动作(UNO-S)
**功能**:阻塞线程,等待该M电机执行并达到目标位置pos点;
**mixly编程**:
>![](https://img.kancloud.cn/69/83/6983c0f6a11ed149d7f504cc619cc574_244x37.png)
**arduino-IDE编程函数**:
>```
>WaitFinish_ServoPos(0);
>```
**说明**:等待电机0执行到位置点才会执行接下来的代码动作;
***
:-: 分界线,以下为工业机器人操作指令,对UNO-R有效
***
## 设置四轴码垛机器人运行速度(UNO-R)
**功能**:设置四轴码垛类型机器人的运行速度值;
**mixly编程**:
>![](https://img.kancloud.cn/48/d7/48d763f97196451cdf97b45334222375_291x44.png)
**arduino-IDE编程函数**:
>```
>Set_R4Speed(0);
>```
**说明**:设置工业机器人的速度值0~100之间;
***
## 四轴码垛机器人单轴动作(UNO-R)
**功能**:设置四轴码垛机器人某一个关节轴运行到某一点动作;
**mixly编程**:
>![](https://img.kancloud.cn/c4/b5/c4b5ffeb4970920e20936f9d765d3745_378x45.png)
**arduino-IDE编程函数**:
>```
>Set_R4Pos(0,0);
>```
**说明**:输入1为第几轴即0~3,输入2为位置坐标值float32;
***
## 四轴码垛机器人本体动作(UNO-R)
**功能**:设置四轴码垛机器人四个轴联动运行到某一个姿态点;
**mixly编程**:
>![](https://img.kancloud.cn/61/63/6163decfa0b30528ac66b5eda05a1d0c_660x45.png)
**arduino-IDE编程函数**:
>```
>Set_R4Pos(0,0,0,0);
>```
**说明**:输入值为1轴,2轴,3轴,4轴各个轴要达到的目标点;
***
## 获取四轴码垛机器人某轴的位置值(UNO-R)
**功能**:获取该机器人某一个轴的位置角度值;
**mixly编程**:
>![](https://img.kancloud.cn/35/76/35760e7d35144f0f99342c2ca51b87e7_310x31.png)
**arduino-IDE编程函数**:
>```
>Get_R4Pos(0);
>```
**说明**:返回值为该关节的角度值;
***
## 等待四轴码垛机器人上一个动作执行完毕(UNO-R)
**功能**:等待该动作完全执行完毕,才进行下面的代码运行(中断除外);
**mixly编程**:
>![](https://img.kancloud.cn/3b/57/3b57ad67c769ff13e1d33d53e8caf0c5_227x35.png)
**arduino-IDE编程函数**:
>```
>WaitFinish_R4()
>```
**说明**:阻塞线程等待四轴码垛机器人上一个动作执行完毕。
***
## 设置Scara机器人运行速度(UNO-R)
**功能**:设置Scara类型机器人的运行速度值;
**mixly编程**:
>![](https://img.kancloud.cn/c6/43/c643972a0f4edeae0ec79113fabbd57c_352x46.png)
**arduino-IDE编程函数**:
>```
>Set_ScaraSpeed(0);
>```
**说明**:设置工业机器人的速度值0~100之间;
***
## Scara机器人单轴动作(UNO-R)
**功能**:设置Scara机器人某一个关节轴运行到某一点动作;
**mixly编程**:
>![](https://img.kancloud.cn/0f/28/0f28c8043720d038479c1ad3b82d7b18_441x47.png)
**arduino-IDE编程函数**:
>```
>Set_ScaraPos(0,0);
>```
**说明**:输入1为第几轴即0~3,输入2为位置坐标值float32;
***
## Scara机器人整体动作(UNO-R)
**功能**:设置Scara机器人四个轴联动运行到某一个姿态点;
**mixly编程**:
>![](https://img.kancloud.cn/f2/af/f2af91462b35092454cf6f38efd699b1_642x40.png)
**arduino-IDE编程函数**:
>```
>Set_ScaraPos(0,0,0,0);
>```
**说明**:输入值为1轴,2轴,3轴,4轴各个轴要达到的目标点;
***
## 获取Scara机器人某轴的位置值(UNO-R)
**功能**:获取该机器人某一个轴的位置角度值;
**mixly编程**:
>![](https://img.kancloud.cn/bc/42/bc4234b8327b31d47db86e7b079f3b35_370x35.png)
**arduino-IDE编程函数**:
>```
>Get_ScaraPos(0);
>```
**说明**:返回值为该关节的角度值;
***
## 等待Scara机器人上一个动作执行完毕(UNO-R)
**功能**:等待该动作完全执行完毕,才进行下面的代码运行(中断除外);
**mixly编程**:
>![](https://img.kancloud.cn/b0/7e/b07ebd7dbf972fd957c81d56775bfb9d_316x41.png)
**arduino-IDE编程函数**:
>```
>WaitFinish_Scara()
>```
**说明**:阻塞线程等待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眼镜进入我的机器人世界