0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于樹莓派3B實現(xiàn)的環(huán)保機(jī)器人設(shè)計方案

科技觀察員 ? 來源:hackster.io ? 作者:Alya Amarsy ? 2022-04-04 15:48 ? 次閱讀

背景

迄今為止,已經(jīng)有相當(dāng)多的語音助手可以在智能手機(jī)或?qū)S迷O(shè)備上使用。雖然它們已經(jīng)提供了廣泛的用途,但它們中的大多數(shù)都收集了大量令人不安的數(shù)據(jù),并且似乎完全依賴于云。另一方面,Snips允許您創(chuàng)建自己的語音助手,該助手專門在設(shè)備上運行,并且可以安裝在RaspberryPi等小型設(shè)備上。

環(huán)保

“隨手關(guān)燈”,這是很多孩子在成長過程中從父母那里聽到的。問題是,有時恰好我們就很容易忘記關(guān)燈或其他電器,而且發(fā)生這種情況的時候并不總是有大人提醒你這樣做——主要是因為你現(xiàn)在可能是大人負(fù)責(zé)。Sudo會嘗試通過成為一個成年人來改變你的習(xí)慣,至少在節(jié)能方面

概述

由于這個項目涉及不同的組件,這里是所涉及的部分的概述:

讓你的房子更智能

設(shè)置Snips

首先要做的是在RaspberryPi上安裝Snips-我使用的是RaspberryPi3-型號B。我首先下載最新版本的Raspbian并將其刷到SD卡上,創(chuàng)建了一個名為ssh的空文件和另一個名為wpa_supplicant的空文件。conf在SD卡的根目錄,然后我在彈出卡之前填充了我的Wifi憑據(jù)。設(shè)備完成啟動后,您應(yīng)該可以在本地網(wǎng)絡(luò)上看到它,并且可以使用默認(rèn)用戶名和密碼(pi/rapsberry)以及raspberrypi.local主機(jī)名(如果您使用的是MacOS)通過ssh連接到它。之后,我按照這里給出的說明https://docs.snips.ai/getting-started/quick-start-raspberry-pi。

簡而言之,您在開發(fā)機(jī)器上安裝了一個名為Sam(基于nodejs)的工具,Sam將成為您與語音助手交互的主要工具,包括您可以在配置后使用init命令啟動的安裝過程Sam使用其主機(jī)名或IP來定位您的RaspberryPi。

然后您前往Snips控制臺https://console.snips.ai并創(chuàng)建一個新助手。可以在受支持的語言中自由使用適合您的語言。我給我的助手Sue-Do打了電話,并從SnipsAppStore安裝了一個簡單的技能(Joseph的Heure可以讓你向Snips詢問時間)。為助手添加技能后,您可以單擊部署按鈕,該按鈕將為您提供Sam安裝命令,您可以將其復(fù)制/粘貼到您的開發(fā)機(jī)器上。

pYYBAGJH_9uATqLkAAAr3fIlazg409.png

部署助手后,samstatus命令可讓您查看是否所有snips服務(wù)都在您的設(shè)備上運行(除了似乎從未運行的snips-analytics服務(wù))。

poYBAGJH_9aAGD1uAAGulhEGkyA588.png

可以準(zhǔn)備好試試你的助手了,只是它現(xiàn)在聽不到你的聲音!為此,您需要一個麥克風(fēng)(和一個揚聲器,以便您可以聽到它的答案)。在揚聲器方面,我使用連接到RaspberryPi的音頻插孔并使用其中一個USB端口供電的有源外部揚聲器完成了我的所有開發(fā)工作。

我使用了SeeedStudio的4麥克風(fēng)陣列,您可以將其插入RaspberryPi(仍然關(guān)閉時)。

最后,在使用samsetupaudio和samtest麥克風(fēng)(或揚聲器)檢查聲音輸出和輸入后,您可以輸入samwatch并通過說“HeySnips”來召喚您的助手,然后要求您知道您的技能安裝將可以執(zhí)行。

設(shè)置家庭助理

接下來,按照HomeAssistant網(wǎng)站上的說明在Raspbian上手動安裝HomeAssistant,包括有關(guān)如何在啟動時自動啟動HomeAssistant的部分(在我們的例子中,Raspbian使用systemd,因此請按照該段中的說明進(jìn)行操作)

請注意,您可以使用raspi-config命令行實用程序來更改RaspberryPi的主機(jī)名,因此可以通過其本地主機(jī)名(在我的情況下為sudo.local)訪問HomeAssistant。

