Dzisiaj opiszę jak zainstalować Google Assistant na Rasberry Pi Zero i Pi 3 na Raspbianie Stretch z dnia 18 kwietnia 2018.
Do budowy będą potrzebne:
1. Rasberry Pi Zero W lub Pi 3 z kartą micro SD
2. Karta dźwiękowa USB
3. Mikrofon z wtykiem mały jack
4. Układ wzmacniacza PAM8403 z małym głośnikiem
5. Wtyk mały jack stereo z przewodem
6. Zasilacz do Rasberry Pi
7. Przejściówka wtyk micro USB - gniazdo USB

Schemat podłączenia.

Wyjścia Rasberry Pi Zero.

Na czas konfiguracji będą jeszcze potrzebne klawiatura, myszka USB, przewód HDMI.
Obraz systemu pobieramy z tej strony -> Link
Po pobraniu rozpakowujemy go i będziemy mieć obraz systemu: 2018-04-18-raspbian-stretch.img
Wgrywamy go na kartę programem Win32 Disk Imager, który jest dostępny pod tym linkiem -> Link
Po uruchomieniu Win32 Disk Imager w Plik obrazu wybieramy pobrany obraz 2018-04-18-raspbian-stretch.img

Klikamy Zapisz.

Wybieramy Yes i rozpocznie się zapis obrazu na kartę SD.

Po zakończeniu zapisu powinien wyświetlić się Zapis pomyślny, klikamy OK i wkładamy kartę SD do Raspberry Pi.
Podłączamy Raspberry Pi do telewizora lub monitora przewodem HDMI, podłączamy myszkę i klawiaturę na USB, kartę dźwiękową USB i na końcu zasilanie.
Uruchomi się Raspbian Stretch.
Pierwszą rzeczą jaką zrobimy, to połączmy się po Wifi z domową siecią.
U góry po prawej stronie znajduje się ikonka połączeń sieciowych, klikamy Turn On Wi-Fi, aby włączyć Wifi w Raspberry Pi.
Powinno wykryć naszą domową sieć Wifi, wpisujemy hasło i powinniśmy mieć połączenie z Wifi.

Możemy ustawić ustawienia regionalne jak język, klawiatura itd... w Raspberry Pi Configuration

Dokonujemy aktualizację systemu, otwieramy terminal.

Wpisujemy:
sudo apt-get update
oraz
sudo apt-get upgrade
restartujemy Raspberry Pi poleceniem:
sudo reboot
Gdy mamy już zaktualizowany system, możemy przystąpić do instalacji Google Assistant.
Jest to opisane po angielsku na stronie -> Link
Najpierw kopiujemy pliki ze strony, która podałem wcześniej, w terminalu wpisujemy:
sudo apt-get install git
git clone https://github.com/shivasiddharth/GassistPi
Ustawiamy odpowiednia kartę dźwiękową, klikamy w ikonkę głośnika u góry po prawej prawym klawiszem myszy i zaznaczamy elementy sterujące dla odtwarzania i nagrywania.

Instalujemy obsługę karty dźwiękowej USB i robimy test:
sudo chmod +x /home/pi/GassistPi/audio-drivers/USB-DAC/scripts/install-usb-dac.sh
sudo /home/pi/GassistPi/audio-drivers/USB-DAC/scripts/install-usb-dac.sh
speaker-test
Jeżeli wszystko przebiegnie dobrze to będziemy słyszeć szum z głośnika.
Teraz otwieramy przeglądarkę internetową, wpisujemy adres www.google.pl i logujemy się do naszego konta google

Następnie wpisujemy adres w przeglądarce:
https://console.actions.google.com/?pli=1

Klikamy Add/import project
Zmieniamy kraj na Polskę, wpisujemy nazwę i klikamy Create project

Wybieramy Device registration

Teraz otwieramy stronę:
https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview
Klikamy Włącz

Teraz otwieramy stronę:
https://myaccount.google.com/activitycontrols
Włączamy wszystkie opcje

