尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

robot-dog-swarm-control 使用教程:服务端与客户端如何分工,让多只机器狗听令而同步

robot-dog-swarm-control 使用教程:服务端与客户端如何分工,让多只机器狗听令而同步 robot-dog-swarm-control 使用教程服务端与客户端如何分工让多只机器狗听令而同步【免费下载链接】CupCode_robot-dog-swarm-control模块源师兄扩展项目: 机器狗群控 | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/robot-dog-swarm-controlrobot-dog-swarm-control源师兄扩展项目机器狗群控是一个基于星闪SLE短距通信的多机器狗联动控制方案。只需一台设备担任服务端、其余机器狗担任客户端按下服务端的一个按键所有机器狗就能同时开始表演同一套动作 —— 这就是服务端发指令、客户端听令同步的全部秘密。下面这份使用教程将带你从零搭建一个多狗同步表演系统 一、机器狗群控是什么能做什么在 config.json 中项目对自己只有一句话的定义通过星闪实现多条机器狗的联动控制。通俗地说传统玩法每只机器狗各写各的程序互不相干群控玩法指定一只狗为队长服务端其他狗为队员客户端。队长按下按键通过星闪广播一条开始表演指令所有队员在同一时刻收到信号一起做出编排好的动作和灯光秀。 适合场景课堂演示、机器狗编队表演、多设备联动入门。二、架构总览谁负责什么整个方案分为三个层次对应 library/ 目录下的四个源码文件角色文件职责服务端入口library/dog_server.py启动星闪服务、监听按键、广播开始指令客户端入口library/dog_main.py连接服务端、等待指令、收到后执行表演表演动作库library/dog_action.py定义编舞动作序列 RGB 灯光 蜂鸣机器狗驱动library/dog_xgolite.py封装 XGO Lite 的串口指令动作、旋转、高度等 关键点动作只定义一次在 dog_action.py 的dog_show()中服务端和客户端共用同一份代码因此同步不是靠各狗自己算时间而是靠同一时刻收到同一信号。三、服务端搭建把一只机器狗设为队长第 1 步添加群控积木分类在 OhCode 积木环境中本项目提供了名为机器狗群控的分类见 category.json内含两块核心积木设置机器狗为服务端输入参数名称默认dog_SS设置机器狗为客户端输入参数设备名称 连接服务端名称第 2 步拖入设置机器狗为服务端积木把设置机器狗为服务端积木放入程序将名称填为dog_SS。这块积木会生成 server_start(dog_SS) 调用积木定义见 blocksdef.js。启动后服务端会做三件事OLED 屏幕显示I am dog server~提示已进入队长模式以dog_SS为名启动星闪服务等待客户端连接绑定两颗物理按键 ——按下按键 B会向所有客户端广播开始演示指令同时服务端自己也开始表演。第 3 步硬件准备服务端依赖板载外设均在 dog_server.py 中初始化⌨️ 两颗按键switch(1)/switch(2)其中按键 B 是表演触发键️ OLED 小屏用于显示当前状态show time、show end~ 等板载星闪模块。四、客户端搭建把其余机器狗设为队员第 1 步每只狗拖入设置机器狗为客户端积木参数说明积木定义见 blocksdef.js参数示例规则设备名称dog_CC每只客户端必须唯一不可互相重名连接服务端名称dog_SS必须与服务端积木中填写的名称完全一致该积木会生成run_dog_client(dog_CC, dog_SS)见 dog_main.py。第 2 步用灯光确认连接状态客户端内置了直观的连接指示灯逻辑方便你现场排错红灯闪烁正在尝试连接服务端尚未成功程序会循环重连绿灯常亮已成功加入服务端进入待机OLED 持续显示I am dog client~表示客户端运行正常。第 3 步等待指令客户端进入死循环监听一旦收到服务端的开始指令立即置位表演标志并执行dog_show()完成后 OLED 显示show end~回到待机 —— 整个过程无需人工干预按下几次按键就能重复表演几次。五、听令而同步背后的实现逻辑同步的核心链路只有四步服务端按键→ dog_server.py 中sle.send(s)通过星闪广播指令客户端收包→ dog_main.py 的回调里把state置为True同时开演→ 各端含服务端自己在 dog_action.py 执行同一个dog_show()表演内容→ 依次调用 XGO Lite 的excuteAction()播放约 30 个编舞动作期间 RGB 灯带跑彩虹色轮 红灯/紫灯/绿灯分段呼吸 蜂鸣器节拍xiang()。 因为所有狗执行的是同一份动作序列、且由同一个无线信号触发即使各狗启动时间不同表演节奏依然一致 —— 这就是群控整齐划一的来源。六、常见问题排查清单遇到不同步或客户端无反应时按此清单逐项检查✅名称是否一致客户端连接服务端名称必须等于服务端积木中填写的名称默认dog_SS✅客户端是否重名每只客户端的设备名称必须互不相同默认模板是dog_CC多狗时建议改为dog_CC1、dog_CC2…;✅红灯是否还在闪说明星闪连接未建立检查两台设备的星闪模块是否正常工作、间距是否过远✅按键是否按对触发键是服务端的按键 B按键 A 只用于发送调试信息✅地面空间dog_show()包含原地旋转与连续动作请为每只狗预留足够的表演空间避免碰撞 七、总结通过本文的使用教程你应该已经掌握分工模型服务端 信号源 触发器客户端 接收器 执行器搭建方法两块积木服务端 / 客户端 正确的命名规则即可完成多狗组网同步原理动作只定义一次、由同一无线信号同时触发天然保证步调一致。想进一步定制自己的编舞打开 dog_action.py 修改dog_show()中的动作序列即可想扩展旋转、平移、抬腿等更复杂的指令可查阅 dog_xgolite.py 中已封装好的驱动方法。快去让你的机器狗小队跳起舞吧【免费下载链接】CupCode_robot-dog-swarm-control模块源师兄扩展项目: 机器狗群控 | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/robot-dog-swarm-control创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表