版本: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。
cd BB8-Proxy
mkdir node_modules
npm install
cd BB8-Proxy
mkdir html
cd html
git clone git@github.com:HonestQiao/bb8.git
你也可以直接下载 Download ZIP (github.com) ,将解压后的bb8放入到 BB8-Proxy/html/ 目录中。
参考 快速开始 | EMQX 文档 进行安装。如不启用MQTT功能,则可以跳过。
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
}
}
node启动:
node proxy --http_port 1234 --tcp_port 2345
参数说明:
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中的配置
测试服务:
使用 Chrome 访问 http://ip:1234/html/bb8/index.html ,打开开发者工具,点击开发者工具左上角的移动设备模拟按钮,并选择iPhone SE设备,然后刷新页面
点击 CONNECT 按键,根据提示,选择BB-8机器人进行链接。成功后,将显示如下界面:
开启websocket后的显示:
开启mqtt后的显示:
连接到BB-8成功后,可以点击界面上的红、蓝、绿灯,BB-8的灯光颜色发生变化,点击下面的方向盘,BB-8会运动
在 BB-8机器人控制测试与转发工具
界面,点击连接,会收到欢迎消息,然后再发送移动指令,BB-8会运动,发送颜色只看,BB-8的颜色会发生变化:
以上测试全部完成后,就可以使用本工具,对外提供BB-8控制能力了
要控制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
本工具对外提供两个端口:
使用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
使用TCP Socket时,发送的指令如下:
{"action":"move","x":150,"y":50}
{"action":"color","c":[255,0,0]}
提醒:所有的指令,都会通过WebSocket转发到BB-8
使用MQTT时,发送的指令如下:
{"action":"move","x":150,"y":50}
{"action":"color","c":[255,0,0]}
提醒:
BB-8
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。