Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Sistema Simples de Reconhecimento de Voz com C# e Arduino UNO

Componentes e Materiais

Componente Quantidade Observações
Arduino UNO 1
Resistor 221 Ω 3 Pode usar qualquer valor, evite resistência muito baixa
LEDs (azul, vermelho, verde) 3
Protoboard (genérica) 1
Fios jumper (genéricos) 1
Fone de ouvido com microfone 1 Pode usar microfone embutido do computador

Aplicativos e Serviços Online

Sobre o Projeto

Nota: Olá!

Fiz este projeto há 2 anos e recebi feedback encorajador. Se você é novo, recomendo seguir o tutorial atualizado (2020):

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

Descrição do Projeto

Todos somos abençoados com sensores (ouvidos, língua, nariz...) que usamos diariamente em comunicação bidirecional (transmissão e recepção de dados). Aplicamos o mesmo conceito em máquinas!

Como iniciante, quase todos começam piscando LEDs. Eu também, mas queria controlar componentes eletrônicos com comandos de voz. Após pesquisar e aprender na internet, completei o projeto e compartilho com a comunidade criativa, especialmente iniciantes! A maneira mais simples de reconhecimento de voz com Arduino!

Usamos apenas LEDs. Neste projeto, ligamos/desligamos LEDs não de forma padrão, mas com comandos de voz. É muito simples e fácil, requer apenas um pouco de conhecimento de programação.

Por Que Fiz Este Projeto?

Tudo começou quando meu professor demonstrou um projeto em C# Windows Forms controlando uma lâmpada virtual por voz, só com software, sem Arduino. Achei incrível! Para um novo projeto com Arduino, pensei: por não controlar LEDs por voz, pois aqui controlamos hardware fisicamente, não virtualmente.

Por Que Este Projeto É Simples?

Razão importante: não precisa de nenhum módulo externo de reconhecimento de voz! Tinha certeza que havia um jeito sem módulo dedicado e encontrei graças a este link.

Como Fazer

  1. Reúna todos os componentes.
  2. Monte o circuito na protoboard conforme diagrama abaixo.
Sistema Simples de Reconhecimento de Voz com C# e Arduino UNO
  1. Conecte o cabo USB do Arduino ao computador.
  2. Baixe o código Arduino, abra a IDE, crie novo sketch e cole o código.

Você precisará instalar o Visual Studio (usei versão 2010, qualquer versão que permita criar Windows Forms Application em C#). Link para download: Dropbox.

Sistema Simples de Reconhecimento de Voz com C# e Arduino UNO
  1. Carregue o sketch no Arduino e execute a aplicação C# clicando na seta verde "Start".
Sistema Simples de Reconhecimento de Voz com C# e Arduino UNO

Nota #0: O projeto não funcionará se você não incluir a biblioteca using System.Speech no Visual Studio. Como fazer: Barra de ferramentas → Project → Add Reference → .NET → Busque "System.Speech" → OK.

Sistema Simples de Reconhecimento de Voz com C# e Arduino UNO

Nota #1: Certifique-se de que a porta COM selecionada no Arduino IDE seja a mesma no código C#. No meu caso, COM5 em ambos.

Sistema Simples de Reconhecimento de Voz com C# e Arduino UNO

Se tiver dúvidas, assista ao vídeo de demonstração no YouTube e estará pronto para controlar LEDs com sua voz!

O Que Você Pode Criar a Partir Disso?

Use sua criatividade para fazer algo novo. Aprenda, Crie, Compartilhe e Repita.

Sistema Simples de Reconhecimento de Voz com C# e Arduino UNO

Código

Código Fonte Arduino (C/C++)

/* Controlando LEDs ON/OFF usando biblioteca de reconhecimento de voz do C# (System.Speech)
 * Parte emocionante: não precisa de módulo externo para transmitir dados ao Arduino,
 * pode usar microfone embutido do computador ou fone de ouvido.
 * Programa para dar ideia básica a iniciantes, depois use sua criatividade.
 * Keep Learning, Share, think and Repeat. Enjoy!
 * By Jalal Mansoori
 */
const int blueLed = 10;
const int redLed = 9;
const int greenLed = 8;
char incomingData = '0';
void setup() {
  Serial.begin(9600);
  pinMode(blueLed, OUTPUT);
  pinMode(redLed, OUTPUT);
  pinMode(greenLed, OUTPUT);
}
void loop() {
  incomingData = Serial.read();
  switch(incomingData) {
    case 'B': digitalWrite(blueLed, HIGH); break;
    case 'R': digitalWrite(redLed, HIGH); break;
    case 'G': digitalWrite(greenLed, HIGH); break;
    case 'Z': digitalWrite(blueLed, LOW); break;
    case 'X': digitalWrite(redLed, LOW); break;
    case 'C': digitalWrite(greenLed, LOW); break;
    case 'V':
      digitalWrite(blueLed, HIGH);
      digitalWrite(redLed, HIGH);
      digitalWrite(greenLed, HIGH);
      break;
    case 'M':
      digitalWrite(blueLed, LOW);
      digitalWrite(redLed, LOW);
      digitalWrite(greenLed, LOW);
      break;
  }
}

Código C# (Visual Studio)

/* Programa para conectar C# e Arduino transmitindo dados do microfone do computador para a placa Arduino
 * By Jalal Mansoori
 */
using System;
using System.Windows.Forms;
using System.IO.Ports;
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 = new SpeechSynthesizer();
    Choices commands = new Choices();
    public Form1() {
      InitializeComponent();
      myPort.PortName = "COM5"; // Altere se sua porta for diferente
      myPort.BaudRate = 9600;
      processing();
    }
    void processing() {
      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 to makers" });
      Grammar gr = new Grammar(new GrammarBuilder(commands));
      re.RequestRecognizerUpdate();
      re.LoadGrammarAsync(gr);
      re.SetInputToDefaultAudioDevice();
      re.SpeechRecognized += new EventHandler(re_SpeechRecognized);
    }
    void re_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) {
      switch(e.Result.Text) {
        case "Blue On": sendDataToArduino('B'); break;
        case "Red On": sendDataToArduino('R'); break;
        case "Green On": sendDataToArduino('G'); break;
        case "Blue Off": sendDataToArduino('Z'); break;
        case "Red Off": sendDataToArduino('X'); break;
        case "Green Off": sendDataToArduino('C'); break;
        case "All On": sendDataToArduino('V'); break;
        case "All Off": sendDataToArduino('M'); break;
        case "Arduino Say Good Bye to makers":
          ss.SpeakAsync("Good Bye Makers");
          break;
        case "Exit":
          Application.Exit();
          break;
      }
      txtCommands.Text += e.Result.Text.ToString() + Environment.NewLine;
    }
    void sendDataToArduino(char character) {
      myPort.Open();
      myPort.Write(character.ToString());
      myPort.Close();
    }
    private void btnStop_Click(object sender, EventArgs e) {
      re.RecognizeAsyncStop();
      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("Voice Recognition Started!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
  }
}

Esquemático

Siga o esquemático e conecte os componentes na protoboard:

  1. Conecte LEDs e resistores conforme diagrama.
  2. Conecte terminal positivo de cada LED na mesma coluna do resistor ligado ao pino digital do Arduino:
    • LED Verde + → pino digital 8
    • LED Vermelho + → pino digital 9
    • LED Azul + → pino digital 10
  3. Por fim, conecte GND do Arduino aos terminais negativos dos LEDs usando jumper.

Processo de manufatura

  1. Instalando Google Assistant no MATRIX Voice Raspberry Pi – Guia Passo a Passo
  2. Reconhecimento Facial em Tempo Real no Raspberry Pi – Guia Completo
  3. Construa uma Porta com Reconhecimento Facial Seguro usando Windows IoT e Raspberry Pi
  4. Caneta Inteligente: Rastreamento de Escrita e Movimento em Tempo Real com Raspberry Pi e IMU
  5. Construa Seu Próprio LUMAZOID: Visualizador de Música DIY com Arduino
  6. Crie um Sistema Ambilight Impressionante para Monitor com Arduino
  7. Construa Seu Próprio Jogo de Roleta com 37 LEDs e Arduino Nano
  8. Construa um Dispositivo de Levitação Ultrassônica com Arduino – Guia Passo a Passo
  9. Construa um Robô 'Vá Embora' – Kit Inicial Arduino Fácil para Crianças
  10. Relógio Analógico Estilo POV com LEDs – Projeto DIY Arduino Nano