在本文中,描述了我如何使用 websockets 构建一个 RESTful 网络服务器,以及一个基于 javascript 的网站形式的界面。这样,任何基于 linux 的机器人控制器都可以使用手机或平板电脑进行控制。
交互式、低延迟、基于 JavaScript 的 websocket-GUI,用于触摸设备,具有与机器人组件接口的 python-flask 后端。 它提供了虚拟 2 轴操纵杆,和所有按钮都可以模拟工作。 由于双向 websocket 连接,来自机器人的状态消息可以显示在文本区域中。
Flask 应用
示意图
软件功能
- 交互式 javascript 低延迟 websocket GUI 服务网页
- 一个运行在Raspberry Pi(或任何 Linux 机器)上的 python-flask 服务器
- 用于低延迟控制的双向 websocket 连接
- 一些已经映射到控制输入的服务器端机器人类(伺服、步进、切换控制)
重要提示:目前只能使用触摸事件控制 GUI,这意味着它应该与触摸屏设备一起使用。
安装和运行
架构
经过几次迭代,我得出了下面的简单架构。 核心是我们的flask-server(server-websocket/main.py)。 这既为网站提供服务,也有与该网站的 websocket 连接的端点。 机器人模块(目前是步进电机和伺服电机等执行器的控制器,以及两个 LED 开关)位于 ./robot 文件夹中。 每个都是一个单独的多进程,并使用 multiprocess.queue 与服务器通信。
硬件接线示意图
源代码
详情参阅 亚图跨际