Siga estas instruções para executar um código personalizado no dispositivo em resposta a comandos do Google Assistente.
Executar a amostra
Agora que você definiu uma característica e atualizou o modelo, confira se o Google Assistente está enviando um comando de ativação/desativação para a consulta adequada.
googlesamples-assistant-pushtotalk
Pressione a tecla Enter e tente a seguinte consulta:
Ativar.
Você verá as instruções a seguir na saída do console. Caso contrário, consulte as instruções de solução de problemas.
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.
Você vai encontrar onde essas instruções são mostradas no código-fonte.
Conseguir o código-fonte
Agora você está pronto para iniciar seu próprio projeto:
git clone https://github.com/googlesamples/assistant-sdk-python
Encontre o gerenciador de comandos
O arquivo pushtotalk.py
no exemplo de código usa o SDK para enviar solicitações e
receber respostas do Google Assistente.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
Pesquise a seguinte definição de gerenciador:
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')
O código em onoff()
processa o comando action.devices.commands.OnOff
. Esse
comando faz parte do esquema de característica
OnOff.
Atualmente, a definição onoff()
registra a saída para o console. Ele usa funções auxiliares em device_helpers.py
para analisar o JSON de resposta e armazenar os parâmetros de comando em variáveis para facilitar o uso. Você pode modificar esse código para fazer o que quiser no seu projeto.
Se você tiver um kit de LED, continue lendo para saber como acender o LED em resposta ao comando OnOff. Caso contrário, pule a próxima seção para aprender a adicionar mais características e gerenciadores.
Próximas etapas - Raspberry Pi
Agora que você sabe como processar o comando recebido, modifique o exemplo de código para acender um LED. Isso exigirá algum hardware adicional se você estiver usando o Raspberry Pi.
Importar o pacote GPIO
Para simplificar o acesso de software aos pinos GPIO do Rspberry Pi, instale o pacote RPi.GPIO no ambiente virtual.
pip install RPi.GPIO
Modificar o exemplo
Abra o arquivo pushtotalk.py
.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
No arquivo pushtotalk.py
, importe o módulo RPi.GPIO para controlar os pinos GPIO no Pi. Coloque a seguinte instrução perto das
outras instruções import
:
import RPi.GPIO as GPIO
Modifique o código para definir o pino de saída inicialmente para o estado de baixa lógica. Quando o comando on for recebido, defina o pin como o estado de lógica alta. Quando o comando desativado for recebido, defina o pin como no estado de baixa lógica.
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)
Salve as alterações e feche o arquivo.
Executar a amostra
Execute o exemplo de código modificado.
python pushtotalk.py
Use a mesma consulta de antes. O LED vai acender.
Isso é apenas o começo. Saiba como adicionar mais características e gerenciadores.