Arduinoのインテリジェント音声入力実装 - ArduinoとLU-ASR01の接続

    Arduino は現在、使いやすいハードウェアとソフトウェアをベースにした人気のオープンソース電子プラットフォームで、既存の電子コンポーネントを使用してインテリジェントな電子制御を実現できます。LU-ASR01は、オフライン音声認識をサポートする開発ボードで、中国語の音声入力を認識し、対応する処理を実行します。この論文では、Arduino と LU-ASR01 を接続することで、LU-ASR01 を音声認識に使用し、Arduino の中国語音声入力をシリアル通信で実現し、Arduino を使用して接続された他の電子機器上で対応する操作を実行します。

    LU-ASR01 音声認識開発ボードには、合計 8 つの I/O、1 つの出力シリアル ポート TX、および 1 つのセンサー インターフェイス DHT があります。このうち、I/O1~I/O6 は PWM 信号を出力でき、I/O7 と I/O8 は PWM 信号を出力できませんが、開発ボードは電源供給に USB インターフェイスを使用し、プログラムの書き込みを実行できます。次のように:

 

    今回の実験ではArduino UNOとLU-ASR01を接続した後、「ライトをつけて」と呼び出すとArduinoボードに接続されているLEDライトが点灯し、「ライトを消す」と呼び出すとArduinoに接続されているLEDライトが点灯します。ボードはオフになります。

     ハードウェアの接続はシリアル通信方式を採用しているため非常に簡単で、まずLU-ASR01のTXポートをArduinoのRXポートに接続し、次にLED管のプラス極をArduinoのD13ポートに接続します。マイナス極を隣接するアースに接続します。接続図は次のとおりです。

 

    プログラムの実装方法について説明します。まず、LU-ASR01を「Tianwenブロック」のグラフィカルプログラミングでプログラミングします。プログラムの書き込みと書き込みのプロセスはスキップされます (注: プログラムを書き込む前に、必ず 2 つのボードの TX から RX への接続線を切断してください)。読者は関連情報を自分で確認できます。「天文ブロック」に関する完全なプログラムは以下のとおりです。

 

次に、次のプログラムを Arduino UNO ボードにダウンロードします。完全なプログラムは次のとおりです。

/*

   Arduinoと音声認識モジュールASR01とのシリアル通信実験

   

*/

// ピンを定義する

const int LedPin = 13; // LED ライトの正極として LED に接続されるピン

String st=""; //シリアルポートで読み取った文字データの文字列変数

//初期化

void setup() {

  Serial.begin(9600); //シリアルポートのボーレートを9600に設定します

  pinMode(LedPin, OUTPUT); //LedPinを設定    

}

void ループ() {

  st="";

  while(Serial.available() > 0){//シリアルバッファにデータがある場合

    st+=char(Serial.read());//バッファデータをstに蓄積する

    遅延(2);

  }

  if(st.length()>0){//st が空ではない

    if(st=="t001")digitalWrite(LedPin, HIGH);//stが「t001」の場合、LedPinはハイレベルに設定され、つまりライトがオンになります。

    if(st=="t002")digitalWrite(LedPin, LOW);//stが「t002」の場合、LedPinはローレベルに設定されます。つまり、ライトがオフになります。

    if(st=="hello"){//st が「hello」の場合、LED が 3 回点滅します。

      for(int i=0;i<3;i++){

        digitalWrite(LedPin、HIGH);

        遅延(100);

        デジタル書き込み(LedPin、LOW);

        遅延(100);

      }

    }

  }

}

    最後に2枚のボードのTX-RX接続ケーブルを接続すると、電源を入れるとスピーカーから「実験を行っていますので、『許されざる者』と呼んで起こしてください」という音声が流れます。次に、「Mr. Unforgiveness」に電話をかけます。LU-ASR01 ボードはシリアル ポート経由で「hello」を送信し、Arduino が「hello」を受信した後、LED ライトが 3 回点滅してから消えます。次に、「ライトをオンにする」を呼び出すことができます。LU-ASR01 ボードはシリアルポートを介して「t001」を送信します (同時ブロードキャスト: Adu はライトをオンにするように要求されました)。Arduino が「t001」を受信した後、ライトが点灯します。 LED ライトをオンにすると、もう一度「ライトを消す」を呼び出すことができます。すると、LU-ASR01 ボードがシリアル ポートを介して「t002」を送信し (同時にブロードキャスト: Adu はライトを消すように要求されました)、Arduino が「t002」を受信するとLEDライトが消灯します。

おすすめ

転載: blog.csdn.net/m0_61543203/article/details/126194116