wangdbff 发表于 2026-10-25 01:12:10

【欧时RS x Arduino】 离线语音识别添加MCU互动

   前面也提到了可以独立做python和mcu的arduino 交互,所以在离线语音识别的基础上呢,再添加一个arduino互动效果。

   板载的点阵不够显示汉字,但整个简单的动态效果还是比较容易的。LED矩阵分布如下
   
   亮与不两就是01变换,不停的刷就行了。示例如下
   
#include "Arduino_LED_Matrix.h"
#include "Arduino_RouterBridge.h"

ArduinoLEDMatrix matrix;

byte frame;

volatile bool gotMessage = false;
bool showingSuccess = false;
int scanCol = 0;
int successBlink = 0;

// ============ 工具 ============
void clearFrame() {
for (int r = 0; r < 8; r++)
    for (int c = 0; c < 12; c++)
      frame = 0;
}

void setLED(int c, int r, bool on) {
if (c >= 0 && c < 12 && r >= 0 && r < 8)
    frame = on ? 1 : 0;
}

void flushFrame() {
matrix.renderBitmap(frame, 8, 12);
}

// ============ 待机:逐列扫描 ============
void animScan(int col) {
clearFrame();
// 当前列全亮
for (int r = 0; r < 8; r++) {
    setLED(col, r, true);
}
// 前一列暗一点(留个尾巴,视觉上有拖尾感)
int prev = col - 1;
if (prev < 0) prev = 11;
for (int r = 1; r < 7; r++) {
    setLED(prev, r, true);
}
flushFrame();
}

// ============ 成功:全亮闪烁 ============
void animBlink(int count) {
clearFrame();
if (count % 2 == 0) {
    // 全亮
    for (int r = 0; r < 8; r++)
      for (int c = 0; c < 12; c++)
      frame = 1;
}
// 奇数次 = 全灭(闪烁效果)
flushFrame();
}

// ============ RPC 回调 ============
void onShowText(String msg) {
gotMessage = true;
}

void onShowFace(int on) {
if (on == 1) gotMessage = true;
}

// ============ setup / loop ============
void setup() {
matrix.begin();
clearFrame();
flushFrame();

Bridge.begin();
Bridge.provide_safe("show_text", onShowText);
Bridge.provide_safe("show_face", onShowFace);
}

void loop() {
if (!showingSuccess) {
    // 逐列扫描
    animScan(scanCol);
    scanCol = (scanCol + 1) % 12;
    delay(120);

    if (gotMessage) {
      showingSuccess = true;
      successBlink = 0;
      gotMessage = false;
    }
} else {
    // 闪烁 6 次(3亮3灭)
    animBlink(successBlink);
    successBlink++;
    delay(150);

    if (successBlink >= 6) {
      showingSuccess = false;
      scanCol = 0;
    }
}
}   然后运行Linux侧的程序,悄悄的做一下语音识别,MCU这边收到识别成功的消息后就会全部点亮闪一闪。有交互才有灵魂。下面放上视频真相
      https://www.bilibili.com/video/BV144HT6WEP8/?vd_source=7b4aa8f76cb0ff7f703bdeec27b20add



页: [1]
查看完整版本: 【欧时RS x Arduino】 离线语音识别添加MCU互动

Baidu
map