介绍如何在Mind+中使用我们专门为Petoi机器人开发的扩展库
从Mind+官网下载最新版本(不低于V1.7.0)https://mindplus.cc/download.html
Windows: >= V1.7.0
Mac: >= V1.7.3 RC2.0
安装教程及如果出现问题可以参考Mind+官方文档: 安装教程
安装完成后即可打开Mind+
机器人在标准模式固件下也可以使用Mind+扩展库,但无法使用 “读写 模拟/数字 引脚” 功能积木块。
注意:
机器人在Mind+模式下,陀螺仪功能处于关闭状态,即机器人将不能保持自平衡,摔倒后不会自动翻身起立。
在导入用户库界面的文本框中粘贴GitHub网址:https://github.com/PetoiCamp/Petoi_MindPlusLib
对于macOS旧版本Mind+(<=V1.7.2 RC3.0),使用macOS导入扩展库后,请先下载PetoiRobot.zip解压出来的文件夹(PetoiRobot)拷贝到/Users/{your username}/Documents/mindplus-py/environment/Python3.6.5-64/lib/python3.6/site-packages/中。
Petoi 编程积木是 Mind+的用户扩展库。
如果您是通过双击使用了此扩展库的代码存档(后缀为mp或sb3)打开Mind+,或者在打开 Mind+后导入这些代码存档,则 Mind+会自动加载此扩展库。
使用此扩展库编写完成控制机器人的程序代码后,无需编译上传程序代码到机器人主板上。直接点击“运行”按钮即可运行程序代码。如需在程序运行过程中中止程序,可随时点击“停止”按钮。程序运行流程可分为三个步骤:
打开串口
控制机器人
关闭串口
打开串口有两种方式:
如果串口打开失败,可以参考终端窗口中的打印信息,更换串口名称:
当开启陀螺仪功能时,机器人可以实时保持自身身体平衡,可能会看到机器人在做预设动作(尤其是执行比较剧烈的动作)时,身体会来回晃动,甚至会发生身体倾翻,这时机器人自动会做复原的动作,这样可能会打乱您预设的执行步骤。
如果上传的固件是Mind+模式程序固件(#define GROVE_SERIAL_PASS_THROUGH
此行代码被激活),机器人启动时默认是关闭陀螺仪功能 (机器人将不能保持自平衡,摔倒后不会自动翻身起立),就不需要添加此积木块了。
如果上传的是标准模式程序固件,建议您在设计动作时,在程序打开串口后添加此积木块关闭陀螺仪, 机器人就不会实时做平衡反馈动作了。如下图所示:
使用此积木块可以让机器人执行烧录到机器人主板中技能动作。其中从“坐下”到“零位”,属于姿势(只包含一个动作帧);从“拳击”到“闻一闻”,属于行为(包含多个连贯的动作帧,其中一部分连续动作帧可以循环执行多次,但所有动作帧按照顺序只执行一轮);从“原地踏步”到“向右跑”,属于步态(包含多个连贯的动作帧,这些动作帧按照顺序循环不断重复执行)。配合使用积木块中延时设置,可以控制机器人在做完技能动作延迟预设时间后执行下一个积木块程序。
使用此积木块可以让机器人执行从技能创作坊中最新导出的一个技能。配合使用积木块中延时设置,可以控制机器人在做完技能动作延迟预设时间后执行下一个积木块程序。
相当于执行串口命令“T”,然后延迟预设时间执行后面的程序。
使用此积木块可以让机器人执行技能文件中的技能,技能文件位于以下目录中:
Windows: C:\Users\{your user name}\.config\Petoi\SkillLibrary\{model}
MacOS : /Users/{your user name}/.config/Petoi/SkillLibrary/{model}
Linux: /home/{your user name}/.config/Petoi/SkillLibrary/{model}
目录中文件夹名称 {model} 为 Bittle 或者 Nybble。 从技能创作坊导出技能文件时,程序会自动将技能文件保存到该目录中。
小技巧:您可以将GitHub上OpenCat项目源代码中的SkillLibrary文件夹复制并粘贴到 .config/Petoi 目录中。 这样您就可以在Mind+程序中使用这些示例技能文件。
文件夹 .config 在MacOS/Linux 中是隐藏文件夹,但可以在终端中或通过特定的视图设置访问:
MacOS 在 Finder 中打开目录 /Users/{用户名},然后同时按“Command”+“Shift”+“.” (句号)键即可显示隐藏文件夹。
使用此积木块可以控制一个关节或多个关节按顺序依次旋转,有以下几种积木块搭配使用方式供参考:
控制单个关节旋转到绝对角度值
控制单个关节旋转到相对角度值
控制多个关节依次旋转到绝对角度值或相对角度值
使用关节角度列表来控制多个关节依次旋转到绝对角度
配合使用积木块中延时设置,可以控制机器人在做完动作延迟预设时间后执行下一个积木块程序。
[关节序号,角度值,关节序号,角度值 ......]
使用此积木块可以控制多个关节同时旋转,有以下几种积木块搭配使用方式供参考:
控制多个关节同时旋转到绝对角度值或相对角度值
使用关节角度列表来控制多个关节同时旋转到绝对角度值
配合使用积木块中延时设置,可以控制机器人在做完动作延迟预设时间后执行下一个积木块程序。
使用此积木块可以获取到所选关节的当前角度值,建议可以先将其赋值给一个变量,然后可以通过使用变量及逻辑算法,控制其他的关节旋转。
此积木块的返回值只是一个角度值,不能单独将其填入“依次旋转”,‘’同时旋转“积木块中使用。
使用示例:
使用此积木块可以控制所有关节同时旋转,请与”动作帧“积木块搭配使用。如下图所示:
”动作帧“积木块代表由16个角度值组成的一个列表。其中每个角度值对应于相应关节序号舵机旋转到的绝对角度值。
配合使用积木块中延时设置,可以控制机器人在做完动作延迟预设时间后执行下一个积木块程序。
使用此积木块可以控制主板播放音乐。有以下几种积木块搭配使用方式供参考:
使用多个“音符+时值”积木块组成的列表
使用音符及时值列表
由一对或多对 音符 + 时值 组成,具体格式如下:
[
音符,时值,音符,时值,音符,时值......]
配合使用积木块中延时设置,可以控制机器人在播放完音乐延迟预设时间后执行下一个积木块程序。
使用此积木块可以给机器人发送串口命令,这样可以给您提供更多,更灵活的控制方式。比如可以输入“kkcL”(踢左前腿), “khiR”(举右前腿打招呼)。更多串口命令请参考串口协议。
配合使用积木块中延时设置,可以控制机器人在执行完串口命令延迟预设时间后执行下一个积木块程序。
使用此积木块可以给指定引脚写入模拟值。模拟值范围:0~255
使用此积木块可以读取指定引脚的模拟值。
使用此积木块可以给指定引脚写入高低电平值。高电平: 1;低电平:0。
使用此积木块可以读取指定引脚的高/低电平值。高电平: 1;低电平:0。
一般在控制程序的结尾,建议使用此积木块关闭串口通讯。
在GitHub仓库中(Petoi_MindPlusLib/examples)我们提供了一些相关示例程序,可供您下载参考。
如果您是通过双击图标打开 Mind+,它不会自动加载此扩展库 ,每次打开应用后都需要重新手动加载。
自动识别并打开串口
输入串口名称打开串口
,
代表由一个关节序号和一个角度值组成的列表。
比如示例中【头偏转角到30度】代表的是列表 [0, 30]。
由一对或多对 关节序号 + 角度值 组成,具体格式如下: