c#toarduinoを使用した音声認識プロジェクトの最も簡単な方法
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 3 | ||||
| × | 3 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
アプリとオンラインサービス
> |
| |||
|
このプロジェクトについて
注:こんにちは。
私はこのプロジェクトを2年前に作成し、励ましのフィードバックを得ました。新しいメンバーの場合は、以下に従うことをお勧めします(2020年に更新されたチュートリアル)
チュートリアルリンクの更新:
https://medium.com/illumination/how-to-make-your-first-voice-project-using-arduino-956bfd494947
ありがとう:)
プロジェクトの説明
私たちは皆、(耳、舌、鼻など)などのさまざまな種類のセンサーに恵まれており、データの送受信が行われる一方向ではなく双方向の通信で、日常生活でそれらを使用しています。私たちが機械に適用しているのと同じ概念です!
初心者として、ほとんどの人がLEDのオン/オフを点滅させることから始めます。私もそうしましたが、音声コマンドを使用してこれらの電子部品を制御したかったのです。ついにインターネットで検索して学んだ後、プロジェクトを完了し、このプロジェクトをクリエイティブコミュニティ、特に(初心者)と共有する準備ができました。 )!Arduinoを使用した音声認識の最も簡単な方法!
物事を簡単にするために、LEDを使用しています。このプロジェクトでは、標準的な方法ではなく、音声コマンドを使用してLEDをオン/オフします。エキサイティングな部分は、非常にシンプルで簡単なことです。プログラミングの知識が少し必要です。
なぜこのプロジェクトを作ったのですか?
それはすべて、私の先生がc#Windowsフォームアプリケーションプロジェクトを私たちに示したときに始まりました。そのプロジェクトでは、サーは音声コマンドを使用して仮想BULBを制御していました。これは、Arduinoやその他のハードウェアを使用せずにc#ビジュアルスタジオソフトウェアを使用して作成されました。素晴らしかったです:)Arduinoを使用した新しいプロジェクトでは、音声コマンドを使用してLedを制御しないのはなぜかと思いました。このプロジェクトでは、ハードウェアを物理的に制御しているのであり、実際にはどの先生が示したのかではありません。
このプロジェクトがシンプルな理由
このプロジェクトにはもう1つ重要な理由があります。それはあなたのメーカーです。このプロジェクトは、メーカーコミュニティがプロジェクトから何か新しいものを作成するのに役立ち、音声認識機能によってプロジェクトの創造性と価値が向上すると思いました。 外部モジュールは必要ありません このプロジェクトを作成するには:)音声認識モジュールを使用せずにこのプロジェクトを作成できる方法があるはずです!そして最後に、以下のリンクのおかげでその方法を見つけましたhttps://www.c-sharpcorner.com/article/turning-led-off-and-on-through-voice-recognition/
作り方は?
このプロジェクトに必要なすべてのコンポーネントを収集します。
- ブレッドボード上の回路を下の回路図のように設計します
- 次に、ArduinoUSBケーブルをコンピューターに接続します
- ArduinoコードをダウンロードしてArduinoIDEを開き、新しいスケッチを作成してコードを貼り付けます。
インストールする必要のあるソフトウェアは1つだけです。それは、私がMicrosoft Visual Studioバージョン2010を使用しているビジュアルスタジオです。任意のバージョンをインストールできます。c#を使用してWindowsフォームアプリケーションを作成し、ビジュアルをダウンロードできることを確認してください。スタジオ
以下のリンクをクリックしてから、[ダウンロード]-> [直接ダウンロード]をクリックしますhttps://www.dropbox.com/sh/pmdflsjui0ayjcs/AAAO4sfb2Tc559CLyOQut_NDa?dl=0
<図>これで完了です
- Arduinoスケッチをアップロードし、緑色の矢印のスタートボタンをクリックしてc#アプリケーションを実行します
注#0: using.system.speech を含めないと、このプロジェクトは機能しません。 Visual StudioのC#コードのライブラリは、以下の手順に従ってライブラリを含めるだけで構いません。上記のツールバーに移動します。プロジェクト->参照の追加->。Net->検索 using.system.speech [OK]をクリックします:)
<図>注#1: Arduino IDEで選択したCOMポートがVisualStudioのc#コードと同じであることを確認してください。以下に示すように、私のCOMポートはArduinoとC#コードでCOM5と同じです。
<図>混乱している場合は、このデモビデオを見るだけで、音声を使用してLEDを制御する準備が整います:)
Youtubeプロジェクトのデモを見るにはここをクリックしてください
このプロジェクトから何を作りましたか?
あなたの創造性を使って、このプロジェクトから何か新しいものを作りましょう。
学び、作成し、共有し、繰り返す
<図>
コード
- Arduinoソースコード
- C#コード
Arduinoソースコード C / C ++
音声認識プロジェクトのArduinoソースコード/ *このプログラムは、c#の音声認識ライブラリを使用して(system.speechを使用して)LEDの状態のオンとオフを制御することに関するものです*エキサイティングな部分は、データを送信するための外部モジュールが必要ないことですarduinoは、内蔵のコンピューターマイクまたはイヤホンマイクを簡単に使用できるためです。 * *このプログラムは、初心者に特別な基本的なアイデアを提供し、それを便利な方法で使用するための独自の創造性を提供するためのものです。 *学び続け、共有し、考え、繰り返します*お楽しみください! * * JalalMansooriによる* / const int blueLed =10; const int redLed =9; const int greenLed =8; charcomingData ='0'; void setup(){//セットアップコードをここに配置して、一度実行します:// get leds readySerial.begin(9600); pinMode(blueLed、OUTPUT); pinMode(redLed、OUTPUT); pinMode(greenLed、OUTPUT);} void loop(){//メインコードをここに配置して繰り返し実行します:incomingData =Serial.read(); // LEDを制御するためのスイッチケースこの場合、青、緑、赤のスイッチは3つしかありません(incomingData){//これらのケースはLEDの状態ONのみです//青のLEDケース 'B'の場合:digitalWrite(blueLed、HIGH );壊す; //赤いLEDの場合 'R':digitalWrite(redLed、HIGH);壊す; //緑色のLEDの場合 'G':digitalWrite(greenLed、HIGH);壊す; //これらのケースは、LEDの状態OFFの場合であり、ケース名z、x、cはランダムに指定され、変更することもできますが、// c#コードでも変更するようにしてください。 //青色LEDの場合 'Z':digitalWrite(blueLed、LOW);壊す; //赤いLEDの場合 'X':digitalWrite(redLed、LOW);壊す; //緑色のLEDの場合 'C':digitalWrite(greenLed、LOW);壊す; //すべてのLEDを一度にオンにする場合:)case'V ':digitalWrite(blueLed、HIGH); digitalWrite(redLed、HIGH); digitalWrite(greenLed、HIGH);壊す; //すべてのLEDを一度にオフにする場合:)case'M ':digitalWrite(blueLed、LOW); digitalWrite(redLed、LOW); digitalWrite(greenLed、LOW);壊す; }}
C#コード C#
このコードはVisualStudio用です。このコードでは、いくつかのライブラリが含まれていることがわかります。using.system.speechライブラリは、プロジェクトリファレンスに含める必要があります。これがあなたのやり方です
ツールバー
[プロジェクト]-> [参照の追加]->。Net-> system.speechを使用して検索-> [OK]をクリックします
それはすべてお楽しみください:)
/ *このプログラムは、c#とArduinoを接続して、コンピューターのマイクからarduinoボードにデータを送信することです。ByJalalMansoori * / using System; using System.Windows.Forms; using System.IO.Ports; //このライブラリは、c#とArduinoを接続して、ポートを介してデータを送受信するためのものです//以下は、System.Speech; using System.Speech.Recognition; using System.Speech.Synthesis; namespace CsharpCode {public部分クラスForm1を使用した音声認識用のライブラリです。 :Form {//オブジェクトの作成SerialPortmyPort =new SerialPort(); SpeechRecognitionEngine re =new SpeechRecognitionEngine(); SpeechSynthesizer ss =new SpeechSynthesizer(); //プログラムに話しかけたい場合Choicescommands =new Choices(); //これは重要なクラスです。名前が示すように、コマンドをこのオブジェクトに格納しますpublic Form1(){InitializeComponent(); // Arduinoボードの詳細myPort.PortName ="COM5"; // Arduino IDEのポート名がCOM5を選択しました。ポート名が異なる場合は、ポート名を変更する必要があります。arduinoIDEmyPort.BaudRate=9600をチェックインしてください。 //このレートはarduinoSerial.begin(9600)ビット/秒processing();と同じです。 } //メイン命令が実行される定義済み関数処理! voidprocessing(){//最初にコマンドを保存するcommands.Add(new string [] {"Blue On"、 "Red On"、 "Green On"、 "Blue Off"、 "Red Off"、 "Green Off" 、 "Exit"、 "All On"、 "All Off"、 "Arduino Say Good Bye tomakers"}); //ここで、パラメータとしてコマンドを渡すGrammerのオブジェクトを作成します。Grammargr=new Grammar(new GrammarBuilder(commands)); //以下の機能の詳細については、サイトhttps://docs.microsoft.com/en-us/dotnet/api/system.speech.recognition?view=netframework-4.7.2 re.RequestRecognizerUpdate();を参照してください。 //コマンドをロードする前に音声認識エンジンを一時停止しますre.LoadGrammarAsync(gr); re.SetInputToDefaultAudioDevice(); //名前が示すように、入力デバイスの内蔵マイクを提案するか、イヤホンなどを接続することもできます... re.SpeechRecognized + =new EventHandler(re_SpeechRecognized); } void re_SpeechRecognized(object sender、SpeechRecognizedEventArgs e){switch(e.Result.Text){//// LED状態がオンの場合//青色LEDの場合 "Blue On":sendDataToArduino( 'B');壊す; //赤いLEDの場合「RedOn」:sendDataToArduino( 'R');壊す; //緑色のLEDの場合「GreenOn」:sendDataToArduino( 'G');壊す; // LED状態がオフの場合//青色LEDの場合 "Blue Off":sendDataToArduino( 'Z');壊す; //赤いLEDの場合「RedOff」:sendDataToArduino( 'X');壊す; //緑色のLEDの場合「GreenOff」:sendDataToArduino( 'C');壊す; //すべてのLEDを一度にオンにする場合:)case "All On":sendDataToArduino( 'V');壊す; //すべてのLEDを一度にオフにする場合:)case "All Off":sendDataToArduino( 'M');壊す; //プログラムはケース「ArduinoSayGood Bye tomakers」をトークバックします:ss.SpeakAsync( "Good Bye Makers"); //音声合成オブジェクトはこの目的のために使用されますbreak; //音声を使用してプログラムを終了するには:)case "Exit":Application.Exit();壊す; } txtCommands.Text + =e.Result.Text.ToString()+ Environment.NewLine; // arduinoをコマンドすると、テキストが追加され、テキストボックスに表示されます} void sendDataToArduino(char character){myPort.Open(); myPort.Write(character.ToString()); myPort.Close(); } private void btnStop_Click(object sender、EventArgs e){re.RecognizeAsyncStop(); //btnStart.Enabled =true; btnStop.Enabled =false; btnStart.Enabled =true; } private void btnStart_Click(object sender、EventArgs e){re.RecognizeAsync(RecognizeMode.Multiple); btnStop.Enabled =true; btnStart.Enabled =false; MessageBox.Show( "音声認識が開始されました!"、 "情報"、MessageBoxButtons.OK、MessageBoxIcon.Information); }}}
回路図
回路図に従って、ブレッドボード上のコンポーネントを接続するだけです 1->まず、図に示すようにLEDと抵抗を接続します
2->次に、1つずつ開始し、抵抗がarduinoデジタルピンボックスに接続されている同じ列にLED + IVE端子を接続します
GreenLed + ive端子からデジタルピン8へ
RedLed + ive端子をデジタルピン9に接続
BlueLed + ive端子からデジタルピン10へ
3->最後に、図に示すように、ジャンパー線を使用してarduinoからLED-ive端子にアースを接続します
製造プロセス
- MATRIX VOICE GOOGLE ASSISTANT – MATRIX VOICE PROJECT
- リアルタイムの顔認識:エンドツーエンドのプロジェクト
- Windows IoT:顔認識ドア
- スマートペン:ECE5725の最終プロジェクト
- DIY LUMAZOID Arduino Music Visualiser
- Arduinoを使用してモニターをAmbilightにする
- DIY 37LEDルーレットゲーム
- ARDUINOを使用した超音波浮揚機
- Go Awayを構築してください!ロボット-子供向けの簡単なスタータープロジェクト
- アナログスタイルのLEDPOVクロック
- 1つのLEDを使用して画像を作成する