0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于树莓派3B实现的环保机器人设计方案

科技观察员 来源:hackster.io 作者:Alya Amarsy 2022-04-04 15:48 次阅读

背景

迄今为止,已经有相当多的语音助手可以在智能手机或专用设备上使用。虽然它们已经提供了广泛的用途,但它们中的大多数都收集了大量令人不安的数据,并且似乎完全依赖于云。另一方面,Snips允许您创建自己的语音助手,该助手专门在设备上运行,并且可以安装在RaspberryPi等小型设备上。

环保

“随手关灯”,这是很多孩子在成长过程中从父母那里听到的。问题是,有时恰好我们就很容易忘记关灯或其他电器,而且发生这种情况的时候并不总是有大人提醒你这样做——主要是因为你现在可能是大人负责。Sudo会尝试通过成为一个成年人来改变你的习惯,至少在节能方面

概述

由于这个项目涉及不同的组件,这里是所涉及的部分的概述:

让你的房子更智能

设置Snips

首先要做的是在RaspberryPi上安装Snips-我使用的是RaspberryPi3-型号B。我首先下载最新版本的Raspbian并将其刷到SD卡上,创建了一个名为ssh的空文件和另一个名为wpa_supplicant的空文件。conf在SD卡的根目录,然后我在弹出卡之前填充了我的Wifi凭据。设备完成启动后,您应该可以在本地网络上看到它,并且可以使用默认用户名和密码(pi/rapsberry)以及raspberrypi.local主机名(如果您使用的是MacOS)通过ssh连接到它。之后,我按照这里给出的说明https://docs.snips.ai/getting-started/quick-start-raspberry-pi。

简而言之,您在开发机器上安装了一个名为Sam(基于nodejs)的工具,Sam将成为您与语音助手交互的主要工具,包括您可以在配置后使用init命令启动的安装过程Sam使用其主机名或IP来定位您的RaspberryPi。

然后您前往Snips控制台https://console.snips.ai并创建一个新助手。可以在受支持的语言中自由使用适合您的语言。我给我的助手Sue-Do打了电话,并从SnipsAppStore安装了一个简单的技能(Joseph的Heure可以让你向Snips询问时间)。为助手添加技能后,您可以单击部署按钮,该按钮将为您提供Sam安装命令,您可以将其复制/粘贴到您的开发机器上。

pYYBAGJH_9uATqLkAAAr3fIlazg409.png

部署助手后,samstatus命令可让您查看是否所有snips服务都在您的设备上运行(除了似乎从未运行的snips-analytics服务)。

poYBAGJH_9aAGD1uAAGulhEGkyA588.png

可以准备好试试你的助手了,只是它现在听不到你的声音!为此,您需要一个麦克风(和一个扬声器,以便您可以听到它的答案)。在扬声器方面,我使用连接到RaspberryPi的音频插孔并使用其中一个USB端口供电的有源外部扬声器完成了我的所有开发工作。

我使用了SeeedStudio的4麦克风阵列,您可以将其插入RaspberryPi(仍然关闭时)。

最后,在使用samsetupaudio和samtest麦克风(或扬声器)检查声音输出和输入后,您可以输入samwatch并通过说“HeySnips”来召唤您的助手,然后要求您知道您的技能安装将可以执行。

设置家庭助理

接下来,按照HomeAssistant网站上的说明在Raspbian上手动安装HomeAssistant,包括有关如何在启动时自动启动HomeAssistant的部分(在我们的例子中,Raspbian使用systemd,因此请按照该段中的说明进行操作)

请注意,您可以使用raspi-config命令行实用程序来更改RaspberryPi的主机名,因此可以通过其本地主机名(在我的情况下为sudo.local)访问HomeAssistant。

HomeAssistant的使用和设置变得越来越直观:例如,我不必设置我的大部分组件,因为发现组件会处理这些:只要我输入网关代码,我的IkeaTradfri灯就会被识别

