Google Coral Edge TPU Hardware & AIY Kits

store: https://store.gravitylink.com/global

Google Vision Kit APIs

Vision Kitの概要

AIY Vision Kitは、Raspberry PiVision Bonnetで構築された日曜大工のインテリジェントカメラです。

キットを組み立てて付属のデモを実行すると、独自のソフトウェアとハードウェアでキットを拡張できます。

微信截图_20181109141945.png

 APIモジュール

ビジョンモデルでMLモデルを実行し、他のアクションを実行するために、システムイメージには、ビジョンキット用に設計された以下のモジュールを含むaiy Pythonライブラリが含まれています。

aiy.toneplayer:ピエゾブザー用のシンプルなメロディックミュージックプレーヤー。
aiy.trackplayer:ピエゾブザー用のトラッカーベースの音楽プレーヤー。
aiy.vision.annotatorRaspberry Piのカメラプレビューにオーバーレイを描画する注釈ライブラリ。
aiy.vision.inferenceRaspberry Pi側からVision Bonnetと通信する推論エンジン。
aiy.vision.models:特定の種類の画像分類およびオブジェクト検出モデルを使用してML推論を実行するモジュールのコレクション。
aiy.boardVision Bonnetのボタンコネクタに接続されているボタンを使用するAPI
aiy.leds:ボタンのLEDやプライバシーLEDなど、特定のLEDを制御するAPI
aiy.pinsgpiozeroで使用するための、ボンネットの追加のGPIOピンのピン定義。

 ボンネットハードウェア

Voice Kitには、次のVoice Bonnetハードウェアが含まれています。

SOC:無数の2450
MCU:ATSAMD09D14 [I2Cアドレス:0x51]
LEDドライバー:KTD2027A [I2Cアドレス:0x30]
暗号(オプション):ATECC608A [I2Cアドレス:0x60]
IMU:BMI160

 ドライバー

MCUドライバー:modinfo aiy-io-i2c
MCU PWMドライバー:modinfo pwm-aiy-io
MCU GPIOドライバー:modinfo gpio-aiy-io
MCU ADCドライバー:modinfo aiy-adc
LEDドライバー:modinfo leds-ktd202x
ブザー用ソフトウェアPWMドライバー:modinfo pwm-soft
無数のドライバー:modinfo aiy-vision

MCUをリセットするには:

echo 1 | sudo tee /sys/bus/i2c/devices/1-0051/reset

MCUステータスメッセージ(ファームウェアバージョンを含む)と最後のエラーコードを取得するには:

cat /sys/bus/i2c/devices/1-0051/{status_message,error_code}

 ピン配列(40ピンヘッダー)

                   3.3V --> 1    2 <-- 5V
                I2C_SDA --> 3    4 <-- 5V
                I2C_SCL --> 5    6 <-- GND
                            7    8
                    GND --> 9   10
                            11  12
                            13  14 <-- GND
  (GPIO_22) BUZZER_GPIO --> 15  16 <-- BUTTON_GPIO (GPIO_23)
                   3.3V --> 17  18
               SPI_MOSI --> 19  20 <-- GND
               SPI_MISO --> 21  22
               SPI_SCLK --> 23  24 <-- SPI_CE_MRD
                    GND --> 25  26
                 ID_SDA --> 27  28 <-- ID_SCL
                            29  30 <-- GND
          PI_TO_MRD_IRQ --> 31  32
          MRD_TO_PI_IRQ --> 33  34 <-- GND
                            35  36
             MRD_UNUSED --> 37  38
                    GND --> 39  40

 aiy.toneplayer

ピエゾブザー用のシンプルなメロディック音楽プレーヤー。

このAPIは、Vision Kit用に設計されていますが、Vision Bonnetに依存していないため、それなしで使用できます。 aiy.pins.BUZZER_GPIO_PINに接続されている圧電ブザーのみが必要です。

class aiy.toneplayer.Note(name, octave=4, bpm=120, period=4)

ベース:aiy.toneplayer.Rest

音符を表す単純な内部クラス。

TonePlayerクラスの一部で使用されるこのオブジェクトは、名前、オクターブ、再生時間などの音符を表します。 エンドユーザーはこれについてあまり気にする必要はなく、代わりにTonePlayerクラスで説明されている音楽言語に集中する必要があります。

BASE_OCTAVE = 4
to_frequency(tuning=440.0)

名前とオクターブをHz単位の周波数に変換します。

指定されたチューニングを使用します。

パラメーター:チューニング-自然なA音の周波数(Hz)。

class aiy.toneplayer.Rest(bpm=120, period=4)

ベース:オブジェクト

音楽の休符を表す単純な内部クラス。

TonePlayerクラスの一部で使用されるこのオブジェクトは、歌の中で音が出ない期間を表します。 エンドユーザーはこれについてあまり気にする必要はなく、代わりにTonePlayerクラスで説明されている音楽言語に集中する必要があります。

EIGHTH = 8

HALF = 2

QUARTER = 4

SIXTEENTH = 16

WHOLE = 1

to_length_secs()

楽譜から秒単位の時間に変換します。

class aiy.toneplayer.TonePlayer(gpio, bpm=120, debug=False)

ベース:オブジェクト

PWMControllerを介して簡略化された楽譜を再生するクラス。

このクラスは、非常に単純な楽譜を使用して、PWM制御のピエゾブザーから単純な音楽トーンを再生します。

r

この言語は、配列にリストされた音符と休符で構成されています。 休符は、音が出ないときの曲の瞬間であり、次のように書かれています。

は、次の5文字のいずれか、または省略可能です。

w:全音符h:半音符q:四分音符(デフォルト–長さを指定しない場合、

四半期を想定)
e:8分音符s:16分音符

したがって、半音符の休符は「rh」と表記されます。 四分音符の休符は「r」または「rq」と書くことができます。

音符は休符に似ていますが、次の形式を取ります:

 

<note_names>は大文字と小文字のA〜Gおよびa〜gを使用して記述されます。 大文字は自然な音であるのに対して、小文字は半音上にシフトされます(シャープ)。 ピアノのキーボードで表される小文字は黒いキーです。 したがって、「C」は自然な音のCですが、「c」は実際にはC#であり、Cキーの右側にある最初の黒いキーです。

オクターブはオプションですが、1〜8の数字です。 省略した場合、TonePlayerはオクターブ4を想定します。残りと同様に、も省略でき、残りのパラメーターと同じ表記を使用します。 省略した場合、TonePlayerは4分の1の長さを想定します。

これを念頭に置いて、中央のC音符全体を「C3w」と書くことができます。 同様に、4オクターブのC#四分音符は、「c」または「c4q」または「cq」と書くことができます。

NOTE_RE = re.compile('(?P[A-Ga-g])(?P[1-8])?(?P[whqes])?')
PERIOD_MAP = {'e': 8, 'h': 2, 'q': 4, 's': 16, 'w': 1}
REST_RE = re.compile('r(?P[whqes])?')
play(*args)

ピエゾブザーから一連のノートを再生します。(to be continue)