Minggu, 11 Februari 2018

Voice recognition V3 dan Arduino Mega

Voice Recognition v3 adalah sebuah modul yang bisa mengontrol perangkat dengan menggunakan suara. Dengan cara memasukan atau merekam suara ke dalam voice itu sendiri.
Untuk lebih lengkapnya rekan-rekan bisa baca sendiri pada datasheet voice recognition v3 itu sendiri. 

Langsung aja persiapkan komponen-komponen yang dibutuhkan
  • 1 buah voice recognition v3 
  • 1 buah arduino, untuk arduino terserah mau pake yang mana kali ini saya menggunakan arduino mega soalnya jarang sekali tutorial tentang voice menggunakan arduino mega.
  • 2 buah led dan resistor 220 ohm.
 Dan rangkailah seperti gambar dibawah ini:


Rangkain voice recognition V3 dengan arduino

Selanjutnya buka arduino IDE dan buka library voice v3 nya, bagi yang belum punya download dulu librarynya di https://github.com/elechouse/VoiceRecognitionV3.


Selanjutnya ganti pin 2 dan 3 menjadi pin 12 dan 13 seperti gambar dibawah ini:

Silahkan upload ke arduino dan buka serial monitor seperti gambar dibawah ini:


  Rubah baudrate menjadi 115200, untuk mengisi suaranya silahkan ketikan pada kolom atasnya 
  • sigtrain 1 led1on ( untuk led1on terserah rekan maunya menuliskan apa) usahakan kata" jangan terlalu panjang
  • sigtrain 2 led2on
  • sigtrain 3 led1off
  • sigtrain 4 led2off
  • sigtrain 5 ledoff
setelah selesai memasukan suara kita akan mengontrol 2 buah led menggunakan suara untuk on dan off nya silahkan upload progam yang dibawah ini:

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

VR myVR(12,13);  
uint8_t records[7];
uint8_t buf[64];

int led1 = 10;
int led1 = 11;

#define led1on   (1)
#define led2on   (2)
#define led1off  (3)
#define led2off  (4)
#define ledoff   (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("]");
    }
  }
}

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()
{
  myVR.begin(9600);
  Serial.begin(115200);
  Serial.println("Elechouse Voice Recognition V3 Module\r\nControl LED sample");
 
  pinMode(led1, OUTPUT);
  pinMode(led2, 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);
  }
 
  if(myVR.load((uint8_t)led1on) >= 0){
    Serial.println("onRecord led1");
  }
 
  if(myVR.load((uint8_t)led2on) >= 0){
    Serial.println("onRecord led2");
  }

   if(myVR.load((uint8_t)led1off) >= 0){
    Serial.println("offRecord led1");
  }
 
  if(myVR.load((uint8_t)led2off) >= 0){
    Serial.println("offRecord led2");
  }

   if(myVR.load((uint8_t)ledoff) >= 0){
    Serial.println("off led 1 & 2");
  }
 
}

void loop()
{
  int ret;
  ret = myVR.recognize(buf, 50);
  if(ret>0){
    switch(buf[1]){
      case led1on:
        digitalWrite(led1, HIGH);
        break;
      case led2on:
        digitalWrite(led2, HIGH);
        break;
      case led1off:
        digitalWrite(led1, LOW);
        break;
      case led2off:
        digitalWrite(led2, LOW);
        break;
      case ledoff:
        digitalWrite(led1, LOW);
        digitalWrite(led2, LOW);
        break;
      default:
        Serial.println("Record function undefined");
        break;
    }
    printVR(buf);
  }
}

Silahkan upload programnya ke arduino
keterangan kerjanya silahkan gunakan
  • led1on untuk mengaktifkan led 1
  • led2on untuk mengaktifkan led 2
  • led1off untuk mematikan led 1
  • led2off untuk mematikan led 2
  • ledoff untuk mematikan led 1 & led 2
 bagi teman yang masih belum mengerti, kurang paham silahkan komentar di bawah atau kita bisa saling shering dan berbagi ilmu pengetahuan.
Share:

0 komentar:

BTemplates.com


zulpandru hendra. Diberdayakan oleh Blogger.