冬休みなので、買っておいた 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は、あらかじめイメージが用意されており、説明書もとても丁寧なので、多少電子工作になれている人であればすぐできると思います。
いろいろできるみたいなので、サーボモーターでなにか動かしたりもしてみたいですね。