pdf-icon

Arduino Guide

Unit ASR Arduino チュートリアル

1. 準備

  1. 環境設定: Arduino IDE の始め方チュートリアル を参考にして、IDEをインストールし、使用する開発ボードに対応するボードマネージャーと必要なライブラリをインストールしてください。

  2. 必要なライブラリ:

  1. 使用するハードウェア:

2. サンプルプログラム

サンプルの説明
Unit ASRは音声ウェイクアップと音声コマンド入力をサポートしており、シリアルポートを通じて現在の音声コマンド情報を返します。Unit ASRのデフォルトファームウェアには、いくつかの事前定義されたコマンドがあります。これらは以下の表に示されています。M5Unit-ASRを使用することで、対応するコマンドにコールバック関数を簡単に登録し、シンプルな音声コマンド制御を実現できます。

Turn On/Off

M5UnifiedとM5GFXをベースに、基本的なコマンド表示機能を追加し、turn onturn off コマンドのコールバック関数を追加して、ライト制御シーンをシミュレートします。

#include <M5Unified.h>
#include <unit_asr.hpp>

ASRUnit asr;

void turnOnHandler()
{
    Serial.println("turn on command received!");
    M5.Display.setCursor(0, 0);
    M5.Display.fillRect(0, 0, 320, 60, BLACK);
    M5.Display.println("turn on!");
}

void turnOffHandler()
{
    Serial.println("turn off command received!");
    M5.Display.setCursor(0, 0);
    M5.Display.fillRect(0, 0, 320, 60, BLACK);
    M5.Display.println("turn off!");
}

void wakeupHandler()
{
    Serial.println("Hi, M Five command received!");
    M5.Display.setCursor(0, 0);
    M5.Display.fillRect(0, 0, 320, 60, BLACK);
    M5.Display.println("wakeup!");
}

void setup()
{
    M5.begin();
    M5.Display.setFont(&fonts::FreeMonoBold12pt7b);
    Serial.begin(115200);
    asr.begin(&Serial1, 115200, 18, 17);
    asr.addCommandWord(0x14, "turn on", turnOnHandler);
    asr.addCommandWord(0x15, "turn off", turnOffHandler);
    asr.addCommandWord(0xFF, "Hi, M Five", wakeupHandler);
    M5.Display.setCursor(0, 0);
    M5.Display.fillRect(0, 0, 320, 60, BLACK);
    M5.Display.println("Say \"Hi, M Five\"\nto wake up!");
}

void loop()
{
    M5.update();
    if (asr.checkMessage()) {
        Serial.println(asr.getCurrentCommandWord());
        Serial.println(asr.getCurrentCommandNum());
        Serial.println(asr.getCurrentRawMessage());
        Serial.println((asr.checkCurrentCommandHandler()));
    }
}

3. コンパイルとアップロード

    1. ダウンロードモード: 異なるデバイスにプログラムを書き込む前に、ダウンロードモードにする必要があります。この手順は使用するメインコントロールデバイスによって異なる場合があります。詳細については、 Arduino IDE の始め方チュートリアル ページの下部にあるデバイス用のプログラムダウンロード方法を参照してください。
  • CoreS3では、リセットボタンを長押し(約2秒)して内部の緑色LEDが点灯したら、ボタンを放します。この時点でデバイスはダウンロードモードに入り、プログラムの書き込みを待機します。

    1. デバイスのポートを選択し、Arduino IDEの左上隅にあるコンパイルおよびアップロードボタンをクリックして、プログラムのコンパイルとデバイスへのアップロードを待ちます。

4. コマンドのやり取り

  1. Hi M Five コマンドを使ってウェイクアップします。
  2. I'm here と返答します。
  3. Turn on コマンドを使い、OK と返答します。
  4. Turn off コマンドを使い、OK と返答します。

5. カスタムコマンド

  1. Unit ASRは、ファームウェアを再生成することで新しいインタラクションコマンドを変更したり追加したりすることができます。以下のチュートリアルに従って、カスタムコマンドのファームウェア生成と書き込みを行ってください。
  1. Unit ASRの設定テンプレートを使用して定義されたカスタム命令は、M5Unit-ASRライブラリを通じて追加および使用できます。例えば、コマンド AA 55 46 55 AA の命令コードが 0x46 である場合。この例のプログラムを参考にして、コマンドを追加し、コールバック関数を登録することができます。
#include <M5Unified.h>
#include <unit_asr.hpp>

ASRUnit asr;

void JustHandler()
{
    Serial.println("Just command received!");
}

void setup()
{
    M5.begin();
    Serial.begin(115200);
    asr.begin(&Serial1, 115200, 22, 21);
    asr.addCommandWord(0x46, "Just", JustHandler);
}


void loop()
{
    M5.update();
    if (asr.checkMessage()) {
        Serial.println(asr.getCurrentCommandWord());
        Serial.println(asr.getCurrentCommandNum());
        Serial.println(asr.getCurrentRawMessage());
        Serial.println((asr.checkCurrentCommandHandler()));
    }
}
  1. Unit ASRに電源を入れます。
  2. Hi M Five コマンドでウェイクアップし、I'm here と返答します。
  3. Just コマンドを使用し、Do it と返答します。
  4. JustHandler 関数が正常に呼び出されます。
Just command received!
Just
0x46
0xAA 0x55 0x46 0x55 0xAA 
1
On This Page