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.