我們使用Mixly圖形化編程來對 Ardyino-UNO編程開發。
## 函數目錄
[TOC]
***
## Mixly For VSR
Mixly For VSR是由VSR科技工廠和北京師范大學博士團隊合作可以發的強大的圖形化編程軟件,通過圖形化模塊的方式像搭積木一樣的搭出ArduinoIDE程序代碼。

## 初始化函數
**功能**:將控制器初始化為UNO-S或UNO-R控制器
**說明**:庫文件包含,必須添加. 初始化函數,`_VsrCtrl.Init();`
**UNO-S控制器**
**mixly編程**:
>
**arduino-IDE編程函數**:
>```
>#include "ZtVsr.h"
>void setup(){
>_VsrCtrl.Init(DEVICE_TYPE_S);
>}
>void loop(){
>}
>```
**UNO-R控制器**
**mixly編程**:
>
**arduino-IDE編程函數**:
>```
>#include "ZtVsr.h"
>void setup(){
>_VsrCtrl.Init(DEVICE_TYPE_R);
>}
>void loop(){
>}
>```
## IO輸出引腳操作(UNO-S,UNO-R)
**功能**:控制單片機的IO口為輸出模式,并置位為高/低電平;
**mixly編程**
>
**arduino-IDE編程函數**:
>```
>digital_VSR_Write(uint8_t pin,uint8_t val);
>```
**說明**:參數pin為引腳號碼,參數val為0/1高低電平信號;
***
## IO輸入引腳讀取操作(UNO-S,UNO-R)
**功能**:將單片機IO置為輸入應用,并讀取其輸入狀態為高/低;
**mixly編程**:
>
**arduino-IDE編程函數**:
>```
>digital_VSR_Read(uint8_t pin);
>```
**說明**:輸入為引腳號,返回值為0低電平,1高電平;
***
## 軟IO中斷操作(UNO-S,UNO-R)
### 功能解釋
**功能**:該組操作函數為(1)開啟某IO引腳為輸入狀態并檢測中斷,(2)、當該IO引腳發生中斷自動執行某函數,(3)、打開/關閉某IO引腳中斷功能;
**mixly編程**:
>
**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圖形化程序**:
>
**翻譯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編程**
>
**arduino-IDE編程函數**
>```
>Float32_Write(0,50);
>```
**說明**:設置通道寄存器float32-0輸出值為50;
***
## 模擬量輸入讀取(UNO-S,UNO-R)
**功能**:讀取虛擬世界的模擬量反饋,如旋鈕開關,坐標數據等;
**mixly編程**
>
**arduino-IDE編程函數**
>```
>Float32_Read(0);
>```
**說明**:讀取通道float32-0的寄存器的值,并返回值;
***
## 字符串文本輸出(UNO-S,UNO-R)
**功能:**輸出字符串文本至虛擬工廠;
**mixly編程**
>
**arduino-IDE編程函數**
>```
>Text_Write("hello");
>```
**說明**:輸出hello文本至虛擬工廠;
***
## 虛擬伺服電機控制(UNO-S)
**功能**:設置某M電機的轉動速度值為當前值,0~100;
**mixly編程**
>
**arduino-IDE編程函數**
>```
>Set_ServoSpeed(0,0);
>```
**說明**:輸入電機編號0~7,輸入電機速度為0~100;
***
## 虛擬伺服電機位置控制(UNO-S)
**功能**:設置某M電機要達到的執行位置,輸入值為浮點數float32;
**mixly編程**
>
**arduino-IDE編程函數**
>```
>Set\_ServoPos(0,0);
>```
**說明**:輸入電機編號0~7,電機要執行達到的位置值pos(float32);
***
## 讀取虛擬電機位置值(UNO-S)
**功能**:讀取某M電機當前的位置坐標值;
**mixly編程**
>
**arduino-IDE編程函數**
>```
>Get_ServoPos(0);
>```
**說明**:輸入電機編號0~7,返回該電機目前虛擬位置pos的值(float32);
***
## 等待電機執行完成上一個動作(UNO-S)
**功能**:阻塞線程,等待該M電機執行并達到目標位置pos點;
**mixly編程**:
>
**arduino-IDE編程函數**:
>```
>WaitFinish_ServoPos(0);
>```
**說明**:等待電機0執行到位置點才會執行接下來的代碼動作;
***
:-: 分界線,以下為工業機器人操作指令,對UNO-R有效
***
## 設置四軸碼垛機器人運行速度(UNO-R)
**功能**:設置四軸碼垛類型機器人的運行速度值;
**mixly編程**:
>
**arduino-IDE編程函數**:
>```
>Set_R4Speed(0);
>```
**說明**:設置工業機器人的速度值0~100之間;
***
## 四軸碼垛機器人單軸動作(UNO-R)
**功能**:設置四軸碼垛機器人某一個關節軸運行到某一點動作;
**mixly編程**:
>
**arduino-IDE編程函數**:
>```
>Set_R4Pos(0,0);
>```
**說明**:輸入1為第幾軸即0~3,輸入2為位置坐標值float32;
***
## 四軸碼垛機器人本體動作(UNO-R)
**功能**:設置四軸碼垛機器人四個軸聯動運行到某一個姿態點;
**mixly編程**:
>
**arduino-IDE編程函數**:
>```
>Set_R4Pos(0,0,0,0);
>```
**說明**:輸入值為1軸,2軸,3軸,4軸各個軸要達到的目標點;
***
## 獲取四軸碼垛機器人某軸的位置值(UNO-R)
**功能**:獲取該機器人某一個軸的位置角度值;
**mixly編程**:
>
**arduino-IDE編程函數**:
>```
>Get_R4Pos(0);
>```
**說明**:返回值為該關節的角度值;
***
## 等待四軸碼垛機器人上一個動作執行完畢(UNO-R)
**功能**:等待該動作完全執行完畢,才進行下面的代碼運行(中斷除外);
**mixly編程**:
>
**arduino-IDE編程函數**:
>```
>WaitFinish_R4()
>```
**說明**:阻塞線程等待四軸碼垛機器人上一個動作執行完畢。
***
## 設置Scara機器人運行速度(UNO-R)
**功能**:設置Scara類型機器人的運行速度值;
**mixly編程**:
>
**arduino-IDE編程函數**:
>```
>Set_ScaraSpeed(0);
>```
**說明**:設置工業機器人的速度值0~100之間;
***
## Scara機器人單軸動作(UNO-R)
**功能**:設置Scara機器人某一個關節軸運行到某一點動作;
**mixly編程**:
>
**arduino-IDE編程函數**:
>```
>Set_ScaraPos(0,0);
>```
**說明**:輸入1為第幾軸即0~3,輸入2為位置坐標值float32;
***
## Scara機器人整體動作(UNO-R)
**功能**:設置Scara機器人四個軸聯動運行到某一個姿態點;
**mixly編程**:
>
**arduino-IDE編程函數**:
>```
>Set_ScaraPos(0,0,0,0);
>```
**說明**:輸入值為1軸,2軸,3軸,4軸各個軸要達到的目標點;
***
## 獲取Scara機器人某軸的位置值(UNO-R)
**功能**:獲取該機器人某一個軸的位置角度值;
**mixly編程**:
>
**arduino-IDE編程函數**:
>```
>Get_ScaraPos(0);
>```
**說明**:返回值為該關節的角度值;
***
## 等待Scara機器人上一個動作執行完畢(UNO-R)
**功能**:等待該動作完全執行完畢,才進行下面的代碼運行(中斷除外);
**mixly編程**:
>
**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眼鏡進入我的機器人世界