Ir ao conteúdo
  • Cadastre-se

Christian Branco

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

1
  1. Vou dar uma olhada em ambas as possiveis soluções qualquer coisa comunico vcs perguntar pra algum professores meus também obrigado!
  2. @aphawk Tentei utilizar a opção de RX TX no para o módulo VR3, porém ele n está identificando e n funciona. No bluetooth funciona normal, porém acaba acontecendo algum tipo de conflito ao tentar usar os dois recursos em paralelo, não sei se é uma limitação do hardware ou se é algum problema no código. Código com RX e TX no bluetooth //PROJETO DE TCC #include <SoftwareSerial.h> #include "VoiceRecognitionV3.h" /** Connection Arduino VoiceRecognitionModule 52 -------> TX 53 -------> RX */ VR myVR(52,53); // 52:RX 53:TX, you can choose your favourite pins. uint8_t records[7]; // save record uint8_t buf[64]; // Leds indicadores de pais e filhos int Led_Arduino = 13; int Led_Ligar = 12; int Led_Desligar = 11; int Led_Lampada = 10; int Led_TV = 9; int Led_Portao = 8; unsigned long tempo_limite; unsigned long tempo_espera; // Variaveis para armazenar o estado do comando reconhecido boolean comando_Arduino = false; boolean comando_Ligar = false; boolean comando_Desligar = false; boolean comando_Lampada = false; boolean comando_TV = false; boolean comando_Portao = false; //COMANDO AVÔ #define Arduino (0) //COMANDOS PAIS #define Ligar (1) #define Desligar (2) //COMANDOS FILHOS #define Lampada (3) #define TV (4) #define Portao (5) void printSignature(uint8_t *buf, int len) { int i; for(i=0; i<len; i++){ if(buf[i]>0x19 && buf[i]<0x7F){ Serial.write(buf[i]); } else{ Serial.print("["); Serial.print(buf[i], HEX); Serial.print("]"); } } } /** @brief Print signature, if the character is invisible, print hexible value instead. @param buf --> VR module return value when voice is recognized. buf[0] --> Group mode(FF: None Group, 0x8n: User, 0x0n:System buf[1] --> number of record which is recognized. buf[2] --> Recognizer index(position) value of the recognized record. buf[3] --> Signature length buf[4]~buf[n] --> Signature */ void printVR(uint8_t *buf) { Serial.println("VR Index\tGroup\tRecordNum\tSignature"); Serial.print(buf[2], DEC); Serial.print("\t\t"); if(buf[0] == 0xFF){ Serial.print("NONE"); } else if(buf[0]&0x80){ Serial.print("UG "); Serial.print(buf[0]&(~0x80), DEC); } else{ Serial.print("SG "); Serial.print(buf[0], DEC); } Serial.print("\t"); Serial.print(buf[1], DEC); Serial.print("\t\t"); if(buf[3]>0){ printSignature(buf+4, buf[3]); } else{ Serial.print("NONE"); } Serial.println("\r\n"); } void setup() { /** initialize */ myVR.begin(9600); Serial.begin(9600); Serial.println("COMANDOS PAIS E FILHOS"); // Declarar todos pinos como saída para os LEds pinMode(Led_Arduino, OUTPUT); pinMode(Led_Ligar, OUTPUT); pinMode(Led_Desligar, OUTPUT); pinMode(Led_Lampada, OUTPUT); pinMode(Led_TV, OUTPUT); pinMode(Led_Portao, OUTPUT); if(myVR.clear() == 0){ Serial.println("Recognizer cleared."); }else{ Serial.println("Not find VoiceRecognitionModule."); Serial.println("Please check connection and restart Arduino."); while(1); } //Carregar todos os comandos no VR3 if(myVR.load((uint8_t)Arduino) >= 0){ Serial.println("onRecord loaded"); } if(myVR.load((uint8_t)Desligar) >= 0){ Serial.println("offRecord loaded"); } if(myVR.load((uint8_t)Ligar) >= 0){ Serial.println("onRecord loaded"); } if(myVR.load((uint8_t)Lampada) >= 0){ Serial.println("offRecord loaded"); } if(myVR.load((uint8_t)TV) >= 0){ Serial.println("offRecord loaded"); } if(myVR.load((uint8_t)Portao) >= 0){ Serial.println("onRecord loaded"); } } void loop() { int ret; ret = myVR.recognize(buf, 50); if(ret>0){ switch(buf[1]){ // Verifica se o comando Arduino para iniciar o sistema foi reconhecido case Arduino: // Verifica se o sistema já está iniciado if(comando_Arduino==false){ if(comando_Arduino==false){// COMANDO CASO MODULO DE VOZ DESLIGADO UTILIZA BLUETOOTH char c=Serial.read(); if(c=='A'){digitalWrite(Led_Lampada,HIGH);}// LIga lampada BLuetooth if(c=='a'){digitalWrite(Led_Lampada,LOW);} if(c=='B'){digitalWrite(Led_TV,HIGH);}//Liga TV Bluetooth if(c=='b'){digitalWrite(Led_TV,LOW);} if(c=='C'){digitalWrite(Led_Portao,HIGH);}// Liga PORTAO bluetooth if(c=='c'){digitalWrite(Led_Portao,LOW);} } comando_Arduino=true;{ tempo_limite = millis(); Serial.println("Olá Mestre, o que você deseja?"); // Ola mestre, o que você deseja? (áudio) digitalWrite(Led_Arduino, HIGH); }} else{ Serial.println("Já estou esperando suas ordens!"); // Já estou esperando suas ordens (áudio) } break; case Ligar: if(comando_Arduino==true){ comando_Ligar = true; comando_Desligar = false; Serial.println("Qual equipamento deseja ligar?"); //Qual equipamento deseja acionar? áudio digitalWrite(Led_Ligar, HIGH); digitalWrite(Led_Desligar, LOW); // Pois não senhor, o que deseja ligar? } break; case Desligar: if(comando_Arduino==true){ comando_Ligar = false; comando_Desligar = true; Serial.println("Qual equipamento deseja desligar?"); //Qual equipamento deseja desligar? áudio digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, HIGH); // Pois não senhor, o que deseja ligar? } break; case Lampada: if(comando_Ligar==true){ if(digitalRead(Led_Lampada)==HIGH){ Serial.println("Lampada já está ligada"); //Senhor a lampada já está ligada } else{ Serial.println("Ligando lampada..."); //Será um prazer atender } digitalWrite(Led_Lampada, HIGH); comando_Arduino = false; comando_Ligar = false; comando_Desligar = false; digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, LOW); digitalWrite(Led_Arduino, LOW); } if(comando_Desligar==true){ if(digitalRead(Led_Lampada)==LOW){ Serial.println("Lampada já está desligada"); //Senhor a lampada já está desligada } else{ Serial.println("Desligando lampada..."); //Será um prazer atender } digitalWrite(Led_Lampada, LOW); comando_Arduino = false; comando_Ligar = false; comando_Desligar = false; digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, LOW); digitalWrite(Led_Arduino, LOW); } break; case TV: if(comando_Ligar==true){ if(digitalRead(Led_TV)==HIGH){ //Senhor a TV já está ligada } else{ //Será um prazer atender } digitalWrite(Led_TV, HIGH); comando_Arduino = false; comando_Ligar = false; comando_Desligar = false; digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, LOW); digitalWrite(Led_Arduino, LOW); } if(comando_Desligar==true){ if(digitalRead(Led_TV)==LOW){ //Senhor a TV já está desligada } else{ //Será um prazer atender } digitalWrite(Led_TV, LOW); comando_Arduino = false; comando_Ligar = false; comando_Desligar = false; digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, LOW); digitalWrite(Led_Arduino, LOW); } break; case Portao: if(comando_Ligar==true){ Serial.println("Abrir portao"); digitalWrite(Led_Portao, HIGH); comando_Arduino = false; comando_Ligar = false; comando_Desligar = false; digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, LOW); digitalWrite(Led_Arduino, LOW); } if(comando_Desligar==true){ if(digitalRead(Led_Portao)==LOW){ //Senhor a TV já está desligada } else{ //Será um prazer atender } digitalWrite(Led_Portao, LOW); comando_Arduino = false; comando_Ligar = false; comando_Desligar = false; digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, LOW); digitalWrite(Led_Arduino, LOW); } break; default: Serial.println("Record function undefined"); break; } /** voice recognized */ printVR(buf); } // Calcular tempo de espera sem resposta if(comando_Arduino==true){ tempo_espera = millis() - tempo_limite; if(tempo_espera > 8000){ Serial.println("Tempo esgotado!"); comando_Arduino = false; comando_Ligar = false; comando_Desligar = false; digitalWrite(Led_Arduino, LOW); digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, LOW); } } }
  3. Olá boa tarde pessoal, estou desenvolvendo meu projeto de TCC, vai ser basicamente uma automação residencial controlada por voz e por bluetooth, programados no sentido de comando pai e comando filho por voz, e acionarem apenas os eletronicos por bluetooth, porém, me deparei com um problema que estou perdendo as esperanças já, não consigo conciliar o modulo de voz e o bluetooth para funcionarem simultâneamente, ele até compila e tal porém na hora de dar os comandos de voz ou bluetooth nenhum dos dois funciona. Placa Arduino MEGA 2560 Modulo de voz VR3 (Voice Recognition) Modulo Bluetooth HC-06 //AUTOMAÇÃO RESIDENCIAL VIA BLUETOOTH E CONTROLE DE VOZ TCC 2020 #include <SoftwareSerial.h> #include "VoiceRecognitionV3.h" /** Connection Arduino VoiceRecognitionModule 52 -------> TX 53 -------> RX */ VR myVR(52,53); // 52:RX 53:TX, you can choose your favourite pins. SoftwareSerial bt_serial(50,51);//RX e TX BLUETOOTH uint8_t records[7]; // save record uint8_t buf[64]; // Leds indicadores de pais e filhos int Led_Arduino = 13; int Led_Ligar = 12; int Led_Desligar = 11; int Led_Lampada = 10; int Led_TV = 9; int Led_Portao = 8; unsigned long tempo_limite; unsigned long tempo_espera; // Variaveis para armazenar o estado do comando reconhecido boolean comando_Arduino = false; boolean comando_Ligar = false; boolean comando_Desligar = false; boolean comando_Lampada = false; boolean comando_TV = false; boolean comando_Portao = false; //COMANDO AVÔ #define Arduino (0) //COMANDOS PAIS #define Ligar (1) #define Desligar (2) //COMANDOS FILHOS #define Lampada (3) #define TV (4) #define Portao (5) void printSignature(uint8_t *buf, int len) { int i; for(i=0; i<len; i++){ if(buf[i]>0x19 && buf[i]<0x7F){ Serial.write(buf[i]); } else{ Serial.print("["); Serial.print(buf[i], HEX); Serial.print("]"); } } } /** @brief Print signature, if the character is invisible, print hexible value instead. @param buf --> VR module return value when voice is recognized. buf[0] --> Group mode(FF: None Group, 0x8n: User, 0x0n:System buf[1] --> number of record which is recognized. buf[2] --> Recognizer index(position) value of the recognized record. buf[3] --> Signature length buf[4]~buf[n] --> Signature */ void printVR(uint8_t *buf) { Serial.println("VR Index\tGroup\tRecordNum\tSignature"); Serial.print(buf[2], DEC); Serial.print("\t\t"); if(buf[0] == 0xFF){ Serial.print("NONE"); } else if(buf[0]&0x80){ Serial.print("UG "); Serial.print(buf[0]&(~0x80), DEC); } else{ Serial.print("SG "); Serial.print(buf[0], DEC); } Serial.print("\t"); Serial.print(buf[1], DEC); Serial.print("\t\t"); if(buf[3]>0){ printSignature(buf+4, buf[3]); } else{ Serial.print("NONE"); } Serial.println("\r\n"); } void setup() { /** initialize */ myVR.begin(9600); bt_serial.begin(9600); Serial.begin(9600); Serial.println("COMANDOS PAIS E FILHOS"); // Declarar todos pinos como saída para os LEds pinMode(Led_Arduino, OUTPUT); pinMode(Led_Ligar, OUTPUT); pinMode(Led_Desligar, OUTPUT); pinMode(Led_Lampada, OUTPUT); pinMode(Led_TV, OUTPUT); pinMode(Led_Portao, OUTPUT); if(myVR.clear() == 0){ Serial.println("Recognizer cleared."); }else{ Serial.println("Not find VoiceRecognitionModule."); Serial.println("Please check connection and restart Arduino."); while(1); } //Carregar todos os comandos no VR3 if(myVR.load((uint8_t)Arduino) >= 0){ Serial.println("onRecord loaded"); } if(myVR.load((uint8_t)Desligar) >= 0){ Serial.println("offRecord loaded"); } if(myVR.load((uint8_t)Ligar) >= 0){ Serial.println("onRecord loaded"); } if(myVR.load((uint8_t)Lampada) >= 0){ Serial.println("offRecord loaded"); } if(myVR.load((uint8_t)TV) >= 0){ Serial.println("offRecord loaded"); } if(myVR.load((uint8_t)Portao) >= 0){ Serial.println("onRecord loaded"); } } void loop() { int ret; ret = myVR.recognize(buf, 50); if(ret>0){ switch(buf[1]){ // Verifica se o comando Arduino para iniciar o sistema foi reconhecido case Arduino: // Verifica se o sistema já está iniciado if(comando_Arduino==false){// COMANDO CASO MODULO DE VOZ DESLIGADO UTILIZA BLUETOOTH char c=bt_serial.read(); if(c=='A'){digitalWrite(Led_Lampada,HIGH);}// LIga lampada BLuetooth if(c=='a'){digitalWrite(Led_Lampada,LOW);} if(c=='B'){digitalWrite(Led_TV,HIGH);}//Liga TV Bluetooth if(c=='b'){digitalWrite(Led_TV,LOW);} if(c=='C'){digitalWrite(Led_Portao,HIGH);}// Liga PORTAO bluetooth if(c=='c'){digitalWrite(Led_Portao,LOW);} comando_Arduino = true; tempo_limite = millis(); Serial.println("Olá Mestre, o que você deseja?"); // Ola mestre, o que você deseja? (áudio) digitalWrite(Led_Arduino, HIGH); } else{ Serial.println("Já estou esperando suas ordens!"); // Já estou esperando suas ordens (áudio) } break; case Ligar: if(comando_Arduino==true){ comando_Ligar = true; comando_Desligar = false; Serial.println("Qual equipamento deseja ligar?"); //Qual equipamento deseja acionar? áudio digitalWrite(Led_Ligar, HIGH); digitalWrite(Led_Desligar, LOW); // Pois não senhor, o que deseja ligar? } break; case Desligar: if(comando_Arduino==true){ comando_Ligar = false; comando_Desligar = true; Serial.println("Qual equipamento deseja desligar?"); //Qual equipamento deseja desligar? áudio digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, HIGH); // Pois não senhor, o que deseja ligar? } break; case Lampada: if(comando_Ligar==true){ if(digitalRead(Led_Lampada)==HIGH){ Serial.println("Lampada já está ligada"); //Senhor a lampada já está ligada } else{ Serial.println("Ligando lampada..."); //Será um prazer atender } digitalWrite(Led_Lampada, HIGH); comando_Arduino = false; comando_Ligar = false; comando_Desligar = false; digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, LOW); digitalWrite(Led_Arduino, LOW); } if(comando_Desligar==true){ if(digitalRead(Led_Lampada)==LOW){ Serial.println("Lampada já está desligada"); //Senhor a lampada já está desligada } else{ Serial.println("Desligando lampada..."); //Será um prazer atender } digitalWrite(Led_Lampada, LOW); comando_Arduino = false; comando_Ligar = false; comando_Desligar = false; digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, LOW); digitalWrite(Led_Arduino, LOW); } break; case TV: if(comando_Ligar==true){ if(digitalRead(Led_TV)==HIGH){ //Senhor a TV já está ligada } else{ //Será um prazer atender } digitalWrite(Led_TV, HIGH); comando_Arduino = false; comando_Ligar = false; comando_Desligar = false; digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, LOW); digitalWrite(Led_Arduino, LOW); } if(comando_Desligar==true){ if(digitalRead(Led_TV)==LOW){ //Senhor a TV já está desligada } else{ //Será um prazer atender } digitalWrite(Led_TV, LOW); comando_Arduino = false; comando_Ligar = false; comando_Desligar = false; digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, LOW); digitalWrite(Led_Arduino, LOW); } break; case Portao: if(comando_Ligar==true){ Serial.println("Abrir portao"); digitalWrite(Led_Portao, HIGH); comando_Arduino = false; comando_Ligar = false; comando_Desligar = false; digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, LOW); digitalWrite(Led_Arduino, LOW); } if(comando_Desligar==true){ if(digitalRead(Led_Portao)==LOW){ //Senhor a TV já está desligada } else{ //Será um prazer atender } digitalWrite(Led_Portao, LOW); comando_Arduino = false; comando_Ligar = false; comando_Desligar = false; digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, LOW); digitalWrite(Led_Arduino, LOW); } break; default: Serial.println("Record function undefined"); break; } /** voice recognized */ printVR(buf); } // Calcular tempo de espera sem resposta if(comando_Arduino==true){ tempo_espera = millis() - tempo_limite; if(tempo_espera > 8000){ Serial.println("Tempo esgotado!"); comando_Arduino = false; comando_Ligar = false; comando_Desligar = false; digitalWrite(Led_Arduino, LOW); digitalWrite(Led_Ligar, LOW); digitalWrite(Led_Desligar, LOW); } } } Caso alguém souber de alguma coisa por favor me ajude não sei o que está ocasionando o conflito. Projeto TCC B1.txt

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!