1 Star 1 Fork 0

HonestQiao / 星球大战BB-8机器人控制测试与转发工具

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

星球大战BB-8机器人控制测试与转发工具

版本:1.0.0 作者:HonestQiao/乔楚 日期:2022-05-11 更新:HonestQiao/BB8-Proxy (gitee.com)

目录:

  • 说明
  • 安装
  • 启动
  • 测试
  • 使用
  • 资料

说明

星球大战BB-8机器人的控制,需要通过专有的App进行控制和二次开发。

operasoftware/bb8实现了一个网页界面的基础控制功能,HonestQiao/bb8在此基础上进行了完善,增加了方向键按键控制功能,并实现了WebSocket、MQTT支持,从而使得其他设备,可以通过WebSocket和MQTT,来间接控制BB-8。

进一步的,HonestQiao开发了本转发工具,为 HonestQiao/bb8 提供完整WEB运行环境,并对外提供TCP Socket、WebSocket、MQTT控制能力,任何能够使用TCP Socket、WebSocket、MQTT的设备、程序等,均可以控制BB-8。

安装:

  1. 安装nodejs:

  2. 安装依赖包:

    cd BB8-Proxy
    mkdir node_modules
    npm install
  3. 安装 HonestQiao/bb8

    cd BB8-Proxy
    mkdir html
    cd html
    git clone git@github.com:HonestQiao/bb8.git

    你也可以直接下载 Download ZIP (github.com) ,将解压后的bb8放入到 BB8-Proxy/html/ 目录中。

  4. 安装 MQTT 服务器:(可跳过)

    参考 快速开始 | EMQX 文档 进行安装。如不启用MQTT功能,则可以跳过。

  5. 配置 HonestQiao/bb8 的main.js文件

    	const config = {
    		mqtt: {
    			enable: 0,  // 是否启用
    			host: '192.168.1.15',
    			port: '8083',
    			username: 'admin',
    			password: 'public',
    			topic: 'device/BB-8/command'
    		},
    		websocket: {
    			enable: 0,  // 是否启用
    			host: '192.168.1.15',
    			port: '1234',
    			reconnect: 1
    		}
    	}
    • 如启用mqtt功能,则控制端,可以直接通过MQTT控制BB-8;
      • 提醒1:应先安装配置好MQTT服务器。
      • 提醒2:转发工具应不启用MQTT,否则会出现指令抢夺。
    • 如启用websocket功能,则控制端,可以通过TCP Socket、WebSocket、MQTT控制BB-8;
      • 提醒1:本工具提供TCP Socket、WebSocket服务端

启动:

  1. 启动服务:

    • node启动:

      node proxy --http_port 1234 --tcp_port 2345

      参数说明:

      • http_host: 本工具提供的WEB和WebSocket服务绑定的IP;如不设置,则默认为所有ip
      • http_port:本工具提供的WEB和WebSocket服务的端口
      • tcp_host:本工具提供的TCP Socket服务绑定的IP;如不设置,则默认为所有ip
      • tcp_port:本工具提供的TCP Socket服务的端口
      • mqtt_host:本工具要连接到的MQTT服务器地址,如不设置,则不启用mqtt转发功能
      • mqtt_port:本工具要连接到的MQTT服务器端口,如不设置则默认为1883
    • npm启动:

      # 启动服务,支持TCP Socket中转和WebSocket中转
      npm run start
      
      # 启动服务,支持TCP Socket中转和WebSocket中转,及MQTT中转;如启用该功能,应先安装配置好MQTT服务器
      npm run start_mqtt
      
      # 如非二次开发,不应使用如下的指令
      # 启动服务,并使用nodemon监听文件变更,如不开发不用使用;如启用MQTT该功能,应先安装配置好MQTT服务器
      npm run ws
      npm run mqtt

      如果需要自定义端口,可以修改 package.json中的配置

测试:

  1. 测试服务:

    访问 http://ip:1234/,显示如下控制界面:

    1.WebPanel

  2. 使用 Chrome 访问 http://ip:1234/html/bb8/index.html ,打开开发者工具,点击开发者工具左上角的移动设备模拟按钮,并选择iPhone SE设备,然后刷新页面

  3. 点击 CONNECT 按键,根据提示,选择BB-8机器人进行链接。成功后,将显示如下界面:

    开启websocket后的显示:

    1.connect_BB-8

    开启mqtt后的显示:

    1.connect_BB-8_MQTT

  4. 连接到BB-8成功后,可以点击界面上的红、蓝、绿灯,BB-8的灯光颜色发生变化,点击下面的方向盘,BB-8会运动

  5. BB-8机器人控制测试与转发工具界面,点击连接,会收到欢迎消息,然后再发送移动指令,BB-8会运动,发送颜色只看,BB-8的颜色会发生变化:

    4.WebPanel_test

  6. 以上测试全部完成后,就可以使用本工具,对外提供BB-8控制能力了

使用:

  1. 要控制BB-8,需要使用下面的指令进行:

    • 移动指令:

      {"action":"move","x":150,"y":50,"target":"BB-8"}

      BB-8运动坐标的中心位置为(150,150),x、y的取值范围为0~300,偏离中心点越远,则BB-8运动加速度越大

    • 灯光颜色指令:

      {"action":"color","c":[255,0,0]}

      BB-8灯光通过[R, G, B]三色控制,取值范围为0-255

  2. 本工具对外提供两个端口:

    • http_port对应端口:用于WEB/WebSocket服务
    • tcp_port对应端口:用于TCP Socket服务
      • tcp访问地址:tcp://ip:端口
  3. 使用WebSocket时,发送的指令如下:

    {"action":"move","x":150,"y":50,"target":"BB-8"}
    {"action":"color","c":[255,0,0],"target":"BB-8"}

    提醒:只有target指向BB-8的指令,才会通过WebSocket转发给BB-8

  4. 使用TCP Socket时,发送的指令如下:

    {"action":"move","x":150,"y":50}
    {"action":"color","c":[255,0,0]}

    提醒:所有的指令,都会通过WebSocket转发到BB-8

  5. 使用MQTT时,发送的指令如下:

    • TOPIC: device/BB-8/command
    {"action":"move","x":150,"y":50}
    {"action":"color","c":[255,0,0]}

    提醒:

    • 所有的指令,都会通过WebSocket转发到BB-8
    • 如果 HonestQiao/bb8 启用mqtt,则本工具的mqtt服务应不启用

资料

空文件

简介

星球大战BB-8机器人的控制,需要通过专有的App进行控制和二次开发。 HonestQiao开发了本转发工具,为 [HonestQiao/bb8] 提供完整WEB运行环境,并对外提供TCP Socket、WebSocket、MQTT控制能力,任何能够使用TCP Socket、WebSocket、MQTT的设备、程序等,均可以控制BB-8。 展开 收起
NodeJS 等 2 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
NodeJS
1
https://gitee.com/honestqiao/BB8_Proxy.git
git@gitee.com:honestqiao/BB8_Proxy.git
honestqiao
BB8_Proxy
星球大战BB-8机器人控制测试与转发工具
master

搜索帮助