亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

C# + Arduino UNO 语音识别控制 LED:零模块、纯软件方案

硬件极简清单

元件数量
Arduino UNO1
LED (红/绿/蓝) + 220Ω 电阻各 1
面包板 + 跳线1套
USB 数据线1
电脑内置麦克风或带麦耳机1

软件环境

核心思路

利用 Windows 自带 System.Speech.Recognition 引擎离线识别中文/英文指令,C# 程序通过串口发送单字符指令给 Arduino,Arduino 解析字符控制 LED。无需任何语音识别模块,成本最低。

Arduino 端代码

const byte B_LED = 10, R_LED = 9, G_LED = 8;
char cmd = '0';

void setup() {
  Serial.begin(9600);
  pinMode(B_LED, OUTPUT);
  pinMode(R_LED, OUTPUT);
  pinMode(G_LED, OUTPUT);
}

void loop() {
  if (Serial.available()) cmd = Serial.read();
  switch (cmd) {
    case 'B': digitalWrite(B_LED, HIGH); break;   // 蓝灯亮
    case 'R': digitalWrite(R_LED, HIGH); break;   // 红灯亮
    case 'G': digitalWrite(G_LED, HIGH); break;   // 绿灯亮
    case 'Z': digitalWrite(B_LED, LOW); break;    // 蓝灯灭
    case 'X': digitalWrite(R_LED, LOW); break;    // 红灯灭
    case 'C': digitalWrite(G_LED, LOW); break;    // 绿灯灭
    case 'V': digitalWrite(B_LED, HIGH); digitalWrite(R_LED, HIGH); digitalWrite(G_LED, HIGH); break; // 全亮
    case 'M': digitalWrite(B_LED, LOW); digitalWrite(R_LED, LOW); digitalWrite(G_LED, LOW); break;  // 全灭
  }
}

C# 端核心逻辑 (WinForms)

using System.Speech.Recognition;
using System.Speech.Synthesis;
using System.IO.Ports;

SerialPort port = new SerialPort("COM5", 9600);  // 修改为实际端口
SpeechRecognitionEngine rec = new SpeechRecognitionEngine();
SpeechSynthesizer tts = new SpeechSynthesizer();

void InitGrammar() {
  var cmds = new Choices(new[] {
    "Blue On", "Red On", "Green On",
    "Blue Off", "Red Off", "Green Off",
    "All On", "All Off",
    "Exit", "Arduino Say Good Bye to makers"
  });
  var g = new Grammar(new GrammarBuilder(cmds));
  rec.LoadGrammarAsync(g);
  rec.SetInputToDefaultAudioDevice();
  rec.SpeechRecognized += Rec_SpeechRecognized;
  rec.RecognizeAsync(RecognizeMode.Multiple);
}

void Rec_SpeechRecognized(object s, SpeechRecognizedEventArgs e) {
  string cmdChar = "";
  switch (e.Result.Text) {
    case "Blue On": cmdChar = "B"; break;
    case "Red On": cmdChar = "R"; break;
    case "Green On": cmdChar = "G"; break;
    case "Blue Off": cmdChar = "Z"; break;
    case "Red Off": cmdChar = "X"; break;
    case "Green Off": cmdChar = "C"; break;
    case "All On": cmdChar = "V"; break;
    case "All Off": cmdChar = "M"; break;
    case "Arduino Say Good Bye to makers":
      tts.SpeakAsync("Good Bye Makers"); return;
    case "Exit": Application.Exit(); return;
  }
  if (cmdChar != "") SendCmd(cmdChar);
}

void SendCmd(string c) {
  port.Open(); port.Write(c); port.Close();
}

关键配置步骤

  1. VS 项目 → 引用 → 添加引用 → 程序集 → Framework → System.Speech 勾选
  2. Arduino IDE 记下端口号 (如 COM5),C# 代码中 port.PortName 对应修改
  3. 上传 Arduino 代码 → 运行 C# 程序 → 点击“开始识别”按钮
  4. 对着麦克风说英文指令 (需在 Windows 语音识别设置中训练/选择英语引擎)

接线示意图

C# + Arduino UNO 语音识别控制 LED:零模块、纯软件方案

扩展方向


🎤 一句话总结:电脑做耳朵,Arduino 做手脚,零额外硬件成本实现语音控制,极适合初学者理解“语音→串口→执行器”完整链路。

制造工艺

  1. 在 MATRIX Voice 树莓派上安装 Google Assistant:分步指南
  2. 树莓派实时人脸识别全流程指南:从硬件到模型训练
  3. Windows IoT + 树莓派打造人脸识别智能门锁
  4. 智能笔:基于树莓派与 IMU 的实时手写与运动追踪
  5. 自制LUMAZOID:基于Arduino的音乐可视化灯光控制器
  6. 用 Arduino 打造绚丽显示器 Ambilight 系统
  7. 用 Arduino Nano 自制 37 灯珠轮盘赌游戏机
  8. 用 Arduino 制作超声波悬浮装置:分步指南
  9. “走开”机器人:Arduino 入门级超声波避障发声装置
  10. 模拟指针风格 POV 时钟:Arduino Nano + 17 LED + 霍尔传感器
  11. 单 LED 光绘:自制电动双轴系统绘制动态图像
  12. 可见光通信 (Li-Fi) 实验:Arduino 实现 LED 无线数据传输