HomeAssistant的使用和設(shè)置變得越來越直觀:例如,我不必設(shè)置我的大部分組件,因為發(fā)現(xiàn)組件會處理這些:只要我輸入網(wǎng)關(guān)代碼,我的IkeaTradfri燈就會被識別

pYYBAGJH_9CAadXCAALqQLZXECo617.png

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

poYBAGJH_8yAaoprAAAI-EnJXpY496.png

連接Snips和家庭助理

Snips使用hermes協(xié)議在其組件之間進(jìn)行通信-正如您將在項目后面看到的那樣,這些組件因此可以單獨使用或交換,從而實現(xiàn)模塊化體驗。hermes依賴MQTT進(jìn)行傳輸,因此Snips安裝包含一個MQTT代理。為了讓HomeAssistant能夠與Snips通信,您只需將MQTT平臺添加到其組件中,指定Snips的MQTT代理作為要使用的代理-在我的情況下,這兩個服務(wù)都在同一個RaspberryPi上運行,所以我只是將此添加到我的配置文件中:

pYYBAGJH_8eAFQmzAAANvdEcGI8233.png

請注意,此頁面上的說明沒有為Snip的MQTT代理端口提供正確的端口(我已經(jīng)提交了一個拉取請求,因此在任何人閱讀此內(nèi)容時可能會更正)。

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

Snips網(wǎng)站上提供的教程讓您清楚地了解通過從商店分叉現(xiàn)有應(yīng)用程序來創(chuàng)建Snips應(yīng)用程序的步驟。我按照教程進(jìn)行操作并創(chuàng)建了一個意圖(我稱之為ikealights)。一旦我到達(dá)名為“代碼操作”的部分,我就稍微改變了一下。正如Snips文檔所提到的,控制臺上的代碼片段旨在用于簡單快速的交互。我發(fā)現(xiàn)將所有代碼保存在RaspberryPi本身上更容易。因此,在為我的代碼配置操作時,我沒有選擇列表中的tradfriHomeAssistant組件,而是選擇了python_script組件(因此下面的屏幕截圖中的代碼片段為空)。

poYBAGJH_8OAZM6PAAINd7GcQbg966.png

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

pYYBAGJH_7-ATwlIAAATn4TDEso176.png

第一個將Snips添加到HomeAssistant,第二個允許我添加自己的代碼片段(在我在與configuration.yaml文件相同的文件夾中創(chuàng)建的python_scripts目錄中)。最后一行允許我在我的配置中包含一個新文件intent_script.yaml(我可以在“intent_script”之后添加這個文件的內(nèi)容)。這個文件允許你告訴HomeAssistant在收到來自Snips的意圖時要采取什么行動——在我們的例子中,我們現(xiàn)在將收到的唯一意圖是一個叫做ikealights的意圖。因此,到目前為止,intent_script.yaml的內(nèi)容如下:

pYYBAGJH_7qAMNZZAAAoDRZTC2A625.png

簡而言之,我們首先要聲明我們要回復(fù)的意圖,以及收到它時要做什么——Snips應(yīng)該回答什么,以及要啟動什么操作。就我而言,我實際上要求HomeAssistant啟動一個名為ikealights的python腳本,該腳本在python_script/ikealights.py文件中定義如下:

poYBAGJH_7aAM6uPAAAzr47X-4o695.png

我正在使用python腳本,因為我在幾個小時前試圖了解腳本如何工作時已經(jīng)編寫了該腳本,因此我懷疑此操作代碼可能已包含在itent_script.yaml中

整個項目現(xiàn)在可以工作了,你已經(jīng)能夠讓Snips開關(guān)你的燈。現(xiàn)在,進(jìn)入耗電技能階段!

耗電追蹤技巧

在HomeAssistant中跟蹤設(shè)備使用情況的最簡單方法是使用history_stats組件。在您的configuration.yaml文件中,添加以下行,將light.streetlight替換為您要跟蹤的燈:

poYBAGJH_7KAB4tmAAA2fXuNHZI344.png

傳感器將為您提供自午夜以來此特定燈已打開的小時數(shù)。現(xiàn)在,我們可以添加一個Snips能夠回答的新技能:讓我們從最后開始,將這些行添加到我們的intents_scripts文件中,為Snips提供正確的答案:

pYYBAGJH_62AIJk4AAAbv8Y9Hbg967.png

然后,您可以前往Snips控制臺并添加一個名為消費的新意圖-或您在第一行中輸入的任何內(nèi)容:

poYBAGJH_6mAN9aoAAERdInun2s412.png

