代码
代码Arduino
/* * ============================================================* MobBob 控制程序 - 软件串行蓝牙版本 * 由 Kevin Chan (aka Cevinius) * ==============================================================* * 本程序允许使用串行命令控制 MobBob。在此版本的代码中,* 命令通过软件串行端口接收,引脚定义在顶部附近的 #define 中。 * 这意味着您可以使用任何 Arduino 兼容板,并将蓝牙卡插入为 * 软件串行设置的引脚。 (与 DFRobot 为 Bluno 板设计的另一个版本相反。) * * 该程序很长,包含 2 个主要组件 - 一个平滑的伺服动画程序和一个串行 * 命令解析器程序。 * * 动画系统 * ================* 动画程序旨在平滑地为伺服关键帧阵列设置动画。代码尽量做到最好,以便于使用。 * * 动画系统只会排队 1 个命令。即一个命令可以运行,*和一个命令可以排队。如果您发送更多命令,它们将覆盖排队的命令。 * * 动画系统默认会等待当前动画完成后再开始下一个。这个 * 意味着如果动画数据以机器人处于基本姿势结束,那么事情会顺利地结合起来。为了*支持这一点,动画系统还有一个功能,动画可以有一个“完成序列”*让机器人回到基本姿势。此功能用于前进/后退动画。 * 这些动画有一个最终序列,可以让机器人回到基本姿势。 * * 动画播放完毕后,动画系统会向串口输出一个响应字符串。 * 这使调用者能够知道他们请求的动画何时播放完毕。这对于用户对动画进行排序很有用 - 在开始另一个之前等待一个动画完成。 * * 动画代码有许多变量可以调整。例如。更新频率、arduino 引脚等 * * 动画数据数组格式也设计为易于手动编辑。 * * 命令解析器 * ==============* 该系统解析通过串行接收到的命令,并处理它们。这些命令包括用于直接*设置伺服位置的命令,以及用于触发预定义动画和行走的命令。 * * 因此,不想担心步行细节的用户可以使用预定义的步行/动画。 * 而且,想要完全控制伺服系统(以动态创建新动画)的用户也可以这样做。 * * 如上所述,这些命令可以从 Arduino 串行监视器交互使用。它们也可以 * 使用蓝牙 LE 发送(当使用 Bluno 时)。手机应用程序将通过蓝牙 LE 将命令发送到 * Bluno。 * * 一般命令:* ----------------- * 就绪/OK 检查: * 状态检查。立即返回响应以检查控制器是否工作。 * * Set Servo: * time - 时间到指定角度补间,0 将立即跳转到角度 * leftHip - 距离中心的微秒。 -ve 臀部向内,+ve 臀部向外 * leftFoot - 从平面开始的微秒。 -ve 脚朝下,+ve 脚朝上 * rightHip - 距中心微秒。 -ve 臀部向内,+ve 臀部向外 * rightFoot - 距平底微秒。 -ve 脚朝下,+ve 脚朝上 * 此命令用于完全控制舵机。您可以在指定的持续时间内将机器人从其当前姿势补间到指定姿势。 * * 停止/重置: * 在当前动画结束后停止机器人。可用于停止设置为无限循环 * 的动画。这也可用于将机器人置于其基本姿势(直立) * * 立即停止: * 立即停止机器人,无需等待完成当前动画。这 * 中断机器人当前的动画。机器人可能处于动画中期 * 并处于不稳定的姿势,因此在使用时要小心。 * * 标准步行命令:* ----------------------- * 前进:,-1 表示连续,0 或无参数与1次相同。 * Backward:, -1 表示连续,0 或无参数与 1 次相同。 * 向左转:,-1 表示连续,0 或无参数与 1 次相同。 * 右转: