Не работает elechouse voice recognition v3 module

Тема в разделе "Arduino & Shields", создана пользователем adel, 1 июл 2022.

  1. adel

    adel Нуб

    Подключил Elechouse Voice Recognition V3 Module к arduino mega.Но плата не видит этот модуль в чем может быть проблема?
    Подключение
    Arduino VoiceRecognitionModule
    2 -------> TX
    3 -------> RX
     
  2. parovoZZ

    parovoZZ Гуру

    А в мегу что залито?
     
  3. adel

    adel Нуб

    Сообщение с кодом слишком длинное. Залита программа из библиотеки VoiceRecognitionV3 пример vr_sample_train.
     
  4. Рокки1945

    Рокки1945 Гуру

    а VCC и GND - как подключены? Не крест на крест?
     
  5. adel

    adel Нуб

    Полное подключение
    arduino VoiceRecognitionModule
    2 ---------> TX
    3 ---------> RX
    5v -------> vcc
    GND ----> GND
     
  6. Рокки1945

    Рокки1945 Гуру

    а тама у вас такая ? upload_2022-7-1_10-56-12.png
     
  7. adel

    adel Нуб

  8. Рокки1945

    Рокки1945 Гуру

    видите там розовым отмечено - ? какой пин в ИДЕ
     

    Вложения:

  9. adel

    adel Нуб

    2 и 3 как и в подключении.
     
  10. Рокки1945

    Рокки1945 Гуру

    у Вас какая ардуино? Уно или Мега?
     
  11. adel

    adel Нуб

    Первые 200 строк
    Код (C++):
    /**
    ******************************************************************************
    * @file    vr_sample_train.ino
    * @author  JiapengLi
    * @brief   This file provides a demostration on
    * how to train VoiceRecognitionModule to record your voice
    ******************************************************************************
    * @note:
    * Use serial command to control VoiceRecognitionModule. '
    * All commands are case insensitive. Default serial baud rate 115200.
    *
    * COMMAND        FORMAT                        EXAMPLE                    Comment
    *
    * train          train (r0) (r1)...            train 0 2 45               Train records
    * load           load (r0) (r1) ...            load 0 51 2 3              Load records
    * clear          clear                         clear                      remove all records in  Recognizer
    * record         record / record (r0) (r1)...  record / record 0 79       Check record train status
    * vr             vr                            vr                         Check recognizer status
    * getsig         getsig (r)                    getsig 0                   Get signature of record (r)
    * sigtrain       sigtrain (r) (sig)            sigtrain 0 ZERO            Train one record(r) with signature(sig)
    * settings       settings                      settings                   Check current system settings
    ******************************************************************************
    * @section  HISTORY
    *
    * 2013/06/13    Initial version.
    */

    #include <SoftwareSerial.h>
    #include "VoiceRecognitionV3.h"

    /**      
    * Connection
    * Arduino    VoiceRecognitionModule
    * 2   ------->     TX
    * 3   ------->     RX
    */

    VR myVR(2,3);    // 2:RX 3:TX, you can choose your favourite pins.

    /***************************************************************************/
    /** declare print functions */
    void printSeperator();
    void printSignature(uint8_t *buf, int len);
    void printVR(uint8_t *buf);
    void printLoad(uint8_t *buf, uint8_t len);
    void printTrain(uint8_t *buf, uint8_t len);
    void printCheckRecognizer(uint8_t *buf);
    void printUserGroup(uint8_t *buf, int len);
    void printCheckRecord(uint8_t *buf, int num);
    void printCheckRecordAll(uint8_t *buf, int num);
    void printSigTrain(uint8_t *buf, uint8_t len);
    void printSystemSettings(uint8_t *buf, int len);
    void printHelp(void);

    /***************************************************************************/
    // command analyze part
    #define CMD_BUF_LEN      64+1
    #define CMD_NUM     10
    typedef int (*cmd_function_t)(int, int);
    uint8_t cmd[CMD_BUF_LEN];
    uint8_t cmd_cnt;
    uint8_t *paraAddr;
    int receiveCMD();
    int checkCMD(int len);
    int checkParaNum(int len);
    int findPara(int len, int paraNum, uint8_t **addr);
    int compareCMD(uint8_t *para1 , uint8_t *para2, int len);

    int cmdTrain(int len, int paraNum);
    int cmdLoad(int len, int paraNum);
    int cmdTest(int len, int paraNum);
    int cmdVR(int len, int paraNum);
    int cmdClear(int len, int paraNum);
    int cmdRecord(int len, int paraNum);
    int cmdSigTrain(int len, int paraNum);
    int cmdGetSig(int len, int paraNum);
    int cmdSettings(int len, int paraNum);
    int cmdHelp(int len, int paraNum);
    /** cmdList, cmdLen, cmdFunction has correspondence */
    const char cmdList[CMD_NUM][10] = {  // command list table
      {
        "train"  }
      ,
      {
        "load"  }
      ,
      {
        "clear"  }
      ,
      {
        "vr"  }
      ,
      {
        "record"  }
      ,
      {
        "sigtrain"  }
      ,
      {
        "getsig"  }
      ,
      {
        "Settings"  }
      ,
      {
        "test"  }
      ,
      {
        "help"  }
      ,
    };
    const char cmdLen[CMD_NUM]= {    // command length
      5,  //  {"train"},
      4,  //  {"load"},
      5,  //  {"clear"},
      2,  //  {"vr"},
      6,  //  {"record"},
      8,  //  {"sigtrain"},
      6,  //  {"getsig"},
      8,  //  {"Settings"},
      4,  //  {"test"},
      4,  //  {"help"}
    };
    cmd_function_t cmdFunction[CMD_NUM]={      // command handle fuction(function pointer table)
      cmdTrain,
      cmdLoad,
      cmdClear,
      cmdVR,
      cmdRecord,
      cmdSigTrain,
      cmdGetSig,
      cmdSettings,
      cmdTest,
      cmdHelp,
    };

    /***************************************************************************/
    /** temprory data */
    uint8_t buf[255];
    uint8_t records[7]; // save record

    void setup(void)
    {
      myVR.begin(9600);

      /** initialize */
      Serial.begin(115200);
      Serial.println(F("Elechouse Voice Recognition V3 Module \"train\" sample."));

      printSeperator();
      Serial.println(F("Usage:"));
      printSeperator();
      printHelp();
      printSeperator();
      cmd_cnt = 0;
    }

    void loop(void)
    {
      int len, paraNum, paraLen, i;

      /** receive Serial command */
      len = receiveCMD();
      if(len>0){
        /** check if the received command is valid */
        if(!checkCMD(len)){

          /** check parameter number of the received command  */
          paraNum = checkParaNum(len);

          /** display the receved command back */
          Serial.write(cmd, len);

          /** find the first parameter */
          paraLen = findPara(len, 1, &paraAddr);

          /** compare the received command with command in the list */
          for(i=0; i<CMD_NUM; i++){
            /** compare command length */
            if(paraLen == cmdLen[i]){
              /** compare command content */
              if( compareCMD(paraAddr, (uint8_t *)cmdList[i], paraLen) == 0 ){
                /** call command function */
                if( cmdFunction[i](len, paraNum) != 0){
                  printSeperator();
                  Serial.println(F("Command Format Error!"));
                  printSeperator();
                }
                break;
              }
            }
          }

          /** command is not supported*/
          if(i == CMD_NUM){
            printSeperator();
            Serial.println(F("Unkonwn command"));
            printSeperator();
          }
        }
        else{
     
  12. adel

    adel Нуб

    Мега
     
  13. Рокки1945

    Рокки1945 Гуру

    ну если софтовый уарт - проверьте настройки baud rate у самого модуля
     
  14. adel

    adel Нуб

    Это пример из библиотеки. У всех других так же 9600
     
  15. Рокки1945

    Рокки1945 Гуру

    а у вас какой?
     

    Вложения:

  16. Рокки1945

    Рокки1945 Гуру

    а зачем тама 2 сериала ? upload_2022-7-1_11-16-51.png В любом случае надо сконфигурировать модуль - делается также по уарту - есть специальная програмка - если с физическим уровнем все ок (хватает питания - тока!) модулю
     
  17. adel

    adel Нуб

    Ардуино с пк 11520.Ардуино с модулем 9600.Стандартная скорость.Смена скорости с 9600 на 11520 не дает изменений.
     
  18. Рокки1945

    Рокки1945 Гуру

    Скажу честно - модуль херовский и срабатыывать будет не только по той окманде которой заложено - да еще и только на вашу интанацию
    смотрите ролик
     
  19. adel

    adel Нуб

    Других все равно нету.
     
  20. Рокки1945

    Рокки1945 Гуру

    а телефон? гугл ракспознаватель