Skip to content

KinIchi1/Make-Your-Own-JARVIS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 

Repository files navigation

Make-Your-Own-JARVIS

OTIS Code

#include <SD.h> #include <SPI.h> #include <SoftwareSerial.h> #include <TMRpcm.h> #include <SimpleVR.h>

TMRpcm tmrpcm; VR myVR(2,3); //SoftwareSerial mySerial(0,1); //RX, TX uint8_t buf[64]; bool acknowledge = false; bool acknowledge2 = false; bool tuneIn = true; //int resetPin = 8; //String line; //String wrd = "ACYCLOVIR"; //File myfile;

void setup() { myVR.begin(9600); //initialize voice recognition module Serial.begin(115200); //initialize sd card pinMode(5,OUTPUT); //set pin for relay digitalWrite(5, HIGH); //tells the relay to turn off tmrpcm.speakerPin = 9; //set pin for speaker while(!Serial){ } Serial.print("Initializing SD Card..."); if(!SD.begin(10)){ Serial.println("Initialization Failed!"); return; } Serial.println("Initialization done"); tmrpcm.setVolume(5); //set audio volume //tmrpcm.play("MCU.WAV"); //test audio if (myVR.checkVersion(buf) > 0){ //connects to voice recognition module Serial.println("SimpleVR Connected"); myVR.setEnable(true); myVR.setGroup(2); } // findWord(wrd); //code for speech synthesis }

void loop(){ Serial.println("Test"); int ret;
uint16_t voice=0; ret = myVR.recognize(buf, 50); //takes voice input if(ret > 0){ voice += buf[0]; voice <<=8; voice += buf[1];

if (voice == 1 && acknowledge == false && acknowledge2 == false){          //checks the value of voice and acknowledgements
  Serial.println(F("Otis"));
  delay(1000);
  tmrpcm.play("BAYSS.WAV");
  myVR.setGroup(1);                                 //sets group to the group with commands
  acknowledge = true;
  delay(3000);
  //tmrpcm.stopPlayback();
  tuneIn = false;
 
  }else { 
  
  switch(voice){
  case 1:
  if(acknowledge == true && acknowledge2 == false && tuneIn == true){
    digitalWrite(5, LOW);
    Serial.println(F("lights"));
    delay(1000);
    myVR.setGroup(2);
    tmrpcm.play("BYS.WAV");
    acknowledge = false;
    acknowledge2 = false;
    delay(3000);
  }else if(acknowledge == true && acknowledge2 == true && tuneIn == true){
    Serial.println(F("playing lofi"));
    myVR.setGroup(2);
    tmrpcm.play("lofi.WAV", 30);
    acknowledge = false;
    acknowledge2 = false;
    delay(3000);
  }
  break;



  case 2:
  if (acknowledge == true && acknowledge2 == false && tuneIn == true){
  digitalWrite(5, HIGH); 
  Serial.println(F("turn off lights"));
  delay(1000);
  tmrpcm.play("BAYW.WAV");
  acknowledge = false;
  acknowledge2 = false;
  myVR.setGroup(2);
  delay(3000);
  }else if (acknowledge == true && acknowledge2 == true && tuneIn == true){
    Serial.println(F("playing r&b"));
    myVR.setGroup(2);
    acknowledge = false;
    acknowledge2 = false;
    delay(3000);
  }
  break;



  case 3:
  if (acknowledge == true && acknowledge2 == false && tuneIn == true){
  Serial.println(F("power on"));
  acknowledge = false;
  myVR.setGroup(2);
  delay(3000);
  }else if (acknowledge == true && acknowledge2 == true && tuneIn == true){
   Serial.println(F("playing smooth jazz"));
   myVR.setGroup(2);
   acknowledge = false;
   acknowledge2 = false;
   delay(3000);
  }
  break;



  case 4:
  if (acknowledge == true && acknowledge2 == false && tuneIn == true){
  pinMode(8, OUTPUT);
  Serial.println(F("shut down power"));
   delay(1000);
  tmrpcm.play("BPWYW.WAV");
  delay(7000);
  digitalWrite(5, HIGH); 
  digitalWrite(8, LOW);
  }else if (acknowledge == true && acknowledge2 == true && tuneIn == true){
    Serial.println(F("playing rock"));
    myVR.setGroup(2);
    acknowledge = false;
    acknowledge2 = false;
    delay(3000);
  }
  break;



  case 5:
  if (acknowledge == true && acknowledge2 == false && tuneIn == true){
  Serial.println(F("hello cheyenne"));
  tmrpcm.play("BHBD.WAV");
  acknowledge = false;
  delay(5000);
  myVR.setGroup(2);
  }else if (acknowledge == true && acknowledge2 == true && tuneIn == true){
    Serial.println(F("pausing"));
    tmrpcm.pause();
    myVR.setGroup(2);
    acknowledge = false;
    acknowledge2 = false;
    delay(3000);
  }
  break;



  case 6:
  if (acknowledge == true && acknowledge2 == false && tuneIn == true){
  Serial.println(F("play music"));
  delay(1000);
  tmrpcm.play("BWM.WAV");
  myVR.setGroup(3);
  acknowledge2 = true;
  delay(3000);
  }else if (acknowledge == true && acknowledge2 == true && tuneIn == true){
    Serial.println(F("resuming"));
    myVR.setGroup(2);
    acknowledge = false;
    acknowledge2 = false;
    delay(3000);
  }
  break;



  case 7:
  if (acknowledge == true && acknowledge2 == false && tuneIn == true){
  Serial.println(F("date"));
  myVR.setGroup(2);
    acknowledge = false;
    acknowledge2 = false;
    delay(3000);
  }
  break;



  case 8:
  if (acknowledge == true && acknowledge2 == false && tuneIn == true){
  Serial.println(F("command 8"));
  myVR.setGroup(2);
  acknowledge = false;
  acknowledge2 = false;
  delay(1000);
  }
  break;



  case 9:
  if (acknowledge == true && acknowledge2 == false && tuneIn == true){
  Serial.println(F("command 9"));
  myVR.setGroup(2);
    acknowledge = false;
    acknowledge2 = false;
    delay(3000);
  }
  break;
}
tuneIn = true;

} } }

About

OTIS Code

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published