pYYBAGJH_9CAadXCAALqQLZXECo617.png

或者,可以通过添加以下行将其添加到您的配置文件(位于/home/homeassistant/.homeassistant/configuration.yaml)中:

poYBAGJH_8yAaoprAAAI-EnJXpY496.png

连接Snips和家庭助理

Snips使用hermes协议在其组件之间进行通信-正如您将在项目后面看到的那样,这些组件因此可以单独使用或交换,从而实现模块化体验。hermes依赖MQTT进行传输,因此Snips安装包含一个MQTT代理。为了让HomeAssistant能够与Snips通信,您只需将MQTT平台添加到其组件中,指定Snips的MQTT代理作为要使用的代理-在我的情况下,这两个服务都在同一个RaspberryPi上运行,所以我只是将此添加到我的配置文件中:

pYYBAGJH_8eAFQmzAAANvdEcGI8233.png

请注意,此页面上的说明没有为Snip的MQTT代理端口提供正确的端口(我已经提交了一个拉取请求,因此在任何人阅读此内容时可能会更正)。

确保Snips和家庭助理相互匹配

Snips网站上提供的教程让您清楚地了解通过从商店分叉现有应用程序来创建Snips应用程序的步骤。我按照教程进行操作并创建了一个意图(我称之为ikealights)。一旦我到达名为“代码操作”的部分,我就稍微改变了一下。正如Snips文档所提到的,控制台上的代码片段旨在用于简单快速的交互。我发现将所有代码保存在RaspberryPi本身上更容易。因此,在为我的代码配置操作时,我没有选择列表中的tradfriHomeAssistant组件,而是选择了python_script组件(因此下面的屏幕截图中的代码片段为空)。

poYBAGJH_8OAZM6PAAINd7GcQbg966.png

然后我将这些行添加到我的configuration.yaml文件中:

pYYBAGJH_7-ATwlIAAATn4TDEso176.png

第一个将Snips添加到HomeAssistant,第二个允许我添加自己的代码片段(在我在与configuration.yaml文件相同的文件夹中创建的python_scripts目录中)。最后一行允许我在我的配置中包含一个新文件intent_script.yaml(我可以在“intent_script”之后添加这个文件的内容)。这个文件允许你告诉HomeAssistant在收到来自Snips的意图时要采取什么行动——在我们的例子中,我们现在将收到的唯一意图是一个叫做ikealights的意图。因此,到目前为止,intent_script.yaml的内容如下:

pYYBAGJH_7qAMNZZAAAoDRZTC2A625.png

简而言之,我们首先要声明我们要回复的意图,以及收到它时要做什么——Snips应该回答什么,以及要启动什么操作。就我而言,我实际上要求HomeAssistant启动一个名为ikealights的python脚本,该脚本在python_script/ikealights.py文件中定义如下:

poYBAGJH_7aAM6uPAAAzr47X-4o695.png

我正在使用python脚本,因为我在几个小时前试图了解脚本如何工作时已经编写了该脚本,因此我怀疑此操作代码可能已包含在itent_script.yaml中

整个项目现在可以工作了,你已经能够让Snips开关你的灯。现在,进入耗电技能阶段!

耗电追踪技巧

在HomeAssistant中跟踪设备使用情况的最简单方法是使用history_stats组件。在您的configuration.yaml文件中,添加以下行,将light.streetlight替换为您要跟踪的灯:

poYBAGJH_7KAB4tmAAA2fXuNHZI344.png

传感器将为您提供自午夜以来此特定灯已打开的小时数。现在,我们可以添加一个Snips能够回答的新技能:让我们从最后开始,将这些行添加到我们的intents_scripts文件中,为Snips提供正确的答案:

pYYBAGJH_62AIJk4AAAbv8Y9Hbg967.png

然后,您可以前往Snips控制台并添加一个名为消费的新意图-或您在第一行中输入的任何内容:

poYBAGJH_6mAN9aoAAERdInun2s412.png

