Vision Kitの概要
AIY Vision Kitは、Raspberry PiとVision Bonnetで構築された日曜大工のインテリジェントカメラです。
キットを組み立てて付属のデモを実行すると、独自のソフトウェアとハードウェアでキットを拡張できます。
- 興味があれば、ここで購入できます:https://store.gravitylink.com/global
APIモジュール
ビジョンモデルでMLモデルを実行し、他のアクションを実行するために、システムイメージには、ビジョンキット用に設計された以下のモジュールを含むaiy Python
ライブラリが含まれています。
aiy.toneplayer
:ピエゾブザー用のシンプルなメロディックミュージックプレーヤー。aiy.trackplayer
:ピエゾブザー用のトラッカーベースの音楽プレーヤー。aiy.vision.annotator
:Raspberry Pi
のカメラプレビューにオーバーレイを描画する注釈ライブラリ。aiy.vision.inference
:Raspberry Pi
側からVision Bonnet
と通信する推論エンジン。aiy.vision.models
:特定の種類の画像分類およびオブジェクト検出モデルを使用してML推論を実行するモジュールのコレクション。aiy.board
:Vision Bonnet
のボタンコネクタに接続されているボタンを使用するAPI。aiy.leds
:ボタンのLEDやプライバシーLEDなど、特定のLEDを制御するAPI。aiy.pins
:gpiozero
で使用するための、ボンネットの追加の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)
※コメント投稿者のブログIDはブログ作成者のみに通知されます