Trasforma il tuo Raspberry Pi in Google Home fatto in casa

fonte

Google Home è un bellissimo dispositivo con Google Assistant integrato - Un assistente personale digitale all'avanguardia di Google. - che puoi posizionare ovunque a casa tua e farà cose incredibili per te. Salva i tuoi promemoria, le liste della spesa, le note e, soprattutto, risponde alle tue domande e domande in base al contesto delle conversazioni.

In questo articolo imparerai a trasformare il tuo Raspberry Pi in un dispositivo Google Home fatto in casa che è,

  • Realizzato da Google Assistant.
  • Voce attivata. Non è necessario premere alcun pulsante, basta dire "Ok Google" o "Hey Google" e porre la tua domanda.
  • Ci sarà un indicatore LED che rimarrà acceso ogni volta che la conversazione tra l'utente e l'Assistente Google è in corso.
  • Può essere inizializzato all'avvio, quindi non è necessario effettuare il login ed eseguire lo script dal terminale dopo il riavvio.

Quindi iniziamo.

Di quali cose avrai bisogno?

  • Raspberry Pi modello 2 o 3.
  • Scheda MicroSD con Raspbian su di essa (minimo 8 GB consigliati).
  • Alimentatore per alimentare il tuo lampone pi. (Funzionerà qualsiasi caricatore mobile USB con almeno 5 V, uscita 2 A).
  • Microfono USB (poiché Raspberry Pi non ha un microfono incorporato. Ho usato MI-305).
  • Un oratore.
  • Un LED.
  • Un paio di fili per collegare i LED.

Una volta che hai tutte queste cose, accedi al desktop Raspbian e vai ai seguenti passaggi uno per uno.

Passaggio -1: impostazione del microfono USB.

  • Raspberry Pi non ha microfoni incorporati. Se si desidera registrare l'audio, è necessario collegare un microfono USB.
  • Collega il tuo microfono USB a uno degli slot USB di Raspberry Pi.
  • Vai al terminale e digita il seguente comando.
  • Questo comando elencherà tutti i dispositivi di registrazione audio disponibili. Dovresti ottenere un risultato inferiore.

Come puoi vedere il tuo dispositivo USB è collegato alla scheda 1 e l'id del dispositivo è 0. Raspberry Pi riconosce la scheda 0 come scheda audio interna (che è bcm2835) e altre schede audio esterne come schede audio esterne.

  • Ora cambiamo le configurazioni audio. Digitare il comando seguente per modificare il file asound.conf.
  • Aggiungi le righe sottostanti nel file. Quindi premere Ctrl + X e successivamente Y per salvare il file.

Questo imposterà il tuo microfono esterno (vedi pcm.mic) come dispositivo di acquisizione audio (vedi in pcm! .Default) e la tua scheda audio incorporata (scheda 0) come dispositivo di altoparlanti.

  • Crea un nuovo file chiamato .asoundrc nella directory home (/ home / pi) eseguendo il comando seguente e incolla le configurazioni precedenti (che hai aggiunto nel file /etc/asound.conf.) A questo file.

Passaggio -2: impostazione dell'uscita degli altoparlanti.

  • Collega l'altoparlante al jack per cuffie da 3,5 mm di Raspberry Pi.
  • Esegui sotto il comando per aprire la schermata di configurazione di raspberry pi.
  • Vai a Opzioni avanzate> Audio e seleziona il dispositivo di output desiderato.

Passaggio -3: test del microfono e degli altoparlanti.

  • Per testare il tuo altoparlante, esegui il comando seguente nel terminale. Questo riprodurrà un suono di prova. Premi Ctrl + C quando hai finito. Se non riesci a sentire il suono di prova, controlla la connessione degli altoparlanti.
  • Per testare il microfono, eseguire il comando seguente. Questo registrerà una breve clip audio. Se si verificano errori, controllare di nuovo il passaggio 1.
  • Riproduci l'audio registrato e conferma che tutto funzioni correttamente emettendo il seguente comando.

Va bene. Il nostro hardware è pronto.

Passaggio -4: scarica i pacchetti richiesti e configura l'ambiente Python:

  • Innanzitutto, aggiorna il tuo sistema operativo.
  • Esegui sotto il comando uno per uno nel terminale.

Ciò creerà l'ambiente Python 3 (poiché la libreria di Google Assistant funziona solo su Python 3.x) nel tuo Raspberry Pi e installerà le dipendenze richieste.

  • Attiva l'ambiente Python.
  • Ora installa il pacchetto SDK di Google Assistant, che contiene tutto il codice necessario per far funzionare Google Assistant su Raspberry Pi. Dovrebbe scaricare Google Assistant Library e la demo.

Passaggio -5: abilitazione del progetto cloud di Google Assistant.

  • Apri Google Cloud Console e crea un nuovo progetto. (Puoi nominarlo come preferisci.) L'account con cui accedi verrà utilizzato per inviare query all'Assistente Google e ottenere la tua risposta personalizzata.
  • Vai al gestore API e abilita l'API Assistant Google.
  • - Assicurati di abilitare Attività web e app, Informazioni dispositivo e Attività audio e vocale nei Controlli attività per l'account.
  • - Vai su "Credenziali" e imposta la schermata dei contenuti di OAuth.
  • Vai alla scheda "Credenziali" e crea un nuovo ID client OAuth.
  • Seleziona il tipo di applicazione come "Altro" e dai il nome della chiave.
  • Scarica il file JSON che memorizza le informazioni sulla chiave OAuth e tienilo al sicuro.

Passaggio -6: autenticazione di Raspberry Pi.

  • Installa lo strumento di autorizzazione eseguendo il comando seguente.
  • Eseguire lo strumento eseguendo il comando seguente. Assicurati di fornire il percorso corretto per il file JSON scaricato nel passaggio 5.
  • Dovrebbe essere visualizzato come mostrato di seguito. Copia l'URL e incollalo in un browser (questo può essere fatto sui tuoi sviluppatori

Se invece visualizza: InvalidGrantError, è stato inserito un codice non valido. Riprova.

Passaggio -7: impostazione dell'indicatore LED.

  • Collega il tuo LED tra il pin 25 GPIO e la terra.
  • L'idea qui è semplice. Imposteremo il pin GPIO 25 come pin di uscita. L'SDK di Google Assistant fornisce un EventType di richiamata.ON_CONVERSATION_TURN_STARTED quando inizia la conversione con l'Assistente Google. A quel punto, imposteremo il GPIO 25 in modo che accenda il LED. Ogni volta che la conversazione termina EventType.ON_CONVERSATION_TURN_FINISHED viene ricevuto il callback. A quel punto, ripristineremo GPIO 25 per spegnere il LED.

Passaggio -8: Inizializzazione all'avvio completata:

  • Ogni volta che il tuo Raspberry Pi completa il processo di avvio, eseguiremo uno script Python che autenticherà e inizializzerà l'Assistente Google all'avvio.
  • Per prima cosa aggiungi il pacchetto RPi.GPIO per aggiungere il supporto GPIO usando il seguente comando.
  • Vai alla directory utente. Crea nuovo file python main.py.
  • Scrivi il seguente script e salva il file.
  • Ora crea uno script di shell che inizializzerà ed eseguirà l'Assistente Google.
  • Incolla le righe sottostanti nel file e salva il file.
  • Concedere l'autorizzazione di esecuzione.

Puoi eseguire google-assistant-init.sh per avviare l'Assistente Google in qualsiasi momento.

Vediamo come è possibile avviare l'Assistente Google durante l'avvio.

  • Per abilitare l'Assistente Google all'avvio ci sono due modi. Vediamo ciascuno di loro.

1. Avvio automatico con Pixel Desktop all'avvio:

  • Ciò avvierà l'Assistente Google non appena si avvierà il desktop Pixel. Assicurati di avere l'avvio "Desktop" selezionato nelle configurazioni Raspberry Pi.
  • Digita sotto il comando.
  • Aggiungi quanto segue dopo @xscreensaver -no-splash
  • Salvare ed uscire premendo "Ctrl + X" e quindi "Y".

2. Avvio automatico con CLI all'avvio:

  • Questo avvierà l'Assistente Google se hai impostato l'avvio della CLI. Assicurati di avere l'avvio "CLI" selezionato nelle configurazioni Raspberry Pi.
  • Digita sotto il comando.
  • Aggiungi sotto la riga alla fine del file.
  • Salvare ed uscire premendo "Ctrl + X" e quindi "Y".
È tutto!!! "Home Google fatto in casa" è ora pronto. Riavvia il dispositivo e fai la tua prima domanda al tuo Assistente Google.

Conclusione:

Puoi fare molte cose quotidiane con Google Home. Se vuoi eseguire le tue attività personalizzate come spegnere la luce, aprire la porta, puoi farlo con l'integrazione di Google Actions nel tuo Assistente Google. In caso di problemi con l'avvio di Google Assistant, lascia un commento qui sotto. Proverò a risolverli.

~ Se l'articolo ti è piaciuto, fai clic su in basso in modo che più persone possano vederlo! Inoltre, puoi seguirmi su Medium o sul mio blog, in modo da ottenere aggiornamenti sui miei articoli futuri !! ~