语音控制纸质装置完整实战指南:用Paper Signals把一句话变成看得见的动作

发布时间:2026/8/21 17:49:54
语音控制纸质装置完整实战指南:用Paper Signals把一句话变成看得见的动作 语音控制纸质装置完整实战指南用Paper Signals把一句话变成看得见的动作【免费下载链接】paper-signalsBuild your own voice controlled object.项目地址: https://gitcode.com/gh_mirrors/pa/paper-signalsPaper Signals 是一个开源的语音控制纸质装置项目——你对它喊一句明天会下雨吗桌上纸折的小雨伞就会啪地撑开喊一句火箭几点发射纸火箭就缓缓竖起。这篇文章会用最通俗的方式带你把这套语音控制装置的原理搞懂、把代码跑通并学会自定义属于自己的语音指令。先解决一个真问题为什么信息总爱躲在屏幕里每天叫醒我们的不是闹钟而是手机上刷不完的通知天气、股价、快递、倒计时……它们挤在通知栏里扫一眼就忘划掉就消失。数字信息的问题从来不是太少而是太轻——没有重量也没有存在感。Paper Signals 的出发点恰好相反把一条数据变成看得见、摸得着、会动的东西。它不改变信息的来源只改变信息的出场方式。数据还是那些数据只是载体从冷冰冰的屏幕换成了桌面上一只正在转动的纸轮盘。一句话讲透原理三方传话游戏整个系统其实是一场传话游戏三个角色各司其职耳朵Dialogflow 负责听懂你说的话把明天会下雨吗解析成一个标准指令官方术语叫 Intent意图邮局Firebase 云函数和数据库负责把指令中转、暂存等装置来取手Arduino 板子ESP8266每隔几秒去 Firebase收信拿到指令后驱动舵机让纸模型做出动作。仓库里的 ArduinoSignals/ 目录就是手这一环的完整源码核心文件只有四个ArduinoSignals.ino 负责启动和主循环APICalls.h 声明各种语音指令和动作函数APICalls.cpp 是真正干活的代码Credentials.h 存放 WiFi 和各类 API 密钥。看到 APICalls.cpp 里那些井井有条的 if/else 了吗每一条分支就是一次听懂指令 → 决定动作的完整旅程。实操闯关亲手做一个会说话的装置下面四步你可以当成四个小关卡一关一关地过。第一关准备好硬件与开发环境你需要一块基于 ESP8266 的开发板比如 NodeMCU 或 Wemos D1、一个舵机、几根杜邦线以及折好的纸模型。舵机接在 GPIO14 引脚上——这个编号就写在 APICalls.h 的SERVO_PIN定义里。软件方面安装 Arduino IDE 并配置好 ESP8266 开发板支持然后把 Credentials.h 里的 WiFi 名称和密码换成你自己的。这个文件就像装置的门禁卡没有它装置连不上网后面一切都无从谈起。第二关让舵机先动起来先别急着上语音让装置自己动起来。核心动作函数是MoveServoToPosition(position, speed)两个参数都很好理解position舵机要转到的角度范围 0 到 180speed每转 1 度停留的毫秒数数字越小动得越快。比如MoveServoToPosition(180, 10); // 转到180度每个角度停留10ms MoveServoToPosition(0, 10); // 再转回来烧录之后看到舵机来回摆动恭喜你第二关通过——后面所有花活都是在这两个动作的基础上组合出来的。第三关注册你的第一个自定义语音指令这是这个项目最值钱的部分你几乎不用写后台代码就能让装置听懂一句全新的话。打开 APICalls.h找到这一行String CustomIntentType YOUR_CUSTOM_INTENT_NAME;把YOUR_CUSTOM_INTENT_NAME换成你的指令名字比如Power。然后打开 APICalls.cpp找到CustomExecution()函数——你在里面写的任何代码都会在你喊出这条指令时执行。对装置说Talk to Paper Signals再依次说创建一个叫 Custom Signal 的信号把 Custom Signal 设置为名为 Power 的自定义意图你的语音指令就注册成功了。之后每喊一次装置就会去执行CustomExecution()里的内容。第四关让指令接上真实世界的数据只动一动还不够酷接上真实数据才算真正活了。以股票为例APICalls.cpp 里的StockExecution()展示了标准套路先用getJson()从行情接口拉数据解析出涨跌数字再根据正负让舵机指向涨或跌的角度。if(stockNumber 0) { MoveServoToPosition(CURRENCY_DOWN, 10); // 跌了指向下方 } else if(stockNumber 0) { MoveServoToPosition(CURRENCY_UP, 10); // 涨了指向上方 }你完全可以照葫芦画瓢把 API 换成你感兴趣的接口把判断条件换成你的逻辑把舵机角度换成你的动作。天气、快递、倒计时本质都是同样的三步——取数、判断、动作。换个思路它还能成为什么代码逻辑就这么多但玩法可以千变万化。几个抛砖引玉的灵感番茄钟实体版把计时器做成表盘说开始 25 分钟专注指针缓缓转动走完提醒你休息开会不超时神器改一改StretchBreak的提醒逻辑讨论超过设定时间装置就会举手抗议孩子的可视化课代表把天气、日历变成桌上会动的教具比屏幕上的图表直观得多不打扰人的提示器不依赖手机铃声用装置的动作作为轻柔的消息提示方式。几句实在话踩坑之前先知道这个项目最初由 Google Creative Lab 发布如今仓库处于只读归档状态意味着官方不再积极维护部分依赖库可能已经过时代码里用到的个别第三方接口比如天气、行情数据源可能需要换成新的服务。这不是劝退而是提醒——把它当作一个优秀的半成品模板来用遇到坑自己动手填恰恰是学习的最好方式。另外把密钥写进仓库是有风险的涉及付费 API 时请保护好 Credentials.h 里的内容别一不小心传到公共仓库。现在轮到你了如果你也想让桌上的纸片活过来把仓库克隆下来从第三关开始动手git clone https://gitcode.com/gh_mirrors/pa/paper-signals这个项目的迷人之处在于它把语音控制从科幻拉回了桌面不需要昂贵的硬件也不需要高深的人工智能知识一块几十块钱的开发板、一个舵机、一张纸就能让一句话变成看得见的动作。 动手吧下一个让朋友惊叹的语音控制纸质装置就出自你的手。【免费下载链接】paper-signalsBuild your own voice controlled object.项目地址: https://gitcode.com/gh_mirrors/pa/paper-signals创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