HS-S57-L SU-03T語音識別控制模組

HS-S57-L  SU-03T語音識別控制模組

1、介紹

SU-03T語音識別控制模塊為用戶提供便利便宜的串口離線語音識別方案,可廣泛且快速應用於智能家居,各類智能小家电,86盒,玩具,燈具等需要語音操控的產品。 语音識別採用了離線語音識別晶片。透過串口通信的方式實現與主機的交互,最多支持150條語音指令,可在用戶平台上自主定製語音指令和固件,命令詞可任意修改,開發簡單,不需要寫程式碼。自帶固件下載晶片,只需數據線即可完成固件下載。支援語音調節音量、學習唤醒詞,識別靈敏且準確率高。

2、原理圖

SU-03T語音識別控制模組-HS-S57-L 原理圖點擊查看

3、模組參數

引腳名稱

描述

VCC

VCC(電源輸入正極)

GND

GND(電源輸入負極)

TX

信號發送引腳

RX

信號接收引腳

供電電壓:3.3V / 5V

連接方式:PH2.0 4P端子線

安裝方式:雙螺絲固定/樂高搭建

4、電路板尺寸

燒錄固件教學(注意:模块出廠時已經燒錄固件,可直接使用。需要自己修改條目時燒錄固件步驟)

燒錄文件:點擊下載

第一步:下載文件

第二步:打開燒錄程序

第三步:添加要燒錄的文件進入程序,點擊燒錄

第四步:按下模块復位按鍵

按下後觀察到app開始加載進度

下載完成後模組有語音提示。之後可以用UNO開發板控制語音模組了。

5、Arduino IDE示範程序

注意:程式上傳時如果提示庫文件報錯,請先導入庫文件!
Arduino IDE 庁件文件下載及導入教範:
點擊查看

示範程序(UNO開發板):

volatile int yuyin;
#include <SoftwareSerial.h>

// 串口发送消息最大长度
#define UART_SEND_MAX      32
#define UART_MSG_HEAD_LEN  2
#define UART_MSG_FOOT_LEN  2
// 串口发送消息号
#define U_MSG_bozhensgshu      1
#define U_MSG_boxiaoshu      2
#define U_MSG_bobao1      3
#define U_MSG_bobao2      4
#define U_MSG_bobao3      5
#define U_MSG_bobao4      6
#define U_MSG_bobao5      7
#define U_MSG_bobao6      8
#define U_MSG_bobao7      9
#define U_MSG_bobao8      10
#define U_MSG_bobao9      11
#define U_MSG_bobao10      12
#define U_MSG_bobao11      13
#define U_MSG_bobao12      14
#define U_MSG_bobao13      15
#define U_MSG_bobao14      16
#define U_MSG_bobao15      17
#define U_MSG_bobao16      18
#define U_MSG_bobao17      19
#define U_MSG_bobao18      20
#define U_MSG_bobao19      21
#define U_MSG_bobao20      22
#define U_MSG_bobao21      23
#define U_MSG_bobao22      24
#define U_MSG_bobao23      25
#define U_MSG_bobao24      26
#define U_MSG_bobao25      27
#define U_MSG_bobao26      28
#define U_MSG_bobao27      29
#define U_MSG_bobao28      30
#define U_MSG_bobao29      31
#define U_MSG_bobao30      32
#define U_MSG_bobao31      33
#define U_MSG_bobao32      34
#define U_MSG_bobao33      35
#define U_MSG_bobao34      36
// 串口消息参数类型
typedef union {
  double d_double;
  int d_int;
  unsigned char d_ucs[8];
  char d_char;
  unsigned char d_uchar;
  unsigned long d_long;
  short d_short;
  float d_float;}uart_param_t;

SoftwareSerial mySerial(5,6);
// 串口发送函数实现
void _uart_send_impl(unsigned char* buff, int len) {
  // TODO: 调用项目实际的串口发送函数
  for(int i=0;i<len;i++)
{
   mySerial.write (*buff++);
}
}

// 串口通信消息尾
const unsigned char g_uart_send_foot[] = {
  0x55, 0xaa
};

// 十六位整数转32位整数
void _int16_to_int32(uart_param_t* param) {
  if (sizeof(int) >= 4)
    return;
  unsigned long value = param->d_long;
  unsigned long sign = (value >> 15) & 1;
  unsigned long v = value;
  if (sign)
    v = 0xFFFF0000 | value;
  uart_param_t p;  p.d_long = v;
  param->d_ucs[0] = p.d_ucs[0];
  param->d_ucs[1] = p.d_ucs[1];
  param->d_ucs[2] = p.d_ucs[2];
  param->d_ucs[3] = p.d_ucs[3];
}

// 浮点数转双精度
void _float_to_double(uart_param_t* param) {
  if (sizeof(int) >= 4)
    return;
  unsigned long value = param->d_long;
  unsigned long sign = value >> 31;
  unsigned long M = value & 0x007FFFFF;
  unsigned long e =  ((value >> 23 ) & 0xFF) - 127 + 1023;
  uart_param_t p0, p1;
  p1.d_long = ((sign & 1) << 31) | ((e & 0x7FF) << 20) | (M >> 3);
  param->d_ucs[0] = p0.d_ucs[0];
  param->d_ucs[1] = p0.d_ucs[1];
  param->d_ucs[2] = p0.d_ucs[2];
  param->d_ucs[3] = p0.d_ucs[3];
  param->d_ucs[4] = p1.d_ucs[0];
  param->d_ucs[5] = p1.d_ucs[1];
  param->d_ucs[6] = p1.d_ucs[2];
  param->d_ucs[7] = p1.d_ucs[3];
}

// 串口通信消息头
const unsigned char g_uart_send_head[] = {
  0xaa, 0x55
};

void setup(){
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  digitalWrite(13,LOW);
  mySerial.begin(9600);
  yuyin = 0;
  Serial.begin(9600);
}

void loop(){
  //你好小爱唤醒语音识别模块
  //语音识别模块RX引脚接uno开发D5引脚,TX引脚接uno开发D6引脚

  if (mySerial.available() > 0) {
  yuyin = mySerial.read();
   Serial.println(yuyin,HEX);
  }
  if (yuyin == 1) {
    yuyin = 0;
    Serial.println("开灯");
    digitalWrite(13,HIGH);

  } else if (yuyin == 2) {
    yuyin = 0;
    Serial.println("关灯 ");
    digitalWrite(13,LOW);
  }

}

6、ESP32 Python 示例(適用於Mixly IDE /米思齊)

開發板選擇 Python ESP32 【ESP32 Generic(4MB)】切換為代碼模式上傳

注意:程式上傳時如果提示庫文件報錯,請先導入庫文件!
米思齊(Mixly)IDE ESP32庫檔案下載及匯入教學:
點擊查看

示例程式(ESP32-Python):

import machine
import time


uart1=machine.UART(1, tx=17, rx=16, baudrate=9600)
pin2 = machine.Pin(2, machine.Pin.OUT)
while True:
    if uart1.any():
        data = uart1.read()
        if data == b'\x01':
            pin2.value(1)
            print('111', 'Mixly')
            time.sleep_ms(100)
        elif data == b'\x02':
            pin2.value(0)
            print('nnnn', 'Mixly')
            time.sleep_ms(100)

7、米思齊 Mixly 示例程式(圖形化語言)

示範程序(UNO開發板):點擊下載
注意:程式上傳時如果提示庫文件報錯,請先導入庫文件!
米思齊(Mixly)IDE Arduino 圖庫檔案下載及匯入教學:點擊查看

示範程序(ESP32開發板):點擊下載
注意:程式上傳時如果提示庫文件報錯,請先導入庫文件!
米思齊(Mixly)IDE ESP32庫檔案下載及匯入教學:
點擊查看

8、測試環境搭建

Arduino UNO 測試環境搭建

準備配件:

UNO - R3 開發板 *1

HS-UNO EXP1 擴展板 *1

USB type-c 資料線 *1

LED燈模塊 *1

SU-03T 聲音識別控制模塊(HS-S57-L)*1

PH2.0 4P端子轉杜邦線 *1 或 PH2.0 4P雙頭端子線 *1

電路接線圖:

ESP32 測試環境搭建

準備配件:等更新...

電路接線圖:等更新...

9、視頻教學

視頻教學:點擊查看(學習怎麼自定義修改語音語句和燒錄固件)

10、測試結論

Arduino UNO 混试结果:

器件連接好線之後,將上述程式燒錄到開發板之後,即可跟SU-03T 語音識別控制模組對話。

全部參考資料:點擊下載