然后,您可以創(chuàng)建盡可能多的訓(xùn)練示例,就像您向Snips詢問您的消費情況一樣:“這盞燈今天亮了多少時間?”“今天這盞燈有什么用途?”等。最后,您可以創(chuàng)建響應(yīng)此意圖的應(yīng)用程序,指定要回答它的HomeAssistant組件是answer_script(因為我們這次沒有創(chuàng)建專用的python腳本)

poYBAGJH_6OAEGO5AAHYJbEV_ME856.png

在使用sam部署你的助手后(日志應(yīng)該提到你的新技能),你可以重新啟動HomeAssistant并隨便問Snips你的燈今天花了多少時間打開。

到目前為止,您的助手已經(jīng)學(xué)會了如果您要求消費該回答什么。但由于這不是我們大多數(shù)人的工作方式,我們需要它實際上更進(jìn)一步并啟動對話。因此,我們將創(chuàng)建HomeAssistant所謂的自動化。

基本上我們會設(shè)置一個規(guī)則,如果燈亮了3個小時以上,Snips會詢問你是否要關(guān)閉它。您可以將自動化直接添加到您的configuration.yaml文件中,但最好使用一個名為automations.yaml的單獨文件并將其包含在conf文件中。

pYYBAGJH_5-AAY2BAAAxEU-LU_4320.png

在這里,只要我們之前創(chuàng)建的傳感器的值超過3,助手就會通過大聲說出您的詼諧評論來啟動新的對話會話,并期望用戶要求它關(guān)閉燈作為反饋。由用戶實際執(zhí)行此操作,或者只是決定始終保持點亮狀態(tài)。

這種結(jié)構(gòu)意味著您應(yīng)該為每個燈創(chuàng)建一個傳感器和相應(yīng)的自動化,并且您將能夠根據(jù)燈的使用位置選擇不同的觸發(fā)器閾值,有些燈不需要打開超過幾個小時日。

到此為止,我們的助手已經(jīng)可以從文章的開頭開始進(jìn)行臨時設(shè)置,即直接連接到裸Raspberry+ReSpeaker組合的有源揚聲器。

為了創(chuàng)建一個成熟的角色(并保護(hù)PCB免受灰塵影響),我決定為我的助手創(chuàng)建一個外殼。我希望能夠在不移除任何蓋子的情況下拔下它,并且還想擺脫我擁有的揚聲器。

我使用Adafruit的一個小型單聲道放大器從Raspberry的音頻插孔(我購買了一個插孔轉(zhuǎn)接線適配器)接收信號,將其放大并將其發(fā)送到一個小揚聲器。之后剪斷了我擁有的一根微型USB電纜,并使用USB部分連接到放大器的電源輸入端,另一端連接到樹莓的USB端口之一(這個放大器只需要0.4A,USB端口可以上升至0.5A)。我將微型USB部分插入Pi的電源輸入,另一半插入微型USB分線板。這讓我可以將Pi的電源輸入轉(zhuǎn)移到我認(rèn)為合適的任何地方(而不僅僅是Pi本身),而無需將其供電到GPIO。

pYYBAGJH_5eAQGm3AAqWGZYsWqI625.png

poYBAGJH_5OASjMlAAORALSBZaE363.png

現(xiàn)在電子設(shè)備已經(jīng)不礙事了,我可以自由地將整個東西集成到我選擇的外殼中:一個我拆開的舊Nabaztag。它是一只可以連接到您的Wifi并檢查您的電子郵件的“兔子”,以滑稽的聲音告訴您天氣等信息。

pYYBAGJH_4-AXdLnAAQMcAB6J20933.png

盡管“兔子”笨重,但我保留了它的內(nèi)部結(jié)構(gòu),因為它允許我仍然使用耳朵并將它們放入現(xiàn)有的插座中(即使我移除了驅(qū)動它們的電機(jī))。

我從MDF上用激光切割出一個簡單的矩形,并為RapsberryPi安裝正確的整體,這樣我就能夠?qū)⒃撁姘鍩嵴澈系胶谏Y(jié)構(gòu)上。我試圖盡可能地安裝電纜,而不必剪斷它們。

有了它,你的助手現(xiàn)在可以告訴你你的燈在前一天或本周已經(jīng)使用了多少時間,這樣你就可以跟蹤你的進(jìn)度。

