Segui queste istruzioni per eseguire codice personalizzato sul tuo dispositivo in risposta ai comandi dell'Assistente Google.
Esegui l'esempio
Ora che hai definito un tratto e aggiornato il modello, seleziona assicurati che l'Assistente Google restituisca un comando On/Off per il query.
googlesamples-assistant-pushtotalk
Premi il tasto Invio e prova la seguente query:
Attiva.
Nell'output della console dovresti vedere le seguenti istruzioni. In caso contrario, vedi le istruzioni per la risoluzione dei problemi.
INFO:root:Recording audio request.
INFO:root:End of audio request detected
INFO:root:Transcript of user request: "turn on".
INFO:root:Playing assistant response.
INFO:root:Turning device on
INFO:root:Waiting for device executions to complete.
INFO:root:Finished playing assistant response.
Troverai dove vengono stampate queste istruzioni nel codice sorgente.
Recupera il codice sorgente
Ora è tutto pronto per iniziare il tuo progetto:
git clone https://github.com/googlesamples/assistant-sdk-python
Trovare il gestore di comandi
Il file pushtotalk.py
nel codice campione utilizza l'SDK per inviare richieste e
ricevere risposte dall'Assistente Google.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
Cerca la seguente definizione di gestore:
device_handler = device_helpers.DeviceRequestHandler(device_id)
@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
if on:
logging.info('Turning device on')
else:
logging.info('Turning device off')
Il codice in onoff()
gestisce il comando action.devices.commands.OnOff
. Questo
fa parte del comando OnOff
trait.
Attualmente, la definizione di onoff()
registra l'output nella console. Usa l'helper
funzioni in device_helpers.py
per analizzare il codice JSON della risposta e archiviare il comando
in variabili per facilità d'uso. Puoi modificare questo codice per fare qualsiasi cosa
che vuoi per il tuo progetto.
Se disponi di un kit LED, continua a leggere per scoprire come accendere il LED di conseguenza. al comando OnOff. In caso contrario, salta la sezione successiva per scoprire come e aggiungere altri trait e gestori.
Passaggi successivi: Raspberry Pi
Ora che sai come gestire il comando in entrata, modifica il codice campione per accendere un LED. Sarà necessario hardware aggiuntivo se utilizzi Raspberry Pi.
Importa il pacchetto GPIO
Per semplificare l'accesso del software ai pin di ingresso/uscita per uso generico (GPIO) su Raspberry Pi, installa l'app RPi.GPIO nell'ambiente virtuale.
pip install RPi.GPIO
Modifica l'esempio
Apri il file pushtotalk.py
.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
Nel file pushtotalk.py
, importa il file RPi.GPIO
per controllare i pin GPIO su Pi. Inserisci la seguente affermazione vicino a
altre istruzioni import
:
import RPi.GPIO as GPIO
Modifica il codice per impostare inizialmente il pin di output sullo stato logica bassa. Quando al comando, impostare il pin sullo stato logica elevata. Quando , impostare il pin sullo stato logico basso.
device_handler = device_helpers.DeviceRequestHandler(device_id)
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW)
@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
if on:
logging.info('Turning device on')
GPIO.output(25, 1)
else:
logging.info('Turning device off')
GPIO.output(25, 0)
Salva le modifiche e chiudi il file.
Esegui l'esempio
Esegui il codice campione modificato.
python pushtotalk.py
Utilizza la stessa query di prima. Il LED dovrebbe accendersi.
E questo è solo l'inizio. Scopri come aggiungere altri trait e gestori.