DuckyClaw探索物理硬件
DuckyClaw 是面向硬件的 OpenClaw 版本。该理念旨在通过强大的OpenClaw代理概念探索物理硬件。

当你的AI助手需要控制真实的设备、做出决策时,DuckyClaw正是理想的解决方案。它基于TuyaOpen C SDK开发而成——无需在微控制器上使用Node.js。只需一个代码库即可实现从ARM Cortex-M架构到x64架构的各种设备的控制。
1.环境搭建
1.1 安装开发工具
在主机上安装所需的工具。
sudo apt-get install lcov cmake-curses-gui build-essential ninja-build wget git python3 python3-pip python3-venv libsystemd-dev -y
1.2 获取仓库
#对于较大的克隆项目,你可以增加Git缓冲区的大小:
git config --global http.postBuffer 524288000
#获取duckyClaw仓库
git clone https://github.com/tuya/DuckyClaw.git
获取子仓库:
cd DuckyClaw
git submodule update --init
1.3 启动构建环境
激活TuyaOpen开发环境,以便能够使用tos.py功能:
. ./TuyaOpen/export.sh
运行结果如下:

验证环境:
tos.py version
tos.py check

1.4 选择配置
tos.py config choice
输入3来选择RaspberryPi.config文件
(.venv) baiwen@dshanpi-a1:~/DuckyClaw$ tos.py config choice
[INFO]: Running tos.py ...
[NOTE]: Fullclean success.
--------------------
1. ATK_T5AI_MINI_BOARD_2.4LCD_CAMERA.config
2. ESP32S3_BREAD_COMPACT_WIFI.config
3. RaspberryPi.config
4. TUYA_T5AI_BOARD_LCD_3.5_CAMERA.config
--------------------
Input "q" to exit.
Choice config file: 3
[INFO]: Initialing using.config ...
[NOTE]: Choice config: /home/baiwen/DuckyClaw/config/RaspberryPi.config
2.获取涂鸦设备配置
2.1 获取产品编号
访问Tuya DuckyClaw 获取Tuya产品编号/PID。

填写任意产品名称和型号最后点击确认。

点击查看产品。

可以看到外面获取到的下图箭头所示的产品ID,请记住这个PRODUCT_ID。

2.2 获取UUID和AuthKey
访问Tuya开发者平台获取Tuya物联网平台——开放SDK购买。

购买完成后,可以在采购订单中找到您购买的授权码,点击下载授权码。

下载完成,可以获取excel表格文件。可以看到下载的uuid和key复制这两个UUID和AUTHKEY。

3.获取飞书配置
3.1 访问飞书开发平台
访问飞书开放平台:飞书开放平台
3.2 创建应用

选择创建企业自建应用。

3.3 获取应用凭证
填写应用名称和应用描述,最后点击创建。

复制应用凭证App ID和App Secret,后面我们会用到这两个。
3.4 添加应用能力

在按能力添加下,添加机器人。添加成功后可以看到机器人能力界面。
3.5 配置应用权限
选择权限管理,点击批量导入\导出权限。

点击 批量导入 按钮后,粘贴以下 JSON 配置一键导入所需权限:
{
"scopes": {
"tenant": [
"aily:file:read",
"aily:file:write",
"application:application.app_message_stats.overview:readonly",
"application:application:self_manage",
"application:bot.menu:write",
"cardkit:card:write",
"contact:user.employee_id:readonly",
"corehr:file:download",
"docs:document.content:read",
"event:ip_list",
"im:chat",
"im:chat.access_event.bot_p2p_chat:read",
"im:chat.members:bot_access",
"im:message",
"im:message.group_at_msg:readonly",
"im:message.group_msg",
"im:message.p2p_msg:readonly",
"im:message:readonly",
"im:message:send_as_bot",
"im:resource",
"sheets:spreadsheet",
"wiki:wiki:readonly"
],
"user": ["aily:file:read", "aily:file:write", "im:chat.access_event.bot_p2p_chat:read"]
}
}
填入完成后,点击下一步,确认新增权限。

在确认导入权限界面下,选择申请开通。

点击确认。

3.6 启用机器人能力
在 应用能力 > 机器人 页面,选择如何开始使用后的按钮。

在这里可以填写机器人对用户展示的名称。

(可选)自定义菜单界面

(可选)调整菜单状态

(可选)选择展示形式和菜单配置,可以自定义菜单界面。

1.7 创建版本并发布
选择上方的创建版本。

填写版本号1.0.0,填写更新说明(可自定义)。

最后选择保存。

选择确认发布

1.8 修改订阅配置
在飞书开发平台中, 事件订阅 页面,选择订阅方式。

点击订阅方式后的按钮。

点击添加事件。搜索并添加以下事件:
- im.message.receive_v1- 接收消息
- im.message.message_read_v1- 消息已读回执
- im.chat.member.bot.added_v1- 机器人进群
- im.chat.member.bot.deleted_v1- 机器人被移出群

添加事件完成后如下所示,点击创建版本。

1.9 重新发布版本
填写版本号1.0.1,填写更新说明(可自定义)。

最后选择保存。

选择确认发布。

4.修改源码配置
修改源码include/tuya_app_config.h文件:
(.venv) baiwen@dshanpi-a1:~/DuckyClaw$ vi include/tuya_app_config.h
4.1 修改涂鸦配置
修改源码中的:
#ifndef TUYA_PRODUCT_ID
#define TUYA_PRODUCT_ID "xxxxxxxxxxxxxxxx"
#endif
// https://platform.tuya.com/purchase/index?type=6
#ifndef TUYA_OPENSDK_UUID
#define TUYA_OPENSDK_UUID "uuidxxxxxxxxxxxxxxxx" // Please change the correct uuid
#endif
#ifndef TUYA_OPENSDK_AUTHKEY
#define TUYA_OPENSDK_AUTHKEY "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" // Please change the correct authkey
#endif
填入获取的产品编号、UUID、AuthKey。

4.2 修改飞书配置
修改源码中的:
#ifndef IM_SECRET_CHANNEL_MODE
#define IM_SECRET_CHANNEL_MODE "feishu"
#endif
#ifndef IM_SECRET_FS_APP_ID
#define IM_SECRET_FS_APP_ID ""
#endif
#ifndef IM_SECRET_FS_APP_SECRET
#define IM_SECRET_FS_APP_SECRET ""
#endif
将飞书平台的App ID和 App Secret填入IM_SECRET_FS_APP_ID和IM_SECRET_FS_APP_SECRET。

如下所示:

5.编译与运行
5.1 编译
由于我们是运行在DshanPI A1上,无需进行烧录,可直接执行以下命令进行编译:
tos.py build
如下所示:


编译完成后,会生成一个可执行文件,该文件可以保存在dist/目录中。
5.2 运行
运行可执行程序:
./dist/DuckyClaw_1.0.0/DuckyClaw_1.0.0.elf


使用智慧生活APP,点击+号,选择扫一扫,扫面上面的二维码,添加涂鸦设备。
您也可以在各大应用市场搜索“**智能生活/SmartLife”**下载使用。
5.3 使用飞书测试
使用飞书发送信息,测试DuckyClaw。


5.4 控制涂鸦设备
使用智慧生活APP,点击右上角的+号,添加涂鸦设备。

使用duckyClaw控制Tuya设备,这里以灯带为例,使用飞书发送文本:
帮我通过云端全屋控制,控制我的音乐幻彩灯带变为红色
如下所示:

