산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

c#toarduino를 사용한 음성 인식 프로젝트를 위한 가장 간단한 방법

구성품 및 소모품

Arduino UNO
× 1
저항 221옴
저항의 모든 저항 값을 사용할 수 있습니다. 저항 값을 너무 적게 사용하지 않도록 하십시오.
× 3
LED(일반)
파란색, 빨간색, 녹색 led를 사용했습니다.
× 3
브레드보드(일반)
× 1
점퍼 와이어(일반)
× 1
마이크가 있는 이어폰
이 이어폰은 스마트폰과 함께 사용하는 이어폰입니다 Simple!내장 컴퓨터 마이크도 사용할 수 있습니다 :)
× 1

앱 및 온라인 서비스

Arduino IDE
Microsoft Visual Studio 2015
Microsoft Visual Studio의 모든 버전을 사용할 수 있습니다. Windows 양식을 생성하는 .net 프레임워크가 포함되어 있는지 확인하기만 하면 됩니다. 신청

이 프로젝트 정보

참고:안녕하세요.

나는 이 프로젝트를 2년 전에 만들었고 고무적인 피드백을 받았습니다. 신규 회원인 경우 아래(2020 업데이트된 자습서)를 따르도록 권장합니다.

튜토리얼 링크 업데이트:

https://medium.com/illumination/how-to-make-your-first-voice-project-using-arduino-956bfd494947

감사합니다 :)

프로젝트 설명

우리 모두는 (귀, 혀, 코...)와 같은 다양한 유형의 센서를 가지고 있으며 일상 생활에서 사용합니다. 단방향이 아니라 양방향 통신으로 데이터 송수신이 이루어집니다. 우리가 기계에 적용하는 것과 같은 개념입니다!

초보자로서 거의 모든 사람들이 깜박이는 LED를 켜고 끄는 것으로 시작하고 저도 그렇게 했지만 음성 명령을 사용하여 이러한 전자 부품을 제어하고 싶었습니다. 그래서 마침내 인터넷에서 검색하고 배운 후 프로젝트를 완료하고 이 프로젝트를 크리에이티브 커뮤니티 특히(초보자)와 공유할 준비가 되었습니다. )!아두이노를 이용한 음성인식의 가장 간단한 방법!

일을 더 간단하게 하기 위해 우리는 LED를 사용하고 있습니다. 이 프로젝트에서 우리는 표준 방식이 아니라 음성 명령을 사용하여 LED를 켜고 끌 것입니다. 흥미로운 부분은 매우 간단하고 쉽다는 것입니다. 프로그래밍 지식이 조금만 있으면 충분합니다!

내가 이 프로젝트를 만든 이유는 무엇입니까?

선생님이 C# Windows 양식 응용 프로그램 프로젝트를 시연했을 때 모든 것이 시작되었습니다. 그 프로젝트에서 Sir은 음성 명령을 사용하여 가상 BULB를 제어하고 있었고 Arduino 또는 기타 하드웨어가 아닌 C# Visual Studio 소프트웨어만 사용하여 만들었습니다. 굉장했습니다 :) 아두이노를 이용한 새로운 프로젝트의 경우 음성 명령으로 Led를 제어하지 않는 이유를 생각했습니다. 왜냐하면 이 프로젝트에서는 실제로 선생님이 시연한 것이 아니라 물리적으로 하드웨어를 제어하고 있기 때문입니다.

이 프로젝트가 간단한 이유는 무엇입니까?

이 프로젝트에 또 하나의 중요한 이유가 있습니다. 바로 당신입니다. 저는 이 프로젝트가 제작자 커뮤니티에서 새로운 것을 만들고 음성 인식 기능이 창의성, 프로젝트 가치를 높이는 데 도움이 될 것이라고 생각했습니다! 이제 놀라운 부분은 왜 그렇게 간단합니까? 외부 모듈이 필요하지 않기 때문에 이 프로젝트를 만들기 위해 :) 음성인식 모듈을 사용하지 않고도 이 프로젝트를 만들 수 있는 방법이 있을 거라고 확신했어요! 그리고 마침내 아래 링크 덕분에 그 방법을 찾았습니다https://www.c-sharpcorner.com/article/turning-led-off-and-on-through-voice-recognition/

어떻게 만드나요?

이 프로젝트에 필요한 모든 구성 요소를 수집하십시오.

<울>
  • 아래 회로도와 같이 브레드보드에 회로를 설계합니다.
  • <울>
  • 그런 다음 Arduino USB 케이블을 컴퓨터에 연결합니다.
  • <울>
  • Arduino 코드를 다운로드하고 Arduino IDE를 열고 새 스케치를 만들고 코드를 붙여넣습니다.
  • 설치해야 하는 소프트웨어는 단 하나이며 Visual Studio입니다. 저는 Microsoft Visual Studio 버전 2010을 사용하고 있으며 원하는 버전을 설치할 수 있습니다. 스튜디오

    아래 링크를 클릭한 다음 다운로드->직접 다운로드https://www.dropbox.com/sh/pmdflsjui0ayjcs/AAAO4sfb2Tc559CLyOQut_NDa?dl=0

    를 클릭하세요.

    그리고 당신은 끝났습니다

    <울>
  • 녹색 화살표 시작 버튼을 클릭하여 Arduino 스케치를 업로드하고 C# 애플리케이션을 실행합니다.
  • 참고 #0: using.system.speech를 포함하지 않으면 이 프로젝트가 작동하지 않습니다. Visual Studio C# 코드의 라이브러리는 걱정하지 마십시오. libraryGo 위의 도구 모음 프로젝트->참조 추가->.Net->검색 using.system.speech을 포함하려면 아래 지침을 따르세요. 확인을 클릭하면 됩니다. :)

    참고 1: Arduino IDE에서 선택한 COM 포트가 Visual Studio C# 코드에서와 같은지 확인하십시오. 아래에서 볼 수 있듯이 COM 포트는 Arduino와 C# 코드에서 COM5 동일합니다.

    헷갈리는 부분이 있다면 이 데모 영상을 보고 음성으로 LED를 제어할 준비가 된 것입니다 :)

    YouTube 프로젝트 데모를 보려면 여기를 클릭하십시오.

    이 프로젝트에서 무엇을 얻었습니까?

    창의력을 발휘하여 이 프로젝트에서 새로운 것을 만들어 보세요.

    배우고, 만들고, 공유하고, 반복하세요

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • Arduino 소스 코드
  • C# 코드
  • Arduino 소스 코드 C/C++
    음성 인식 프로젝트를 위한 Arduino 소스 코드
    /* 이 프로그램은 C#의 음성 인식 라이브러리(system.speech 사용)를 사용하여 LED 상태를 ON/OFF 제어하는 ​​것입니다. * 흥미로운 부분은 데이터를 전송하기 위해 외부 모듈이 필요하지 않다는 것입니다. arduino는 컴퓨터에 내장된 마이크나 이어폰 마이크를 * 쉽게 사용할 수 있기 때문입니다. * * 이 프로그램은 특별히 초보자를 위한 기본 아이디어를 제공한 다음 유용하게 사용하는 방법을 자신의 창의성에 제공하기 위한 것입니다. * 계속 배우고, 공유하고, 생각하고, 반복하세요. * 즐기세요! * * Jalal Mansoori 작성 */const int blueLed=10;const int redLed=9;const int greenLed=8;char arrivalData='0'; void setup() { // 설정 코드를 여기에 입력하여 한 번 실행://getting leds readySerial.begin(9600);pinMode(blueLed, OUTPUT);pinMode(redLed, OUTPUT);pinMode(greenLed, OUTPUT);} void loop() { // 여기에 기본 코드를 넣어 반복적으로 실행합니다. IncomingData=Serial.read(); // 우리의 경우 LED를 제어하기 위한 스위치 케이스는 Blue, Green 및 Red 3개만 있습니다. switch(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(초록색, 높음); 부서지다; //한 번에 모든 LED를 끄기 위해 :) case 'M':digitalWrite(blueLed, LOW); 디지털 쓰기(빨간색, 낮음); digitalWrite(초록색, LOW); 부서지다; }}
    C# 코드C#
    이 코드는 Visual Studio용입니다. 이 코드에는 프로젝트 참조에 포함해야 하는 using.system.speech 라이브러리가 포함되어 있는 일부 라이브러리가 맨 위에 있음을 볼 수 있습니다.
    이것이 당신이 그것을하는 방법입니다
    도구 모음
    프로젝트->참조 추가->.Net-> system.speech를 사용하여 검색-> 확인 클릭
    그게 다야. // 이 라이브러리는 C#과 Arduino를 연결하여 포트를 통해 데이터를 송수신하기 위한 라이브러리입니다. // 아래는 음성 인식을 위한 라이브러리입니다. using System.Speech;using System.Speech.Recognition;using System.Speech.Synthesis;namespace CsharpCode{ public partial class Form1 :Form { //객체 생성하기 SerialPort myPort =new SerialPort(); SpeechRecognitionEngine re =new SpeechRecognitionEngine(); SpeechSynthesizer ss =새로운 SpeechSynthesizer(); // 프로그램이 사용자에게 다시 말해주기를 원할 때 Choices commands =new Choices(); // 이것은 이름에서 알 수 있듯이 중요한 클래스입니다. 이 객체에 명령을 저장할 것입니다. public Form1() { InitializeComponent(); //아두이노 보드 정보 myPort.PortName ="COM5"; // Arduino IDE의 내 포트 이름은 COM5를 선택했습니다. 다른 경우 포트 이름을 변경해야 합니다. arduinoIDE에서 확인하기만 하면 됩니다. myPort.BaudRate =9600; // 이 속도는 arduino와 동일합니다. Serial.begin(9600) 초당 비트 처리(); } // 메인 명령어가 실행될 정의된 함수 처리 ! void processing() { //먼저 명령어 저장 명령.Add(new string[] { "Blue On", "Red On", "Green On", "Blue Off", "Red Off", "Green Off" , "종료", "모두 켜기", "모두 끄기","Arduino가 제작자에게 작별 인사" }); //이제 명령을 매개변수로 전달할 Grammer 객체를 생성할 것입니다. Grammar gr =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 상태 ON // 파란색 LED 케이스 "Blue On":sendDataToArduino('B'); 부서지다; // 빨간색 LED 케이스의 경우 "Red On":sendDataToArduino('R'); 부서지다; // 녹색 LED의 경우 "Green On":sendDataToArduino('G'); 부서지다; //LED 상태 OFF의 경우 // 파란색 LED 케이스의 경우 "파란색 꺼짐":sendDataToArduino('Z'); 부서지다; // 빨간색 led 케이스의 경우 "빨간색 꺼짐":sendDataToArduino('X'); 부서지다; // 녹색 LED의 경우 "녹색 꺼짐":sendDataToArduino('C'); 부서지다; //모든 LED를 한 번에 켜기 위해 :) case "All On":sendDataToArduino('V'); 부서지다; //모든 LED를 한 번에 끄기 위해 :) case "All Off":sendDataToArduino('M'); 부서지다; //프로그램은 "Arduino Say Good Bye to maker"의 경우를 이야기합니다. 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(); } 개인 무효 btnStop_Click(개체 발신자, EventArgs e) { re.RecognizeAsyncStop(); //btnStart.Enabled =true; btnStop.Enabled =거짓; btnStart.Enabled =true; } 개인 무효 btnStart_Click(개체 발신자, EventArgs e) { re.RecognizeAsync(RecognizeMode.Multiple); btnStop.Enabled =true; btnStart.Enabled =거짓; MessageBox.Show("음성 인식이 시작되었습니다!", "정보", MessageBoxButtons.OK, MessageBoxIcon.Information); } }}

    회로도

    Schematic을 따라 브레드보드의 구성 요소를 연결하기만 하면 됩니다.
    1 -> 먼저 다이어그램과 같이 LED와 저항을 연결합니다.
    2-> 그런 다음 하나씩 시작하고 저항이 arduino 디지털 핀 상자에 연결된 동일한 열에 led + ive 터미널을 연결하십시오.
    디지털 핀 8에 대한 GreenLed +ive 터미널
    디지털 핀 9에 대한 RedLed +ive 터미널
    디지털 핀 10에 대한 BlueLed +ive 단자
    3-> 마지막으로 다이어그램과 같이 점퍼 와이어를 사용하여 arduino에서 leds -ive 터미널로 접지를 연결하십시오. schema_ob2ZmiQwOV.fzz

    제조공정

    1. 매트릭스 음성 구글 어시스턴트 – 매트릭스 음성 프로젝트
    2. 실시간 얼굴 인식:종단 간 프로젝트
    3. Windows IoT:얼굴 인식 도어
    4. 스마트 펜:ECE5725의 최종 프로젝트
    5. DIY LUMAZOID Arduino 뮤직 비주얼라이저
    6. Arduino를 사용하여 모니터 Ambilight 만들기
    7. DIY 37 LED 룰렛 게임
    8. ARDUINO를 사용하는 초음파 부상 기계
    9. 빨리 물러나십시오! 로봇 - 어린이를 위한 이지 스타터 프로젝트
    10. 아날로그 스타일 LED POV 시계