Hogyan készítsünk egy barkácsos Google otthoni asszisztenst a Raspberry Pi segítségével

Hogyan készítsünk egy barkácsos Google otthoni asszisztenst a Raspberry Pi segítségével

A hangvezérelt asszisztensek gyorsan általánossá váltak. Sok házban van Alexa vagy Google Home, amely mindent szabályoz a világítástól a médiáig, sőt az időmérést is.





Az ezen eszközökön futó technológia-legalábbis részben-mindenki számára elérhető. A Google Segéd SDK lehetővé teszi a szolgáltatás használatát saját eszközein. Ez az oktatóanyag bemutatja, hogyan állíthatja be a Google Asszisztenst a Raspberry Pi készüléken, és hogyan aktiválhatja a hangot egy LED -en a GPIO érintkezők segítségével.





A Raspberry Pi otthoni asszisztenshez hardver szükséges

Szükséged lesz:





  1. Raspberry Pi a friss Raspbian telepítés az SD -kártyára .
  2. USB webkamera vagy mikrofon.
  3. Külső hangszóró.
  4. Áramkör a Pi LED bemutató (választható)
  5. Egy böngésző bejelentkezett a Google -fiókjába.

Jegyzet: Ennek az oktatóanyagnak a felszerelése némileg változhat. Egy tartalék USB webkamerát használtam pusztán a mikrofonjához. Bármilyen kompatibilis webkamera vagy mikrofon jól működik, és vannak Pi-kompatibilis eszközök kiterjedt listája segíteni.

Ezenkívül a 3,5 mm -es kimenetet használom hanghoz. A HDMI és más kimeneti források is működnek, bár módosítani kell az alábbi hangbeállítást.



Csatlakoztassa az USB webkamerát és a hangszórót, és állítsa be a LED áramkört, ha használja.

A hang beállítása

Ez az oktatóanyag közvetlenül követhető a Pi vagy SSH kapcsolaton keresztül a Pi -be.





Mindkét módszer a terminálon kezdődik, hogy ellenőrizze a hangbeállításokat. Használja a parancsokat arecord -l és alkalmazni -l az elérhető eszközök listázásához.

be van dugva, nem tölti az ablakokat 10

A fenti kép az USB webkamerát mutatja kártya 1 és eszköz 0 . Vegye figyelembe a kártya és az eszköz számát mind a mikrofon, mind a hangszóró kimeneténél.





Most győződjön meg arról, hogy a /home/pi könyvtárat, hozzon létre egy új fájlt, és nyissa meg nano -ban:

sudo nano .asoundrc

Ennek a könyvtárnak a tartalma attól függ, hogy milyen kártyát és eszközszámot használ. Itt választhatja ki a HDMI kimenet előnyben részesítését 3,5 mm helyett, ha szeretné.

Amikor megadta a fenti kód verzióját, nyomja meg a gombot Ctrl + X menteni és kilépni.

Tesztelje beállításait egy rövid klip felvételével és lejátszásával:

Választható lépés: Ha módosítani szeretné a mikrofon bemeneti hangerejét, nyissa meg alsamixer és nyomja meg F6 kerékpározni az eszközök között.

Ez az! A hang be van állítva.

A Google -projekt létrehozása

Nyissa meg a Pi böngészőjét, vagy ha SSH -n keresztül csatlakozik, nyissa meg helyileg a böngészőt. Navigáljon a Google Action Console és kattintson Új projekt .

Ez eltarthat néhány pillanatig. Ha befejezte, hagyja aktívvá az ablakot, és nyisson meg egy új lapot-egy pillanat múlva erre jutunk.

A Google Segéd API engedélyezése

A folytatáshoz néhány online beállításra van szükség. Navigáljon a Google Segéd API webhely és kattintson Engedélyezze .

A projekt tevékenységi engedélyeket is igényel. Irány a tiéd Tevékenység Vezérlőpult és győződjön meg arról, hogy a következő tevékenységek be vannak kapcsolva:

  • Internetes és alkalmazástevékenységek (beleértve a Chrome -előzmények jelölőnégyzetet)
  • Eszköz információ
  • Hang- és hangtevékenység

Most folytathatja az eszköz regisztrálását.

A Raspberry Pi regisztrálása

A Műveleti konzolban válassza a lehetőséget Eszköz regisztrálása a bal oldali panelről. Alatt Termék hozzon létre egy könnyen megjegyezhető nevet eszközének. A gyártó neve nem fontos (de ott kell lennie), és válassza ki Automatikus a készülék típusához.