然后,您可以创建尽可能多的训练示例,就像您向Snips询问您的消费情况一样:“这盏灯今天亮了多少时间?”“今天这盏灯有什么用途?”等。最后,您可以创建响应此意图的应用程序,指定要回答它的HomeAssistant组件是answer_script(因为我们这次没有创建专用的python脚本)

poYBAGJH_6OAEGO5AAHYJbEV_ME856.png

在使用sam部署你的助手后(日志应该提到你的新技能),你可以重新启动HomeAssistant并随便问Snips你的灯今天花了多少时间打开。

到目前为止,您的助手已经学会了如果您要求消费该回答什么。但由于这不是我们大多数人的工作方式,我们需要它实际上更进一步并启动对话。因此,我们将创建HomeAssistant所谓的自动化。

基本上我们会设置一个规则,如果灯亮了3个小时以上,Snips会询问你是否要关闭它。您可以将自动化直接添加到您的configuration.yaml文件中,但最好使用一个名为automations.yaml的单独文件并将其包含在conf文件中。

pYYBAGJH_5-AAY2BAAAxEU-LU_4320.png

在这里,只要我们之前创建的传感器的值超过3,助手就会通过大声说出您的诙谐评论来启动新的对话会话,并期望用户要求它关闭灯作为反馈。由用户实际执行此操作,或者只是决定始终保持点亮状态。

这种结构意味着您应该为每个灯创建一个传感器和相应的自动化,并且您将能够根据灯的使用位置选择不同的触发器阈值,有些灯不需要打开超过几个小时日。

到此为止,我们的助手已经可以从文章的开头开始进行临时设置,即直接连接到裸Raspberry+ReSpeaker组合的有源扬声器。

为了创建一个成熟的角色(并保护PCB免受灰尘影响),我决定为我的助手创建一个外壳。我希望能够在不移除任何盖子的情况下拔下它,并且还想摆脱我拥有的扬声器。

我使用Adafruit的一个小型单声道放大器从Raspberry的音频插孔(我购买了一个插孔转接线适配器)接收信号,将其放大并将其发送到一个小扬声器。之后剪断了我拥有的一根微型USB电缆,并使用USB部分连接到放大器的电源输入端,另一端连接到树莓的USB端口之一(这个放大器只需要0.4A,USB端口可以上升至0.5A)。我将微型USB部分插入Pi的电源输入,另一半插入微型USB分线板。这让我可以将Pi的电源输入转移到我认为合适的任何地方(而不仅仅是Pi本身),而无需将其供电到GPIO。

pYYBAGJH_5eAQGm3AAqWGZYsWqI625.png

poYBAGJH_5OASjMlAAORALSBZaE363.png

现在电子设备已经不碍事了,我可以自由地将整个东西集成到我选择的外壳中:一个我拆开的旧Nabaztag。它是一只可以连接到您的Wifi并检查您的电子邮件的“兔子”,以滑稽的声音告诉您天气等信息

pYYBAGJH_4-AXdLnAAQMcAB6J20933.png

尽管“兔子”笨重,但我保留了它的内部结构,因为它允许我仍然使用耳朵并将它们放入现有的插座中(即使我移除了驱动它们的电机)。

我从MDF上用激光切割出一个简单的矩形,并为RapsberryPi安装正确的整体,这样我就能够将该面板热粘合到黑色结构上。我试图尽可能地安装电缆,而不必剪断它们。

有了它,你的助手现在可以告诉你你的灯在前一天或本周已经使用了多少时间,这样你就可以跟踪你的进度。

正常运行时间比前一个少20%)并在一周内警告您,如果您当天的比率即将到期,以便您可以在每周结束时实现目标。ReSpeaker上的LED可以帮助可视化配额消耗。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    211

    文章

    28398

    浏览量

    207000
  • 树莓派
    +关注

    关注

    116

    文章

    1707

    浏览量

    105615
  • 树莓派3B+
    +关注

    关注

    0

    文章

    3

    浏览量

    761
