贝博恩创新科技网

reality editor 教程

Reality Editor 是一个由麻省理工学院媒体实验室开发的、开源的增强现实应用和工具包,它的核心理念非常宏大:让物理世界中的物体变得可编程

reality editor 教程-图1
(图片来源网络,侵删)

你可以把它想象成一个“物理世界的编程语言”或“物体的操作系统”,通过 Reality Editor,你可以通过简单的 AR 界面,将一个物理设备(比如一个灯泡、一个按钮)的功能,与另一个设备(比如你的手机、一个智能音箱)或一个在线服务(比如IFTTT、Google Assistant)连接起来,从而创造出个性化的自动化体验。


第一部分:核心概念与工作原理

在开始之前,理解几个核心概念至关重要:

  1. 对象:

    • 现实世界中的任何东西都可以是一个“对象”,比如一个台灯、一个智能插座、你的手机,甚至一张桌子。
    • 每个“对象”在 Reality Editor 中都有一个唯一的“身份证”,通常是一个二维码或一个视觉标记。
  2. 属性:

    reality editor 教程-图2
    (图片来源网络,侵删)
    • 对象的特征或状态。
      • 灯泡的属性:亮度颜色
      • 按钮的属性:是否被按下
      • 手机的属性:位置音量
  3. 动作:

    • 对象可以执行的操作。
      • 灯泡的动作:打开关闭闪烁
      • 手机的动作:播放音乐发送通知
      • 在线服务的动作:发送推文记录日志
  4. 连接:

    • 这是 Reality Editor 的魔法所在,连接就是将一个对象的属性动作,与另一个对象的属性动作绑定起来。
    • 示例连接:
      • 按钮被按下 属性 变为 true 灯泡打开 动作 就被执行
      • 手机位置 属性 变为 恒温器设置温度 动作 就被执行,温度设为 22

第二部分:安装与准备工作

下载 Reality Editor

  • iOS: App Store 搜索 "Reality Editor"。
  • Android: Google Play Store 搜索 "Reality Editor"。
  • 桌面版 (可选但推荐): 访问 Reality Editor 官方 GitHub 页面,下载适用于你操作系统的桌面版本,桌面版更适合进行复杂的配置和开发。

准备你的设备

  • 一部安装了 Reality App 的智能手机或平板电脑。
  • 一台电脑(用于运行桌面版 Reality Editor,进行后端配置)。
  • 一个稳定的 Wi-Fi 网络,确保所有设备在同一个网络下。

第三部分:详细教程 - 创建你的第一个连接

我们将创建一个最简单的场景:用一个按钮来控制一个虚拟的灯泡