Kattintson Regisztrációs modell , majd a következő képernyőn kattintson a gombra Töltse le az OAuth 2.0 hitelesítő adatokat . Ez letölt egy JSON fájlt a számítógépére. Ha nem ismeri a JSON fájlokat, ne aggódjon, de megtanulni a JSON használatát érdemes tenni a jövőért!

A hivatalos Google -útmutató azt javasolja, hogy helyezze át a fájlt ide /home/pi , ezért nyissa meg a fájlkezelőt, és tegye ezt most.

Extra lépés SSH felhasználók számára:

Ha SSH -t használ, akkor a JSON fájlt a helyi gépére töltötte le a Pi helyett. Az átvitelhez nyisson meg egy külön terminál ablakot SSH kapcsolat nélkül. Ebben az ablakban másolja át az ügyfél titkos JSON -fájlját a következő paranccsal:

scp ~/Downloads/client_secret_client-id.json pi@raspberry-pi-ip-address:/home/pi/

Cserélje le a „málna-pi-ip-címet” a Pi ip-címére, és ne felejtse el a kettőspontot az útvonal előtt. Ha a JSON fájlt egy másik helyre töltötte le, módosítsa a helyi útvonalat, hogy tükrözze ezt. Írja be jelszavát, amikor a rendszer kéri, és a fájl átmásolódik a Pi saját könyvtárába.

Váltson vissza az SSH terminálra, és navigáljon a következőhöz /home/pi . Belép ls -l a könyvtárban lévő fájlok listázásához. Látnia kell az átvitt ügyfél titkos JSON -fájlját.

Az SDK telepítése

A Google azt javasolja, hogy Python virtuális környezetben dolgozzanak. Hozzon létre egy új virtuális környezetet ún env .

Ha még soha nem tette ezt, akkor ez az oktatóanyag segít megtanulni a Python virtuális környezetek használatát.

Telepítse a Pip, a Setuptools és a Wheel legújabb verzióit, és aktiválja a virtuális környezetet:

env/bin/python -m pip install --upgrade pip setuptools wheel
source env/bin/activate

A Google Segédnek vannak olyan függőségei, amelyeket most telepítenie kell a virtuális környezetbe.

sudo apt-get install portaudio19-dev libffi-dev libssl-dev libmpg123-dev

Végül telepítse a Google Segéd SDK -t, a Mintákat és az OAuth eszközt.

python -m pip install --upgrade google-assistant-library
python -m pip install --upgrade google-assistant-sdk[samples]
python -m pip install --upgrade google-auth-oauthlib[tool]

Ez minden, ami szükséges a felálláshoz és a futáshoz. Ha bármelyik telepítés meghiúsul, alaposan ellenőrizze a helyesírást és a távolságot.

A Raspberry Pi hitelesítése

Használja a google-auth-oauthlib [eszköz] a korábban letöltött hitelesítő JSON fájllal a Raspberry Pi hitelesítéséhez.

google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype
--scope https://www.googleapis.com/auth/gcm
--save --headless --client-secrets /home/pi/YOUR_CLIENT_SECRET_ID.json

A YOUR_CLIENT_SECRET_ID azonosítót le kell cserélnie a letöltött fájlra, ezért érdemes először a fájlnevet másolni. Ennek az ügyfél -azonosítónak helyesnek kell lennie. Ne változtassa meg a fájlnevet!

Kapnia kell egy linket tartalmazó üzenetet, amelyben fel kell kérnie, hogy illesszen be egy engedélyezési kódot.

A linkre kattintva megnyílik a böngésző. A rendszer kéri, hogy engedélyezze az eszközt Google -fiókjában. Másolja ki a következő jogosultsági kódot, és illessze be a terminál ablakába.

Meg kell kapnia egy megerősítő olvasatot Mentett hitelesítő adatok: /home /pi… , azaz a Pi sikeresen engedélyezett a Google -fiókjával.

Tesztelés

Most, hogy minden a helyén van, itt az ideje, hogy tesztelje a Pi Google Segédet. Futtassa az asszisztenst ezzel a paranccsal:

googlesamples-assistant-hotword --project-id my-dev-project --device-model-id my-model

Cserélnie kell az én-dev-projektem a projekt azonosítójával (az Action Console Beállítások fogaskereke alatt található). A ti eszköz-modell-azonosító a Műveleti konzol Eszköz regisztrálása szakaszában található.

