Come costruire un Google Home Assistant fai da te con Raspberry Pi

fai da te-casa-assistant-Raspi

Gli assistenti a comando vocale sono diventati rapidamente comuni. Molte case hanno un Alexa o Google Home che controllano tutto, dall'illuminazione ai media, e persino il cronometraggio.

La tecnologia su cui girano questi dispositivi è disponibile, almeno in parte, a tutti. L'Assistente SDK di Google ti consente di utilizzare il servizio sui tuoi dispositivi. Questo tutorial spiega come impostare l'Assistente Google sul tuo Raspberry Pi e attivare la voce di un LED tramite pin GPIO.

Hardware richiesto per un assistente domiciliare Raspberry Pi

Raspberry Pi Google Assistant Materiale richiesto

Avrai bisogno:

  1. Raspberry Pi con una nuova installazione di Raspbian sulla scheda SD .
  2. Webcam o microfono USB.
  3. Altoparlante esterno.
  4. Circuito dal tutorial sul LED Pi (opzionale)
  5. Un browser firmato nel tuo account Google.

Nota: l'attrezzatura per questo tutorial può variare leggermente. Ho usato una webcam USB di ricambio esclusivamente per il suo microfono. Qualsiasi webcam o microfono compatibile dovrebbe funzionare correttamente e sono disponibili numerosi elenchi di dispositivi compatibili con Pi .

Inoltre, sto usando l'uscita da 3,5 mm per l'audio. Anche l'HDMI e altre sorgenti di uscita funzioneranno, anche se sarà necessario apportare delle modifiche alla configurazione del suono di seguito.

Collegare la webcam USB e l'altoparlante e configurare il circuito LED se lo si utilizza.

Impostazione del suono

Questo tutorial può essere seguito direttamente sul Pi o tramite una connessione SSH nel Pi.

Entrambe le modalità iniziano nel terminale, per controllare le impostazioni audio. Usa i comandi arecord -l e aplay -l per elencare i dispositivi disponibili.

Controlla i dispositivi di riproduzione e registrazione

L'immagine sopra mostra la webcam USB come scheda 1 e dispositivo 0 . Prendi nota dei numeri di scheda e dispositivo per l'uscita del microfono e dell'altoparlante.

Ora, assicurati di essere nella directory / home / pi , crea un nuovo file e aprilo in nano:

 sudo nano .asoundrc 

Il contenuto di questa directory varia in base al numero di scheda e dispositivo che si sta utilizzando. È qui che puoi scegliere di favorire l'uscita HDMI anziché 3,5 mm se lo desideri.

file di configurazione asoundrec per microfono e altoparlante

Quando hai inserito la tua versione del codice sopra, premi Ctrl + X per salvare e uscire.

Verifica la tua configurazione registrando e riproducendo una breve clip:

Effettua una registrazione di prova per verificare la tua configurazione

Passaggio facoltativo: se desideri modificare il volume di ingresso del microfono, apri alsamixer e premi F6 per passare da un dispositivo all'altro.

Questo è tutto! Il suono è impostato.

Creazione del progetto Google

Apri il browser di Pi, in alternativa, se sei connesso tramite SSH, apri un browser localmente. Accedi a Google Action Console e fai clic su Nuovo progetto .

Crea un nuovo progetto Google

Questo potrebbe richiedere alcuni istanti. Al termine, lascia la finestra attiva e apri una nuova scheda: ci arriveremo tra poco.

Abilitazione dell'API Assistente Google

Ci sono alcuni aggiustamenti online che devi fare per continuare. Accedi al sito Web dell'API Assistente Google e fai clic su Abilita .

Abilita l'API di Google Assistant

Il progetto richiede anche permessi di attività. Vai al pannello Controllo attività e assicurati che le seguenti attività siano attivate:

  • Attività web e app (inclusa la casella di controllo Cronologia di Chrome)
  • Informazioni sul dispositivo
  • Attività vocale e audio

Modifica delle impostazioni dell'attività di Google

Ora puoi passare alla registrazione del dispositivo.

Registrazione del tuo Raspberry Pi

Di nuovo nella Console azioni, seleziona Registrazione dispositivo dal pannello di sinistra. Sotto Prodotto crea un nome facile da ricordare per il tuo dispositivo. Il nome del produttore non è importante (ma deve essere presente) e selezionare Auto per il tipo di dispositivo.

Registra il tuo Pi come un modello

Fare clic su Registra modello e nella schermata successiva fare clic su Scarica credenziali OAuth 2.0 . Questo scarica un file JSON sul tuo computer. Se non hai familiarità con i file JSON, non preoccuparti, ma imparare a usare JSON vale la pena farlo per il futuro!

La guida ufficiale di Google consiglia di spostare il file in / home / pi , quindi apri il file manager e fallo ora.

Passaggio aggiuntivo per gli utenti SSH:

Se si utilizza SSH, il file JSON verrà scaricato nella macchina locale anziché in Pi. Per trasferirlo, apri una finestra di terminale separata senza connessione SSH. Da questa finestra, copia il file JSON segreto del client usando questo comando:

 scp ~/Downloads/client_secret_client-id.json [email protected]:/home/pi/ 

Sostituisci "raspberry-pi-ip-address" con l'indirizzo IP del tuo Pi e non dimenticare i due punti prima del percorso. Se hai scaricato il file JSON in un'altra posizione, modifica il percorso locale per riflettere questo. Immettere la password quando richiesto e il file verrà copiato nella directory home di Pi.

Copia l'ID segreto Cient sul PI

