ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 函数目录 [TOC] *** ## 初始化函数 **功能**:将控制器初始化为ESP32-S或ESP32-R控制器; **ESP32-S控制器:** **mixly编程**: >![](https://img.kancloud.cn/e6/ed/e6ed07f0e0c7c9887d543c5f6103781a_461x120.png) **arduino-IDE编程函数**: >``` >#include "ZtEsp32Vsr.h" >void setup(){` >_VsrCtrl.Init(DEVICE_TYPE_S); >} >void loop(){ >vTaskDelay(1);//延时1ms >} >``` **说明**:`#include "ZtEsp32Vsr.h"`库文件包含,必须添加; Arduino函数初始化,`_VsrCtrl.Init();`。 **ESP32-R控制器** **mixly编程**: >![](https://img.kancloud.cn/49/45/4945d73eab3b107ee140cc140bb3348c_451x119.png) **arduino-IDE编程函数**: >``` >#include "ZtEsp32Vsr.h" >void setup(){ >_VsrCtrl.Init(DEVICE_TYPE_R); >} >void loop(){ >vTaskDelay(1);//延时1ms >} >``` *** ## IO输出引脚操作(ESP32-S,ESP32-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输入引脚读取操作(ESP32-S,ESP32-R) **功能**:将单片机IO作为输入引脚,并读取其输入状态为高/低; **mixly编程**: >![](https://img.kancloud.cn/e9/d5/e9d5795e741d5025cfc4a716803d0690_218x46.png) **arduino-IDE编程函数**: >``` >digital_VSR_Read(uint8_t pin); >``` **说明**:输入为引脚号,返回值为0低电平,1高电平。 *** ## 软IO中断操作(ESP32-S,ESP32-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/b7/c9/b7c9563e0c9a151e58ce65ec5bb72751_395x182.png) **翻译IDE函数**: >``` >//定义中断回调函数 >#include "ZtEsp32Vsr.h" >void VSR_AttachPinInterrupt_fun_4() { > digital_VSR_Write(2,HIGH); >} >void setup(){ > _VsrCtrl.Init(DEVICE_TYPE_S); > pinMode(4, INPUT); > digital_VSR_InterruptEnable(4); > digital_VSR_AttachInterrupt(4,VSR_AttachPinInterrupt_fun_4,RISING); >} >void loop(){ > vTaskDelay(1); >} >``` **说明**:设置引脚4为中断响应,设置为上升沿中断,当发生引脚4上升沿则执行: `digital_VSR_Write(2,HIGH)`函数。 *** *** ## 模拟量输出控制(ESP32-S,ESP32-R) **功能**:控制单片机寄存器模拟量输出至虚拟模型,如操作速度、大小等变量控制; **mixly编程**: >![](https://img.kancloud.cn/34/32/3432d071ad85a4bf90a9aff231ce1bec_338x47.png) **arduino-IDE编程函数**: >``` >Float32_Write(0,50); >``` **说明**:设置通道寄存器float32-0输出值为50。 *** *** ## 模拟量输入读取(ESP32-S,ESP32-R) **功能**:读取虚拟世界的模拟量反馈,如旋钮开关,坐标数据等; **mixly编程**: >![](https://img.kancloud.cn/49/65/49650f3e0b264c48bbd2a2f6d633a968_237x44.png) **arduino-IDE编程函数**: >``` >Float32_Read(0); >``` **说明**:读取通道float32-0的寄存器的值,并返回值。 *** ## 字符串文本输出(ESP32-S,ESP32-R) **功能**:输出字符串文本至虚拟工厂; **mixly编程**: >![](https://img.kancloud.cn/a5/67/a567bf88702f8b5245029d45d2e44e5c_290x44.png) **arduino-IDE编程函数**: >``` >Text_Write("hello"); >``` **说明**:输出hello文本至虚拟工厂。 *** *** ## 虚拟伺服电机速度控制(ESP32-S) **功能**:设置某M电机的转动速度值为当前值:`0~100`; **mixly编程**: >![](https://img.kancloud.cn/1a/61/1a6165f9ff9b8649fb918add9fe2f22f_311x51.png) **arduino-IDE编程函数** >``` >Set_ServoSpeed(0,0); >``` **说明**:输入电机编号`0~7`,输入电机速度为`0~100`。 *** ## 虚拟伺服电机位置控制(ESP32-S) **功能**:设置某M电机要达到的执行位置,输入值为浮点数`(float32)`; **mixly编程**: >![](https://img.kancloud.cn/7f/5f/7f5f2674c944afc2f018db9a16f94314_322x45.png) **arduino-IDE编程函数**: >``` >Set_ServoPos(0,0); >``` **说明**:输入电机编号`0~7`,电机要执行达到的位置值`pos(float32);` *** ## 读取虚拟电机位置值(ESP32-S) **功能**:读取某M电机当前的位置坐标值; **mixly编程**: >![](https://img.kancloud.cn/71/0e/710eede4418f50e3abf6dc448cc13081_221x31.png) **arduino-IDE编程函数**: >``` >Get_ServoPos(0); >``` **说明**:输入电机编号`0~7`,返回该电机目前虚拟位置pos的值`(float32)`。 *** ## 等待电机执行完成上一个动作(ESP32-S) **功能**:等待该M电机执行并达到目标位置pos点; >**mixly编程**: ![](https://img.kancloud.cn/69/83/6983c0f6a11ed149d7f504cc619cc574_244x37.png) **arduino-IDE编程函数**: >``` >WaitFinish_ServoPos(0); >``` **说明**:等待电机`M0`执行到位置点才会执行接下来的代码动作。 *** :-: 分界线,以下为工业机器人操作指令,对ESP32-R有效 *** *** ## 四轴码垛机器人运行速度(ESP32-R) **功能**:设置四轴码垛类型机器人的运行速度值; **mixly编程**: >![](https://img.kancloud.cn/48/d7/48d763f97196451cdf97b45334222375_291x44.png) **arduino-IDE编程函数**: >``` >Set_R4Speed(0); >``` **说明**:设置工业机器人的速度值0~100之间。 *** ## 四轴码垛机器人单轴动作(ESP32-R) **功能**:设置四轴码垛机器人某一个关节轴运行到某一点动作; **mixly编程**: >![](https://img.kancloud.cn/c4/b5/c4b5ffeb4970920e20936f9d765d3745_378x45.png) **arduino-IDE编程函数**: >``` >Set_R4Pos(0,0); >``` **说明**:输入1为第几轴即`0~3`,输入2为位置坐标值`(float32)`。 *** ## 四轴码垛机器人本体动作(ESP32-R) **功能**:设置四轴码垛机器人四个轴联动运行到某一个姿态点; **mixly编程**: >![](https://img.kancloud.cn/61/63/6163decfa0b30528ac66b5eda05a1d0c_660x45.png) **arduino-IDE编程函数**: >``` >Set_R4Pos(0,0,0,0); >``` **说明**:输入值为1轴,2轴,3轴,4轴各个轴要达到的目标点; *** ## 获取四轴码垛机器人某轴的位置值(ESP32-R) **功能**:获取该机器人某一个轴的位置角度值; **mixly编程**: >![](https://img.kancloud.cn/35/76/35760e7d35144f0f99342c2ca51b87e7_310x31.png) **arduino-IDE编程函数**: >``` >Get_R4Pos(0); >``` **说明**:返回值为该关节的角度值。 *** ## 等待四轴码垛机器人上一个动作执行完毕(ESP32-R) **功能**:等待该动作完全执行完毕,才进行下面的代码运行(中断除外); **mixly编程**: >![](https://img.kancloud.cn/3b/57/3b57ad67c769ff13e1d33d53e8caf0c5_227x35.png) **arduino-IDE编程函数**: >``` >WaitFinish_R4(); >``` **说明**:阻塞线程等待四轴码垛机器人上一个动作执行完毕。 *** ## 设置Scara机器人运行速度(ESP32-R) **功能**:设置Scara类型机器人的运行速度值; **mixly编程**: >![](https://img.kancloud.cn/c6/43/c643972a0f4edeae0ec79113fabbd57c_352x46.png) **arduino-IDE编程函数**: >``` >Set_ScaraSpeed(0); >``` **说明**:设置工业机器人的速度值0~100之间。 *** ## Scara机器人单轴动作(MEGA-R) **功能**:设置Scara机器人某一个关节轴运行到某一点动作; **mixly编程**: >![](https://img.kancloud.cn/0f/28/0f28c8043720d038479c1ad3b82d7b18_441x47.png) **arduino-IDE编程函数**: >``` >Set_ScaraPos(0,0); >``` **说明**:输入1为第几轴即`0~3`,输入2为位置坐标值`float32`; *** ## Scara机器人整体动作(MEGA-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机器人某轴的位置值(MEGA-R) **功能**:获取该机器人某一个轴的位置角度值; **mixly编程**: >![](https://img.kancloud.cn/bc/42/bc4234b8327b31d47db86e7b079f3b35_370x35.png) **arduino-IDE编程函数**: >``` >Get_ScaraPos(0); >``` **说明**:返回值为该关节的角度值。 *** ## 等待Scara机器人上一个动作执行完毕(MEGA-R) **功能**:等待该动作完全执行完毕,才进行下面的代码运行(中断除外); **mixly编程**: >![](https://img.kancloud.cn/b0/7e/b07ebd7dbf972fd957c81d56775bfb9d_316x41.png) **arduino-IDE编程函数**: >``` >WaitFinish_Scara() >``` **说明**:阻塞线程等待Scara机器人上一个动作执行完毕。