Petoi 编程积木

介绍如何在Mind+中使用我们专门为Petoi机器人开发的扩展库

准备 Mind+

  • 从Mind+官网下载最新版本(不低于V1.7.0https://mindplus.cc/download.html

    • Windows: >= V1.7.0

    • Mac: >= V1.7.3 RC2.0

  • 安装教程及如果出现问题可以参考Mind+官方文档: 安装教程

  • 安装完成后即可打开Mind+

准备 Petoi 机器人

  • 对于使用 NyBoard 的产品:NybbleBittle。有两种方式来上传Mind+模式固件:

      • 如果您刚刚下载了此桌面应用程序的新版本。 您应该单击升级固件按钮。 您可以选择“N”来保留原来的舵机校准参数。

      • 如果您在下载此桌面应用程序后已经升级过一次固件,则可以单击只更新模式按钮。 只切换模式而不刷主板配置模式固件可以更加节省时间。

    • 使用 Arduino IDE 请下载GitHub网站最新的程序代码,按照上传程序固件步骤,先进入主板配置模式,再激活 OpenCat.ino 中的以下代码: #define MAIN_SKETCH

      #define GROVE_SERIAL_PASS_THROUGH

      上传主功能程序上电启动机器人。使用数据线及USB上载模块与电脑端进行连接或者使用蓝牙通讯模块与电脑端完成配对。

机器人在标准模式固件下也可以使用Mind+扩展库,但无法使用 “读写 模拟/数字 引脚” 功能积木块。

注意:

机器人在Mind+模式下,陀螺仪功能处于关闭状态,即机器人将不能保持自平衡,摔倒后不会自动翻身起立。

  • 对于使用 BiBoard 的产品:BittleBittle X, 不需要修改任何软件代码,默认支持Mind+内所有功能积木块,同时陀螺仪功能处于开启状态,即机器人可以保持自平衡,摔倒后可以自动翻身起立。

导入Petoi 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+会自动加载此扩展库。

程序运行原理及流程

使用此扩展库编写完成控制机器人的程序代码后,无需编译上传程序代码到机器人主板上。直接点击“运行”按钮即可运行程序代码。如需在程序运行过程中中止程序,可随时点击“停止”按钮。程序运行流程可分为三个步骤:

  1. 打开串口

  2. 控制机器人

  3. 关闭串口

积木块使用说明

打开串口

打开串口有两种方式:

如果串口打开失败,可以参考终端窗口中的打印信息,更换串口名称:

关闭陀螺仪

当开启陀螺仪功能时,机器人可以实时保持自身身体平衡,可能会看到机器人在做预设动作(尤其是执行比较剧烈的动作)时,身体会来回晃动,甚至会发生身体倾翻,这时机器人自动会做复原的动作,这样可能会打乱您预设的执行步骤。

如果上传的固件是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)我们提供了一些相关示例程序,可供您下载参考。

Last updated