Ritorna al terminale SSH e vai a / home / pi . Immettere ls -l per elencare i file nella directory. Dovresti vedere il file JSON segreto client trasferito.

Installazione dell'SDK

Google consiglia di lavorare in un ambiente virtuale Python. Crea un nuovo ambiente virtuale chiamato env .

Se non lo hai mai fatto prima, questo tutorial ti aiuterà a imparare come usare gli ambienti virtuali Python .

Installa le ultime versioni di Pip, Setuptools e Wheel e attiva il tuo ambiente virtuale:

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

Google Assistant ha alcune dipendenze che dovresti installare nell'ambiente virtuale ora.

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

Infine, installa lo strumento Google Assistant SDK, Samples e OAuth.

 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] 

Questo è tutto ciò che serve per iniziare. Se una qualsiasi installazione fallisce, controllare accuratamente l'ortografia e la spaziatura.

Autenticare il Raspberry Pi

Utilizza google-auth-oauthlib [tool] con il file JSON credenziale scaricato in precedenza per autenticare il tuo Raspberry Pi.

 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 

Dovrai sostituire YOUR_CLIENT_SECRET_ID con il file scaricato, quindi vale la pena copiare prima il nome del file. Questo ID cliente deve essere corretto. Non cambiare il nome del file!

Dovresti ricevere un messaggio con un link, chiedendoti di incollare un codice di autorizzazione.

Generazione del link Autorizzazione dalla riga di comando.

Facendo clic sul collegamento si apre il browser. Ti verrà richiesto di abilitare il dispositivo sul tuo account Google. Copia il codice di autorizzazione che segue e incollalo nuovamente nella finestra del terminale.

Dovresti ricevere una conferma di lettura delle credenziali salvate: / home / pi … , il che significa che Pi è stato autorizzato correttamente con il tuo account Google.

Provalo

Ora che tutto è a posto, è tempo di testare il tuo Pi Google Assistant. Esegui l'assistente con questo comando:

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

Sarà necessario sostituire my-dev-project con il tuo ID progetto (che si trova sotto le Impostazioni a ruota dentata della Console azioni). L' ID modello del dispositivo è elencato nella sezione Registrazione dispositivo della Console azioni.

Provalo! Dì "OK Google" e fai una domanda. Puoi vedere l'output del programma nel terminale mentre ascolti la risposta:

Uscita terminale per Assistente Google

Questo è tutto! Google Assistant è ora in esecuzione sul tuo Raspberry Pi. Tieni presente che se il volume di output è un po 'basso, puoi modificarlo dicendo "Ehi Google, aumenta il volume fino all'80%".

Bonus: GPIO attivato dalla voce

È possibile controllare le luci con un Arduino e Siri , ma esiste un metodo più semplice. Se imposti un LED, puoi utilizzare l'Assistente Google per controllarlo con la tua voce.

Configurare Google Assistant per lavorare con i pin GPIO è relativamente semplice, ma richiede alcuni passaggi aggiuntivi. Vai alla Google Action Console e trova il tuo dispositivo in Registrazione dispositivo. Fare clic su di esso e aprire il menu Tratti:

Attivazione del tratto di OnOff Assistant

Attiva la caratteristica OnOff e fai clic su Salva.

Ora assicurati di essere all'interno dell'ambiente virtuale env , clonare una versione dell'SDK sul tuo Pi usando git:

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

Poiché si tratta di un ambiente virtuale, è necessario installare RPi.GPIO prima di andare avanti.

 pip install rpi.gpio 

Ora vai alla cartella contenente lo script hotword.py .

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

Modifica dello script

Dovrai aggiungere alcune righe allo script hotword.py, quindi aprilo nell'editor nano:

 nano hotword.py 

Sotto le istruzioni di importazione, aggiungi il tuo per RPi.GPIO.

 import RPi.GPIO as GPIO 

Cerca il metodo process_event . Alla riga 66, rimuovere o commentare la dichiarazione di stampa e aggiungere un'istruzione if per controllare il LED.

 #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) 

Questa logica controlla il LED, ma finora non è configurato per l'output. Impostalo nella funzione main () prima che venga chiamato il metodo process_event.

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

Ora il pin GPIO è impostato per l'output e si inizializza in uno stato basso. Salva ed esci. È possibile eseguire lo script modificato passando il numero id del modello (trovato nella Action Console) come argomento.

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

L'uscita del terminale è la stessa di prima e l'assistente funzionerà come standard. Ora, tuttavia, quando pronunci "OK Google, attiva", vedrai un nuovo risultato:

Messaggio terminale che mostra l'istruzione di stampa "LED acceso"

Nota: l'immagine sopra è stata ritagliata, mostrando solo l'assistente che ha ascoltato la richiesta e l'istruzione di stampa aggiunta allo script.

Dovresti vedere anche il LED acceso!

LED attivato dalla voce.

Il tuo fai da te Home Raspberry Pi Google Home Assistant

Questo progetto è una buona introduzione all'utilizzo dei servizi dell'API di Google. La modifica del codice di esempio di Google aiuta anche a imparare le basi di Python .

Con questo tutorial come base, puoi collegare l'Assistente PI ad altri progetti DIY Raspberry Pi e costruirti una casa intelligente a comando vocale!

Leggi l'articolo completo: Come costruire un Google Home Assistant fai-da-te con Raspberry Pi

Fonte: makeuseof.com

Precedente Cibo volante: Uber ha fissato una data obiettivo per utilizzare i droni per la consegna dei pasti Successivo 7 risultati di ricerca di Google Dataset stupefacenti che puoi utilizzare ora

Rispondi