收藏 人收藏

    评论

    相关推荐

    树莓型号3B+与型号3B比一比

    B+有什么新特点? 看看最新的Pi和旧一代的比较。 在这篇文章中,我们先来看看最新的树莓型号3B +以及一些新的和改进的功能,还有更多的细节尚未公布。 请注意,这篇文章中使用的
    的头像 发表于 04-13 09:48 12.7w次阅读

    自主飞行空中机器人设计方案

    自主飞行空中机器人设计方案
    发表于 09-26 13:29

    机器人设计方案,控制系统设计汇总

    机器人设计方案{:7:}分享
    发表于 06-30 13:12

    请问树莓3B/3B+和4B如何安装OpenCV?

    树莓3B/3B+和4B安装OpenCV教程
    发表于 11-05 07:17

    树莓3b的工作电流不足会有什么影响

    树莓3b最好的工作电流是多少?树莓3b的工作电流不足会有什么影响?
    发表于 10-11 08:16

    树莓3B的硬件资源详细介绍免费下载

    本文档的主要内容详细介绍的是树莓3B的硬件资源详细介绍免费下载。
    发表于 10-26 08:00 66次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>3B</b>的硬件资源详细介绍免费下载

    树莓3B的电路原理图免费下载

    本文档的主要内容详细介绍的是树莓3B的电路原理图免费下载。
    发表于 04-22 08:00 121次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>3B</b>的电路原理图免费下载

    树莓3B上运行64位系统的测评详细说明

    今天,我们团队感受了一下在树莓3B 的主板上运行64bit 系统的感觉!那种感觉您如果有幸感受的话,您一定会说:这才是我要的树莓
    发表于 11-21 16:17 12次下载

    树莓的学习设计方案合集

    本文档的主要内容详细介绍的是树莓的学习设计方案合集免费下载包括了:AMG8833 8x8红外热像仪传感器应用附PCB驱动源码,Arduino与树莓
    发表于 03-11 08:00 12次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>的学习<b class='flag-5'>设计方案</b>合集

    便携式自动割胶机器人设计方案

    便携式自动割胶机器人设计方案
    发表于 06-30 16:37 18次下载

    OpenHarmony Dev-Board-SIG专场:OpenHarmony树莓3B移植威廉希尔官方网站 分享

    OpenHarmony Dev-Board-SIG专场:OpenHarmony树莓3B移植威廉希尔官方网站 分享
    的头像 发表于 12-28 14:47 2268次阅读
    OpenHarmony Dev-Board-SIG专场:OpenHarmony<b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>3B</b>移植威廉希尔官方网站
分享

    OpenHarmony Dev-Board-SIG专场:开发板选型—为什么选择树莓3B

    OpenHarmony Dev-Board-SIG专场:开发板选型—为什么选择树莓3B
    的头像 发表于 12-28 14:51 2209次阅读
    OpenHarmony Dev-Board-SIG专场:开发板选型—为什么选择<b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>3B</b>

    树莓3B/4B散热风扇帽

    电子发烧友网站提供《树莓3B/4B散热风扇帽.zip》资料免费下载
    发表于 07-25 14:31 4次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>3B</b>/4<b class='flag-5'>B</b>散热风扇帽

    基于树莓3B的可乐自动售货机

    方案介绍硬件:树莓 3 B 型;显示 7" 官方触摸屏 Para Raspberry Pi;水泵 RS 385;桥 H L298N;软件和
    发表于 12-08 17:42 5次下载

    基于树莓机器人设计方案

    准备树莓和 CRICKIT Hat 1、如果你已经安装了 CRICKIT Hat 的 40 针连接器的转接端子,请将其取下。 如果我们希望按钮引线适合而不被后面板压扁,我们需要帽子以
    发表于 10-19 12:31 694次阅读
    基于<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的<b class='flag-5'>机器人设计方案</b>