Próbáld ki! Mondja „OK Google”, és tegyen fel egy kérdést. A válasz kimenetén láthatja a program kimenetét a terminálon:

Ez az! A Google Segéd most a Raspberry Pi -n fut. Ne feledje, hogy ha a kimeneti hangerő kissé kicsi, akkor azt mondással módosíthatja 'Hé Google, állítsd fel a hangerőt 80%-ra.'

Bónusz: Voice Activated GPIO

Lehetőség van fények vezérlésére Arduino és Siri segítségével, de van egy egyszerűbb módszer. Ha beállít egy LED -et, akkor a Google Segéddel vezérelheti azt hangjával.

A Google Asszisztens beállítása a GPIO tűkkel való használatra viszonylag egyszerű, de néhány további lépést igényel. Nyissa meg a Google Action Console -t, és keresse meg eszközét az Eszköz regisztrálása alatt. Kattintson rá, és nyissa meg a tulajdonságok menüt:

Fordítsa el a Be ki vonás, és kattintson Megment.

Most győződjön meg arról, hogy bent van env virtuális környezetben klónozza az SDK egyik verzióját a Pi -re a git használatával:

git clone https://github.com/googlesamples/assistant-sdk-python

Mivel ez egy virtuális környezet, a továbblépés előtt telepítenie kell az RPi.GPIO szoftvert.

pip install rpi.gpio

Most keresse meg a mappát, amely a hotword.py forgatókönyv.

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library

A forgatókönyv módosítása

Hozzá kell adnia néhány sort a hotword.py szkripthez, ezért nyissa meg a nano szerkesztőben:

nano hotword.py

Az importálási nyilatkozatok alatt adja hozzá a sajátját az RPi.GPIO számára.

import RPi.GPIO as GPIO

Keresse meg a process_event módszer. A 66. sorban távolítsa el vagy kommentálja a nyomtatási utasítást, és adjon hozzá egy if utasítást a LED vezérléséhez.

#print('Do command', command, 'with params', str(params))
if command == 'action.devices.commands.OnOff':
if params['on']:
print('---------------')
print('Led turned on')
print('---------------')
GPIO.output(18, GPIO.HIGH)
else:
print('---------------')
print('Led turned off')
print('---------------')
GPIO.output(18, GPIO.LOW)

Ez a logika vezérli a LED -et, de egyelőre nincs konfigurálva a kimenetre. Állítsa be a fő() függvény a process_event metódus meghívása előtt.

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT, initial=GPIO.LOW)

Most a GPIO pin kimenetre van állítva, és alacsony állapotban inicializál. Mentés és kilépés. A módosított szkriptet futtathatja argumentumként a modell-azonosító számával (megtalálható az Action Console-ban).

python hotword.py --device-model-id YOUR-MODEL-ID-HERE

A terminál kimenete ugyanaz, mint korábban, és az asszisztens alapkivitelben működik. Most azonban, amikor azt mondja, hogy „OK Google, kapcsolja be”, új kimenetet fog látni:

Jegyzet: A fenti kép kivágása megtörtént, csak a kérelmet meghallgató asszisztens látható, és a nyomtatott utasítás a szkripthez lett hozzáadva.

Látnia kell, hogy a LED is világít!

hogyan lehet megváltoztatni a Windows indítási hangját Windows 10

Saját DIY Raspberry Pi Google otthoni asszisztens

Ez a projekt jó bevezetés a Google API -szolgáltatások használatához. Most, hogy rendelkezik Google Segéd eszközzel, próbálja ki a legjobb Google Home parancsokat-néztünk néhányat nagyszerű Google Home mini játékok .

Részvény Részvény Csipog Email A Windows PC tisztítása a parancssor használatával

Ha a Windows PC -n kevés a tárhely, törölje ki a szemetet ezekkel a gyors parancssori segédprogramokkal.

Olvassa tovább
Kapcsolódó témák
  • DIY
  • Raspberry Pi
  • Intelligens hubok
  • Ledes világítás
  • Google Segéd
  • DIY projekt oktatóanyagok
A szerzőről Ian Buckley(216 megjelent cikk)

Ian Buckley szabadúszó újságíró, zenész, előadó és videó producer, Berlinben, Németországban él. Amikor éppen nem ír vagy a színpadon, barkácsol elektronikával vagy kóddal, abban a reményben, hogy őrült tudós lesz.

Bővebben: Ian Buckley

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide
Kategória Diy