Teraz otwieramy:
https://console.actions.google.com/
Wybieramy nasz projekt, przechodzimy do Advanced Options i klikamy Device registration

Klikamy Register Model

Wpisujemy nazwę dowolną i wybieramy rodzaj dowolny.

Teraz klikamy Download.

Klikamy Next i dalej Skip.
Teraz otwieramy terminal i wpisujemy:
scp ~/Downloads/credentials.json pi@raspberry-pi-ip-address:/home/pi/
gdzie: raspberry-pi-ip-address jest adres ip raspberry pi
U mnie będzie to:
scp ~/Downloads/credentials.json pi@192.168.3.14:/home/pi/

Wpisujemy: yes

Następnie wpisujemy hasło do Raspberry Pi

Teraz w terminalu wpisujemy:
Dla Raspberry Pi 3:
sudo chmod +x /home/pi/GassistPi/scripts/gassist-installer-pi3.sh
sudo /home/pi/GassistPi/scripts/gassist-installer-pi3.sh
Dla Raspberry Pi Zero:
sudo chmod +x /home/pi/GassistPi/scripts/gassist-installer-pi-zero.sh
sudo /home/pi/GassistPi/scripts/gassist-installer-pi-zero.sh
Wpisujemy pełną nazwę pliku json i ścieżkę: /home/pi/credentials.json
Dalej nazwę naszego projektu i Id model, jest to widoczne po wybraniu naszego wcześniej utworzonego projektu na stronie:
https://console.actions.google.com/
Klikamy w nasz projekt i w menu po lewej Device registration

Po wybraniu projektu mamy nazwę i Id model

Jak widać u mnie nazwa to Voice i model id: voice-166811-voice-pws8rb
Instalacja trochę potrwa i na końcu instalacji wyświetli się adres strony internetowej https:// , kopiujemy do przegladarki
Wybieramy nasze konto Google i klikamy Zezwól, wyświetli się kod, kopiujemy go do terminala i wciskamy Enter.
Na końcu powinien uruchomić się asystent
U mnie pojawił się błąd i było wymagane skopiowanie danych z Spotify.
Możemy przeprowadzić test działania wpisując w terminalu:
/home/pi/env/bin/python -u /home/pi/GassistPi/src/main.py --device_model_id 'model id"
gdzie w miejsce 'model id' wpisujemy Id model
czyli u mnie to będzie:
/home/pi/env/bin/python -u /home/pi/GassistPi/src/main.py --device_model_id voice-166811-voice-pws8rb
Po pojawieniu się błędu logujemy się na stronie Spotify -> Link
Jeżeli nie mamy konta na Spotify, to zakładamy go.
Po zalogowaniu klikamy CREATE A CLIENT ID , wpisujemy nazwę i wybieramy np. Voice, wybieramy NO, zaznaczamy wszystkie ptaszki i klikamy SUBMIT.
Na stronie będą: Client ID i Client Secret, dane te oraz login kopiujemy do pliku config.yaml w katalogu /home/pi/GassistPi/src
Wpisujemy je w miejsce:
#Spotify credentials. Register for a spotify developer and get the credentials.
Spotify:
client_id: 'ENTER YOUR SPOTIFY CLIENT ID HERE'
client_secret: 'ENTER YOUR SPOTIFY CLIENT SECRET HERE'
username: 'ENTER YOUR SPOTIFY USERNAME HERE'
Po zapisaniu pliku test przebiegł pomyślnie.
Teraz konfigurujemy, aby Assistant uruchamiał się przy starcie.
W terminalu wpisujemy kolejno:
sudo chmod +x /home/pi/GassistPi/scripts/service-installer.sh
sudo /home/pi/GassistPi/scripts/service-installer.sh
sudo systemctl enable gassistpi-ok-google.service
sudo systemctl start gassistpi-ok-google.service
Po restarcie Google Assistant powinien uruchomić się automatycznie.
Działanie pokazano na filmie.
Można jeszcze dodać diody led na piny GPIO 5 i 6, informują one kiedy możemy mówić, a kiedy mówi Google Assistant, widać to na poniższym filmie.