冬休みなので、買っておいた Google AIYをいじってみました。 まずはLチカから!
必要なもの
まず、必要なものを準備しましょう。
- Google AIY Voice Kit
- Raspberry Pi 3 Model B
- microSDカード
あと、組み立てる時にこちらも必要になります。
- USBキーボード
- USBマウス
- HDMI入力ができるディスプレイ
- 精密ドライバー
- microSDカードをやける環境。
私のMacBookProではmicroSDがやけなかったのでこちらを買いました。
あと、Lチカ用のLEDやミニブレッドボード、抵抗などを適宜用意してください。
準備
まずは、Google AIYプロジェクトがはいったイメージが配布されているので、それをダウンロードしてmicroSDカードにやきましょう。
Googleのライブラリやサンプルプロジェクトも全部入っているので、このイメージさえあればほとんどソースコードをかかなくても大丈夫。
組み立て
箱から材料をだして組み立てます。 部品も少なく、シンプルなので迷うことはないでしょう。
説明書は英語ですが、写真が多くてわかりやすいです。
くみあがったら、用意しておいたmicroSDカードをいれ、キーボードとマウスとディスプレイと電源をつなぎましょう。 起動したら、画面右上から無線LANの設定をしておきましょう。
Google Cloud Platformの設定
そのあとは、Google Cloud Platformでの設定です。 このGoogle AIYでは、Google Assistant SDKとCloud Speech APIが使えるんですが、今回は、Cloud Speech APIを使います。
Google Assistant SDKは「OK Google」で起動できますが、Cloud Speech APIの場合には、ボタンで起動することになります。
Google Cloud PlatformでCloud Speech APIの設定を有効にして、Credentialを/home/pi/cloud_speech.json に保存してください。
回路の準備
LEDと抵抗をブレッドボードにつなぎます。
そこから、Google AIYボードのServosの0のピンに接続。(接続が超適当ですね……。)
ソースコード
そして、ソースコードはこんな感じです。 (ここでは「light on」でLEDをつけ、「light off」でLEDをオフにするようにしています。)
#!/usr/bin/env python3
import aiy.audio
import aiy.cloudspeech
import aiy.voicehat
import RPi.GPIO as GPIO
def main():
recognizer = aiy.cloudspeech.get_recognizer()
recognizer.expect_phrase('light on')
recognizer.expect_phrase('light off')
button = aiy.voicehat.get_button()
aiy.audio.get_recorder().start()
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(26,GPIO.OUT)
while True:
print('press the button and speak')
button.wait_for_press()
print('listening....')
text = recognizer.recognize()
if text is None:
print('sorry I did not hear you.')
else:
print('you said "', text, '"')
if 'light on' in text:
print(' light must be on...')
GPIO.output(26,GPIO.HIGH)
elif 'light off' in text:
print(' light must be off.....')
GPIO.output(26,GPIO.LOW)
if __name__ == '__main__':
main()
これを実行すると、無事にLEDのオン・オフができました。 コンソールを動かしておけばデバッグもできるので、かなり楽だと思います。
まとめ
Google AIY Kitは、あらかじめイメージが用意されており、説明書もとても丁寧なので、多少電子工作になれている人であればすぐできると思います。
いろいろできるみたいなので、サーボモーターでなにか動かしたりもしてみたいですね。