正常運行時間比前一個少20%)并在一周內(nèi)警告您,如果您當(dāng)天的比率即將到期,以便您可以在每周結(jié)束時實現(xiàn)目標(biāo)。ReSpeaker上的LED可以幫助可視化配額消耗。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    210

    文章

    28129

    瀏覽量

    205894
  • 樹莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1697

    瀏覽量

    105461
  • 樹莓派3B+
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    753
收藏 人收藏

    評論

    相關(guān)推薦

    樹莓型號3B+與型號3B比一比

    B+有什么新特點? 看看最新的Pi和舊一代的比較。 在這篇文章中,我們先來看看最新的樹莓型號3B +以及一些新的和改進(jìn)的功能,還有更多的細(xì)節(jié)尚未公布。 請注意,這篇文章中使用的
    的頭像 發(fā)表于 04-13 09:48 ?12.6w次閱讀

    自主飛行空中機(jī)器人設(shè)計方案

    自主飛行空中機(jī)器人設(shè)計方案
    發(fā)表于 09-26 13:29

    機(jī)器人設(shè)計方案,控制系統(tǒng)設(shè)計匯總

    機(jī)器人設(shè)計方案{:7:}分享
    發(fā)表于 06-30 13:12

    請問樹莓3B/3B+和4B如何安裝OpenCV?

    樹莓3B/3B+和4B安裝OpenCV教程
    發(fā)表于 11-05 07:17

    樹莓3b的工作電流不足會有什么影響

    樹莓3b最好的工作電流是多少?樹莓3b的工作電流不足會有什么影響?
    發(fā)表于 10-11 08:16

    樹莓3B的硬件資源詳細(xì)介紹免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是樹莓3B的硬件資源詳細(xì)介紹免費下載。
    發(fā)表于 10-26 08:00 ?66次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>3B</b>的硬件資源詳細(xì)介紹免費下載

    樹莓3B的電路原理圖免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是樹莓3B的電路原理圖免費下載。
    發(fā)表于 04-22 08:00 ?121次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>3B</b>的電路原理圖免費下載

    樹莓3B上運行64位系統(tǒng)的測評詳細(xì)說明

    今天,我們團(tuán)隊感受了一下在樹莓3B 的主板上運行64bit 系統(tǒng)的感覺!那種感覺您如果有幸感受的話,您一定會說:這才是我要的樹莓
    發(fā)表于 11-21 16:17 ?12次下載

    樹莓的學(xué)習(xí)設(shè)計方案合集

    本文檔的主要內(nèi)容詳細(xì)介紹的是樹莓的學(xué)習(xí)設(shè)計方案合集免費下載包括了:AMG8833 8x8紅外熱像儀傳感器應(yīng)用附PCB驅(qū)動源碼,Arduino與樹莓
    發(fā)表于 03-11 08:00 ?12次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的學(xué)習(xí)<b class='flag-5'>設(shè)計方案</b>合集

    便攜式自動割膠機(jī)器人設(shè)計方案

    便攜式自動割膠機(jī)器人設(shè)計方案
    發(fā)表于 06-30 16:37 ?18次下載

    OpenHarmony Dev-Board-SIG專場:OpenHarmony樹莓3B移植技術(shù)分享

    OpenHarmony Dev-Board-SIG專場:OpenHarmony樹莓3B移植技術(shù)分享
    的頭像 發(fā)表于 12-28 14:47 ?2201次閱讀
    OpenHarmony Dev-Board-SIG專場:OpenHarmony<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>3B</b>移植技術(shù)分享

    OpenHarmony Dev-Board-SIG專場:開發(fā)板選型—為什么選擇樹莓3B

    OpenHarmony Dev-Board-SIG專場:開發(fā)板選型—為什么選擇樹莓3B
    的頭像 發(fā)表于 12-28 14:51 ?2166次閱讀
    OpenHarmony Dev-Board-SIG專場:開發(fā)板選型—為什么選擇<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>3B</b>

    樹莓3B/4B散熱風(fēng)扇帽

    電子發(fā)燒友網(wǎng)站提供《樹莓3B/4B散熱風(fēng)扇帽.zip》資料免費下載
    發(fā)表于 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>散熱風(fēng)扇帽

    基于樹莓3B的可樂自動售貨機(jī)

    方案介紹硬件:樹莓 3 B 型;顯示 7" 官方觸摸屏 Para Raspberry Pi;水泵 RS 385;橋 H L298N;軟件和
    發(fā)表于 12-08 17:42 ?5次下載

    基于樹莓機(jī)器人設(shè)計方案

    準(zhǔn)備樹莓和 CRICKIT Hat 1、如果你已經(jīng)安裝了 CRICKIT Hat 的 40 針連接器的轉(zhuǎn)接端子,請將其取下。 如果我們希望按鈕引線適合而不被后面板壓扁,我們需要帽子以
    發(fā)表于 10-19 12:31 ?667次閱讀
    基于<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的<b class='flag-5'>機(jī)器人設(shè)計方案</b>