Polecenia z nicka

Postępuj zgodnie z tymi instrukcjami, aby uruchomić niestandardowy kod na swoim urządzeniu w w odpowiedzi na polecenia Asystenta Google.

Uruchamianie przykładu

Po zdefiniowaniu cechy i zaktualizowaniu modelu sprawdź, czy sprawdź, czy Asystent Google wysyła polecenie włączenia/wyłączenia odpowiedniego zapytania.

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

Spróbuj wykonać to zapytanie:

OK Google, włącz.

W danych wyjściowych konsoli powinny wyświetlić się instrukcje poniżej. Jeśli nie, zobacz instrukcje rozwiązywania problemów.

ON_RECOGNIZING_SPEECH_FINISHED:
  {'text': 'turn on'}
ON_DEVICE_ACTION:
  {'inputs': [{'payload': {'commands': [{'execution': [{'command': 'action.devices.commands.OnOff',
  'params': {'on': True}}], 'devices': [{'id': 'E56D39D894C2704108758EA748C71255'}]}]},
  'intent': 'action.devices.EXECUTE'}], 'requestId': '4785538375947649081'}
Do command action.devices.commands.OnOff with params {'on': True}

Informacje o tym, gdzie są one wydrukowane, znajdziesz w kodzie źródłowym.

Pobieranie kodu źródłowego

Możesz teraz rozpocząć własny projekt:

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

Znajdowanie modułu obsługi poleceń

Plik hotword.py w przykładowym kodzie używa pakietu SDK do wysyłania żądań oraz otrzymywać odpowiedzi od Asystenta Google.

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
nano hotword.py

Wyszukaj tę definicję modułu obsługi:

def process_event(event):

Obecnie funkcja ta wyświetla nazwę każdego zdarzenia Działania na urządzeniu i z następującym wierszem:

print('Do command', command, 'with params', str(params))

Ten kod obsługuje polecenie action.devices.commands.OnOff. Ten jest częścią funkcji OnOff. schemat cech. Obecnie ten kod tylko wyświetla dane wyjściowe w konsoli. Dostępne opcje zmodyfikuj ten kod, by robić na w projektach AI. Dodaj poniższy blok w poleceniu print w process_event().

print('Do command', command, 'with params', str(params)) # Add the following:
if command == "action.devices.commands.OnOff":
    if params['on']:
        print('Turning the LED on.')
    else:
        print('Turning the LED off.')

Uruchom bezpośrednio zmodyfikowany kod źródłowy, aby zobaczyć dane wyjściowe.

python hotword.py --device-model-id my-model

Użyj tego samego zapytania co wcześniej:

OK Google, włącz.

Jeśli jest podłączona dioda LED do Raspberry Pi, czytaj dalej, aby dowiedzieć się, jak zapalić diodę LED za pomocą polecenia OnOff. Jeśli nie, pomiń następną sekcję, aby dowiedzieć się, jak dodaj więcej cech i modułów obsługi.

Kolejne kroki – Raspberry Pi

Już wiesz, jak obsługiwać polecenie przychodzące, możesz więc zmodyfikować przykładowy kod aby zapalić diodę LED. Będzie to wymagać dodatkowego sprzętu, jeśli korzystasz z Malinowy Pi.

Importuj pakiet GPIO

Aby uprościć dostęp oprogramowania do złączy GPIO (wejścia/wyjściowe do zwykłych obciążeń) na Raspberry Pi, zainstaluj pakiet RPi.GPIO w środowisku wirtualnym.

pip install RPi.GPIO

Modyfikowanie próbki

Otwórz plik hotword.py.

nano hotword.py

W pliku hotword.py zaimportuj RPi.GPIO do sterowania pinami GPIO w Pi. Umieść następujące oświadczenie w pobliżu inne wyciągi import:

import RPi.GPIO as GPIO

Zmodyfikuj kod, aby ustawić początkowy kod PIN w stanie niskiego logiki. Zrób to w funkcji main(), przed przetworzeniem zdarzeń:

with Assistant(credentials, device_model_id) as assistant:
    events = assistant.start()

    device_id = assistant.device_id
    print('device_model_id:', device_model_id)
    print('device_id:', device_id + '\n')
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW)
        ...

Zmodyfikuj kod dodany na stronie process_event(). Po otrzymaniu polecenia on ustaw kod PIN w stanach wysokiego logiki. Po otrzymaniu polecenia „off” ustaw przypięcie do stanu niskiego logiki.

if command == "action.devices.commands.OnOff":
    if params['on']:
        print('Turning the LED on.')
        GPIO.output(25, 1)
    else:
        print('Turning the LED off.')
        GPIO.output(25, 0)

Zapisz zmiany i zamknij plik.

Uruchamianie przykładu

Uruchom zmodyfikowany przykładowy kod.

python hotword.py --device-model-id my-model

Użyj tego samego zapytania co poprzednio. Dioda LED powinna się włączyć.

To dopiero początek. Dowiedz się, jak dodać więcej cech i modułów obsługi.