步骤 1:启动并设置 Reality Editor

  1. 在你的手机和电脑上分别打开 Reality Editor。
  2. 确保它们连接在同一个 Wi-Fi 网络下,桌面版会显示一个 IP 地址和端口号(http://192.168.1.10:8000)。
  3. 在手机上,点击右上角的 "+" 号,选择 "Connect to Server"。
  4. 输入电脑上显示的 IP 地址和端口号,点击连接,成功后,手机和电脑将同步工作。

步骤 2:创建一个虚拟对象(灯泡)

为了方便演示,我们先在 Reality Editor 中创建一个虚拟的灯泡对象。

  1. 桌面版 Reality Editor 中,点击左上角的 "Objects" 选项卡。

  2. 点击 "New Object" 按钮。

  3. 给你的新对象命名,"My Lamp"。

  4. 我们需要为这个“灯泡”定义属性和动作。

    • 定义属性:
      • 在 "My Lamp" 对象的编辑界面,找到 "Properties" 部分。
      • 点击 "Add Property",命名为 isOn,类型选择 Boolean(布尔值,即 true/false)。
      • 再添加一个属性,命名为 brightness,类型选择 Number(数值)。
    • 定义动作:
      • 找到 "Actions" 部分。
      • 点击 "Add Action",命名为 turnOn
      • 再添加一个动作,命名为 turnOff
      • (可选)添加一个动作 setBrightness,并为其设置一个参数 level,类型为 Number
  5. 生成二维码: 在 "My Lamp" 对象的编辑页面,你会看到一个二维码,这个二维码就是“灯泡”的身份证。截图保存这个二维码

步骤 3:创建一个按钮对象

我们用一个真实的物体(比如便利贴)作为按钮。

  1. 找一张便利贴或一张白纸。
  2. 将上一步中保存的“灯泡”二维码打印或画在便利贴上。
    • 注意: 这个二维码现在代表的是“灯泡”对象,但为了演示,我们将把它同时用作“按钮”的触发点,在更复杂的场景中,你会为每个对象使用不同的二维码。
  3. 将这张贴有二维码的便利贴贴在你想要作为“按钮”的物体上(比如一个真实的物理开关)。

步骤 4:进行连接(核心步骤)

我们用手机 AR 界面来连接它们。

  1. 手机 上打开 Reality Editor App。
  2. 将摄像头对准你贴好的“按钮”便利贴。
  3. 屏幕上会识别出二维码,并显示它所代表的对象信息(即我们创建的 "My Lamp" 对象)。
  4. 点击屏幕上的对象,进入编辑模式,你会看到之前在桌面版中定义的 Properties(属性)和 Actions(动作)。
  5. 设置触发条件:
    • 我们需要一个“被按下”的动作来触发,由于我们没有真实的按钮,我们可以用手机的屏幕点击来模拟。
    • 在 AR 界面中,长按屏幕上的对象("My Lamp"),直到它开始闪烁,这表示你正在“录制”或“监听”这个对象的变化。
    • 用另一只手指快速点击一下手机屏幕,这个点击动作会被 Reality Editor 捕获为一个自定义事件,我们称之为 tap
  6. 设置执行动作:
    • 在捕获到 tap 事件后,Reality Editor 会提示你“你想做什么?”(What do you want to do?)。
    • 从弹出的列表中,选择我们之前创建的 "My Lamp" 对象。
    • 然后选择它的动作 turnOn
  7. 完成连接!
    • 一个连接已经建立:当这个二维码被“点击”时,执行“灯泡”的“打开”动作。
  8. 测试连接:
    • 再次将摄像头对准二维码。
    • 用手指点击一下手机屏幕上的 AR 界面。
    • 你会看到,代表 isOn 属性的指示器从 false 变为了 true,灯泡“亮”了!
    • 同样,你可以创建另一个连接,将点击事件映射到 turnOff 动作,来控制灯泡“关闭”。

第四部分:进阶玩法与真实设备集成

上面的例子是虚拟的,但 Reality Editor 的真正强大之处在于与真实硬件的集成。

集成 IFTTT (If This Then That)

IFTTT 是一个强大的在线自动化平台,拥有海量的“服务”(App、设备、网站)。

  1. 创建一个 Maker 通道: 在 IFTTT 网站上创建一个免费账户,并激活 "Maker" 通道,记下你的密钥。
  2. 在桌面版 Reality Editor 中配置 IFTTT:
    • 打开桌面版,进入 "Services" 选项卡。
    • 添加一个新的服务,选择 "IFTTT"。
    • 输入你的 Maker 密钥。
  3. 创建连接:
    • 触发端: 和之前一样,用手机 AR 界面捕获一个物理对象的属性变化(比如按钮被按下)。
    • 执行端: 在 "What do you want to do?" 界面,选择 "IFTTT" 服务。
    • 你需要提供一个 URL,格式通常是:https://maker.ifttt.com/trigger/{event}/with/key/{your_key}
      • {event} 是你在 IFTTT 中创建的 Applet 的触发事件名称。
      • {your_key} 是你的 Maker 密钥。
    • 你还可以通过 URL 参数传递数据,.../trigger/button_pressed/with/key/xxx?value=1

示例场景: 当你按下一个物理按钮时,通过 Reality Editor 触发 IFTTT,向你的 Twitter 账户发送一条推文。

集成硬件设备

Reality Editor 支持通过多种方式连接硬件,如 Arduino、ESP8266/ESP32、树莓派等,通常使用 MQTT 或 HTTP 协议。

  • 基本流程:
    1. 在硬件设备上编写代码,使其能够连接到你的局域网中的 MQTT 代理服务器。
    2. 在桌面版 Reality Editor 中,配置一个 "MQTT" 服务,并连接到你的代理服务器。
    3. 定义一个对象,其属性或动作通过 MQTT 主题 进行映射。
    4. 当硬件设备发布消息到某个主题时,Reality Editor 对象的属性就会更新,从而触发连接好的动作。

示例场景:

  • 对象: 一个装有温湿度传感器的 ESP8266。
  • 属性: temperature, humidity
  • 连接:temperature 属性 > 30 时,执行 My LampturnOn 动作(如果灯泡也支持 MQTT 控制)。

第五部分:资源与社区

总结与提示

  • 从简单开始: 先用虚拟对象熟悉流程,再尝试连接真实设备或在线服务。
  • 桌面版是关键: 手机 App 用于“连接”和“交互”,而复杂的“对象定义”和“服务配置”在桌面版中完成。
  • QR码是你的朋友: 善用二维码来标记和识别物理世界中的对象。
  • 探索社区: 这个项目虽然小众,但有一个充满活力的开发者社区,遇到问题时不要犹豫去提问。

Reality Editor 是一个探索物理世界与数字世界融合的绝佳工具,它不仅是一个 App,更是一种全新的思维方式,让你能够像搭积木一样,创造属于自己的智能环境,祝你玩得开心!

分享:
扫描分享到社交APP
上一篇
下一篇