平时我们用浏览器访问网站,网页通常保存在远方的服务器上。这一次,CoCube 自己就是一台小型 HTTP 服务器。

只要电脑或手机与 CoCube 连接到同一个 Wi-Fi,就可以在浏览器地址栏中发送请求,让 CoCube 显示文字、点亮像素,甚至向前、向后和旋转。

本教程参考了 MicroBlocks Learn 的 Controlling the Robot with WiFi,并将案例改写为适合 CoCube 的版本。

1. 准备工作

你需要准备:

  • 一台 CoCube
  • 一台电脑或手机
  • 一个 2.4 GHz Wi-Fi 网络
  • MicroBlocks
  • Chrome 或 Edge 网页浏览器

电脑或手机必须和 CoCube 连接到同一个 Wi-Fi 网络。

在 MicroBlocks 中点击“添加积木库”,进入“网络”,找到并打开“HTTP 服务器”。

添加 HTTP 服务器积木库

“HTTP 服务器”依赖 Wi-Fi 库,添加后可以使用连接 Wi-Fi、读取 IP 地址、接收 HTTP 请求和回复请求等积木。

2. 让 CoCube 连接 Wi-Fi

先编写下面的程序,将“网络名称”和“密码”替换为你使用的 Wi-Fi 信息。

连接 Wi-Fi 并显示 IP 地址

程序启动后,CoCube 会连接 Wi-Fi,并把自己的 IP 地址显示在 TFT 屏幕上,例如:

172.20.10.2

IP 地址就像 CoCube 在局域网中的门牌号。稍后,浏览器要通过这个地址找到它。

你的 CoCube 得到的地址可能与示例不同,请使用 TFT 屏幕上实际显示的地址。

Wi-Fi 名称和密码会保存在程序中。分享程序或截图前,请删除自己的密码。

3. 浏览器向 CoCube 发出请求

HTTP 通信中,浏览器是客户端,CoCube 是服务器:

  • 浏览器向 CoCube 发送 HTTP 请求。
  • CoCube 向浏览器返回 HTTP 响应。

搭建下面的程序:

接收并回复 HTTP 请求

程序不断读取“HTTP 服务器请求”:

  • 没有人访问时,它返回空内容。
  • 浏览器访问 CoCube 时,它返回一条请求。
  • 程序收到请求后,回复状态 200 OK 和文字 Hello, This is CoCube.。

在电脑或手机的浏览器中输入:

CoCube的IP地址/test

例如:

172.20.10.2/test

浏览器会显示 CoCube 返回的文字:

浏览器收到 CoCube 的响应

浏览器可能会把局域网中的 http:// 页面标记为“不安全”。本实验没有输入账号、密码或个人信息,可以继续进行。

4. 认识请求路径

上一个网址可以分成两部分:

部分 示例
CoCube 地址 http://172.20.10.2
请求路径 /test

路径是 IP 地址后面以 / 开头的内容。我们可以用“请求路径”积木读取它。

读取 HTTP 请求路径

访问不同地址时,程序会得到不同路径:

浏览器地址 请求路径
172.20.10.2/test /test
172.20.10.2/on /on
172.20.10.2/forward /forward

“HTTP 服务器请求”积木中的内容每读取一次就会被取走,因此程序先把它保存到变量 request,后面再从这个变量中读取路径。

5. 用网址点亮和熄灭像素

现在让不同路径执行不同任务:

用 HTTP 路径控制像素

程序收到请求后:

  • 路径是 /on:点亮坐标 (3,3) 的像素,并回复 ON。
  • 路径是 /off:熄灭坐标 (3,3) 的像素,并回复 OFF。

在浏览器中分别访问:

CoCube的IP地址/on
CoCube的IP地址/off

访问 /on 后,浏览器会显示 ON,CoCube 的像素也会被点亮。

访问 on 路径

这里的关键不是网页上的 ON,而是浏览器通过路径向 CoCube 发出了一条命令。

6. 用浏览器遥控 CoCube

把像素控制换成机器人动作,就可以把浏览器地址栏变成一个简单的遥控器。

用 HTTP 路径控制 CoCube

程序使用四条路径:

请求路径 CoCube 的动作
/forward 向前移动
/backward 向后移动
/left 向左旋转
/right 向右旋转

依次访问:

CoCube的IP地址/forward
CoCube的IP地址/backward
CoCube的IP地址/left
CoCube的IP地址/right

例如,访问:

172.20.10.2/forward

CoCube 就会向前移动。

完成路径判断后,程序会把收到的请求路径返回给浏览器:

请求路径 CoCube 动作 浏览器显示
/forward 向前移动 /forward
/backward 向后移动 /backward
/left 向左旋转 /left
/right 向右旋转 /right

响应积木放在路径判断之后,所以只要收到请求,无论路径是否对应一个动作,浏览器都会及时得到回复,不会一直等待。

7. 常见问题

浏览器打不开 CoCube 的地址

  • 确认 CoCube 已成功连接 Wi-Fi,并显示了 IP 地址。
  • 确认电脑或手机与 CoCube 在同一个 Wi-Fi 网络中。
  • 在地址前明确输入 http://,不要使用 https://。
  • 检查 IP 地址是否与 TFT 屏幕显示的一致。
  • 部分校园、酒店和公共网络会隔离不同设备,可以改用手机热点测试。

浏览器一直加载

  • 检查程序是否读取到了 HTTP 请求。
  • 确认“回应至 HTTP 请求”积木位于路径判断之后。
  • 确认响应积木仍在 request 不为空的判断里面。

机器人没有执行动作

  • 路径必须以 / 开头。
  • 路径区分大小写,/forward 和 /Forward 不相同。
  • 检查 CoCube 动作积木是否能单独正常运行。

8. 拓展:网页遥控器

每次控制机器人都要修改浏览器地址并不方便。我们还可以让 CoCube 直接提供一个带按钮的控制网页。

在 MicroBlocks 中打开网页遥控器完整程序

更改 Wi-Fi 名称和密码,运行完整程序后,在手机或电脑的浏览器中打开 CoCube 屏幕显示的 IP 地址。按住方向按钮,机器人开始运动;松开按钮,机器人立即停止。网页还会自动更新 CoCube 的坐标和方向。

这个程序加入了 HTML、CSS 和 JavaScript,代码比前面的例子复杂,不要求现在全部读懂。它的核心仍然是本节学习的 HTTP 请求:

请求路径 作用
/forward 向前运动
/backward 向后运动
/left 向左旋转
/right 向右旋转
/stop 停止车轮
/position 读取坐标和方向

网页只是把手动输入地址的过程变成了按钮。按下按钮时,网页发送运动请求;松开按钮时,网页发送 /stop。这也是网页控制机器人最基本的思路。

CC-BY-SA

© 来自 CoCube 2024-2026.

This work is licensed under a CC-BY-SA 4.0 license.