Google AIYでLチカ

冬休みなので、買っておいた Google AIYをいじってみました。 まずはLチカから!

必要なもの

まず、必要なものを準備しましょう。

あと、組み立てる時にこちらも必要になります。

  • 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のオン・オフができました。 コンソールを動かしておけばデバッグもできるので、かなり楽だと思います。


Led on with Google AIY

まとめ

Google AIY Kitは、あらかじめイメージが用意されており、説明書もとても丁寧なので、多少電子工作になれている人であればすぐできると思います。

いろいろできるみたいなので、サーボモーターでなにか動かしたりもしてみたいですね。